Commit Graph

3121 Commits

Author SHA1 Message Date
Jeff Peeler
6bb8cc3a9b Fix SIP deadlock involving state changes.
Once again a call to pbx_builtin_getvar_helper (and pbx_builtin_setvar_helper)
has caused locking problems. Both of these functions lock the channel when
the channel argument is passed in!

In this case, the suspected problem (the backtrace makes it impossible to tell)
was the private being locked in sip_set_rtp_peer and then:
transmit_reinvite_with_sdp
 try_suggested_sip_codec
   pbx_builtin_getvar_helper
(Traced to verify that the fix was only required in 1.8 and later.)

(closes issue #18491)
Reported by: cmaj
Patches: 
      chan_sip_fix_deadlocks_bug_18491.txt uploaded by cmaj (license 830)
Tested by: cmaj



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@306215 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-03 23:49:28 +00:00
Richard Mudgett
a785544090 Merged revisions 305889 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r305889 | rmudgett | 2011-02-02 18:15:07 -0600 (Wed, 02 Feb 2011) | 17 lines
  
  Merged revisions 305888 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r305888 | rmudgett | 2011-02-02 18:02:43 -0600 (Wed, 02 Feb 2011) | 8 lines
  
    Minor AST_FRAME_TEXT related issues.
  
    * Include the null terminator in the buffer length.  When the frame is
    queued it is copied.  If the null terminator is not part of the frame
    buffer length, the receiver could see garbage appended onto it.
  
    * Add channel lock protection with ast_sendtext().
  
    * Fixed AMI SendText action ast_sendtext() return value check.
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@305923 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-03 00:24:40 +00:00
Andrew Latham
b7c58ed676 Replace link to old doc with new wiki page.
Link to https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@305753 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-02 15:08:33 +00:00
Jason Parker
1a5122534c Merged revisions 305253 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r305253 | qwell | 2011-01-31 16:59:34 -0600 (Mon, 31 Jan 2011) | 17 lines
  
  Merged revisions 305252 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r305252 | qwell | 2011-01-31 16:56:54 -0600 (Mon, 31 Jan 2011) | 10 lines
    
    Prevent a crash when dialing a technology with no destination (ex: Dial(SIP/))
    
    chan_iax2 and other channel drivers already had code to prevent this.  The
    attempt that app_dial was making to prevent it was not correct, so I fixed that.
    
    (closes issue #18371)
    Reported by: gbour
    Patches: 
          18371.patch uploaded by gbour (license 1162)
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@305254 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-31 23:07:00 +00:00
Matthew Nicholson
15b9d1ac10 Merged revisions 304244 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r304244 | mnicholson | 2011-01-26 14:42:16 -0600 (Wed, 26 Jan 2011) | 13 lines
  
  Merged revisions 304241 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r304241 | mnicholson | 2011-01-26 14:38:22 -0600 (Wed, 26 Jan 2011) | 6 lines
    
    This patch modifies chan_sip to route responses to the address the request came from.  It also modifies chan_sip to respect the maddr parameter in the Via header.
    
    ABE-2664
    
    Review: https://reviewboard.asterisk.org/r/1059/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@304245 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-26 20:43:27 +00:00
Terry Wilson
412ac4639d Merged revisions 303960 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r303960 | twilson | 2011-01-25 16:02:42 -0600 (Tue, 25 Jan 2011) | 23 lines
  
  Merged revisions 303906 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r303906 | twilson | 2011-01-25 14:50:59 -0600 (Tue, 25 Jan 2011) | 16 lines
    
    Guard against retransmitting BYEs indefinitely
    
    In the case of an attended transfer (A calls B, A atxfers to C) where
    A becomes unreachable before replying to Asterisk's BYE, Asterisk can
    sometimes retransmit the BYE indefinitely. This is because
    __sip_autodestruct tests p->refer && !ast_test_flag(&p->flags[0],
    SIP_ALREADYGONE and will then transmit a BYE. When this BYE times out,
    it will not ever be marked as ALREADYGONE, so when __sip_autodestruct
    is called again, we end up starting the cycle over.
    
    This patch adds a call to sip_alreadygone(pkt->owner) in retrans_pkt
    in the case of a BYE that has timed out. This should prevent Asterisk
    from trying to transmit new BYE messages in the future.
    
    Review: https://reviewboard.asterisk.org/r/1077/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@303962 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-25 22:09:01 +00:00
Tilghman Lesher
ab1f22bb75 Merged revisions 303858 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r303858 | tilghman | 2011-01-25 12:41:26 -0600 (Tue, 25 Jan 2011) | 5 lines
  
  Fix "sip show user <tab>", so that it actually shows results, instead of just completing the last entry.
  
  (closes issue #16675)
  Reported by: pj
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@303860 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-25 18:55:27 +00:00
Sean Bright
4e770f12bf Initialize an uninitialized variable.
(closes issue #18640)
Reported by: jcovert
Patches:
      chan_sip.c.patch uploaded by jcovert (license 551)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@302414 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-19 15:45:17 +00:00
Matthew Nicholson
34bda44174 Merged revisions 302313 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r302313 | mnicholson | 2011-01-18 15:40:03 -0600 (Tue, 18 Jan 2011) | 11 lines
  
  Merged revisions 302311 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r302311 | mnicholson | 2011-01-18 15:35:03 -0600 (Tue, 18 Jan 2011) | 4 lines
    
    URI encode the user part of the contact header.
    
    ABE-2705
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@302314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-18 21:43:21 +00:00
Jeff Peeler
9190854417 Resolve deadlock involving REFER.
Two fixes:
1) One must always have the private unlocked before calling
pbx_builtin_setvar_helper to not invalidate locking order since it locks the
channel.
2) Unlock the channel before calling pbx_find_extension, which starts and stops
autoservice during the lookup. The problem scenario as illustrated by the
reporter:

Thread: do_monitor
-----------------------
handle_request_do
 handle_incoming
  handle_request_refer
   ast_parking_ext_valid
    pbx_find_extension
     ast_autoservice_stop
      while (chan_list_state == as_chan_list_state) { usleep(1000); }

Thread: autoservice_run
-----------------------
autoservice_run
 chan = ast_waitfor_n
  ast_waitfor_nandfds
   ast_waitfor_nandfds_classic / simple / complex (depending on your system)
    ast_channel_lock(c[x]);

handle_request_do and schedule_process_request_queue locks the owner
if it exists. The autoservice thread is waiting for the channel lock, which
wasn't ever released since the do_monitor thread was waiting for autoservice
operations to complete. Solved by unlocking the channel but keeping a reference
to guarantee safety.

(closes issue #18403)
Reported by: jthurman
Patches: 
      20110103-blind_deadlock.diff uploaded by jthurman (license 614)
      issue18403.patch uploaded by jpeeler (license 325)
Tested by: jthurman



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301790 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-14 17:32:52 +00:00
Terry Wilson
08938fe910 Merged revisions 301682 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r301682 | twilson | 2011-01-12 15:05:02 -0600 (Wed, 12 Jan 2011) | 9 lines
  
  Don't reject all SUBSCRIBE auth requests
  
  When merging another SUBSCRIBE fix from 1.4, some braces were put in
  the wrong place. This patch fixes that.
  
  (closes issue #18597)
  Reported by: thsgmbh
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301683 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-12 21:19:48 +00:00
Leif Madsen
d5036e449b Merged revisions 300520 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r300520 | lmadsen | 2011-01-04 15:52:41 -0600 (Tue, 04 Jan 2011) | 9 lines
  
  Fix backwards and broken XML documentation.
  
  (closes issue #18547)
  Reported by: jcovert
  Patches: 
        xmldoc.c.patch uploaded by jcovert (license 551)
        chan_iax2.c.doc.patch uploaded by jcovert (license 551)
        chan_sip.c.patch uploaded by jcovert (license 551)
        chan_agent.c.patch uploaded by jcovert (license 551)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@300521 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-04 21:53:27 +00:00
Terry Wilson
be2b52c028 Merged revisions 300298 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r300298 | twilson | 2011-01-04 11:37:26 -0600 (Tue, 04 Jan 2011) | 22 lines
  
  Merged revisions 300216 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r300216 | twilson | 2011-01-04 11:11:48 -0600 (Tue, 04 Jan 2011) | 15 lines
    
    Don't authenticate SUBSCRIBE re-transmissions
    
    This only skips authentication on retransmissions that are already
    authenticated. A similar method is already used for INVITES. This
    is the kind of thing we end up having to do when we don't have a
    transaction layer...
    
    (closes issue #18075)
    Reported by: mdu113
    Patches: 
          diff.txt uploaded by twilson (license 396)
    Tested by: twilson, mdu113
    
    Review: https://reviewboard.asterisk.org/r/1005/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@300301 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-04 17:54:41 +00:00
Matthew Nicholson
7358372d1a Merged revisions 299242 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r299242 | mnicholson | 2010-12-20 15:25:35 -0600 (Mon, 20 Dec 2010) | 23 lines
  
  Merged revisions 299194,299198,299220 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r299194 | mnicholson | 2010-12-20 14:45:38 -0600 (Mon, 20 Dec 2010) | 6 lines
    
    Respond as soon as possible with a 202 Accepted to refer requests.
    
    This change also plugs a few memory leaks that can occur when parking sip calls.
    
    ABE-2656
  ........
    r299198 | mnicholson | 2010-12-20 15:00:44 -0600 (Mon, 20 Dec 2010) | 2 lines
    
    Remove changes to via processing that were not supposed to go into the last commit.
  ........
    r299220 | mnicholson | 2010-12-20 15:21:39 -0600 (Mon, 20 Dec 2010) | 4 lines
    
    Use ast_free() instead of free()
    
    ABE-2656
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@299353 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-21 15:25:03 +00:00
Mark Michelson
bc5602a88f Fix a couple of CCSS issues.
* Make sure to allocate a cc_params structure
  when creating autopeers.

* Use sip_uri_cmp when retrieving SIP CC agents
  and monitors in case parameters appear in the
  URI.

(closes issue #18504)
Reported by: kkm

(closes issue #18338)
Reported by: GeorgeKonopacki
Patches: 
      18338.diff uploaded by mmichelson (license 60)
Tested by: GeorgeKonopacki




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@299248 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-20 21:38:30 +00:00
Tzafrir Cohen
8a73e54701 Typos: recieved => received
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@299004 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-20 09:14:29 +00:00
Brad Watkins
1c1631cebf Fix parsing of mwi => lines in sip.conf
Reworking parsing of mwi => lines to resolve a segfault.  Also add a set of unit tests for the function that does the parsing.

(closes issue #18350)
Reported by: gbour
Tested by: Marquis, gbour

Review: https://reviewboard.asterisk.org/r/1053/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@298773 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-17 17:26:31 +00:00
Tilghman Lesher
5bc2e04ec0 Ensure the ipaddr field in realtime is large enough to handle IPv6 addresses.
(closes issue #18464)
 Reported by: IgorG
 Patches: 
       realtime_ipv6store.diff uploaded by IgorG (license 20)
       (plus a few additional lines by tilghman)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@298539 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-16 09:28:17 +00:00
Terry Wilson
7310e07564 Merged revisions 297960 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r297960 | twilson | 2010-12-09 16:10:31 -0600 (Thu, 09 Dec 2010) | 21 lines
  
  Merged revisions 297959 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r297959 | twilson | 2010-12-09 16:00:30 -0600 (Thu, 09 Dec 2010) | 14 lines
    
    Ignore spurious REGISTER requests
    
    If a REGISTER request with a Call-ID matching an existing transaction is received
    it was possible that the REGISTER request would overwrite the initreq of the
    private structure. This info is used to generate messages for other responses in
    the transaction. This patch ignores REGISTER requests that match non-REGISTER
    transactions.
    
    (closes issue #18051)
    Reported by: eeman
    Tested by: twilson
    
    Review: https://reviewboard.asterisk.org/r/1050/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@297965 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-09 22:18:19 +00:00
Jeff Peeler
00143b2778 Merged revisions 297605 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r297605 | jpeeler | 2010-12-06 16:03:04 -0600 (Mon, 06 Dec 2010) | 18 lines
  
  Merged revisions 297603 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r297603 | jpeeler | 2010-12-06 15:57:15 -0600 (Mon, 06 Dec 2010) | 12 lines
    
    Improve handling of REGISTER requests with multiple contact headers.
    
    The changes here attempt to more strictly follow RFC 3261 section 10.3.
    Basically the following will now cause a 400 Bad Response to be returned, if:
    - multiple Contact headers are present with one set to expire all bindings ("*")
    - wildcard parameter is specified for Contact without Expires header or Expires
      header is not set to zero.
    
    ABE-2442
    ABE-2443
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@297607 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-06 22:06:37 +00:00
Jeff Peeler
add7816848 Merged revisions 297073 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r297073 | jpeeler | 2010-12-01 11:52:46 -0600 (Wed, 01 Dec 2010) | 30 lines
  
  Merged revisions 297072 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r297072 | jpeeler | 2010-12-01 11:50:09 -0600 (Wed, 01 Dec 2010) | 23 lines
    
    Fix not stopping MOH when transfered local channel queue member is answered.
    
    The problem here is only present when local channels are used with the MOH
    passthru option as well as no optimization (/nm). I will describe the slightly
    bizarre scenario that was used to test, where phones B and C are queue members:
    
    Phone A dials into a queue with two members using local channels and the above
    options. Phone B answers. Phone A blind transfers phone B into the same queue.
    Phone A hangs up. Phone C answers, but phone B didn't stop playing MOH.
    
    In this scenario, the unhold frame that should have gotten to phone B never
    arrived due to the masquerade from the blind transfer. This is usually fine
    since app_queue manages the starting and stopping of MOH. However, with the
    passthrough option enabled when app_queue attempts to stop MOH it tries to do
    so on the local channel rather than the real channel. The easiest solution
    was to just make sure to send an unhold frame during the transfer since it
    wouldn't make sense to have MOH playing after a transfer anyway. This only
    modifies SIP transfers, but the other transfers did not seem to be a problem.
    If DTMF based transfers were a problem it might be okay to add ast_moh_stop
    to finishup, but I didn't want to have to add that unless required.
    
    ABE-2624
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@297075 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-01 17:53:13 +00:00
Russell Bryant
7017473c8c Complete some error handling in transmit_publish() in chan_sip.c.
This error handling block caught my eye.  It was missing a couple of things,
but it should be safe now.  Thanks to mmichelson for the quick peer review
on IRC.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@296628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-29 21:26:44 +00:00
Brad Watkins
ee5d9d0835 Fix reloading of peer when a user is requested.
Prevent peer reloading from causing multiple MWI subscriptions to be created when using realtime.  This had the effect of sending one NOTIFY for every time a sip peer made a call, in one case eventually overwhelming  the phone and causing it to reboot.

(closes issue #18342)
Reported by: nivek
Patches:
      issue0018342p1.patch uploaded by nivek (license 636)
Tested by: nivek

Review: https://reviewboard.asterisk.org/r/1029/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@296352 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-26 18:19:02 +00:00
Terry Wilson
1930461fa7 Merged revisions 295672 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r295672 | twilson | 2010-11-19 13:55:48 -0800 (Fri, 19 Nov 2010) | 15 lines
  
  Merged revisions 295628 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r295628 | twilson | 2010-11-19 12:53:36 -0800 (Fri, 19 Nov 2010) | 8 lines
    
    Discard responses with more than one Via
    
    This is not a perfect solution as headers that are joined via commas are not
    detected. This is a parsing issue that to fix "correctly" would necessitate 
    a new SIP parser.
    
    Review: https://reviewboard.asterisk.org/r/1019/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@295673 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-19 22:06:10 +00:00
Jeff Peeler
01f31e0c50 Merged revisions 294733 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r294733 | jpeeler | 2010-11-11 15:57:22 -0600 (Thu, 11 Nov 2010) | 25 lines
  
  Merged revisions 294688 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r294688 | jpeeler | 2010-11-11 15:12:27 -0600 (Thu, 11 Nov 2010) | 18 lines
    
    Fix problem with qualify option packets for realtime peers never stopping.
    
    The option packets not only never stopped, but if a realtime peer was not in
    the peer list multiple options dialogs could accumulate over time. This
    scenario has the potential to progress to the point of saturating a link just
    from options packets. The fix was to ensure that the poke scheduler checks to
    see if a peer is in the peer list before continuing to poke. The reason a peer
    must be in the peer list to be able to properly manage an options dialog is
    because otherwise the call pointer is lost when the peer is regenerated from
    the database, which is how existing qualify dialogs are detected.
    
    (closes issue #16382)
    (closes issue #17779)
    Reported by: lftsy
    Patches: 
          bug16382-3.patch uploaded by jpeeler (license 325)
    Tested by: zerohalo
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294734 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-11 21:58:25 +00:00
Matthew Nicholson
529b8fc988 Merged revisions 294242 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r294242 | mnicholson | 2010-11-08 14:50:21 -0600 (Mon, 08 Nov 2010) | 8 lines
  
  Go off hold when we get an empty reinvite telling us to.
  
  (closes issue 0014448)
  Reported by: frawd
  
  (closes issue #17878)
  Reported by: frawd
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294243 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-08 20:56:30 +00:00
Brett Bryant
e1a1360451 Fixed deadlock avoidance issues while locking channel when adding the
Max-Forwards header to a request.

(closes issue #17949)
(closes issue #18200)
Reported by: bwg

Review: https://reviewboard.asterisk.org/r/997/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-05 22:03:11 +00:00
David Vossel
c34f40e710 Fixes ringback tone on sip semi-attended transfer.
ABE-2168


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293924 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-04 21:39:51 +00:00
Paul Belanger
5cf1c93fd5 Do not output port in IPaddress for AMI sippeers.
(closes issue #18248)
Reported by: orn
Patches: 
      ami_sippeers.patch uploaded by pabelanger (license 224)
Tested by: orn


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293887 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-04 13:27:54 +00:00
Terry Wilson
6dfc9dddd8 Avoid valgrind warnings for ast_rtp_instance_get_xxx_address
The documentation for ast_rtp_instance_get_(local/remote)_address stated that
they returned 0 for success and -1 on failure. Instead, they returned 0 if the
address structure passed in was already equivalent to the address instance
local/remote address or 1 otherwise. 90% of the calls to these functions
completely ignored the return address and passed in an uninitialized struct,
which would make valgrind complain even though the operation was technically
safe.

This patch fixes the documentation and converts the get_xxx_address functions
to void since all they really do is copy the address and cannot fail.
Additionally two new functions
(ast_rtp_instance_get_and_cmp_(local/remote)_address) are created for the 3
times where the return value was actually checked. The
get_and_cmp_local_address function is currently unused, but exists for the sake
of symmetry.

The only functional change as a result of this change is that we will not do an
ast_sockaddr_cmp() on (mostly uninitialized) addresses before doing the
ast_sockaddr_copy() in the get_*_address functions. So, even though it is an
API change, it shouldn't have a noticeable change in behavior.

Review: https://reviewboard.asterisk.org/r/995/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293803 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-03 18:05:14 +00:00
Jeff Peeler
9a482b0724 Merged revisions 293723 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r293723 | jpeeler | 2010-11-02 18:07:13 -0500 (Tue, 02 Nov 2010) | 15 lines
  
  Merged revisions 293722 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r293722 | jpeeler | 2010-11-02 18:02:51 -0500 (Tue, 02 Nov 2010) | 8 lines
    
    Add enabled/disabled information for rtautoclear sip show settings output.
    
    When setting to zero/"no", the numeric default was shown making it not obvious
    the disabled setting was respected.
    
    (closes issue #18123)
    Reported by: zerohalo
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293724 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-02 23:09:06 +00:00
Terry Wilson
de440fa10d Only offer codecs both sides support for directmedia
When using directmedia, Asterisk needs to limit the codecs offered to just
the ones that both sides recognize, otherwise they may end up sending audio
that the other side doesn't understand.

(closes issue #17403)
Reported by: one47
Patches: 
      sip_codecs_simplified4 uploaded by one47 (license 23)
Tested by: one47, falves11

Review: https://reviewboard.asterisk.org/r/967/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293493 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-01 14:58:00 +00:00
Jeff Peeler
da39c33809 Modify sip_setoption to not complain about unknown options.
This now behaves just like the other setoption callbacks. For the curious the
offending option for the reporter was AST_OPTION_CHANNEL_WRITE which was getting
passed due to a fix for chan_local in 286189.

(closes issue #17985)
Reported by: globalnetinc


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293305 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-29 21:48:38 +00:00
Leif Madsen
9baf979137 Merged revisions 292786 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r292786 | lmadsen | 2010-10-22 16:16:12 -0500 (Fri, 22 Oct 2010) | 13 lines
  
  Update the LDIF file for LDAP.
  The LDIF file asterisk.ldif was quite a bit out of date from the asterisk.ldap-schema file, so I've
  now updated that to be in sync. The asterisk.ldif file being out of sync was a problem on my systems
  where I was doing an ldapadd to import the schema into the LDAP database, and the existing file
  would cause problems and ERROR messages when registering.
  
  Additional documention has been added based on feedback in the issue I'm closing.
  
  (closes issue #13861)
  Reported by: scramatte
  Patches:
        ldap-update.txt uploaded by lmadsen (license 10)
  Tested by: lmadsen, jcovert, suretec, rgenthner
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@292787 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-22 21:28:43 +00:00
Terry Wilson
668d532d6b Add sip show peer info about crypto and remove dated comment
This patch adds information about the encryption setting to 'sip show
peers' and removes an out-of-date comment from res_srtp.c and instead
directs users to the proper documentation.

(closes issue #18140)
Reported by: chodorenko



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@292309 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-19 19:27:32 +00:00
David Vossel
3e3ea54864 Fixes peer's host port information being lost on sip reload.
(closes issue #18135)
Reported by: lmadsen
Patches:
      crazy_ports_v2.diff uploaded by dvossel (license 671)
Tested by: lmadsen


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@291942 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-15 20:12:04 +00:00
Paul Belanger
a37956721c Add the ability for ast_find_ourip to return IPv4, IPv6 or both.
While testing chan_gtalk I noticed jabber was using my IPv6 address
and not IPv4. When using bindaddr=0.0.0.0 it is possible for ast_find_ourip()
to return both IPv6 and IPv4 results.  Adding a family parameter gives you
the ablility to choose.

Since jabber/gtalk/h323 do not support IPv6, we should only return IPv4 results.

Review: https://reviewboard.asterisk.org/r/973/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@291758 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-14 15:15:12 +00:00
Russell Bryant
ec05b242dd Merged revisions 291393 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r291393 | russell | 2010-10-13 10:29:21 -0500 (Wed, 13 Oct 2010) | 13 lines
  
  Merged revisions 291392 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r291392 | russell | 2010-10-13 10:23:19 -0500 (Wed, 13 Oct 2010) | 6 lines
    
    Lock pvt so pvt->owner can't disappear when queueing up a frame.
    
    This fixes a crash due to a hangup race condition.
    
    ABE-2601
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@291394 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-13 15:46:39 +00:00
Richard Mudgett
184d0e7f1b Move declaration closer to where now used.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@291113 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-11 18:51:13 +00:00
Richard Mudgett
a96796cc44 Merged revisions 291110-291111 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r291110 | rmudgett | 2010-10-11 13:34:22 -0500 (Mon, 11 Oct 2010) | 9 lines
  
  Merged revisions 291109 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r291109 | rmudgett | 2010-10-11 13:29:43 -0500 (Mon, 11 Oct 2010) | 1 line
    
    Add missing unlock to an exception condition in reload_config().
  ........
................
  r291111 | rmudgett | 2010-10-11 13:39:06 -0500 (Mon, 11 Oct 2010) | 1 line
  
  Make exit from handle_request_do() consistent.
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@291112 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-11 18:48:15 +00:00
Jeff Peeler
ddebf12b88 Merged revisions 289798 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r289798 | jpeeler | 2010-10-01 18:01:31 -0500 (Fri, 01 Oct 2010) | 22 lines
  
  Merged revisions 289797 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r289797 | jpeeler | 2010-10-01 17:58:38 -0500 (Fri, 01 Oct 2010) | 15 lines
    
    Change RFC2833 DTMF event duration on end to report actual elapsed time.
    
    The scenario here is with a non P2P early media session. The reported time
    length of DTMF presses are coming up short when sending to the remote side.
    Currently the event duration is a running total that is incremented when sending
    continuation packets. These continuation packets are only triggered upon
    incoming media from the remote side, which means that the running total probably
    is not going to end up matching the actual length of time Asterisk received
    DTMF. This patch changes the end event duration to be lengthened if it is
    detected that the end event is going to come up short.
    
    Review: https://reviewboard.asterisk.org/r/957/
    
    ABE-2476
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@289840 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-02 02:43:45 +00:00
Jeff Peeler
4f8d5448a6 Merged revisions 289700 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r289700 | jpeeler | 2010-10-01 11:21:04 -0500 (Fri, 01 Oct 2010) | 21 lines
  
  Merged revisions 289699 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r289699 | jpeeler | 2010-10-01 11:20:00 -0500 (Fri, 01 Oct 2010) | 14 lines
    
    Ensure user portion of SIP URI matches dialplan when using encoded characters.
    
    This commit takes a simliar approach to 288112 and checks the dialplan to
    determine the proper action for an incoming contact header as to whether or not
    it should be decoded or not. sip_new was blindly always decoding the extension,
    which also caused the outgoing contact header to be incorrect as well as failing
    to match the encoded extension in the dialplan.
    
    (closes issue #17892)
    Reported by: wdoekes
    Patches: 
          bug17892-1.patch uploaded by jpeeler (license 325)
    Tested by: wdoekes
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@289701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-01 16:22:19 +00:00
Stefan Schmidt
097becdba1 don't iterate through all dialogs to find and delete old subscribes
On every incoming subscribe there is a iteration through all dialogs to find old subscribes and delete them. This is slow and not RFC conform. This was only needed in 1.2 cause a subscribe was not deleted when a dialog was destroyed, after 1.4 a subscribe get removed when its dialog is destroyed.

(closes issue #17950)
Reported by: schmidts
Tested by: schmidts

Review: https://reviewboard.asterisk.org/r/901/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@289622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-01 09:42:22 +00:00
Matthew Nicholson
ac5ac97178 Merged revisions 289553 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r289553 | mnicholson | 2010-09-30 14:51:27 -0500 (Thu, 30 Sep 2010) | 4 lines
  
  Properly handle channel allocation failures duing invites with replaces.
  
  ABE-2588
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@289554 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-30 19:53:10 +00:00
Richard Mudgett
34b3615fff Break up long ast_manager_event_multichan() event lines.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@289054 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-28 00:32:18 +00:00
Tilghman Lesher
f2f15f7e04 Still build SIP, even if res_crypto cannot be built (use, not depend).
(closes issue #18062)
 Reported by: a user on the mailing list


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@288961 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-27 18:37:41 +00:00
David Vossel
6ba94c8639 Append Retry-After header on 500 error response to Re-INVITE according to RFC3261 section 14.2.
ABE-2301



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@288852 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-24 17:58:57 +00:00
David Vossel
68751f8b26 Inspect Require header on BYE transaction according to RFC3261 section 8.2.2.3.
ABE-2293


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@288821 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-24 17:05:12 +00:00
David Vossel
0f4fa2300a Merged revisions 288417 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r288417 | dvossel | 2010-09-22 12:49:05 -0500 (Wed, 22 Sep 2010) | 11 lines
  
  Merged revisions 288416 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r288416 | dvossel | 2010-09-22 12:48:15 -0500 (Wed, 22 Sep 2010) | 5 lines
    
    RFC3261 section 12.2 explicitly says out of order requests are responded with a 500 Server Internal Error response.
    
    ABE-2458
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@288418 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-22 17:49:56 +00:00
David Vossel
4cb567b461 Merged revisions 288344 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r288344 | dvossel | 2010-09-22 11:53:28 -0500 (Wed, 22 Sep 2010) | 9 lines
  
  Merged revisions 288343 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r288343 | dvossel | 2010-09-22 11:49:56 -0500 (Wed, 22 Sep 2010) | 2 lines
    
    During check_pendings, if the dialog is terminated with a CANCEL, change the invitestate to INV_CANCEL like in sip_hangup.
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@288345 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-22 16:59:14 +00:00