summaryrefslogtreecommitdiff
path: root/channels/chan_sip.c
AgeCommit message (Collapse)Author
2011-02-22Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd ↵David Vossel
audio ConfBridge, and other stuff -Functional changes 1. Dynamic global format list build by codecs defined in codecs.conf 2. SILK 8khz, 12khz, 16khz, and 24khz with custom attributes defined in codecs.conf 3. Negotiation of SILK attributes in chan_sip. 4. SPEEX 32khz with translation 5. SLINEAR 8khz, 12khz, 24khz, 32khz, 44.1khz, 48khz, 96khz, 192khz with translation using codec_resample.c 6. Various changes to RTP code required to properly handle the dynamic format list and formats with attributes. 7. ConfBridge now dynamically jumps to the best possible sample rate. This allows for conferences to take advantage of HD audio (Which sounds awesome) 8. Audiohooks are no longer limited to 8khz audio, and most effects have been updated to take advantage of this such as Volume, DENOISE, PITCH_SHIFT. 9. codec_resample now uses its own code rather than depending on libresample. -Organizational changes Global format list is moved from frame.c to format.c Various format specific functions moved from frame.c to format.c Review: https://reviewboard.asterisk.org/r/1104/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@308582 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-15Merged revisions 307879 via svnmerge from Richard Mudgett
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r307879 | rmudgett | 2011-02-15 10:13:55 -0600 (Tue, 15 Feb 2011) | 37 lines No response sent for SIP CC subscribe/resubscribe request. Asterisk does not send a response if we try to subscribe for call completion after we have received a 180 Ringing. You can only subscribe for call completion when the call has been cleared. When we receive the 180 Ringing, for this call, its call-completion state is 'CC_AVAILABLE'. If we then send a subscribe message to Asterisk, it trys to change the call-completion state to 'CC_CALLER_REQUESTED'. Because this is an invalid state change, it just ignores the message. The only state Asterisk will accept our subscribe message is in the 'CC_CALLER_OFFERED' state. Asterisk will go into the 'CC_CALLER_OFFERED' when the SIP client clears the call by sending a CANCEL. Asterisk should always send a response. Even if its a negative one. The fix is to allow for the CCSS core to notify a CC agent that a failure has occurred when CC is requested. The "ack" callback is replaced with a "respond" callback. The "respond" callback has a parameter indicating either a successful response or a specific type of failure that may need to be communicated to the requester. (closes issue #18336) Reported by: GeorgeKonopacki Tested by: mmichelson, rmudgett JIRA SWP-2633 (closes issue #18337) Reported by: GeorgeKonopacki Tested by: mmichelson JIRA SWP-2634 ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@307883 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-10Fixes bug in chan_sip where nativeformats are not set correctly.David Vossel
The nativeformats field was being overwritten when it should have been appended too. This caused some format capabilities to be lost briefly and some log warnings to be output. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@307433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-08Merged revisions 306979 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r306979 | twilson | 2011-02-08 12:18:08 -0800 (Tue, 08 Feb 2011) | 16 lines Merged revisions 306973 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r306973 | twilson | 2011-02-08 12:14:09 -0800 (Tue, 08 Feb 2011) | 9 lines Merged revisions 306972 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r306972 | twilson | 2011-02-08 12:05:13 -0800 (Tue, 08 Feb 2011) | 2 lines Fix comparison for REFER Replaces tags with pedantic=yes ........ ................ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@307061 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-07Merged revisions 306619 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r306619 | twilson | 2011-02-07 14:15:27 -0800 (Mon, 07 Feb 2011) | 24 lines Merged revisions 306618 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r306618 | twilson | 2011-02-07 13:59:54 -0800 (Mon, 07 Feb 2011) | 17 lines Merged revisions 306617 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r306617 | twilson | 2011-02-07 13:51:43 -0800 (Mon, 07 Feb 2011) | 10 lines Don't allow a REFER w/replaces to replace its own dialog Asterisk currently accepts a REFER with a Refer-To with an embedded Replaces header that matches the dialog of the REFER. This would be a situation like A calls B, A calls C, A transfers B to A, which is just silly. This patch makes the transfer fail instead of making Asterisk freak out and forget to hang other channels up. Review: https://reviewboard.asterisk.org/r/1093/ ........ ................ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@306670 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-07Fixes use of ast_format_cap_append where ast_format_cap_copy is necessary.David Vossel
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@306541 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-04Replace ast_log(LOG_DEBUG, ...) with ast_debug()Paul Belanger
(closes issue #18556) Reported by: kkm Review: https://reviewboard.asterisk.org/r/1071/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@306258 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-03Merged revisions 306215 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r306215 | jpeeler | 2011-02-03 17:49:28 -0600 (Thu, 03 Feb 2011) | 20 lines 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/trunk@306216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-03Asterisk media architecture conversion - no more format bitfieldsDavid Vossel
This patch is the foundation of an entire new way of looking at media in Asterisk. The code present in this patch is everything required to complete phase1 of my Media Architecture proposal. For more information about this project visit the link below. https://wiki.asterisk.org/wiki/display/AST/Media+Architecture+Proposal The primary function of this patch is to convert all the usages of format bitfields in Asterisk to use the new format and format_cap APIs. Functionally no change in behavior should be present in this patch. Thanks to twilson and russell for all the time they spent reviewing these changes. Review: https://reviewboard.asterisk.org/r/1083/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@306010 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-03Merged revisions 305923 via svnmerge from Richard Mudgett
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r305923 | rmudgett | 2011-02-02 18:24:40 -0600 (Wed, 02 Feb 2011) | 24 lines 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/trunk@305939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-02Replace link to old doc with new wiki page.Andrew Latham
Link to https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@305759 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-31Merged revisions 305254 via svnmerge from Jason Parker
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r305254 | qwell | 2011-01-31 17:07:00 -0600 (Mon, 31 Jan 2011) | 24 lines 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/trunk@305255 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-26Merged revisions 304245 via svnmerge from Matthew Nicholson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r304245 | mnicholson | 2011-01-26 14:43:27 -0600 (Wed, 26 Jan 2011) | 20 lines 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/trunk@304246 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-25Merged revisions 303962 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r303962 | twilson | 2011-01-25 16:09:01 -0600 (Tue, 25 Jan 2011) | 30 lines 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/trunk@303963 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-25Merged revisions 303860 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r303860 | tilghman | 2011-01-25 12:55:27 -0600 (Tue, 25 Jan 2011) | 12 lines 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/trunk@303861 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-24According to section 19.1.2 of RFC 3261:Matthew Nicholson
For each component, the set of valid BNF expansions defines exactly which characters may appear unescaped. All other characters MUST be escaped. This patch modifies ast_uri_encode() to encode strings in line with this recommendation. This patch also adds an ast_escape_quoted() function which escapes '"' and '\' characters in quoted strings in accordance with section 25.1 of RFC 3261. The ast_uri_encode() function has also been modified to take an ast_flags struct describing the set of rules it should use when escaping characters to allow for it to escape SIP URIs in addition to HTTP URIs and other types of URIs or variations of those two URI types in the future. The ast_uri_decode() function has also been modified to accept an ast_flags struct describing the set of rules to use when decoding to enable decoding '+' as ' ' in legacy http URLs. The unit tests for these functions have also been updated. ABE-2705 Review: https://reviewboard.asterisk.org/r/1081/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@303509 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-19Merged revisions 302414 via svnmerge from Sean Bright
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r302414 | seanbright | 2011-01-19 10:45:17 -0500 (Wed, 19 Jan 2011) | 7 lines 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/trunk@302415 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-18Merged revisions 302314 via svnmerge from Matthew Nicholson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r302314 | mnicholson | 2011-01-18 15:43:21 -0600 (Tue, 18 Jan 2011) | 18 lines 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/trunk@302315 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-17Merged revisions 293493 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r293493 | twilson | 2010-11-01 09:58:00 -0500 (Mon, 01 Nov 2010) | 14 lines 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/trunk@302048 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-14Merged revisions 301790 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r301790 | jpeeler | 2011-01-14 11:32:52 -0600 (Fri, 14 Jan 2011) | 42 lines 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/trunk@301791 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-12Merged revisions 301683 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r301683 | twilson | 2011-01-12 15:19:48 -0600 (Wed, 12 Jan 2011) | 15 lines 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/trunk@301684 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-04Merged revisions 300521 via svnmerge from Leif Madsen
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r300521 | lmadsen | 2011-01-04 15:53:27 -0600 (Tue, 04 Jan 2011) | 17 lines 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/trunk@300522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-04Merged revisions 300301 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r300301 | twilson | 2011-01-04 11:54:41 -0600 (Tue, 04 Jan 2011) | 29 lines 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/trunk@300302 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-21Merged revisions 299353 via svnmerge from Matthew Nicholson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r299353 | mnicholson | 2010-12-21 09:25:03 -0600 (Tue, 21 Dec 2010) | 30 lines 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/trunk@299355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-20Merged revisions 299248 via svnmerge from Mark Michelson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r299248 | mmichelson | 2010-12-20 15:38:30 -0600 (Mon, 20 Dec 2010) | 20 lines 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/trunk@299249 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-20Some scheduler API cleanup and improvements.Russell Bryant
Previously, I had added the ast_sched_thread stuff that was a generic scheduler thread implementation. However, if you used it, it required using different functions for modifying scheduler contents. This patch reworks how this is done and just allows you to optionally start a thread on the original scheduler context structure that has always been there. This makes it trivial to switch to the generic scheduler thread implementation without having to touch any of the other code that adds or removes scheduler entries. In passing, I made some naming tweaks to add ast_ prefixes where they were not there before. Review: https://reviewboard.asterisk.org/r/1007/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@299091 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-20Typos: recieved => receivedTzafrir Cohen
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@299005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-17Merged revisions 298773 via svnmerge from Brad Watkins
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r298773 | marquis | 2010-12-17 12:26:31 -0500 (Fri, 17 Dec 2010) | 10 lines 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/trunk@298774 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-16Merged revisions 298539 via svnmerge from Tilghman Lesher
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r298539 | tilghman | 2010-12-16 03:28:17 -0600 (Thu, 16 Dec 2010) | 8 lines 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/trunk@298545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-09Merged revisions 297965 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r297965 | twilson | 2010-12-09 16:18:19 -0600 (Thu, 09 Dec 2010) | 28 lines 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/trunk@297972 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-06Merged revisions 297607 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r297607 | jpeeler | 2010-12-06 16:06:37 -0600 (Mon, 06 Dec 2010) | 25 lines 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/trunk@297608 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-01Merged revisions 297075 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r297075 | jpeeler | 2010-12-01 11:53:13 -0600 (Wed, 01 Dec 2010) | 37 lines 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/trunk@297076 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-29Merged revisions 296628 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r296628 | russell | 2010-11-29 15:26:44 -0600 (Mon, 29 Nov 2010) | 6 lines 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/trunk@296630 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-26Merged revisions 296352 via svnmerge from Brad Watkins
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r296352 | marquis | 2010-11-26 13:19:02 -0500 (Fri, 26 Nov 2010) | 12 lines 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/trunk@296353 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-19Merged revisions 295673 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r295673 | twilson | 2010-11-19 14:06:10 -0800 (Fri, 19 Nov 2010) | 22 lines 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/trunk@295674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-11Merged revisions 294734 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r294734 | jpeeler | 2010-11-11 15:58:25 -0600 (Thu, 11 Nov 2010) | 32 lines 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/trunk@294735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-08Merged revisions 294243 via svnmerge from Matthew Nicholson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r294243 | mnicholson | 2010-11-08 14:56:30 -0600 (Mon, 08 Nov 2010) | 15 lines 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/trunk@294244 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-05Merged revisions 294084 via svnmerge from Brett Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r294084 | bbryant | 2010-11-05 18:03:11 -0400 (Fri, 05 Nov 2010) | 9 lines 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/trunk@294086 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-05Perform proper handling of forked outbound INVITE requests.David Vossel
RFC3261 section 12 about dialog creation says an INVITE transaction results in an established dialog once it receives the 200 OK response. It is possible to receive multiple differing 200 OK responses for a single outbound INVITE Request, and this should result in establishing multiple dialogs. This patch allows for all differing 200 OK responses to an INVITE request to establish a separate dialog, but only the first dialog is kept. All other resulting dialogs from the initial request are immediately ACKed and then immediately terminated with a BYE request. Review: https://reviewboard.asterisk.org/r/946/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@294083 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-05Merged revisions 293924 via svnmerge from David Vossel
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r293924 | dvossel | 2010-11-04 16:39:51 -0500 (Thu, 04 Nov 2010) | 4 lines Fixes ringback tone on sip semi-attended transfer. ABE-2168 ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@294046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-04Merged revisions 293887 via svnmerge from Paul Belanger
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r293887 | pabelanger | 2010-11-04 09:27:54 -0400 (Thu, 04 Nov 2010) | 8 lines 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/trunk@293888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-03Merged revisions 293803 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r293803 | twilson | 2010-11-03 11:05:14 -0700 (Wed, 03 Nov 2010) | 25 lines 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/trunk@293809 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-02Merged revisions 293724 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r293724 | jpeeler | 2010-11-02 18:09:06 -0500 (Tue, 02 Nov 2010) | 22 lines 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/trunk@293725 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-29Merged revisions 293305 via svnmerge from Jeff Peeler
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r293305 | jpeeler | 2010-10-29 16:48:38 -0500 (Fri, 29 Oct 2010) | 9 lines 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/trunk@293306 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-22Merged revisions 292787 via svnmerge from Leif Madsen
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r292787 | lmadsen | 2010-10-22 16:28:43 -0500 (Fri, 22 Oct 2010) | 21 lines 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/trunk@292788 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-19Merged revisions 292309 via svnmerge from Terry Wilson
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r292309 | twilson | 2010-10-19 12:27:32 -0700 (Tue, 19 Oct 2010) | 10 lines 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/trunk@292310 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-15Merged revisions 291942 via svnmerge from David Vossel
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r291942 | dvossel | 2010-10-15 15:12:04 -0500 (Fri, 15 Oct 2010) | 8 lines 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/trunk@291943 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-14Merged revisions 291758 via svnmerge from Paul Belanger
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r291758 | pabelanger | 2010-10-14 11:15:12 -0400 (Thu, 14 Oct 2010) | 11 lines 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/trunk@291760 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-13Merged revisions 291394 via svnmerge from Russell Bryant
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r291394 | russell | 2010-10-13 10:46:39 -0500 (Wed, 13 Oct 2010) | 20 lines 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/trunk@291395 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-11Add todo comment about handle_incoming() calling assumption.Richard Mudgett
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@291115 65c4cc65-6c06-0410-ace0-fbb531ad65f3