aboutsummaryrefslogtreecommitdiffstats
path: root/channels/sip
AgeCommit message (Collapse)AuthorFilesLines
2011-07-05Merged revisions 326291 via svnmerge from rmudgett1-3/+8
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r326291 | rmudgett | 2011-07-05 12:22:59 -0500 (Tue, 05 Jul 2011) | 23 lines Used auth= parameter freed during "sip reload" causes crash. If you use the auth= parameter and do a "sip reload" while there is an ongoing call. The peer->auth data points to free'd memory. The patch does several things: 1) Puts the authentication list into an ao2 object for reference counting to fix the reported crash during a SIP reload. 2) Converts the authentication list from open coding to AST list macros. 3) Adds display of the global authentication list in "sip show settings". (closes issue ASTERISK-17939) Reported by: wdoekes Patches: jira_asterisk_17939_v1.8.patch (license #5621) patch uploaded by rmudgett Review: https://reviewboard.asterisk.org/r/1303/ JIRA SWP-3526 ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@326321 f38db490-d61c-443f-a65b-d21fe96a405b
2011-06-29Merged revisions 325740 via svnmerge from kmoore1-2/+0
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r325740 | kmoore | 2011-06-29 16:49:21 -0500 (Wed, 29 Jun 2011) | 7 lines chan_sip: cleanup from the introduction of ast_str Remove the length field from sip_req and sip_pkt in chan_sip since they are redundant (ast_str holds its own length) and refactor the necessary functions. Review: https://reviewboard.asterisk.org/r/1281/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@325741 f38db490-d61c-443f-a65b-d21fe96a405b
2011-06-23Merged revisions 324685 via svnmerge from dvossel1-4/+12
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r324685 | dvossel | 2011-06-23 13:31:00 -0500 (Thu, 23 Jun 2011) | 8 lines Fixes sip crash when calling remove_uri_parameters with NULL AST-2011-009 (closes issue ASTERISK-18017) Reported by: jaredmauch ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@324689 f38db490-d61c-443f-a65b-d21fe96a405b
2011-06-13Addition of "outofcall_message_context" sip.conf option.dvossel1-0/+3
Review: https://reviewboard.asterisk.org/r/1265/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@323212 f38db490-d61c-443f-a65b-d21fe96a405b
2011-06-01Support routing text messages outside of a call.russell1-0/+5
Asterisk now has protocol independent support for processing text messages outside of a call. Messages are routed through the Asterisk dialplan. SIP MESSAGE and XMPP are currently supported. There are options in sip.conf and jabber.conf that enable these features. There is a new application, MessageSend(). There are two new functions, MESSAGE() and MESSAGE_DATA(). Documentation will be available on the project wiki, wiki.asterisk.org. Thanks to Terry Wilson for the assistance with development and to David Vossel for helping with some additional testing. Review: https://reviewboard.asterisk.org/r/1042/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@321546 f38db490-d61c-443f-a65b-d21fe96a405b
2011-05-27Merged revisions 321273 via svnmerge from jrose1-17/+21
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r321273 | jrose | 2011-05-27 09:59:34 -0500 (Fri, 27 May 2011) | 3 lines markm committed a patch I was working on yesterday, this fixes it to mesh up with suggestions by mnicholson. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@321289 f38db490-d61c-443f-a65b-d21fe96a405b
2011-05-26Merged revisions 321155 via svnmerge from markm1-0/+17
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r321155 | markm | 2011-05-26 17:48:45 -0400 (Thu, 26 May 2011) | 10 lines Fixed build problem with dev mode enabled, which was caused by commit 321100. Reformulated patch to be more generic. Moved the sip uri parse variable initalization to parse_uri_full in reqresp_parser.c. This will ensure that any use of parse uri will have null output variables if the parse fails. (closes issue #19346) Reported by: kobaz Tested by: kobaz,JonathanRose Review: [full review board URL with trailing slash] ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@321156 f38db490-d61c-443f-a65b-d21fe96a405b
2011-05-20Merged revisions 319938 via svnmerge from jrose1-0/+2
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r319938 | jrose | 2011-05-20 08:28:24 -0500 (Fri, 20 May 2011) | 12 lines Adds legacy_useroption_parsing to address interoperability concerns. With the new option engaged, Asterisk should interpret user fields with useroptions contained within the userfield of the uri by stripping them out of the original message whenever a semicolon is encountered in the userfield string. (closes issue #18344) Reported by: danimal Tested by: jrose Review: https://reviewboard.asterisk.org/r/1223/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@319939 f38db490-d61c-443f-a65b-d21fe96a405b
2011-05-16 When a error in T.38 negotiation happens or its rejected on a channel theirroot1-1/+2
state of the channel reverts to unknown this should be rejected. this is important for negotiating T.38 gateway see #13405 This patch adds a option T38_REJECTED that behaves as T38_DISABLED except it reports state rejected. Trivial Change to res_fax to honnor UNAVAILABLE and REJECTED states. (closes issue #18889) Reported by: irroot Tested by: irroot, darkbasic, mnicholson Review: https://reviewboard.asterisk.org/r/1115 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@319087 f38db490-d61c-443f-a65b-d21fe96a405b
2011-05-13Merged revisions 318720 via svnmerge from mnicholson1-2/+11
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r318720 | mnicholson | 2011-05-12 18:35:51 -0500 (Thu, 12 May 2011) | 4 lines Handle ipv6 addresses in the sent-by Via: field. This change fixes a regression in via header parsing and ipv6 handling. (closes issue #18951) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@318785 f38db490-d61c-443f-a65b-d21fe96a405b
2011-05-05Merged revisions 317474 via svnmerge from russell1-2/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r317474 | russell | 2011-05-05 17:36:33 -0500 (Thu, 05 May 2011) | 2 lines Fix more "set but unused" warnings. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@317475 f38db490-d61c-443f-a65b-d21fe96a405b
2011-04-27Merged revisions 315894 via svnmerge from mnicholson1-4/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r315894 | mnicholson | 2011-04-27 14:14:27 -0500 (Wed, 27 Apr 2011) | 28 lines Merged revisions 315893 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r315893 | mnicholson | 2011-04-27 14:03:05 -0500 (Wed, 27 Apr 2011) | 21 lines Merged revisions 315891 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r315891 | mnicholson | 2011-04-27 13:57:56 -0500 (Wed, 27 Apr 2011) | 14 lines Fix our compliance with RFC 3261 section 18.2.2. This change optimizes the free_via() function and removes some redundant null checking. It also fixes compliance with RFC 3261 section 18.2.2 by always using the port specified in the Via header for routing responses (even when maddr is not set). Also the htons() function is now used when setting the port. Additional documentation comments have been added in various places to make the logic in the code clearer. (closes issue #18951) Reported by: jmls Patches: issue18951_set_proper_port_from_via.patch uploaded by wdoekes (license 717) (modified) ........ ................ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@315895 f38db490-d61c-443f-a65b-d21fe96a405b
2011-04-21Merged revisions 314628 via svnmerge from mnicholson1-0/+4
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r314628 | mnicholson | 2011-04-21 13:24:05 -0500 (Thu, 21 Apr 2011) | 27 lines Merged revisions 314620 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r314620 | mnicholson | 2011-04-21 13:22:19 -0500 (Thu, 21 Apr 2011) | 20 lines Merged revisions 314607 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r314607 | mnicholson | 2011-04-21 13:19:21 -0500 (Thu, 21 Apr 2011) | 14 lines Added limits to the number of unauthenticated sessions TCP based protocols are allowed to have open simultaneously. Also added timeouts for unauthenticated sessions where it made sense to do so. Unrelated, the manager interface now properly checks if the user has the "system" privilege before executing shell commands via the Originate action. AST-2011-005 AST-2011-006 (closes issue #18787) Reported by: kobaz (related to issue #18996) Reported by: tzafrir ........ ................ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@314666 f38db490-d61c-443f-a65b-d21fe96a405b
2011-04-13Add 'description' field for CLI and Manager outputlmadsen1-0/+1
(closes issue #19076) Reported by: lmadsen Patches: __20110408-channel-description.txt uploaded by lmadsen (license 10) Tested by: lmadsen Review: https://reviewboard.asterisk.org/r/1163/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@313528 f38db490-d61c-443f-a65b-d21fe96a405b
2011-03-23Merged revisions 311612 via svnmerge from bbryant1-1/+5
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r311612 | bbryant | 2011-03-23 17:45:46 -0400 (Wed, 23 Mar 2011) | 9 lines Fix a possible crash in sip/reqresp_parser.c that is caused by a possible null value. (closes issue #18821) Reported by: cmaj Patches: patch-reqresp_parser_sip_uri_domain_cmp_c_locale-crash-1.8.3-rc2.diff.tx uploaded by cmaj (license 830) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@311613 f38db490-d61c-443f-a65b-d21fe96a405b
2011-03-23Merged revisions 311558 via svnmerge from twilson1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r311558 | twilson | 2011-03-22 19:24:53 -0700 (Tue, 22 Mar 2011) | 5 lines Don't use static declared buf in parse_name_andor_addr This function isn't used anywhere yet, but we definitely don't want to keep the same value for buf between calls to the function. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@311559 f38db490-d61c-443f-a65b-d21fe96a405b
2011-03-08Merged revisions 310088 via svnmerge from jrose1-0/+7
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r310088 | jrose | 2011-03-08 14:19:32 -0600 (Tue, 08 Mar 2011) | 9 lines Returns with an error notice if CHANNEL function of SIP channel is read without arguments. (Closes issue #18653) Reported by: wuwu Patches: diff.patch uploaded by jrose (license 1225) Tested by: jrose ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@310089 f38db490-d61c-443f-a65b-d21fe96a405b
2011-02-03Asterisk media architecture conversion - no more format bitfieldsdvossel2-9/+8
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: http://svn.digium.com/svn/asterisk/trunk@306010 f38db490-d61c-443f-a65b-d21fe96a405b
2011-01-26Merged revisions 304245 via svnmerge from mnicholson3-86/+243
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: http://svn.digium.com/svn/asterisk/trunk@304246 f38db490-d61c-443f-a65b-d21fe96a405b
2011-01-24According to section 19.1.2 of RFC 3261:mnicholson1-3/+3
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: http://svn.digium.com/svn/asterisk/trunk@303509 f38db490-d61c-443f-a65b-d21fe96a405b
2010-12-20Some scheduler API cleanup and improvements.russell2-2/+2
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: http://svn.digium.com/svn/asterisk/trunk@299091 f38db490-d61c-443f-a65b-d21fe96a405b
2010-09-15Merged revisions 286931 via svnmerge from jpeeler1-0/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r286931 | jpeeler | 2010-09-15 14:22:15 -0500 (Wed, 15 Sep 2010) | 16 lines Add parking extension for non-default parking lots. This is a new feature that allows for parking to custom parking lots to be accessed directly, rather than with channel variables or by changing the default parking lot. The extension is set with the parkext option just as the default parking lot is done. Also, the manager action has been updated to optionally allow a specified parking lot. (closes issue #14882) Reported by: vmikhnevych Patches: patch_14882.txt uploaded by mnick (license 874) modified by me Review: https://reviewboard.asterisk.org/r/884/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@286939 f38db490-d61c-443f-a65b-d21fe96a405b
2010-09-03Merged revisions 285006 via svnmerge from dvossel1-0/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r285006 | dvossel | 2010-09-03 17:21:50 -0500 (Fri, 03 Sep 2010) | 9 lines Disables auth_options_request option by default. The auth_options_request option was created to do authentication on OPTIONS request just like INVITES are done. Since it has been noted that some endpoints use OPTIONS requests as a way of qualifying a peer and that a 401 authentication response could result in interoperability issues, this option has been disabled by default. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@285007 f38db490-d61c-443f-a65b-d21fe96a405b
2010-09-03Merged revisions 284950 via svnmerge from dvossel1-0/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r284950 | dvossel | 2010-09-03 12:29:02 -0500 (Fri, 03 Sep 2010) | 14 lines authenticate OPTIONS requests just like we would an INVITE OPTIONS requests should be treated the same as an INVITE This includes authentication. This patch adds the ability for incoming out of dialog OPTION requests to be authenticated before providing a response indicating whether an extension is available or not. The authentication routine works the exact same way as it does for incoming INVITEs. This means that if a peer has 'insecure=invite' in their peer definition, the same will be true for the processing of the OPTIONS request. Review: https://reviewboard.asterisk.org/r/881/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@284951 f38db490-d61c-443f-a65b-d21fe96a405b
2010-08-25Merged revisions 283559 via svnmerge from dvossel1-8/+0
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r283559 | dvossel | 2010-08-25 10:54:11 -0500 (Wed, 25 Aug 2010) | 16 lines Merged revisions 283558 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ........ r283558 | dvossel | 2010-08-25 10:52:54 -0500 (Wed, 25 Aug 2010) | 10 lines Asterisk will not advertise session timers are supported when 'session-timers=refuse' is used. Asterisk now dynamically builds the "Supported" header depending on what is enabled/disabled in sip.conf. Session timers used to always be advertised as being supported even when they were disabled in the configuration. This caused problems with some end points. (issue #17005) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@283560 f38db490-d61c-443f-a65b-d21fe96a405b
2010-08-24Merged revisions 283493 via svnmerge from dvossel1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r283493 | dvossel | 2010-08-24 15:34:03 -0500 (Tue, 24 Aug 2010) | 2 lines Changes the default behavior for sip.conf's pedantic option from "no" to "yes". ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@283494 f38db490-d61c-443f-a65b-d21fe96a405b
2010-08-11Merged revisions 281687 via svnmerge from simon.perreault1-5/+7
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r281687 | simon.perreault | 2010-08-11 09:30:59 -0400 (Wed, 11 Aug 2010) | 9 lines Fix parsing of IPv6 address literals in outboundproxy (closes issue #17757) Reported by: oej Patches: 17757.diff uploaded by sperreault (license 252) sip.conf.diff uploaded by sperreault (license 252) Tested by: oej ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@281688 f38db490-d61c-443f-a65b-d21fe96a405b
2010-08-10Merged revisions 281650 via svnmerge from russell1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r281650 | russell | 2010-08-10 16:47:31 -0500 (Tue, 10 Aug 2010) | 5 lines Change the default value for alwaysauthreject in sip.conf to "yes". (closes issue #17756) Reported by: oej ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@281651 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-28Merged revisions 280269 via svnmerge from jpeeler1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r280269 | jpeeler | 2010-07-28 15:49:26 -0500 (Wed, 28 Jul 2010) | 2 lines Give test category missing leading slash ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@280270 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-26Merged revisions 279568 via svnmerge from dvossel3-0/+156
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r279568 | dvossel | 2010-07-26 14:59:03 -0500 (Mon, 26 Jul 2010) | 21 lines transaction matching using top most Via header This patch modifies the way chan_sip.c does transaction to dialog matching. Asterisk now stores information in the top most Via header of the initial incoming request and compares that against other Requests that have the same call-id. This results in Asterisk being able to detect a forked call in which it has received multiple legs of the fork. I completely stripped out the previous matching code and made the comparisons a little more explicit and easier to understand. My comments in the code should offer all the details involving this patch. This patch also fixes a bug with the usage of the OBJ-MULTIPLE flag to find multiple dialogs with the same call-id. Since the callback function was returning (CMP_MATCH | CMP_STOP) only the first item found was being returned. I fixed this by making a new callback function for finding multiple dialogs that only returns (CMP_MATCH) on a match allowing for multiple items to be returned. Review: https://reviewboard.asterisk.org/r/776/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@279569 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-26Merged revisions 279504 via svnmerge from mmichelson1-0/+10
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r279504 | mmichelson | 2010-07-26 11:04:09 -0500 (Mon, 26 Jul 2010) | 14 lines Allow for systems without locale support to be usable. A recent change to SIP URI comparison code added a locale-specific string comparison to the mix, and certain systems do not support such functions. This fix allows for those systems to still use Asterisk 1.8 (closes issue #17697) Reported by: pprindeville Patches: asterisk-trunk-bugid17697.patch uploaded by pprindeville (license 347) Tested by: mmichelson ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@279533 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-23SIP URI comparison fixes.mmichelson2-1/+506
This initially was created to work around the issue of using a string comparison instead of a binary comparison for IP addresses. It evolved a bit when test cases were created and it was discovered that comparison of URI parameters was not working exactly as it should. sip_uri_cmp() and its helpers have been moved to reqresp_parser.c and a new test has been added. (closes issue #17662) Reported by: oej Review: https://reviewboard.asterisk.org/r/792 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@278980 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-23Allow IPv6 addresses for UDPTL streams.mmichelson1-1/+1
Review: https://reviewboard.asterisk.org/r/795 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@278908 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-19Fix port setting of external address in SIP.mmichelson1-2/+2
There are two changes here: 1. Since the externip setting can now have a port attached to it, calling it "externip" is misleading. The option is now documented and parsed as "externaddr." This also extends to the "matchexterniplocally" setting. It is now documented and parsed as "matchexternaddrlocally." The old names for the options may still be used, but they are no longer used in the sip.conf.sample file. 2. If no port is set for the externaddr, and UDP is the transport to be used, then we will set the port of the externaddr to that of the udpbindaddr. This was how things worked prior to the IPv6 merge, so this is a regression fix. (closes issue #17665) Reported by: mmichelson Patches: 17665.diff#2 uploaded by pprindeville (license 347) Tested by: pprindeville git-svn-id: http://svn.digium.com/svn/asterisk/trunk@277873 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-16Fix up some weird indentation problems in reqresp_parser.cmmichelson1-10/+10
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@277175 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-16Add ability to configure the Max-Forwards header in the dialplan, as well as inoej1-1/+4
sip.conf configuration for the channel and for devices. The Max-Forwards header is used to prevent loops in a SIP network. Each intermediary, like SIP proxys and SBCs, decrement this counter and detects when it reaches zero, at which point the SIP request is nicely killed in a SIP-friendly way. Review: https://reviewboard.asterisk.org/r/778/ Thanks to dvossel for the review and good advice. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@276951 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-13chan_sip: RFC compliant retransmission timeoutdvossel1-1/+3
Retransmission of packets should not be based on how many packets were sent, but instead on a timeout period. Depending on whether or not the packet is for a INVITE or NON-INVITE transaction, the number of packets sent during the retransmission timeout period will be different, so timing out based on the number of packets sent is not accurate. This patch fixes this by removing the retransmit limit and only stopping retransmission after a timeout period is reached. By default this timeout period is 64*(Timer T1) for both INVITE and non-INVITE transactions. For more information on sip timer values refer to RFC3261 Appendix A. Review: https://reviewboard.asterisk.org/r/749/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@276219 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-13Revert early destruction of RTP sessionstwilson1-4/+0
Some code improperly assumes that the sessions are still there, so revert the change until I can find all of them and fix them. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@276206 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-13Destroy RTP fds when we schedule final dialog destructiontwilson1-0/+4
Since we are only keeping the dialog around for retransmissions at this point and there is no possibility that we are still handling RTP, go ahead and destroy the RTP sessions. Keeping them alive for 32 past when they are used is unnecessary and can lead to problems with having too many open file descriptors, etc. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@275998 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-09Kill some startup warnings and errors and make some messages more helpful in ↵tilghman3-11/+11
tracking down the source. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@275105 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-09Fix sip_uri_parse test comparison.mmichelson1-2/+2
Part of the change with the IPv6 changes is to treat a host:port as a single 'domain' entity. This test was not updated to have the correct expectation after calling parse_uri(). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@274984 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-08Add IPv6 to Asterisk.mmichelson6-171/+149
This adds a generic API for accommodating IPv6 and IPv4 addresses within Asterisk. While many files have been updated to make use of the API, chan_sip and the RTP code are the files which actually support IPv6 addresses at the time of this commit. The way has been paved for easier upgrading for other files in the near future, though. Big thanks go to Simon Perrault, Marc Blanchet, and Jean-Philippe Dionne for their hard work on this. (closes issue #17565) Reported by: russell Patches: asteriskv6-test-report.pdf uploaded by russell (license 2) Review: https://reviewboard.asterisk.org/r/743 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@274783 f38db490-d61c-443f-a65b-d21fe96a405b
2010-07-01correct handling of get_destination return valuesdvossel1-0/+9
A failure when calling the get_destination can mean multiple things. If the extension is not found, a 404 error is appropriate, but if the URI scheme is incorrect, a 404 is not approperiate. This patch adds the get_destination_result enum to differentiate between these and other failure types. The only logical difference in this patch is that we now send a "416 Unsupported URI scheme" response instead of a "404" when the scheme is not recognized. This indicates to the initiator of the INVITE to retry the request with a correct URI. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@273427 f38db490-d61c-443f-a65b-d21fe96a405b
2010-06-28rfc compliant sip option parsing + new unit testdvossel3-0/+297
RFC 3261 section 8.2.2.3 states that if any unsupported options are found in the Require header field, a "420 (Bad Extension)" response should be sent with an Unsupported header field containing only the unsupported options. This is not currently being done correctly. Right now, if Asterisk detects any unsupported sip options in a Require header the entire list of options are returned in the Unsupported header even if some of those options are in fact supported. This patch fixes that by building an unsupported options character buffer when parsing the options that can be sent with the 420 response. A unit test verifying this functionality has been created. Some code refactoring was required. Review: https://reviewboard.asterisk.org/r/680/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@272880 f38db490-d61c-443f-a65b-d21fe96a405b
2010-06-22Merged revisions 271689 via svnmerge from mnicholson1-0/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r271689 | mnicholson | 2010-06-22 07:52:27 -0500 (Tue, 22 Jun 2010) | 8 lines Modify chan_sip's packet generation api to automatically calculate the Content-Length. This is done by storing packet content in a buffer until it is actually time to send the packet, at which time the size of the packet is calculated. This change was made to ensure that the Content-Length is always correct. (closes issue #17326) Reported by: kenner Tested by: mnicholson, kenner Review: https://reviewboard.asterisk.org/r/693/ ........ This change also adds an ast_str_copy_string() function (similar to ast_copy_string), that copies one ast_str into another, properly handling embedded nulls. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@271690 f38db490-d61c-443f-a65b-d21fe96a405b
2010-06-21fixes crash when From header URI is missing "sip:"dvossel1-0/+22
(closes issue #17437) Reported by: klaus3000 Patches: sip_crash uploaded by dvossel (license 671) Tested by: klaus3000 git-svn-id: http://svn.digium.com/svn/asterisk/trunk@271553 f38db490-d61c-443f-a65b-d21fe96a405b
2010-06-17fixes some coding guideline issuedvossel1-6/+6
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@271300 f38db490-d61c-443f-a65b-d21fe96a405b
2010-06-17retransmit response to BYE requests until timer J expiresdvossel2-2/+5
According to RFC 3261 section 17.2.2, which describes non-INVITE server transaction, when a dialog enters the Completed state it must destroy the dialog after Timer J (T1*64) fires. For a BYE transaction Asterisk terminates the dialog immediately during sip_hangup() when it should be waiting T1*64 ms. This results in some odd behavior. For instance if Asterisk receives a BYE and transmits a 200ok in response, if the endpoint never receives the 200ok it will retransmit the BYE to which Asterisk responds with a "481 Call leg/transaction does not exist" because the dialog is already gone. To resolve this I made a function called sip_scheddestroy_final(). This differs slightly from sip_schedestroy() in that it enables a flag that will prevent the destruction from ever being rescheduled or canceled afterwards. It also prevents the pvt's needdestroy flag from being set which triggers the destruction of the dialog within the do_monitor thread(). By using this function we are guaranteed destruction will not occur until the scheduled time. This allows Asterisk to respond to any possible retransmits for a dialog after we process the initial BYE request for T1*64 ms. Other changes: I removed two instances where sip_cancel_destroy is used right before calling sip_scheddestroy. sip_scheddestroy always calls sip_cancel_destroy before scheduling the new destruction so it is completely unnecessary. Review: https://reviewboard.asterisk.org/r/694/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@271262 f38db490-d61c-443f-a65b-d21fe96a405b
2010-06-16addition of more parse_uri test casesdvossel1-0/+54
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@271056 f38db490-d61c-443f-a65b-d21fe96a405b
2010-06-08Add SRTP support for Asterisktwilson6-3/+510
After 5 years in mantis and over a year on reviewboard, SRTP support is finally being comitted. This includes generic CHANNEL dialplan functions that work for getting the status of whether a call has secure media or signaling as defined by the underlying channel technology and for setting whether or not a new channel being bridged to a calling channel should have secure signaling or media. See doc/tex/secure-calls.tex for examples. Original patch by mikma, updated for trunk and revised by me. (closes issue #5413) Reported by: mikma Tested by: twilson, notthematrix, hemanshurpatel Review: https://reviewboard.asterisk.org/r/191/ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@268894 f38db490-d61c-443f-a65b-d21fe96a405b