2014-11-20 Asterisk Development Team * Asterisk 11.14.1 Released. * AST-2014-012: Fix error with mixed address family ACLs. Prior to this commit, the address family of the first item in an ACL was used to compare all incoming traffic. This could lead to traffic of other IP address families bypassing ACLs. ASTERISK-24469 #close Reported by Matt Jordan * AST-2014-014: Fix race condition where channels may get stuck in ConfBridge under load. Under load it was possible for the bridging API, and thus ConfBridge, to get channels that may have hung up stuck in it. This is because handling of state transitions for a bridged channel within a bridge was not protected and simply set the new state without regard to the existing state. If the existing state had been hung up this would get overwritten. This change adds locking to protect changing of the state and also takes into consideration the existing state. ASTERISK-24440 #close Reported by: Ben Klang * AST-2014-017 - app_confbridge: permission escalation/ class authorization. Confbridge dialplan function permission escalation via AMI and inappropriate class authorization on the ConfbridgeStartRecord action. The CONFBRIDGE dialplan function when executed from an external protocol (for instance AMI), could result in a privilege escalation. Also, the AMI action “ConfbridgeStartRecord” could also be used to execute arbitrary system commands without first checking for system access. Asterisk now inhibits the CONFBRIDGE function from being executed from an external interface if the live_dangerously option is set to no. Also, the “ConfbridgeStartRecord” AMI action is now only allowed to execute under a user with system level access. ASTERISK-24490 Reported by: Gareth Palmer * AST-2014-018 - func_db: DB Dialplan function permission escalation via AMI. The DB dialplan function when executed from an external protocol (for instance AMI), could result in a privilege escalation. Asterisk now inhibits the DB function from being executed from an external interface if the live_dangerously option is set to no. ASTERISK-24534 Reported by: Gareth Palmer patches: submitted by Gareth Palmer (license 5169) 2014-11-10 Asterisk Development Team * Asterisk 11.14.0 Released. 2014-11-07 Asterisk Development Team * Asterisk 11.14.0-rc2 Released. 2014-11-06 09:05 +0000 [r427381] Corey Farrell * Fix unintential memory retention in stringfields. * Fix missing / unreachable calls to __ast_string_field_release_active. * Reset pool->used to zero when the current pool->active reaches zero. ASTERISK-24307 #close Reported by: Etienne Lessard Tested by: ibercom, Etienne Lessard Review: https://reviewboard.asterisk.org/r/4114/ 2014-11-03 Asterisk Development Team * Asterisk 11.14.0-rc1 Released. 2014-11-03 02:31 +0000 [r427019-427087] Corey Farrell * apps/app_voicemail.c: Fix compile error caused by review 4138 There is no procedure called ast_closeframe, fix code to use ast_closestream. Reported By: Matt Jordan * apps/app_voicemail.c, /, main/app.c: Fix ast_writestream leaks Fix cleanup in __ast_play_and_record where others[x] may be leaked. This was caught where prepend != NULL && outmsg != NULL, once realfile[x] == NULL any further others[x] would be leaked. A cleanup block was also added for prepend != NULL && outmsg == NULL. 11+: Fix leak of ast_writestream recording_fs in app_voicemail:leave_voicemail. ASTERISK-24476 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4138/ ........ Merged revisions 427023 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * funcs/func_jitterbuffer.c, main/abstract_jb.c: func_jitterbuffer: fix frame leaks. Fix code paths where it is possible for frames to leak. Fix uninitialized variable in jb_get_fixed and jb_get_adaptive. ASTERISK-22409 #related Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4128/ 2014-10-31 16:40 +0000 [r426927-426931] Tzafrir Cohen * Makefile, /: Fix syntax from commit r426927 * Makefile, /: install init.d files on GNU/kFreeBSD Review: https://reviewboard.asterisk.org/r/4118/ ........ Merged revisions 426926 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-31 03:25 +0000 [r426860] Matthew Jordan * channels/sip/include/reqresp_parser.h, /, channels/sip/reqresp_parser.c: channels/sip/reqresp_parser: Fix unit tests for r426594 When r426594 was made, it did not take into account a unit test that verified that the function properly populated the unsupported buffer. The function would previously memset the buffer if it detected it had any contents; since this function can now be called iteratively on successive headers, the unit tests would now fail. This patch updates the unit tests to reset the buffer themselves between successive calls, and updates the documentation of the function to note that this is now required. ........ Merged revisions 426858 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-31 03:05 +0000 [r426805-426831] Corey Farrell * /, contrib/Makefile (added), Makefile: REF_DEBUG: Install refcounter.py to $(ASTDATADIR)/scripts This change ensures refcounter.py is installed to a place where it can be found by the Asterisk testsuite if REF_DEBUG is enabled. ASTERISK-24432 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4094/ ........ Merged revisions 426830 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * apps/app_queue.c: app_queue: fix a couple leaks to struct call_queue in set_member_value set_member_value has a couple leaks to references in the variable q found through testsuite tests/queues/set_penalty. Also remove the REF_DEBUG_ONLY_QUEUES compiler declaration, this is no longer possible with the updated REF_DEBUG code. ASTERISK-24466 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4125/ 2014-10-30 09:16 +0000 [r426692] Walter Doekes * /, apps/app_voicemail.c: app_voicemail: Fix unchecked bounds of myArray in IMAP_STORAGE. In update_messages_by_imapuser(), messages were appended to a finite array which resulted in a crash when an IMAP mailbox contained more than 256 entries. This memory is now dynamically increased as needed. Observe that this patch adds a bunch of XXX's to questionable code. See the review (url below) for more information. ASTERISK-24190 #close Reported by: Nick Adams Tested by: Nick Adams Review: https://reviewboard.asterisk.org/r/4126/ ........ Merged revisions 426691 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-30 05:56 +0000 [r426666] Igor Goncharovskiy * channels/chan_unistim.c: Add additional checks for NULL pointers to fix several crashes reported. ASTERISK-24304 #close Reported by: dhanapathy sathya 2014-10-30 01:58 +0000 [r426595-426600] Matthew Jordan * /, channels/chan_sip.c: channels/chan_sip: Add improved support for 4xx error codes This patch adds support for 414, 493, 479, and a stray 400 response in REGISTER response handling. This helps interoperability in a number of scenarios. Review: https://reviewboard.asterisk.org/r/3437 patches: rb3437.patch uploaded by oej (License 5267) ........ Merged revisions 426599 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c, channels/sip/reqresp_parser.c: channels/chan_sip: Support mutltiple Supported and Required headers A SIP request may contain multiple Supported: and Required: headers. Currently, chan_sip only parses the first Supported/Required header it finds. This patch adds support for multiple Supported/Required headers for INVITE requests. Review: https://reviewboard.asterisk.org/r/2478 ASTERISK-21721 #close Reported by: Olle Johansson patches: rb2478.patch uploaded by oej (License 5267) ........ Merged revisions 426594 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-28 20:50 +0000 [r426527] Corey Farrell * res/res_fax.c: res_fax: Resolve T38 gateway frame leak. When frames are translated by a fax gateway they need to be freed. The existing call to ast_frfree was unreachable. This change reorganizes fax_gateway_framehook to ensure that ast_frfree is called when needed. ASTERISK-24457 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4115/ 2014-10-28 18:08 +0000 [r426456] mdavenport : * configs/manager.conf.sample: ASTERISK-23512, correct inaccurate comment in manager.conf.sample 2014-10-28 14:57 +0000 [r426366] Matthew Jordan * main/manager.c: main/manager: Fix typo in AMI event documentation of "OriginateResponse" The parameter name is "Response", not "Resonse". ASTERISK-24430 #close Reported by: Dafi Ni 2014-10-28 14:55 +0000 [r426291-426359] mdavenport : * res/res_agi.c: ASTERISK-24323, fix bug in documentation of AGI STREAM FILE CONTROL * configs/extensions.conf.sample: ASTERISK-24419, fix incorrect syntax for setting language in extensions.conf.sample 2014-10-28 11:17 +0000 [r426255] Corey Farrell * apps/app_queue.c: app_queue: Cleanup ao2_iterator Clean ao2_iterator, resolving reference leak to queue members. ASTERISK-24454 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4111/ 2014-10-27 02:45 +0000 [r426141-426209] Matthew Jordan * res/res_http_websocket.c: res/res_http_websocket: Fix minor nits found by wdoekes on r409681 When Moises committed the fixes for WSS (which was a great patch), wdoekes had a few style nits that were on the review that got missed. This patch resolves what I *think* were all of the ones that were still on the review. Thanks to both moy for the patch, and wdoekes for the reviews. Review: https://reviewboard.asterisk.org/r/3248/ * res/res_srtp.c, /: res/res_srtp: Fix include issue for libsrtp 1.5.0 In libsrtp 1.5.0, crypto_get_random is no longer resolved simply by including srtp.h. Now, one must include crypto_kernel.h as well. As it turns out, this header file has been provided by the library since 2006, so this is a relatively benign change. ASTERISK-24436 #close Reported by: Patrick Laimbock ........ Merged revisions 426140 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-20 14:10 +0000 [r425986] Matthew Jordan * UPGRADE.txt, res/res_xmpp.c, res/res_jabber.c, main/tcptls.c: AST-2014-011: Fix POODLE security issues There are two aspects to the vulnerability: (1) res_jabber/res_xmpp use SSLv3 only. This patch updates the module to use TLSv1+. At this time, it does not refactor res_jabber/res_xmpp to use the TCP/TLS core, which should be done as an improvement at a latter date. (2) The TCP/TLS core, when tlsclientmethod/sslclientmethod is left unspecified, will default to the OpenSSL SSLv23_method. This method allows for all encryption methods, including SSLv2/SSLv3. A MITM can exploit this by forcing a fallback to SSLv3, which leaves the server vulnerable to POODLE. This patch adds WARNINGS if a user uses SSLv2/SSLv3 in their configuration, and explicitly disables SSLv2/SSLv3 if using SSLv23_method. For TLS clients, Asterisk will default to TLSv1+ and WARN if SSLv2 or SSLv3 is explicitly chosen. For TLS servers, Asterisk will no longer support SSLv2 or SSLv3. Much thanks to abelbeck for reporting the vulnerability and providing a patch for the res_jabber/res_xmpp modules. Review: https://reviewboard.asterisk.org/r/4096/ ASTERISK-24425 #close Reported by: abelbeck Tested by: abelbeck, opsmonitor, gtjoseph patches: asterisk-1.8-jabber-tls.patch uploaded by abelbeck (License 5903) asterisk-11-jabber-xmpp-tls.patch uploaded by abelbeck (License 5903) AST-2014-011-1.8.diff uploaded by mjordan (License 6283) AST-2014-011-11.diff uploaded by mjordan (License 6283) 2014-10-17 13:09 +0000 [r425819] Matthew Jordan * /, channels/chan_sip.c: channels/chan_sip: Respect outboundproxy setting when sending qualify requests The outboundproxy setting is currently ignored when sending OPTIONS requests as a result of the qualify setting. This means that if an Asterisk server is unable to send the packet directly to a peer, it is unable to qualify any non-inbound registered peer (e.g. a peer SIP Trunk). This patch grabs the outboundproxy information for a peer when a qualify attempt is being constructed and, if it finds the information, uses it when sending the OPTIONS request. Review: https://reviewboard.asterisk.org/r/3948 ASTERISK-24063 #close Reported by: Damian Ivereigh patches: outboundproxy-dai.patch uploaded by Damian Ivereigh (License 6632) ........ Merged revisions 425818 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-16 06:04 +0000 [r425667] Igor Goncharovskiy * channels/chan_unistim.c: Fix loss of voice after second call drops (on a second line) in case using multiple lines on unistim phones. There is regression was introduced in r391379. Reported by: Rustam Khankishyiev (closes issue ASTERISK-23846) 2014-10-16 01:24 +0000 [r425644] Joshua Colp * res/res_rtp_asterisk.c: res_rtp_asterisk: Fix a bug where ICE state would get reset when it shouldn't. In the case where the ICE negotiation had not yet started current state would get wiped when it shouldn't. This also removes channel binding as in practice this does not work well with other implementations. 2014-10-15 09:02 +0000 [r425548] Alexandr Anikin * addons/chan_ooh323.c, /: chan_ooh323: fix rtptimeout general value checking correct condition to check rtptimeout in [general] config section ASTERISK-24393 #close Reported by: Dmitry Melekhov Tested by: Dmitry Melekhov Patches: ASTERISK-24393.patch ........ Merged revisions 425547 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-14 16:44 +0000 [r425407-425457] Corey Farrell * res/res_fax.c: res_fax: Fix reference leak caused by gateway sessions Fax gateway session objects can be re-used, causing the same gateway session to be added to faxregistry.container more than once. This change causes fax_session_new to remove the reserved session from the container before it's id is changed, ensuring it's possible for the session to be freed. ASTERISK-24392 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4049/ * /, res/res_fax.c: res_fax: Resolve module reference leak caused by reserved sessions Remove reference to module providing reserved session after adding a reference to the final module. This re-reference is done to ensure that module references are correct even if the final session selects a different module than the reserved session. ASTERISK-18923 #close Reported by: Grigoriy Puzankin Review: https://reviewboard.asterisk.org/r/4048/ ........ Merged revisions 425405 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-12 21:08 +0000 [r425360] Joshua Colp * res/res_rtp_asterisk.c: res_rtp_asterisk: Make the ICE transport check case insensitive as some implementations use 'udp'. 2014-10-12 08:13 +0000 [r425287-425297] Walter Doekes * /, channels/chan_sip.c: chan_sip: Fix so asterisk won't send reINVITE after a BYE. After a reINVITE glare situation, Asterisk would re-send the reINVITE even though the call had been hung up in the mean time. This patch unschedules the reinvite when handling the BYE. ASTERISK-22791 #close Reported by: Paolo Compagnini Tested by: Paolo Compagnini Review: https://reviewboard.asterisk.org/r/4056/ (testcase is in review r4055) ........ Merged revisions 425296 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * Makefile, /: build: Relax badshell tilde test to allow for ~ in middle of DESTDIR. The main Makefile has a target test called 'badshell' that tests if DESTDIR does not happen to have an an-expanded tilde (~). This might be the case if you run: make install DESTDIR=~/somewhere/ That test also disallowed valid tildes in directory names. The test is now changed to only trigger on a tilde at the start of the path. ASTERISK-13797 #close Reported by: Tzafrir Cohen Review: https://reviewboard.asterisk.org/r/4064/ ........ Merged revisions 425291 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_calendar_ews.c, /: res_calendar_ews: Relax neon version check to work with 0.30 too. Allow res_calendar_ews to work not only with libneon-0.29 but also with 0.30. ASTERISK-24325 #close Reported by: Tzafrir Cohen Review: https://reviewboard.asterisk.org/r/4068/ ........ Merged revisions 425286 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-10 12:55 +0000 [r425153] Kinsey Moore * /, tests/test_callerid.c, main/callerid.c: CallerID: Fix parsing regression This fixes a regression in callerid parsing introduced when another bug was fixed. This bug occurred when the name was composed entirely of DTMF keys and quoted without a number section (<>). ASTERISK-24406 #close Reported by: Etienne Lessard Tested by: Etienne Lessard Patches: callerid_fix.diff uploaded by Kinsey Moore Review: https://reviewboard.asterisk.org/r/4067/ ........ Merged revisions 425152 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-10 07:25 +0000 [r425069] Walter Doekes * /, channels/chan_sip.c: chan_sip: Fix dialog leak resulting from missing ACK to re-INVITE. If a device re-INVITEs at the same time as the dialog is hung up, and if then the ACK to the re-INVITE never reaches Asterisk, chan_sip would fail to destroy the dialog after a while. This resulted in (most prominently) file handle leaks. (Patch reindented by me.) ASTERISK-20784 #close ASTERISK-15879 #close Reported by: Torrey Searle, Nitesh Bansal Patches: reinvite_ack_timeout.patch uploaded by Torrey Searle (License #5334) patch_asterisk_20784.txt uploaded by Nitesh Bansal (License #6418) Reviewboard: https://reviewboard.asterisk.org/r/4052/ (testcase can be found at r4051) ........ Merged revisions 425068 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-09 21:26 +0000 [r425029] Kevin Harwell * res/res_rtp_asterisk.c: res_rtp_asterisk: Crash if no candidates received for component When starting ice if there is not at least one remote ice candidate with an RTP component asterisk will crash. This is due to an assertion in pjnath as it expects at least one candidate with an RTP component. Added a check to make sure at least one candidate contains an RTP component and at least one candidate has an RTCP component. ASTERISK-24383 #close Review: https://reviewboard.asterisk.org/r/4039/ 2014-10-09 08:06 +0000 [r424878] Walter Doekes * contrib/scripts/safe_asterisk, /: safe_asterisk: Don't automatically exceed MAXFILES value of 2^20. On systems with lots of RAM (e.g. 24GB) /proc/sys/fs/file-max divided by two can exceed the per-process file limit of 2^20. This patch ensures the value is capped. (Patch cleaned up by me.) ASTERISK-24011 #close Reported by: Michael Myles Patches: safe_asterisk-ulimit.diff uploaded by Michael Myles (License #6626) ........ Merged revisions 424875 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-08 18:44 +0000 [r424852] Joshua Colp * res/res_rtp_asterisk.c: res_rtp_asterisk: Allow only UDP ICE candidates. The underlying library, pjnath, that res_rtp_asterisk uses for ICE support does not have support for ICE-TCP. As candidates are passed through directly to it this can cause error messages to occur when it receives something unexpected (such as a TCP candidate). This change merely ignores all non-UDP candidates so they never reach pjnath. ASTERISK-24326 #close Reported by: Joshua Colp 2014-10-07 21:30 +0000 [r424787] Corey Farrell * /, main/astobj2.c: astobj2: Correct REF_DEBUG false leak report When ao2_callback is run with OBJ_MULTIPLE and not OBJ_NODATA it allocates a temporary container in a way that does not record REF_DEBUG log entries. This changes that container to correctly record unref's when the container is freed. ASTERISK-24390 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4047/ ........ Merged revisions 424786 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-10-06 18:36 +0000 [r424690] Matthew Jordan * main/message.c: message: Don't close an AMI connection on SendMessage action error If SendMessage encounters an error (such as incorrect input provided to the action), it will currently return -1. Actions should only return -1 if the connection to the AMI client should be closed. In this case, SendMessage causing the client to disconnect is inappropriate. This patch causes the action to return 0, which simply causes the action to fail. Review: https://reviewboard.asterisk.org/r/4024 ASTERISK-24354 #close Reported by: Peter Katzmann patches: sendMessage.patch uploaded by Peter Katzmann (License 5968) 2014-10-05 00:41 +0000 [r424550-424578] Corey Farrell * main/manager.c: Release AMI connections on shutdown. ASTERISK-24378 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4037/ * channels/chan_sip.c: chan_sip: Clean leak on error path of process_sdp Resolve leak in process_sdp that occurs in 2 error path's where crypto lines are expected but not provided. ASTERISK-24385 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4045/ * channels/chan_motif.c: chan_motif: Release format capabilities and config on module load error ASTERISK-24384 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4043/ 2014-10-01 10:08 +0000 [r424177-424182] Walter Doekes * /, channels/chan_sip.c: chan_sip: Simplify some unref code by removing unlink_peer_from_tables. ASTERISK-22945 #related Reported by: ibercom Patches: asterisk11-chan_sip-simplifies.patch uploaded by ibercom (License #6599) ........ Merged revisions 424181 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c: chan_sip: Remove excess ref of realtime peer before sip_poke_peer. The peer is referenced at the end of sip_poke_peer, it should not get an extra ref before the call to sip_poke_peer. This fixes a memory leak. ASTERISK-22945 #close Reported by: ibercom Tested by: Yuriy Gorlichenko Patches: asterisk11.patch uploaded by ibercom (License #6599) Review: https://reviewboard.asterisk.org/r/4031/ ........ Merged revisions 424176 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-30 11:31 +0000 [r424151] Joshua Colp * res/res_rtp_asterisk.c: res_rtp_asterisk: Ensure that the base and mapped address for candidates is present in SDP. This change fixes an issue where ICE candidates put into the SDP did not contain the 'raddr' and 'rport' information for server reflexive and relay candidates. #SIPit31 2014-09-29 21:21 +0000 [r424117] Walter Doekes * contrib/scripts/autosupport: autosupport: Fix bashism. '==' is bashism (bashspecific, fails when dash is /bin/sh). Anyway, a 'case' works better there. Originally committed in r375059 and r375060 on 2012-10-16 21:13:08. ASTERISK-20567 #close Reported by: Tzafrir Cohen 2014-09-26 15:18 +0000 [r423983] Richard Mudgett * /, res/res_fax.c: res_fax: Fix out of bounds error in update_modem_bits(). ASTERISK-24357 #close Reported by: Jeremy Laine Patches: res_fax_bounds.patch (license #6561) patch uploaded by Jeremy Laine Modified patch to not use magic numbers. ........ Merged revisions 423979 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-26 08:23 +0000 [r423916] Walter Doekes * /, doc/asterisk.8: docs: Escape unescaped minus sign in asterisk.8 manpage. ASTERISK-23768 #close Reported by: Jeremy Lainé Patches: escape_manpage_hyphen.patch uploaded by Jeremy Lainé (License #6561) ........ Merged revisions 423915 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-24 08:49 +0000 [r423801] Walter Doekes * /, channels/chan_sip.c: chan_sip: Unref outbound proxy structure on dialog/pvt destruction. Make sure outbound proxy refs are always unreffed on dialog destruction. Review: https://reviewboard.asterisk.org/r/4016/ ........ Merged revisions 423800 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-22 19:46 +0000 [r423658-423721] Walter Doekes * /, channels/chan_sip.c: chan_sip: On INVITE retransmission, don't add an extra 503 response. INVITE arrives to asterisk, asterisk responds Busy(). If the INVITE is retransmitted, asterisk would generate a 503 in addition to the 486. Thanks Torrey Searle for providing a working regression test. ASTERISK-24335 #close Review: https://reviewboard.asterisk.org/r/4003/ Patches: retrans_486_invite.patch uploaded by Torrey Searle (License #5334) ........ Merged revisions 423720 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, main/editline/readline.c: cli.c: Fix tab completion "module load" when MALLOC_DEBUG is enabled. r421600 conflicted with r155763. ASTERISK-24348 #close ........ Merged revisions 423657 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-24 Asterisk Development Team * Asterisk 11.13.0 Released. 2014-09-19 Asterisk Development Team * Asterisk 11.13.0-rc1 Released. 2014-09-18 16:30 +0000 [r423400] Richard Mudgett * /, main/astobj2.c, contrib/scripts/refcounter.py: astobj2.c/refcounter.py: Fix to deal with invalid object refs. * Make astob2 REF_DEBUG output an invalid object line when an invalid ao2 object ref/unref is attempted. This is similar to the constructor/destructor lines. * Fixed refcounter.py to handle skewed objects that have constructor/destructor states. * Made refcounter.py highlight the invalid ao2 object refs by putting them in their own section of the processed output file. * Made refcounter.py highlight unreffing an object by more than one that results in a negative ref count and the object being destroyed. The abnormally destroyed object is reported in the invalid and finalized object sections of the output. Review: https://reviewboard.asterisk.org/r/3971/ ........ Merged revisions 423349 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-18 16:19 +0000 [r423360] Mark Michelson * res/res_fax_spandsp.c: res_fax_spandsp: Properly handle cleanup before starting FAXes. If faxing fails at a very early stage, then it is possible for us to pass a NULL t30 state pointer to spandsp, which spandsp is none too pleased with. This patch ensures that we pass the correct pointer to spandsp in the situation where we have not yet set our local t30 state pointer. ASTERISK-24301 #close Reported by Matt Jordan Patches: ASTERISK-24301-fax.diff Uploaded by Mark Michelson (License #5049) 2014-09-18 14:42 +0000 [r423277] George Joseph * main/config.c, main/manager.c, /, include/asterisk/config.h: config: bug: Fix SEGV in ast_category_insert when matching category isn't found If you call ast_category_insert with a match category that doesn't exist, the list traverse runs out of 'next' categories and you get a SEGV. This patch adds check for the end-of-list condition and changes the signature to return an int for success/failure indication instead of a void. The only consumer of this function is manager and it was also changed to use the return value. Tested by: George Joseph Review: https://reviewboard.asterisk.org/r/3993/ ........ Merged revisions 423276 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-17 18:02 +0000 [r423150-423253] Joshua Colp * res/res_rtp_asterisk.c: res_rtp_asterisk: Ensure that the thread terminating pj stuff is registered. * res/res_rtp_asterisk.c: res_rtp_asterisk: Fix 100% CPU usage due to timer heap thread spinning. Side note: I need a vacation. * res/res_rtp_asterisk.c: res_rtp_asterisk: Fix building when pjproject is not used. * res/res_rtp_asterisk.c: res_rtp_asterisk: Fix a myriad of TURN client issues. 1. The number of file descriptors an ioqueue instance can handle is fixed, so we now spawn the required number to handle the load. 2. Our transport identifiers were exceeding the range supported by pjnath. 3. The TURN client did not set up client binding causing needless bandwidth usage. 4. The code no longer updates address information on each packet. 5. STUN traffic was getting looped back to Asterisk instead of going through the TURN server. 6. Synchronization now ensures things are completely setup or destroyed. 7. Logging now reflects the target the TURN server is sending to/receiving from on our behalf. ASTERISK-23577 #close Reported by: Jay Jideliov ASTERISK-23634 #close Reported by: Roman Skvirsky Review: https://reviewboard.asterisk.org/r/3982/ 2014-09-14 15:49 +0000 [r423067] Walter Doekes * configs/sip.conf.sample, /: chan_sip: Clarify that sipdebug=yes cannot be undone by the CLI. Document it in sip.conf. ASTERISK-24249 #close Reported by: Avinash Mohod Review: https://reviewboard.asterisk.org/r/3926/ ........ Merged revisions 423066 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-12 18:18 +0000 [r423010] Kinsey Moore * main/channel.c, /: Bridging: Fix bouncing native bridge This fixes a situation in Asterisk 1.8 and 11 where ast_channel_bridge could cause a bouncing native bridge. In the case of the dial_LS_options test, this was a remote RTP bridge which caused the audio path to continually cycle between Asterisk and the remote endpoints generating a large number of SIP messages and delaying the test long enough to cause it to fail (checking timing was part of the test). The root cause was that the code to decide whether to use native bridging was expecting a time-remaining value of 0 to be the default instead of the actual default value of -1. A value of 0 or negative numbers could also be generated by preceding code in some circumstances. Both issues are addressed in this patch. ASTERISK-24211 #close Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/3987/ ........ Merged revisions 423006 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-10 16:01 +0000 [r422903] George Joseph * /, main/config.c: config: bug: fix truncation of included config files on permissions error ast_config_text_file_save() currently truncates include files as they are processed. If a subsequent include file or the main config file has a permissions error that prevents writing, earlier include files are left truncated resulting in a frantic search for backups. This patch causes ast_config_text_file_save to check for write access on all files before it truncates any of them. Will be applied 1.8 > trunk. Tested by: George Joseph Review: https://reviewboard.asterisk.org/r/3986/ ........ Merged revisions 422900 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-07 00:08 +0000 [r422790] Rusty Newton * sounds/sounds.xml, sounds/Makefile, /: Sounds/BuildSystem: Modifications to include new releases and Japanese language. Modifying Makefile and sounds.xml to include new core 1.4.26 and extra 1.4.15 sound prompt releases, plus the new Japanese core sound prompts contributed by QLOOG. ASTERISK-23324 Reported by: Kevin McCoy Tested by: Rusty Newton ........ Merged revisions 422789 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-09-04 20:39 +0000 [r422625] Jonathan Rose * main/manager.c, /: Manager: Require read permission for SYSTEM in order to send FullyBooted Review: https://reviewboard.asterisk.org/r/3969/ ........ Merged revisions 422584 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-30 17:22 +0000 [r422440] George Joseph * main/manager.c, /: manager: Make WaitEvent action respect eventfilters A WaitEvent issued via an http session isn't respecting eventfilters defined for the user. I just added a match_filter to the predicate that controls astman_append. Tested by: George Joseph Review: https://reviewboard.asterisk.org/r/3958/ ........ Merged revisions 422439 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-29 19:39 +0000 [r422294-422377] Matthew Jordan * doc/smsq.8 (added), /: doc: Add a manpage for the smsq utility This patch adds a manpage for the smsq utility. Note that this is one of the patches the Debian distro applies for the Asterisk project, as per ASTERISK-24191. Review: https://reviewboard.asterisk.org/r/3895/ ASTERISK-24171 #close Reported by: Jeremy Laine patches: smsq.8 uploaded by Jeremy Laine (License 6561) ........ Merged revisions 422376 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * doc/aelparse.8 (added), /: doc: Add a manpage for the aelparse utility This patch adds a manpage for the aelparse utility. Note that this is one of the patches the Debian distro applies for the Asterisk project, as per ASTERISK-24191. Review: https://reviewboard.asterisk.org/r/3896/ ASTERISK-24171 #close Reported by: Jeremy Laine patches: aelparse.8 uploaded by Jeremy Laine (License 6561) ........ Merged revisions 422371 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, LICENSE: LICENSE: Clarify language in Asterisk's LICENSE to allow for linking to UniMRCP The UniMRCP project distributes Asterisk modules that integrate Asterisk with UniMRCP, and other Asterisk users use the UniMRCP library as well. Unfortunately, the UniMRCP license is Apache 2.0, which per the Free Software Foundation, is not a compatible license with the GPLv2. "Please note that this license is not compatible with GPL version 2, because it has some requirements that are not in that GPL version. These include certain patent termination and indemnification provisions. The patent termination provision is a good thing, which is why we recommend the Apache 2.0 license for substantial programs over other lax permissive licenses." On the other hand, UniMRCP is a great project and we'd like to let people use it with Asterisk. This patch updates the LICENSE text to allow users to link Asterisk with UniMRCP and distribute the resulting binaries. ........ Merged revisions 422293 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-28 20:26 +0000 [r422274] Michael L. Young * channels/chan_iax2.c: chan_iax2: Fix Dynamic IAX2 Registrations After Temporary DNS Failure The reporter on the issue found some issues when upgrading from version 10 to 11 on 55 hosts. Two situations that can occur with dynamic registrations. 1. With dnsmgr disabled, if the host is not resolvable we are not trying to resolve the host again when it is time to attempt to register again. This results in never registering to the host. 2. With dnsmgr enabled, when the host is temporarily not resolvable the address is set to 0.0.0.0:0 and then when the host is resolvable the port is not being restored and stays set to 0. This patch resolves these two issues by: * Storing the hostname so that it can be used for resolving with DNS. * Resolve the hostname on the next scheduled attempt to register. * Storing the port used to reach the host so that when the hostname is resolvable again, we can set the port again if the port is still unset after looking up the host. ASTERISK-23767 #close Reported by: David Herselman Tested by: David Herselman, Michael L. Young Patches: asterisk-23767-dns_reg_retry_and_set_port_11_v3.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/3856/ 2014-08-27 15:01 +0000 [r422113] Kinsey Moore * /, channels/chan_sip.c, tests/test_callerid.c (added), tests/test_utils.c, main/callerid.c, main/utils.c, include/asterisk/utils.h: CallerID: Fix parsing of malformed callerid This allows the callerid parsing function to handle malformed input strings and strings containing escaped and unescaped double quotes. This also adds a unittest to cover many of the cases where the parsing algorithm previously failed. Review: https://reviewboard.asterisk.org/r/3923/ ........ Merged revisions 422112 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-25 16:07 +0000 [r421977] Richard Mudgett * /, res/res_musiconhold.c: res_musiconhold: Fix MOH restarting where it left off from the last hold. Restore code removed by https://reviewboard.asterisk.org/r/3536/ that introduced a regression that prevents MOH from restarting were it left off the last time. ASTERISK-24019 #close Reported by: Jason Richards Patches: jira_asterisk_24019_v1.8.patch (license #5621) patch uploaded by rmudgett Review: https://reviewboard.asterisk.org/r/3928/ ........ Merged revisions 421976 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-24 17:19 +0000 [r421909] Joshua Colp * channels/chan_sip.c: chan_sip: Use the server reflexive ICE candidate RTCP port as provided. This code originally worked around an issue within res_rtp_asterisk itself. The wrong socket was being used for the STUN check for RTCP, causing the port to be the same as RTP. This was subsequently fixed and the RTCP port provided for the ICE candidate is correct and does not need to be incremented. ASTERISK-23997 #close Reported by: Badalian Vyacheslav Patches: plus1.diff submitted by Badalian Vyacheslav (license 5249) 2014-08-21 22:03 +0000 [r421800] Richard Mudgett * /, res/res_musiconhold.c: res_musiconhold.c: Remove obsolete REF_DEBUG code. Remove unneeded code that writes to the wrong file location in an obsolete format. ........ Merged revisions 421799 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-21 21:00 +0000 [r421777] Jonathan Rose * res/res_musiconhold.c, /: res_musiconhold: Fix reference leaks caused when reloading with REF_DEBUG set Due to a faulty function for debugging reference decrementing, it was possible to reduce the refcount on the wrong object if two moh classes of the same name were in the moh class container. (closes issue ASTERISK-22252) Reported by: Walter Doekes Patches: 18_moh_debug_ref_patch.diff Uploaded by Jonathan Rose (license 6182) ........ Merged revisions 398937 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-21 17:32 +0000 [r421718] Matthew Jordan * /, channels/chan_sip.c: chan_sip: Don't use port derived from fromdomain if it isn't set If a user does not provide a port in the fromdomain setting, chan_sip will set the fromdomainport to STANDARD_SIP_PORT (5060). The fromdomainport value will then get used unilaterally in certain places. This causes issues with TLS, where the default port is expected to be 5061. This patch modifies chan_sip such that fromdomainport is only used if it is not the standard SIP port; otherwise, the port from the SIP pvt's recorded self IP address is used. Review: https://reviewboard.asterisk.org/r/3893/ ASTERISK-24178 #close Reported by: Elazar Broad patches: fromdomainport_fix.diff uploaded by Elazar Broad (License 5835) ........ Merged revisions 421717 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-20 22:17 +0000 [r421602] Richard Mudgett * /, main/cli.c: cli.c: Fix tab completion of "module load" when MALLOC_DEBUG is enabled. filename_completion_function() returns memory that was not allocated by the MALLOC_DEBUG allocation tracker so the memory must be freed by ast_std_free(). ........ Merged revisions 421600 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-19 19:41 +0000 [r421443] Kinsey Moore * main/manager.c, /: AMI Docs: Fix Status channel parameter optionality ........ Merged revisions 421442 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-18 20:16 +0000 [r421328] George Joseph * funcs/func_config.c, /: func_config: Change 'Not Found' message from ERROR to DEBUG When you call the CONFIG dialplan function with the name of a variable that doesn't exist in the target context you get an ERROR. This does nothing but clutter up the logs with messages that may be perfectly acceptable. Just because a variable wasn't in the context doesn't mean it's an error. Maybei t's optional or just needs to be defaulted or ignored. This patch changes the log level from ERROR to DEBUG. If a dialplan developer wants to debug their dialplan they still canby setting the console debug level as needed. Tested by: George Joseph Review: https://reviewboard.asterisk.org/r/3919/ ........ Merged revisions 421327 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-17 23:07 +0000 [r421228-421233] Matthew Jordan * apps/app_dial.c, /: apps/app_dial: Fix Dial 'z' option The 'z' option is supposed to disable the dial timeout in the case of a call forward. Unfortunately, the wrong timeout timer was passed to the do_forward function, resulting in the option not working. ASTERISK-24225 #close Reported by: dimitripietro Tested by: dimitripietro patches: jira_asterisk_24225_v1.8.patch uploaded by rmudgett (License 5621) jira_asterisk_24225_v11.patch uploaded by rmudgett (License 5621) ........ Merged revisions 421232 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, configure, configure.ac: configure: Undefine FORTIFY_SOURCE prior to defining it for patched gcc Some distributions of Linux patch gcc to define FORTIFY_SOURCE when gcc is executed with optimization. This "help" unfortunately results in re-definition warnings when FORTIFY_SOURCE is later defined in Asterisk's build system. This patch undefines FORTIFY_SOURCE prior to defining it to prevent this warning. Review: https://reviewboard.asterisk.org/r/3912/ ASTERISK-24032 #close Reported by: Kilburn Tested by: Kilburn, wdoekes patches: 1.8.diff uploaded by cloos (License 5956) 10.diff uploaded by cloos (License 5956) 11.diff uploaded by cloos (License 5956) 12.diff uploaded by cloos (License 5956) 13.diff uploaded by cloos (License 5956) ........ Merged revisions 421227 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-15 15:36 +0000 [r421060-421164] Matthew Jordan * apps/app_voicemail.c, main/app.c: app_voicemail/app: Remove test events that were duplicated by r421059 Moving the test event raised when a file is played back (which occurred in r421059) broke the ever loving snot out of the voicemail tests. This caused duplicate test events to get raised, as app_voicemail and main/app were raising events prior to call ast_streamfile. The voicemail tests did not enjoy getting multiple events. Since raising the playback event in ast_streamfile is far more useful to the vast majority of tests, this patch keeps the call there and simply removes the extraneous calls that duplicated the event. ........ Merged revisions 421125 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, main/file.c, main/app.c: main/file: Move test event to emit PLAYBACK event more consistently This is being done in advance of the test for ASTERISK-23953 ........ Merged revisions 421059 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-13 07:47 +0000 [r420897] Walter Doekes * main/logger.c: logger: Don't store verbose-magic in the log files. In r399267, the verbose2magic stuff was edited. This time it results in magic characters in the log files for multiline messages. In trunk (and 13) this was fixed by the "stripping" of those characters from multiline messages (in r414798). This is a backport of that fix to 11. That fix is altered to actually strip the characters and not replace them with blanks. Review: https://reviewboard.asterisk.org/r/3901/ Review: https://reviewboard.asterisk.org/r/3902/ 2014-08-19 Asterisk Development Team * Asterisk 11.12.0 Released. 2014-08-11 Asterisk Development Team * Asterisk 11.12.0-rc1 Released. 2014-08-11 10:36 +0000 [r420655-420715] Walter Doekes * /, main/utils.c: general: Fix memory Corruption in __ast_string_field_ptr_build_va. If the space left in a stringfield is between 0 and (alignof(ast_string_field_allocation)-1) adding new data would cause memory corruption, because we would assume enough space (unsigned underrun). Thanks Arnd Schmitter for reporting and finding out the cause! ASTERISK-23508 #close Reported by: Arnd Schmitter Tested by: Arnd Schmitter, JoshE Review: https://reviewboard.asterisk.org/r/3898/ ........ Merged revisions 420680 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/tcptls.c, /: tcptls: Avoid compiler warning on non-dev-mode. ........ Merged revisions 420654 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-07 21:37 +0000 [r420435] Richard Mudgett * /, channels/chan_sip.c: chan_sip: Replace sip_tls_read() and resolve the large SDP poll issue. Replace sip_tls_read() and sip_tcp_read() with a single function and resolve the poll/wait issue with large SDP payloads. ASTERISK-18345 #close Reported by: Stephane Chazelas Patches: tcptls_pollv4.diff (license #5835) patch uploaded by Elazar Broad Review: https://reviewboard.asterisk.org/r/3882/ ........ Merged revisions 420434 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-06 16:08 +0000 [r420147] George Joseph * pbx/pbx_lua.c, main/pbx.c, /: pbx_lua: fix regression with global sym export and context clash by pbx_config. ASTERISK-23818 (lua contexts being overwritten by contexts of the same name in pbx_config) surfaced because pbx_lua, having the AST_MODFLAG_GLOBAL_SYMBOLS set, was always force loaded before pbx_config. Since I couldn't find any reason for pbx_lua to export it's symbols to the rest of Asterisk, I simply changed the flag to AST_MODFLAG_DEFAULT. Problem solved. What I didn't realize was that the symbols need to be exported not because Asterisk needs them but because any external Lua modules like luasql.mysql need the base Lua language APIs exported (ASTERISK-17279). Back to ASTERISK-23818... It looks like there's an issue in pbx.c where context_merge was only merging includes, switches and ignore patterns if the context was already existing AND has extensions, or if the context was brand new. If pbx_lua is loaded before pbx_config, the context will exist BUT pbx_lua, being implemented as a switch, will never place extensions in it, just the switch statement. The result is that when pbx_config loads, it never merges the switch statement created by pbx_lua into the final context. This patch sets pbx_lua's modflag back to AST_MODFLAG_GLOBAL_SYMBOLS and adds an "else if" in context_merge that catches the case where an existing context has includes, switchs or ingore patterns but no actual extensions. ASTERISK-23818 #close Reported by: Dennis Guse Reported by: Timo Teräs Tested by: George Joseph Review: https://reviewboard.asterisk.org/r/3891/ ........ Merged revisions 420146 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-08-05 18:23 +0000 [r420054] Richard Mudgett * main/format.c: format.c: Add reason comments for the format_list ordering. 2014-08-04 19:44 +0000 [r419943] Rusty Newton * main/manager.c, /: Manager - Improve documentation for manager commands Getvar and Setvar. The documentation for these commands did not make it clear that they could accept expressions and functions. Modified to make this clear, but tried not to be overly explicit. ASTERISK-21178 #close Reported by: Rusty Newton Tested by: Rusty Newton Review: https://reviewboard.asterisk.org/r/3854 ........ Merged revisions 419942 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-28 18:34 +0000 [r419685] Richard Mudgett * funcs/func_jitterbuffer.c, apps/app_queue.c, apps/app_speech_utils.c, /, funcs/func_frame_trace.c: datastores: Audit ast_channel_datastore_remove usage. Audit of v1.8 usage of ast_channel_datastore_remove() for datastore memory leaks. * Fixed leaks in app_speech_utils and func_frame_trace. * Fixed app_speech_utils not locking the channel when accessing the channel datastore list. Review: https://reviewboard.asterisk.org/r/3859/ Audit of v11 usage of ast_channel_datastore_remove() for datastore memory leaks. * Fixed leak in func_jitterbuffer. Review: https://reviewboard.asterisk.org/r/3860/ ........ Merged revisions 419684 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-25 23:13 +0000 [r419631] Richard Mudgett * main/features.c, /: features.c: Allow appliationmap to use Gosub. Using DYNAMIC_FEATURES with a Gosub application as the mapped application does not work. It does not work because Gosub just pushes the current dialplan context, exten, and priority onto a stack and sets the specified Gosub location. Gosub does not have a dialplan execution loop to run dialplan like Macro. * Made the DYNAMIC_FEATURES application mapping feature call ast_app_exec_macro() and ast_app_exec_sub() for the Macro and Gosub applications respectively. * Backported ast_app_exec_macro() and ast_app_exec_sub() from v11 to execute dialplan routines from the DYNAMIC_FEATURES application mapping feature. NOTE: This issue does not affect v12+ because it already does what this patch implements. AST-1391 #close Reported by: Guenther Kelleter Review: https://reviewboard.asterisk.org/r/3844/ ........ Merged revisions 419630 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-24 17:56 +0000 [r419441] Corey Farrell * /, channels/chan_sip.c: chan_sip: sip_subscribe_mwi_destroy should not call sip_destroy sip_subscribe_mwi_destroy calls sip_destroy on the reference counted mwi->call. This results in the fields of mwi->call being freed, but mwi->call itself it leaked. If other code is still using mwi->call it can cause problems. This change uses dialog_unref instead, to balance the ref provided by sip_alloc(). ASTERISK-24087 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/3834/ ........ Merged revisions 419440 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-24 16:49 +0000 [r419375] Jason Parker * addons/chan_ooh323.c, /: Don't cause Asterisk to exit if ooh323.conf not found. (closes issue ASTERISK-23814) ........ Merged revisions 419374 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-23 13:21 +0000 [r419284] Scott Griepentrog * apps/app_voicemail.c: app_voicemail: use a consistent generator string When updating voicemail.conf when a user changes their pin, change the generator string to be the same as the module name when reading so that the same config_hook will be called. Review: https://reviewboard.asterisk.org/r/3837/ 2014-07-22 14:00 +0000 [r419162] Kinsey Moore * tests/test_voicemail_api.c, tests/test_aoc.c, tests/test_astobj2.c, tests/test_config.c, addons/ooh323c/src/printHandler.c, addons/ooh323c/src/ooq931.c, addons/chan_ooh323.c, tests/test_astobj2_thrash.c, /, apps/app_meetme.c, tests/test_abstract_jb.c, tests/test_logger.c, tests/test_event.c, tests/test_format_api.c, tests/test_hashtab_thrash.c, res/res_jabber.c: Fix more dev-mode build issues ........ Merged revisions 419129 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-15 22:05 +0000 [r418713] Matthew Jordan * main/manager.c: manager: Return ActionID on nominal responses to PresenceState action When the PresenceState action is executed, the nominal path fails to include the ActionID in the successful response. This patch adds a call to astman_start_ack, which guarantees that an ActionID (if provided) will be sent back to the AMI client. Review: https://reviewboard.asterisk.org/r/3776/ ASTERISK-23985 #close 2014-07-15 17:32 +0000 [r418649] Jonathan Rose * funcs/func_uri.c, /: func_uri: URIENCODE/URIDECODE - allow empty strings as argument Previously these two dialplan functions would issue warnings and return failure when an empty string is used as the argument. Now they will not issue a warning and will successfully return an empty string. ASTERISK-23911 #close Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/3745/ ........ Merged revisions 418641 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-13 21:51 +0000 [r418465-418505] Corey Farrell * /, main/astobj2.c, contrib/scripts/refcounter.py: astobj2: work around REF_DEBUG race which causes out of order log entries * Update refcounter.py to use delta's to track the current reference count. * Use result from internal_ao2_ref to write old_refcount to refs_log. Review: https://reviewboard.asterisk.org/r/3756/ ........ Merged revisions 418504 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * apps/app_skel.c: Fix minor reference leaks in app_skel and TEST_FRAMEWORK * Cleanup games object in app_skel. * Cleanup stasis subscription to TEST_FRAMEWORK in manager.c (12+). Review: https://reviewboard.asterisk.org/r/3757/ 2014-07-11 14:23 +0000 [r418366] Scott Griepentrog * main/config.c: config: inform config hook of change when writing file When updated configuration is written back to the conf file - for example when a user changes their voicemail pin, make sure that any config hook that wants to know of changes is informed. Review: https://reviewboard.asterisk.org/r/3708/ 2014-07-10 15:35 +0000 [r418323] Matthew Jordan * include/asterisk/xmpp.h: include/asterisk/xmpp.h: Convert indentation to tabs This is a whitespace only change. 2014-07-10 01:42 +0000 [r418262] Richard Mudgett * /, channels/sig_pri.c: chan_dahdi/sig_pri: Fix type mismatch in the idledial feature's channel creation. Square pegs in round holes don't work very well. ........ Merged revisions 418261 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-10 Asterisk Development Team * Asterisk 11.11.0 Released. 2014-07-08 Asterisk Development Team * Asterisk 11.11.0-rc1 Released. 2014-07-03 21:48 +0000 [r417957] Richard Mudgett * channels/sig_pri.h, channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, /, UPGRADE.txt, channels/sig_pri.c: chan_dahdi: Add inband_on_setup_ack compatibility option. The new inband_on_setup_ack option causes Asterisk to assume inband audio may be present when a SETUP_ACKNOWLEDGE message is received. Q.931 Section 5.1.3 says that in scenarios with overlap dialing, when a dialtone is sent from the network side, progress indicator 8 "Inband info now available" MAY be sent to the CPE if no digits were received with the SETUP. It is thus implied that the ie is mandatory if digits came with the SETUP and dialtone is needed. This option should be enabled, when the network sends dialtone and you want to hear it, but the network doesn't send the progress indicator when needed. NOTE: For Q.SIG setups this option should be enabled when outgoing overlap dialing is also enabled because Q.SIG does not send the progress indicator with the SETUP ACK. The commit -r413714 (AST-1338) which causes this issue was dealing with a SIP-to-ISDN interoperability issue. This commit is a merge of the two patches indicated below. ASTERISK-23897 #close Reported by: Pavel Troller Patches: pri-4.diff (license #6302) patch uploaded by Pavel Troller jira_asterisk_23897_v11.patch (license #5621) patch uploaded by rmudgett Review: https://reviewboard.asterisk.org/r/3633/ ........ Merged revisions 417956 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-07-03 11:24 +0000 [r417798] Matthew Jordan * /, main/utils.c: main/untils: Prevent potential infinite loop in ast_careful_fwrite A loop in ast_careful_fwrite exists that will continually attempt to write to a file stream, even in the presence of EAGAIN/EINTR errors. However, if a connection that uses ast_careful_fwrite closes suddenly, ast_careful_fwrite's call to fflush may return EAGAIN/EINTER along with EOF. A subsequent call to fflush will return EOF but not clear errno, resulting in an infinite loop. This patch clears errno after it is detected and handled the loop, such that any subsequent call to fflush will not get erroneously stuck. Review: https://reviewboard.asterisk.org/r/3704 #ASTERISK-23984 #close Reported by: Steve Davies patches: fflush_loop_fix uploaded by one47 (License 5012) ........ Merged revisions 417797 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-30 19:42 +0000 [r417677] Joshua Colp * channels/sip/include/sip.h, res/res_rtp_asterisk.c, main/rtp_engine.c, channels/chan_sip.c, UPGRADE.txt, configs/sip.conf.sample, include/asterisk/rtp_engine.h: res_rtp_asterisk: Add SHA-256 support for DTLS and perform DTLS negotiation on RTCP. This change fixes up DTLS support in res_rtp_asterisk so it can accept and provide a SHA-256 fingerprint, so it occurs on RTCP, and so it occurs after ICE negotiation completes. Configuration options to chan_sip have also been added to allow behavior to be tweaked (such as forcing the AVP type media transports in SDP). ASTERISK-22961 #close Reported by: Jay Jideliov Review: https://reviewboard.asterisk.org/r/3679/ 2014-06-30 03:23 +0000 [r417588] Matthew Jordan * /, channels/chan_sip.c: chan_sip: be more tolerant of whitespace between attributes in SDP fmtp line This patch is essentially a backport of a small portion of r397526 from ASTERISK-21981. In that patch, pass through support and format attribute negotiation was added for Opus. Part of that included being more tolerant to whitespace in the fmtp line of an SDP; that part of the patch is being applied here. As the author of the backport pointed out, in SDP, the fmtp line is allowed to include whitespace between attributes. RFC 3267 chapter 8.3 (from 2001) includes an example for this. This was not removed in the updated RFC 4867 in 2007. Review: https://reviewboard.asterisk.org/r/3658 ASTERISK-23916 #close Reported by: Alexander Traud patches: sdpFMTPspace_Asterisk11.patch uploaded by Alexander Traud (License 6520) ........ Merged revisions 417587 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-27 19:26 +0000 [r417481-417505] Corey Farrell * /, main/astobj2.c: Ensure REF_DEBUG records entrys for attempts to ao2_ref an invalid object This change ensures that __ao2_ref_debug writes to ref_log when given a non-NULL pointer to an invalid ao2 object. This is to ensure that we record any attempt manipulate references of already freed objects. ASTERISK-23948 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/3677/ ........ Merged revisions 417500 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, contrib/scripts/refcounter.py: refcounter.py: prevent use of excessive RAM with large refs logs When processing a 212MB refs file, refcounter.py used over 3GB of RAM. This change greatly reduces memory usage in two ways: * Saving object history in whole lines instead of separated values. * Not saving normal/skewed/leaked object lists unless they are requested. ASTERISK-23921 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/3668/ ........ Merged revisions 417480 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-26 18:25 +0000 [r417310-417419] Matthew Jordan * res/res_http_websocket.exports.in: res_http_websocket: Export symbol for ast_websocket_set_timeout Thanks to Sean Bright for pointing out that this was missed in #asterisk-dev. * main/udptl.c, /: udptl: Correct FEC to not consider negative sequence numbers as missing When using FEC, with span=3 and entries=4 Asterisk will attempt to repair the packet with sequence number 5, as it will see that packet -4 is missing. The result is Asterisk sending garbage packets that can kill a fax. This patch adds a check to see if the sequence number is valid before checking if the packet is missing. Review: https://reviewboard.asterisk.org/r/3657/ #ASTERISK-23908 #close Reported by: Torrey Searle patches: udptl_fec.patch uploaded by Torrey Searle (License 5334) ........ Merged revisions 417318 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * UPGRADE.txt, configs/sip.conf.sample, res/res_http_websocket.c, channels/sip/include/sip.h, channels/chan_sip.c, include/asterisk/http_websocket.h: res_http_websocket: Close websocket correctly and use careful fwrite When a client takes a long time to process information received from Asterisk, a write operation using fwrite may fail to write all information. This causes the underlying file stream to be in an unknown state, such that the socket must be disconnected. Unfortunately, there are two problems with this in Asterisk's existing websocket code: 1. Periodically, during the read loop, Asterisk must write to the connected websocket to respond to pings. As such, Asterisk maintains a reference to the session during the loop. When ast_http_websocket_write fails, it may cause the session to decrement its ref count, but this in and of itself does not break the read loop. The read loop's write, on the other hand, does not break the loop if it fails. This causes the socket to get in a 'stuck' state, preventing the client from reconnecting to the server. 2. More importantly, however, is that the fwrite in ast_http_websocket_write fails with a large volume of data when the client takes awhile to process the information. When it does fail, it fails writing only a portion of the bytes. With some debugging, it was shown that this was failing in a similar fashion to ASTERISK-12767. Switching this over to ast_careful_fwrite with a long enough timeout solved the problem. ASTERISK-23917 #close Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/3624/ 2014-06-26 10:04 +0000 [r417249] Corey Farrell * /, channels/chan_sip.c: chan_sip: Fix handling of "From" headers longer than 256 characters From headers were processed using a 256 character buffer on the stack. This change replaces that with a heap allocation by ast_strdup. ASTERISK-23790 #close Reported by: uniken1 Tested by: uniken1 Review: https://reviewboard.asterisk.org/r/3669/ Patches: chan_sip-large-from-header-1.8-r3.patch uploaded by wdoekes (license 5674) ........ Merged revisions 417248 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-23 18:49 +0000 [r417141] Joshua Colp * res/res_rtp_asterisk.c: res_rtp_asterisk: Return the length of data written when sending via ICE instead of 0. ASTERISK-23834 #close Reported by: Richard Kenner 2014-06-23 14:35 +0000 [r417077] Rusty Newton * configs/features.conf.sample: main/features - documentation - reformat examples and options in features.conf.sample to show clearly which options apply in which section The features.conf sample can be a bit confusing about what parking options can be set only in the general context, or both in the general context (for the default parking lot) and in other parking lot contexts. A bug was filed due to confusion and a little googling will show lots of other confused users. Despite some comments on the individual options, it still reads in a confusing way. In this patch I separate out those options with some headings in to attempt a better layout. I went ahead and modified other headings in the file, or added them to facilitate better visual scanning. ASTERISK-23667 Review: https://reviewboard.asterisk.org/r/3622/ 2014-06-22 20:52 +0000 [r417017] George Joseph * Makefile.rules, Makefile, /: build: Turn FORTIFY_SOURCE off if DONT_OPTIMIZE is set. AST_FORTIFY_SOURCE is automatically set in ./Makefile even if DONT_OPTIMIZE is set in menuselect. This causes gcc to complain that _FORTIFY_SOURCE requires optimization and the build will fail. You can specify "make AST_FORTIFY_SOURCE=''" but I always forget. This patch moves the set of AST_FORTIFY_SOURCE to Makefile.rules and only sets it if DONT_OPTIMIZE is "no". The move is necessary because the top-level Makefile doesn't include menuselect.makeopts. This doesn't solve the entire problem however because res_config_mysql seems to force _FORTIFY_SOURCE so res_config_mysql has to be disabled for now if DONT_OPTIMIZE is set. Tested by: George Joseph Review: https://reviewboard.asterisk.org/r/3664/ ........ Merged revisions 417016 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-20 23:14 +0000 [r416870-416930] George Joseph * /, configure, include/asterisk/autoconfig.h.in: build: Allow autoconf/ast_ext_tool_check to handle cross-compiling better. ast_ext_tool_check.m4 isn't handling cases where a path to a package is provided (E.G. --with-mysqlclient=/some/sysroot) and the package has a config tool (E.G. mysql_config) and the package has its own subdirectories in include or lib. For example, mysql's libraries are in ${MYSQLCLIENT_DIR}/usr/lib/mysql but ast_ext_tool_check sets MYSQLCLIENT_LIB to ${MYSQLCLIENT_DIR}/usr/lib. libxml2 has the same problem with its includes. They're in ${LIBXML2_DIR}/usr/include/libxml2 not directly in ${LIBXML2_DIR}/usr/include. Both cause configure to fail and there are others in the same boat. The problem is caused by logic in ast_ext_tool_check that overrides the result of the config tool's --cflags and --libs options if package_DIR is set. This patch prepends package_DIR (if specified) to the -L and -I results from the package's config tool instead of overriding them. A regenerated ./configure and include/asterisk/autoconfig.h.in are included but can be regenerated by running ./bootstrap.sh at any time. Tested by: George Joseph Tested by: Matt Jordan Review: https://reviewboard.asterisk.org/r/3550/ ........ Merged revisions 416929 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * autoconf/ast_ext_tool_check.m4: build: Allow autoconf/ast_ext_tool_check to handle cross-compiling better. ast_ext_tool_check.m4 isn't handling cases where a path to a package is provided (E.G. --with-mysqlclient=/some/sysroot) and the package has a config tool (E.G. mysql_config) and the package has its own subdirectories in include or lib. For example, mysql's libraries are in ${MYSQLCLIENT_DIR}/usr/lib/mysql but ast_ext_tool_check sets MYSQLCLIENT_LIB to ${MYSQLCLIENT_DIR}/usr/lib. libxml2 has the same problem with its includes. They're in ${LIBXML2_DIR}/usr/include/libxml2 not directly in ${LIBXML2_DIR}/usr/include. Both cause configure to fail and there are others in the same boat. The problem is caused by logic in ast_ext_tool_check that overrides the result of the config tool's --cflags and --libs options if package_DIR is set. This patch prepends package_DIR (if specified) to the -L and -I results from the package's config tool instead of overriding them. Tested by: George Joseph Tested by: Matt Jordan Review: https://reviewboard.asterisk.org/r/3550/ 2014-06-19 19:34 +0000 [r416733] Kinsey Moore * main/bridging.c, /, channels/sip/reqresp_parser.c, main/logger.c, main/test.c: Fix build warnings with TEST_FRAMEWORK enabled ........ Merged revisions 416732 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-19 16:02 +0000 [r416581-416668] George Joseph * pbx/pbx_lua.c: Remove the problematic and unneeded AST_MODFLAG_GLOBAL_SYMBOLS from pbx_lua.c AST_MODFLAG_GLOBAL_SYMBOLS was causing the module to be incorrectly loaded before pbx_config. pbx_config was therefore blowing away contexts that were created by pbx_lua. With AST_MODFLAG_DEFAULT the load order is now correct and contexs are being properly merged. AST_MODFLAG_GLOBAL_SYMBOLS was not needed anyway since no other modules needed its global symbols that early. ASTERISK-23818 #close Reported by: Dennis Guse Tested by: Dennis Guse Tested by: George Joseph Review: https://reviewboard.asterisk.org/r/3629/ * configs/extensions.lua.sample: Update extensions.lua.sample with naming conflict guidance. The sample extensions.lua was causing pbx_lua to fail to load when parsing 'app.goto("default", "s", 1)' because in Lua 5.2, 'goto' is now a reserved word. This patch adds guidance to extensions.lua.sample and changed 'app.goto("default", "s", 1)' to 'app.['goto']("default", "s", 1)'. ASTERISK-23844 #close Reported by: rnewton Tested by: gtjoseph Review: https://reviewboard.asterisk.org/r/3627/ 2014-06-17 18:40 +0000 [r416501] Mark Michelson * /, funcs/func_strings.c: Allow the PUSH and UNSHIFT functions to set inheritable channel variables. ........ Merged revisions 416500 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-17 16:21 +0000 [r416440] Kinsey Moore * res/res_musiconhold.c, /: MoH: Don't restart stream on repeated start calls Currently, music on hold will stop and then start again from the beginning if ast_moh_start() is called multiple times. This can happen if a call is put on hold repeatedly (the channel receives multiple HOLD control frames) and can be triggered from ARI by starting MoH on a channel multiple times. This is fairly jarring/annoying to users. This change prevents MoH from being restarted if the requested music class is the same as the one currently playing. This includes an extra check to prevent the errors previously experienced in the testsuite and has 100+ test runs behind it. Review: https://reviewboard.asterisk.org/r/3615/ ........ Merged revisions 416439 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-16 09:00 +0000 [r416337] Igor Goncharovskiy * cel/cel_sqlite3_custom.c, main/db.c, res/res_config_sqlite3.c, cdr/cdr_sqlite3_custom.c, /: We have faced situation when using CDR and CEL by sqlite3 modules. With system having high load (~100 concurrent calls created by sipp) we found many cdr and cel records missed. There is special finction in sqlite3, that make able to fix this situation - sqlite3_wait_timeout, that also can replace awful code cdr_sqlite3 ad cel_sqlite3 modules. Also this function can be used for aastdb and res_config_sqlite3 to avoid missed writes to sqlite db. #ASTERISK-23766 #close Reported by: Igor Goncharovsky Review: https://reviewboard.asterisk.org/r/3559/ ........ Merged revisions 416336 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-15 21:17 +0000 [r416252] Matthew Jordan * /, res/res_musiconhold.c: MoH: Undo commit r416150 (1.8) This patch reverts r416150. When the comparison between mohclass->name and state->class->name is made, you are not guaranteed that (a) state->class is non-NULL or that state or state->class are in a safe state. Crashes caught by the bridges/transfer_capabilities test. ........ Merged revisions 416251 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-13 13:08 +0000 [r416151] Kinsey Moore * /, res/res_musiconhold.c: MoH: Don't restart stream on repeated start calls Currently, music on hold will stop and then start again from the beginning if ast_moh_start() is called multiple times. This can happen if a call is put on hold repeatedly (the channel receives multiple HOLD control frames) and can be triggered from ARI by starting MoH on a channel multiple times. This is fairly jarring/annoying to users. This change prevents MoH from being restarted if the requested music class is the same as the one currently playing. Review: https://reviewboard.asterisk.org/r/3615/ ........ Merged revisions 416150 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-13 05:06 +0000 [r416067] Richard Mudgett * main/tcptls.c, main/manager.c, /, channels/chan_sip.c, main/http.c, include/asterisk/tcptls.h: AST-2014-007: Fix of fix to allow AMI and SIP TCP to send messages. ASTERISK-23673 #close Reported by: Richard Mudgett Review: https://reviewboard.asterisk.org/r/3617/ ........ Merged revisions 416066 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-12 21:16 +0000 [r415999] Rusty Newton * main/pbx.c, /: main/pbx - documentation - enhance 'core show hints' and 'core show hint' help text Adds descriptive help text to 'core show hints' and 'core show hint'. The text describes the various columns for the sake of clarity. ASTERISK-23764 Review: https://reviewboard.asterisk.org/r/3610/ ........ Merged revisions 415998 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-12 17:20 +0000 [r415915] Corey Farrell * channels/sip/sdp_crypto.c, /: chan_sip: DEBUG messages in sdp_crypto.c display despite a DEBUG level of zero Change debug level for messages in sdp_crypto.c from zero to one. This ensures the messages are not displayed when debugging is disabled. Change does not apply to 12+ as it was already fixed in those versions. ASTERISK-23246 #close Reported by: Rusty Newton Review: https://reviewboard.asterisk.org/r/3605/ ........ Merged revisions 415908 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-12 16:22 +0000 [r415854] Richard Mudgett * res/res_http_websocket.c, configs/http.conf.sample, include/asterisk/utils.h, main/tcptls.c, main/manager.c, /, channels/chan_sip.c, main/http.c, UPGRADE.txt, main/utils.c, include/asterisk/tcptls.h: AST-2014-007: Fix DOS by consuming the number of allowed HTTP connections. Simply establishing a TCP connection and never sending anything to the configured HTTP port in http.conf will tie up a HTTP connection. Since there is a maximum number of open HTTP sessions allowed at a time you can block legitimate connections. A similar problem exists if a HTTP request is started but never finished. * Added http.conf session_inactivity timer option to close HTTP connections that aren't doing anything. Defaults to 30000 ms. * Removed the undocumented manager.conf block-sockets option. It interferes with TCP/TLS inactivity timeouts. * AMI and SIP TLS connections now have better authentication timeout protection. Though I didn't remove the bizzare TLS timeout polling code from chan_sip. * chan_sip can now handle SSL certificate renegotiations in the middle of a session. It couldn't do that before because the socket was non-blocking and the SSL calls were not restarted as documented by the OpenSSL documentation. * Fixed an off nominal leak of the ssl struct in handle_tcptls_connection() if the FILE stream failed to open and the SSL certificate negotiations failed. The patch creates a custom FILE stream handler to give the created FILE streams inactivity timeout and timeout after a specific moment in time capability. This approach eliminates the need for code using the FILE stream to be redesigned to deal with the timeouts. This patch indirectly fixes most of ASTERISK-18345 by fixing the usage of the SSL_read/SSL_write operations. ASTERISK-23673 #close Reported by: Richard Mudgett ........ Merged revisions 415841 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-12 15:42 +0000 [r415837] Jonathan Rose * UPGRADE.txt: Correct UPGRADE.txt notes in r415825 The change was marked against the wrong version of Asterisk. My apologies. 2014-06-12 15:40 +0000 [r415835] Scott Griepentrog * /, apps/app_queue.c: app_queue: delayed state can cause early leavewhenempty ringing In app_queue, device state changes arrive in event messages and update the queue member status value. That value is checked in get_member_status() to decide that the caller should leave when there are no available members. Although event messages can be delayed by other activity, there is no adverse affect by lagged status except in one specific case: there is only one available member, it was just rung, and leavewhenempty is enabled set for ringing members. This change adds a direct check of the device state only under this condition where the caller may be dropped incorrectly, resolving this issue without affecting performance of app_queue normally. AST-1248 #close Review: https://reviewboard.asterisk.org/r/3595/ Reported by: Thomas Arimont ........ Merged revisions 415833 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-12 15:22 +0000 [r415825] Jonathan Rose * UPGRADE.txt, apps/app_mixmonitor.c: MixMonitor: Add class authorization requirements to MixMonitor AMI commands MixMonitor AMI commands StartMixMonitor and StopMixMonitor lacked class authorization. StopMixMonitor now requires that the manager user either have the call or system class authorization. StartMixMonitor is a slightly larger issue since it can execute shell commands if the right arguments are passed into it, and we consider this a permission escalation. A security release will be issued for problem this shortly. ASTERISK-23609 #close Reported by: Corey Farrell 2014-06-11 22:44 +0000 [r415728] Richard Mudgett * main/format.c: format.c: Fix misuse of hash container function. The supplied hash function to a container must be idempotent given the object's key value to figure out which container bucket the object belongs in. Returning a random number or the current container count is not idempotent. The "computed hash" value doesn't help find the object later in those cases. * Fixed the format_list container to actually be a list since that is how the container is used. Conceptually, if more than 283 formats were added to the format_list then odd things may have happened before the fix. 2014-06-10 09:13 +0000 [r415599] Alexandr Anikin * addons/chan_ooh323.c: chan_ooh323: fix loading module failure if there no accessible h323_log or ooh323 config file change return 1 to return AST_MODULE_LOAD_FAILURE on module load routine few cosmetic changes ASTERISK-23814 #close (closes issue ASTERISK-23814) Reported by: Igor Goncharovsky Patches: ASTERISK-23814-ast11.patch 2014-06-09 11:57 +0000 [r415522] Walter Doekes * contrib/scripts/safe_asterisk, /: safe_asterisk: Cleanup additions to r415132. Replaced a stray echo that should've been a message call in safe_asterisk. I'm using the contents of the old message inside the if $NOTIFY so peoples log parsing scripts won't get confused by new messages. I'll clean that up in trunk. (Note that a 'make install' still won't overwrite your old safe_asterisk if it exists. See ASTERISK-21965.) ASTERISK-23492 #close ........ Merged revisions 415521 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-09 03:47 +0000 [r415464] Corey Farrell * main/autoservice.c, /: autoservice: stop thread on graceful shutdown This change adds thread shutdown to autoservice for graceful shutdowns only. ast_register_cleanup is backported to 1.8 to allow this. The logger callid is also released on shutdown in 11+. ASTERISK-23827 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/3594/ ........ Merged revisions 415463 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-06 21:27 +0000 [r415390] Jonathan Rose * include/asterisk/manager.h, main/config.c, main/manager.c, /, channels/chan_sip.c, include/asterisk/config.h: chan_sip: Fix order of variables specified in SIPNotify action Prior to this patch, sequential variables would be ordered in reverse from the order specified in the manager action. Review: https://reviewboard.asterisk.org/r/3588/ ........ Merged revisions 415359 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-05 17:45 +0000 [r415229] Richard Mudgett * main/config.c, /: config: Fix config files not reloading when only an included file changes. The twisted logic determining if a config file should be reloaded was mostly broken and disabled. The incorrect test that ASTERISK-23383 fixed actually reenabled the broken logic. The incorrect test was causing the timestamp to always be cleared which caused config files with includes to always be reloaded. * Made wildcard includes always cause a reload. Determining if a file was deleted cannot be determined without restructuring the cache to determine if any files are missing from the last files actually loaded. Also without refactoring config_text_file_load(), the glob loop couldn't check more than one file for changes anyway. * Made remove the cache entry if the file no longer exists when trying to get its timestamp or it is no longer a regular file. This fixes the corner case where the file was loaded, then deleted, then the config reloaded, then the file restored with the same timestamp, and then the config reloaded again. * Made remove the cache entry include list when actually loading the file. This gets rid of any stale includes the file had from the last time the file was loaded. ASTERISK-23683 #close Reported by: tootai Review: https://reviewboard.asterisk.org/r/3575/ ........ Merged revisions 415225 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-05 14:32 +0000 [r415206] Matthew Jordan * apps/app_confbridge.c: app_confbridge: Allow muting of users waiting to enter a ConfBridge Prior to this patch, users waiting to enter a ConfBridge were not considered when muted via the CLI or via AMI. Instead, a confusing message would be emitted stating that the channel did not exist. This patch allows a user to be muted when waiting to enter a ConfBridge conference. This is equivalent to start when muted, only toggled via the CLI or AMI. Review: https://reviewboard.asterisk.org/r/3582 ASTERISK-23824 #close patches: rb3582.patch uploaded by tm1000 (License 6524) 2014-06-04 20:12 +0000 [r415171] Walter Doekes * contrib/scripts/safe_asterisk, /: safe_asterisk: Cleanup and debian compatibility. Cleans up the safe_asterisk script and adds the ASTSAFE_FOREGROUND option that allows the debian asterisk init script to capture the right pid. * Drop the vim #modeline which wasn't used. Use test consistently without the odd configure xno syntax. Double quote all paths. General cleanup. * Don't output message()s to the console but only to TTY if set. * Allow TTY to be "no" as well as empty (debian compatibility with debian/patches/safe_asterisk-config). * Add option to export ASTSAFE_FOREGROUND=1 from the init script that calls this to disable backgrounding. Debian uses a similar method in debian/patches/safe_asterisk-nobg). ASTERISK-23492 #close Review: https://reviewboard.asterisk.org/r/3574/ ........ Merged revisions 415132 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-04 07:20 +0000 [r415066] Corey Farrell * /, apps/confbridge/include/confbridge.h, apps/app_confbridge.c: app_confbridge: Correct verification of conference name length Conference names were not checked for maximum length, allowing unexpected behaviour. This change adds checking to ensure the maximum length is not exceeded. The maximum length is also changed from 32 to AST_MAX_EXTENSION. ASTERISK-23035 #close Reported by: Iñaki Cívico Tested by: Iñaki Cívico Patches: confbridge-enforce_max-1.8.patch uploaded by coreyfarrell (license 5909) confbridge-enforce_max-11up.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 415060 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-06-03 07:32 +0000 [r414998] Walter Doekes * /, funcs/func_odbc.c: func_odbc: Fix fixed size buffers fix (r414968). The change that removed the fixed size buffers in odbc-related code -- removing arbitrary column width limits -- was incomplete. This change adds: no segfault on writesql without insertsql and return value checks after strdup. While I was in the vicinity I cleaned up the linefeeds in the odbc function descriptions, moved some code for clarity, removed some blobs and noted (but didn't fix) that the 'odbc write ... exec' CLI command doesn't behave as the dialplan equivalent when insertsql= is used. #ASTERISK-23582 #close Review: https://reviewboard.asterisk.org/r/3579/ ........ Merged revisions 414997 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-30 11:59 +0000 [r414881] Matthew Jordan * main/config.c, /: main/config.c: AMI action UpdateConfig EmptyCat clears all categories When invoking UpdateConfig AMI action with Action set to EmptyCat, Asterisk will make all categories empty in the config but the one requested with a Cat variable. This is due to a bug in ast_category_empty (main/config.c) that makes an incorrect comparison for a category name. This patch corrects the comparison such that only the requested category is cleared. Review: https://reviewboard.asterisk.org/r/3573/ ASTERISK-23803 #close Reported by: zvision patches: manager.c.diff uploaded by zvision (License 5755) ........ Merged revisions 414880 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-29 18:33 +0000 [r414859] Kinsey Moore * main/pbx.c, /: PBX: Prevent incorrect hint parsing Dynamic and pattern matching hints should not be checked for their last known state until they are instantiated by subscribers. (closes issue AFS-56) Reported by: John Hardin Patch AFS-56-pbx.diff submitted by Matt Jordan (license 6283) ........ Merged revisions 414813 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-28 11:36 +0000 [r414694] Joshua Colp * res/res_config_odbc.c, /, funcs/func_odbc.c: res_config_odbc: Use dynamically sized buffers to store row data so values do not get truncated. ASTERISK-23582 #close ASTERISk-23582 #comment Reported by: Walter Doekes Review: https://reviewboard.asterisk.org/r/3557/ ........ Merged revisions 414693 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-28 09:41 +0000 [r414565-414677] Walter Doekes * channels/chan_unistim.c: chan_unistim: Unlock mutex in rare OOM condition. ASTERISK-23792 #close Reported by: Peter Whisker Review: https://reviewboard.asterisk.org/r/3567/ * /, channels/chan_sip.c: chan_sip: Start session timer at 200, not at INVITE. Asterisk started counting the session timer at INVITE while the other end correctly started at 200. This meant that for short session-expiries (90 seconds) combined with long ringing times (e.g. 30 seconds), asterisk would wrongly assume that the timer was hit before the other end thought it was time to send a session refresh. This resulted in prematurely ended calls. This changes the session timer to start counting first at 200 like RFC says it should. (Also removed a few excess NULL checks that would never hit, because if they did, asterisk would have crashed already.) ASTERISK-22551 #close Reported by: i2045 Review: https://reviewboard.asterisk.org/r/3562/ ........ Merged revisions 414620 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_config_odbc.c, /: res_config_odbc: Fix old and new ast_string_field memory leaks. The ODBC realtime driver uses ^NN parameter encoding to cope with the special meaning of the semi-colon. A semi-colon in a field is interpreted as if the key was supplied twice, something which isn't otherwise possible with fixed database columns. E.g. allow=alaw;ulaw is parsed as allow=alaw and allow=ulaw. A literal semi-colon is rewritten to ^3B when stored in the database. The module uses a stringfield to efficiently store the encoded parameters. However, this stringfield wasn't always freed in some off-nominal cases. Commit r413241 fixed initialization so the encoding for INSERT and DELETE queries wouldn't crash. (Only SELECTs and UPDATEs worked apparently.) But that commit forgot the frees. This change cleans that up. Review: https://reviewboard.asterisk.org/r/3555/ ........ Merged revisions 414564 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-29 Asterisk Development Team * Asterisk 11.10.0 Released. 2014-05-22 Asterisk Development Team * Asterisk 11.10.0-rc1 Released. 2014-05-22 15:50 +0000 [r414402] Richard Mudgett * /, apps/app_meetme.c: app_meetme: Don't interrupt MOH for waitmarked users. Occasionally, when the last marked user leaves the conference, waitmarked users don't get MOH if MOH is supposed to be played while a waitmarked user is waiting for another marked user. * Made not interrupt MOH when the user is a waitmarked user. The waitmarked user doesn't need to hear any leave announcements from the conference as the user would have already heard different leave announcements if they were enabled. Apparently DAHDI occasionally sends unending non-silent streams to these users or a normal user still in the conference has continuous high background noise. These non-silent streams cause MOH to be suspended while the never ending "announcement" is played. Issue caused by ASTERISK-13680. AST-1349 #close Reported by: Tyler Stewart Review: https://reviewboard.asterisk.org/r/3543/ ........ Merged revisions 414401 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-22 13:59 +0000 [r414346] Matthew Jordan * UPGRADE.txt, /: UPGRADE: Add note for REF_DEBUG flag ........ Merged revisions 414345 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-21 22:05 +0000 [r414270] Richard Mudgett * channels/chan_local.c, /: chan_local: Only block media frames when a generator is on both ends of a local channel. The fix for ASTERISK-12292 was a bit too aggressive. You could have generators pointed at each other on local channels but need to get other kinds of frames such as DTMF or CONNECTED_LINE frames accross. ........ Merged revisions 414269 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-21 19:05 +0000 [r414215] Scott Griepentrog * /, funcs/func_strings.c: pbx.c: prevent potential crash from recursive replace() Recurisve usage of replace() resulted in corruption of the temporary string storage and potential crash. By changing the string to be allocated separtely per instance, this is eliminated. ASTERISK-23650 #comment Reported by: Roel van Meer ASTEIRSK-23650 #close Review: https://reviewboard.asterisk.org/r/3539/ ........ Merged revisions 414214 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-19 13:37 +0000 [r414153] Alexandr Anikin * addons/chan_ooh323.c, /: chan_ooh323: fix h323_log full path name * fix to use astlogdir option for h323_log file instead of hardcoded ASTERISK-23754 #close Reported by: Igor Goncharovsky Patches: ooh323_logger_patch.diff ........ Merged revisions 414152 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-16 20:03 +0000 [r413992-414068] Richard Mudgett * channels/chan_dahdi.c, /: chan_dahdi: Fix analog dialtone detection. * Check if waitingfordt (waitfordialtone) is enabled in dahdi_read() to allow the DSP to operate early enough to detect dialtone. * Made use the correct variable in my_check_waitingfordt(). ASTERISK-23709 #close Reported by: Steve Davies Patches: dialtone_detect_fix (license #5012) patch uploaded by Steve Davies Review: https://reviewboard.asterisk.org/r/3534/ ........ Merged revisions 414067 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/sig_pri.c: sig_pri.c: Pull the pri_dchannel() PRI_EVENT_RING case into its own function. * Populate the CALLERID(ani2) value (and the special CALLINGANI2 channel variable) with the ANI2 value in addition to the PRI specific ANI2 channel variable. * /, apps/app_meetme.c: app_meetme: Fix overwrite of DAHDI conference data structure. Starting a conference recording using the admin menu overwrites the DAHDI conference data structure used to modify the admin user's conference mute mode. * Made no longer pass the user's DAHDI conference data structure into the menu functions. The menu now uses its own DAHDI conference data structure to start the recording channel. * Moved the unlock conf->playlock to before playing the conf-full message. No sense keeping the lock while that prompt is playing. The user is never going to get into the conference at that point. ........ Merged revisions 413991 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-14 15:31 +0000 [r413895] Walter Doekes * /, res/res_musiconhold.c: res_musiconhold: Minor cleanup. Fix a few free()'s that should be ast_free()'s. Reverted an old workaround that isn't necessary. Reorder a tiny bit of code. Remove a bit of commented-out code. Review: https://reviewboard.asterisk.org/r/3536/ ........ Merged revisions 413894 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-13 17:40 +0000 [r413876] Jonathan Rose * channels/chan_sip.c: chan_sip: Add TLS and SRTP status to CLI command 'sip show channel' ASTERISK-23564 #close Reported by: Patrick Laimbock Review: https://reviewboard.asterisk.org/r/3474/ 2014-05-13 14:34 +0000 [r413788-413838] Walter Doekes * /, channels/chan_sip.c: chan_sip+CEL: Add missing ANSWER and PICKUP events to INVITE/w/replaces pickup. When doing a "BLF-style call pickup" -- an INVITE with Replaces: header -- the CEL log would lack the ANSWER and PICKUP events. This patch adds the two missing events to the handle_invite_replaces() function. ASTERISK-22977 #close Review: https://reviewboard.asterisk.org/r/3073/ ........ Merged revisions 413832 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_format_attr_h264.c: h264: Fix H264 SDP payload format. https://tools.ietf.org/html/rfc3984#section-8.1 says profile-level-id takes 3 bytes in base16 (6 hex digits). This fixes video setup in certain cases. ASTERISK-23664 #close ASTERISK-23664 #comment Patch r3530.patch uploaded by Guillaume Maudoux. Review: https://reviewboard.asterisk.org/r/3530/ * main/rtp_engine.c, /: rtp: Fix case typo in H263+ mime. http://tools.ietf.org/html/rfc3555#section-4.2.6 says the canonical mime subtype is "H263-1998", not "h263-1998". Original code was added in r183101 on 2009-03-19 02:26:50 +0100. This fixes issues with Polycom phones. ASTERISK-23665 #close ASTERISK-23665 #comment Patch r3529.patch uploaded by Guillaume Maudoux, backported by me. Review: https://reviewboard.asterisk.org/r/3529/ ........ Merged revisions 413787 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-12 23:48 +0000 [r413765] Richard Mudgett * channels/sig_pri.c, /, configure, include/asterisk/autoconfig.h.in, configure.ac: chan_dahdi/sig_pri: Prevent unnecessary PROGRESS events when overlap dialing is enabled. When overlap dialing is enabled, the lack of inband audio available information in the SETUP_ACKNOWLEDGE events causes an interoperability problem with SIP. sig_pri doesn't know if there is dialtone present when a SETUP_ACKNOWLEDGE is received so it assumes it is there and posts an AST_CONTROL_PROGRESS frame. The SIP channel driver then sends out a 183 Session Progress and blocks the desired 180 Ringing message when the ALERTING message comes in. * Made the configure script detect if the installed version of libpri supports the SETUP_ACKNOWLEDGE enhancements. * Using the new API, made generate an AST_CONTROL_PROGRESS frame on an incoming SETUP_ACKNOWLEDGE message when the message indicates inband audio is present instead of assuming that dialtone is present. * Using the new API, made SETUP_ACKNOWLEDGE send out an inband audio available indication only if dialtone is expected. The change also makes the fallback behaviour of sending the PROGRESS message better by sending it only if dialtone is expected. * Changed receiving a PROCEEDING message to not generate an AST_CONTROL_PROGRESS frame if the progress indication ie indicates non-end-to-end-ISDN. This helps interoperability with SIP. * Changed sending a PROCEEDING message in response to an AST_CONTROL_PROCEEDING frame to not indicate inband audio available. It was silly to do so anyway because the channel driver doesn't know if inband audio is even available. This helps interoperability with SIP. This patch and a corresponding change in libpri work together to allow Asterisk to control the inband audio available progress indication ie on the SETUP_ACKNOWLEDGE message when dialtone is present. AST-1338 #close Reported by: Tyler Stewart Review: https://reviewboard.asterisk.org/r/3521/ ........ Merged revisions 413714 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-12 22:02 +0000 [r413710] Jonathan Rose * apps/app_chanspy.c: app_chanspy: Fix a test that was failing on account of r413551 ASTERISK-23381 #close ASTERISK-23381 #comment Reported by: Robert Moss Review: https://reviewboard.asterisk.org/r/3505/ 2014-05-09 23:08 +0000 [r413587-413595] Kinsey Moore * /, funcs/func_env.c: Fix 32bit build for func_env ........ Merged revisions 413592 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_fax_spandsp.c, res/res_odbc.c, main/asterisk.c, res/res_calendar.c, apps/app_voicemail.c, channels/chan_unistim.c, main/ccss.c, funcs/func_sysinfo.c, main/utils.c, res/res_musiconhold.c, channels/chan_gtalk.c, res/res_jabber.c, res/res_http_websocket.c, res/res_format_attr_h264.c, main/enum.c, main/io.c, main/channel.c, res/ael/pval.c, channels/chan_phone.c, main/manager.c, res/res_config_odbc.c, apps/app_minivm.c, channels/chan_motif.c, res/res_agi.c, main/logger.c, main/app.c, apps/app_confbridge.c, res/res_format_attr_silk.c, channels/chan_mgcp.c, apps/app_adsiprog.c, res/res_rtp_asterisk.c, main/stun.c, res/res_calendar_icalendar.c, channels/chan_sip.c, apps/app_festival.c, res/res_fax.c, main/translate.c, main/slinfactory.c, res/res_crypto.c, main/acl.c, apps/app_queue.c, apps/app_getcpeid.c, channels/sig_pri.c, res/res_srtp.c, channels/chan_jingle.c, res/res_corosync.c, res/res_stun_monitor.c, main/abstract_jb.c, main/callerid.c, main/file.c, main/config_options.c, main/adsi.c, main/event.c, pbx/pbx_dundi.c, apps/app_sms.c, channels/sip/config_parser.c, apps/app_stack.c, apps/app_verbose.c, main/dsp.c, main/xmldoc.c, main/udptl.c, main/format.c, cel/cel_pgsql.c, main/frame.c, channels/chan_local.c, main/rtp_engine.c, main/security_events.c, /, funcs/func_env.c, res/res_timing_dahdi.c, bridges/bridge_softmix.c, main/devicestate.c, cdr/cdr_adaptive_odbc.c, res/res_calendar_caldav.c, main/taskprocessor.c, res/res_xmpp.c, res/res_format_attr_h263.c, channels/chan_iax2.c, res/res_pktccops.c, main/config.c, main/loader.c, main/cli.c, res/res_format_attr_celt.c, apps/confbridge/conf_config_parser.c, funcs/func_hangupcause.c, channels/chan_dahdi.c, cel/cel_odbc.c, channels/sig_analog.c, include/asterisk/astobj.h, channels/chan_skinny.c, formats/format_pcm.c, main/features.c, apps/app_dumpchan.c, funcs/func_srv.c, channels/chan_alsa.c, main/stdtime/localtime.c, main/bridging.c, channels/sip/include/sip.h, main/sched.c, apps/app_dial.c, res/res_calendar_exchange.c, main/pbx.c, pbx/dundi-parser.c, main/aoc.c, main/cel.c, channels/iax2-parser.c, res/res_calendar_ews.c, res/res_monitor.c, main/netsock.c, main/data.c, main/audiohook.c, funcs/func_iconv.c, pbx/pbx_config.c: Allow Asterisk to compile under GCC 4.10 This resolves a large number of compiler warnings from GCC 4.10 which cause the build to fail under dev mode. The vast majority are signed/unsigned mismatches in printf-style format strings. ........ Merged revisions 413586 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-09 16:10 +0000 [r413551] Jonathan Rose * apps/app_chanspy.c: app_chanspy: Fix a bug where Barge mode could fail If the barge audiohook was attached prior to the spyee and its peer actually being bridged, the audiohook would not be applied and the connected peer would not be able to hear audio from the spy when the spy is in barge mode. (closes issue ASTERISK-23381) Reported by: Robert Moss Review: https://reviewboard.asterisk.org/r/3505/ 2014-05-08 00:34 +0000 [r413486] Joshua Colp * main/manager.c, /, apps/app_queue.c: app_queue: Extend documentation for various Manager actions and events. ........ Merged revisions 413485 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-07 20:29 +0000 [r413451] Richard Mudgett * apps/app_confbridge.c: app_confbridge: Fix ref leak in CLI "confbridge kick" command. Fixed ref leak in the CLI "confbridge kick" command when the channel to be kicked was not in the conference. 2014-05-07 17:48 +0000 [r413397] Mark Michelson * res/res_config_odbc.c, /: Fix encoding of custom prepare extra data. Patches: res_config_odbc-take2.patch by John Hardin (License #6512) ........ Merged revisions 413396 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-06 17:01 +0000 [r413305] Mark Michelson * res/res_config_odbc.c, /: Ensure that all parts of SQL UPDATEs and DELETEs are encoded. Patches: res_config_odbc.patch by John Hardin (License #6512) ........ Merged revisions 413304 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-05-02 20:25 +0000 [r413225-413251] Mark Michelson * res/res_config_odbc.c, /: Prevent crashes in res_config_odbc due to uninitialized string fields. Patches: odbc-crash.patch by John Hardin (License #6512) ........ Merged revisions 413241 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_config_pgsql.c, /: Return the number of rows affected by a SQL insert, rather than an object ID. The realtime API specifies that the store callback is supposed to return the number of rows affected. res_config_pgsql was instead returning an Oid cast as an int, which during any nominal execution would be cast to 0. Returning 0 when more than 0 rows were inserted causes problems to the function's callers. To give an idea of how strange code can be, this is the necessary code change to fix a device state issue reported against chan_pjsip in Asterisk 12+. The issue was that the registrar would attempt to insert contacts into the database. Because of the 0 return from res_config_pgsql, the registrar would think that the contact was not successfully inserted, even though it actually was. As such, even though the contact was query-able and it was possible to call the endpoint, Asterisk would "think" the endpoint was unregistered, meaning it would report the device state as UNAVAILABLE instead of NOT_INUSE. The necessary fix applies to all versions of Asterisk, so even though the bug reported only applies to Asterisk 12+, the code correction is being inserted into 1.8+. Closes issue ASTERISK-23707 Reported by Mark Michelson ........ Merged revisions 413224 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-30 20:26 +0000 [r413139] Richard Mudgett * main/message.c, channels/chan_sip.c, include/asterisk/message.h: chan_sip.c: Fixed off-nominal message iterator ref count and alloc fail issues. * Fixed early exit in sip_msg_send() not destroying the message iterator. * Made ast_msg_var_iterator_next() and ast_msg_var_iterator_destroy() tolerant of a NULL iter parameter in case ast_msg_var_iterator_init() fails. * Made ast_msg_var_iterator_destroy() clean up any current message data ref. * Made struct ast_msg_var_iterator, ast_msg_var_iterator_init(), ast_msg_var_iterator_next(), ast_msg_var_unref_current(), and ast_msg_var_iterator_destroy() use iter instead of i. 2014-04-30 13:04 +0000 [r413123] Kinsey Moore * res/res_http_websocket.c: Websocket: Add session locking and delay close This resolves a race condition where data could be written to a NULL FILE pointer causing a crash as a websocket connection was in the process of shutting down by adding locking to websocket session writes and by deferring session teardown until session destruction. (closes issue ASTERISK-23605) Review: https://reviewboard.asterisk.org/r/3481/ Reported by: Matt Jordan 2014-04-25 17:47 +0000 [r413008] Matthew Jordan * res/res_rtp_asterisk.c: res_rtp_asterisk: Add support for DTLS handshake retransmissions On congested networks, it is possible for the DTLS handshake messages to get lost. This patch adds a timer to res_rtp_asterisk that will periodically check to see if the handshake has succeeded. If not, it will retransmit the DTLS handshake. Review: https://reviewboard.asterisk.org/r/3337 ASTERISK-23649 #close Reported by: Nitesh Bansal patches: dtls_retransmission.patch uploaded by Nitesh Bansal (License 6418) 2014-04-23 17:51 +0000 [r412923] Richard Mudgett * /, main/http.c: http: Fix spurious ERROR message in responses with no content. Backport -r411687 and fix the fix because content_length is the length of out plus the length of the file controlled by fd. When a response has an out content length of 0, fwrite would be called to write a buffer with no data in it. This resulted in the following classic error message: [Apr 3 11:49:17] ERROR[26421] http.c: fwrite() failed: Success This patch makes it so that we only attempt to write the content of out if the out string is non-zero. ........ Merged revisions 412922 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-21 17:53 +0000 [r412767-412822] Jonathan Rose * /, CHANGES: chan_sip: trust_id_outbound CHANGES message improvement (closes issue AST-1301) (closes issue ASTERISK-19465) Reported by: Krzysztof Chmielewski ........ Merged revisions 412821 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, CHANGES: Typo in CHANGES ........ Merged revisions 412764 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-21 16:13 +0000 [r412748] Kinsey Moore * main/manager.c, /, main/http.c: HTTP: Add TCP_NODELAY to accepted connections This adds the TCP_NODELAY option to accepted connections on the HTTP server built into Asterisk. This option disables the Nagle algorithm which controls queueing of outbound data and in some cases can cause delays on receipt of response by the client due to how the Nagle algorithm interacts with TCP delayed ACK. This option is already set on all non-HTTP AMI connections and this change would cover standard HTTP requests, manager HTTP connections, and ARI HTTP requests and websockets in Asterisk 12+ along with any future use of the HTTP server. Review: https://reviewboard.asterisk.org/r/3466/ ........ Merged revisions 412745 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-21 15:51 +0000 [r412746] Jonathan Rose * configs/sip.conf.sample, CHANGES, channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip: Add sendrpid trust options In r411189, some behavior was changed which made sendrpid behavior act in a more trusting manner by sending full user data for peers set with private caller presence in P-Asserted-Identity headers. Since this changed long time expected behaviors, we decided to pull that patch when that was pointed out by the community. Instead, this patch provides a trust_id_outbound setting which will expose the data per RFC-3325 if set to 'yes' and simply not send the PAI/RPID headers at all if set to 'no'. By default trust_id_outbound will be set to 'legacy' which will preserve the behavior prior to these patches. Extra special thanks to Walter Doekes for providing advice and feedback. (closes issue AST-1301) (closes issue ASTERISK-19465) Reported by: Krzysztof Chmielewski Review: https://reviewboard.asterisk.org/r/3447/ ........ Merged revisions 412744 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-21 08:29 +0000 [r412712] Igor Goncharovskiy * channels/chan_unistim.c: Fix wrong dialtone. The "modulation" should not be referenced for tone+tone as it refers to the on-off characteristic - this often resulted in a single tone rather than the multitone as in the UK. 2014-04-19 01:02 +0000 [r412656] Matthew Jordan * /, apps/app_sms.c: app_sms: Fix uninitialized values; hangup channel when REL is sent successfully This patch fixes two issues in app_sms: (1) Firstly, the 'flags' field on the stack in sms_exec() is uninitialised, causing it to use the wrong protocol in some cases. This patch correctly initializes the flags fields. (2) Secondly, when disconnect supervision is not working or inbanddisconnect=yes is set in chan_dahdi.conf, app_sms was failing to terminate the call after it sent the REL(ease) message and the peer stopped talking to it. This patch fixes the code to handle the 'bad stop bit' message more gracefully in that case, and hang up the call. Review: https://reviewboard.asterisk.org/r/1392/ ASTERISK-18331 #close Reported by: David Woodhouse patches: asterisk-fix-sms.patch uploaded by David Woodhouse (License 5754) ........ Merged revisions 412655 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-18 17:15 +0000 [r412586] Rusty Newton * sounds/sounds.xml, sounds/Makefile: sounds: Fix Sounds Makefile and XML that didn't support new sound prompt sets In sounds/Makefile 1 Adds and moves some lines necessary for the en_GB core set. I'm just following how the other sets are defined here. 2 removes the ES extra sounds related lines as we don't have ES extra sound sets. In sounds/sounds.xml 3 Adds member definitons for EN_AU, EN_GB, IT for core sound sets, and EN_GB in extra sound sets ASTERISK-23550 #close Review: https://reviewboard.asterisk.org/r/3464/ 2014-04-17 20:06 +0000 [r412468] Matthew Jordan * channels/chan_oss.c, main/Makefile: main/Makefile: Fix build failure on SmartOS/Illumos/SunOS This patch fixes two issues when building on SmartOS: - channels/chan_oss.c: it makes sure soundcard.h is found - main/Makefile: only use "-Wl,--version-script" when GNU LD is used as the Sun Linker doesn't support that. Similar checks are already used elswhere in the Makefile Review: https://reviewboard.asterisk.org/r/3426 ASTERISK-23576 #close Reported by: Sebastian Wiedenroth patches: fix-sunos.diff uploaded by Sebastian Wiedenroth (License 6597) 2014-04-15 16:23 +0000 [r412348] Richard Mudgett * channels/chan_sip.c: chan_sip.c: Moved some sip_pvt unrefs after their last use. * Moved sip_pvt unref in ast_hangup() and handle_request_do() to the end of the function. The unref needs to happen after the last use of the pointer. 2014-04-15 15:40 +0000 [r412329] Jonathan Rose * /, channels/chan_sip.c, configs/sip.conf.sample: Reverting r411189 so that it can be put up for public review --- r411189 | jrose | 2014-03-26 10:50:48 -0500 (Wed, 26 Mar 2014) | 12 lines chan_sip: Send real CallerID information with P-Assserted-Identity (RFC-3325) Prior to this patch, the P-Asserted-Identity header would include anonymous caller id information which seems to go against the point of the P-Asserted-Identity header. Now the real caller ID information will be included in this header. Also, no privacy header would be included. This patch adds 'Privacy: id' to outgoing SIP messages that include the P-Asserted-Identity header. (closes issue AST-1301) --- ........ Merged revisions 412328 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-14 15:50 +0000 [r412305] Corey Farrell * main/autoservice.c: autoservice: fix reference leak of logger callid. autoservice acquires a local reference to the logger callid of each channel in a loop. This local reference was not released, causing the callid of every channel in autoservice to leak. This change moves the callid unref inside the loop. ASTERISK-23616 #close Reported by: ibercom 2014-04-11 21:38 +0000 [r412226] Richard Mudgett * apps/app_stack.c, /: app_stack: Add missing unlock in off-nominal path of STACK_PEEK function. ASTERISK-23620 #close Reported by: Bradley Watkins Patches: ASTERISK-23620_unlock_oldlist.patch (license #5021) patch uploaded by Bradley Watkins ........ Merged revisions 412225 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-11 02:10 +0000 [r412115] Matthew Jordan * /, channels/chan_sip.c, channels/sip/security_events.c, include/asterisk/astobj2.h, main/utils.c, main/astobj2.c, contrib/scripts/refcounter.py (added), main/asterisk.c, build_tools/cflags.xml: main/astobj2: Make REF_DEBUG a menuselect item; improve REF_DEBUG output This patch does the following: (1) It makes REF_DEBUG a meneselect item. Enabling REF_DEBUG now enables REF_DEBUG globally throughout Asterisk. (2) The ref debug log file is now created in the AST_LOG_DIR directory. Every run will now blow away the previous run (as large ref files sometimes caused issues). We now also no longer open/close the file on each write, instead relying on fflush to make sure data gets written to the file (in case the ao2 call being performed is about to cause a crash) (3) It goes with a comma delineated format for the ref debug file. This makes parsing much easier. This also now includes the thread ID of the thread that caused ref change. (4) A new python script instead for refcounting has been added in the contrib/scripts folder. Review: https://reviewboard.asterisk.org/r/3377/ ........ Merged revisions 412114 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-08 21:20 +0000 [r411944-411974] Richard Mudgett * main/asterisk.c, /: Internal timing: Add notice that the -I and internal_timing option are no longer needed. Add notice messages during execution that the -I command line option and the astersik.conf internal_timing option are no longer needed. The internal timing functionality is now always enabled if there is a timing module loaded. NOTE: Since the command line options and the asterisk.conf config file are processed before the logging system is initialized, the messages are output to stderr. Change requested as a result of asterisk-dev list comments about the commit for ASTERISK-22846 that removed the -I and internal_timing options. Review: https://reviewboard.asterisk.org/r/3423/ ........ Merged revisions 411964 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, main/config.c: config: Fix CB_ADD_LEN() to work as originally intended. Fix a long standing bug in CB_ADD_LEN() behaving like CB_ADD(). ASTERISK-23546 #close Reported by: Walter Doekes ........ Merged revisions 411960 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * apps/confbridge/conf_config_parser.c: app_confbridge: Fix confbridge.conf dsp_talking_threshold option setting wrong parameter. Fixed copy pasta error. ASTERISK-23545 #close Reported by: John Knott 2014-04-07 14:48 +0000 [r411808] Walter Doekes * configs/res_odbc.conf.sample, /, UPGRADE.txt: configs: Clean up long line and typo in res_odbc.conf.sample. ........ Merged revisions 411807 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-04 18:46 +0000 [r411716] Richard Mudgett * include/asterisk/options.h, main/asterisk.c, main/channel.c, /, channels/chan_sip.c, configs/asterisk.conf.sample, UPGRADE.txt: internal_timing: Remove the option and always make it enabled if a timing module is loaded. The masquerade supertest frequently fails because either the local channel chain doesn't completely optimize out or the DTMF handshake doesn't completely get accross. Local channel optimization requires frames flowing to trigger when optimization can happen. When optimization happens the media frame that triggered the optimization is dropped. Sending DTMF requires frames to flow in the other direction for timing purposes while sending nothing. If internal timing is not enabled when MOH is playing, Asterisk switches to received timing when an audio frame is received. With optimization dropping media frames and MOH not sending frames unless it receives frames, occasionaly there are no more frames being passed and the test fails. * The asterisk command line -I option and the asterisk.conf internal_timing option are removed. Asterisk now always uses internal timing when needed if any timing module is loaded. The issue ASTERISK-14861 did this quite awhile ago in v1.4 but effectively is broken if other internal timing modules besides DAHDI are used. The ast_read_generator_actions() now only does received timing if it has no choice for frame generators like MOH, silence, and playback streaming. * Cleaned up some code dealing with frame generators in ast_deactivate_generator(), generator_write_format_change(), ast_activate_generator(), and ast_channel_stop_silence_generator(). ASTERISK-22846 #close Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/3414/ ........ Merged revisions 411715 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-01 20:43 +0000 [r411633] Corey Farrell * utils/extconf.c, include/asterisk/options.h, main/asterisk.c, apps/app_voicemail.c, main/channel.c: app_voicemail: fix missing symbol ASTERISK-23391 caused a regression where the symbol 'defaultlanguage' was used by app_voicemail but not exported by main/asterisk. This change renames the variable to ast_defaultlanguage. The variable was already renamed in Asterisk 12+. (closes issue ASTERISK-23559) Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/3408/ 2014-04-01 16:49 +0000 [r411585] Joshua Colp * apps/app_queue.c, /: app_queue: Fix a bug where realtime members would be deleted during reload causing waiting callers to get ejected. This patch causes realtime queue members to remain in queues during the reload process. Previously these members would be removed causing any waiting callers to be ejected from the queue with a reason of "EXITEMPTY". ASTERISK-23547 #close ASTERISK-23547 #comment Patch app_queue_fix_realtime_reload_1.8_trunk.patch submitted by Italo Rossi (license 6409) Review: https://reviewboard.asterisk.org/r/3404/ ........ Merged revisions 411584 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-04-23 Asterisk Development Team * Asterisk 11.9.0 Released. 2014-04-21 Asterisk Development Team * Asterisk 11.9.0-rc3 Released. * chan_sip: Add sendrpid trust options In r411189, some behavior was changed which made sendrpid behavior act in a more trusting manner by sending full user data for peers set with private caller presence in P-Asserted-Identity headers. Since this changed long time expected behaviors, we decided to pull that patch when that was pointed out by the community. Instead, this patch provides a trust_id_outbound setting which will expose the data per RFC-3325 if set to 'yes' and simply not send the PAI/RPID headers at all if set to 'no'. By default trust_id_outbound will be set to 'legacy' which will preserve the behavior prior to these patches. Extra special thanks to Walter Doekes for providing advice and feedback. 2014-04-14 Asterisk Development Team * Asterisk 11.9.0-rc2 Released. * autoservice: fix reference leak of logger callid. autoservice acquires a local reference to the logger callid of each channel in a loop. This local reference was not released, causing the callid of every channel in autoservice to leak. This change moves the callid unref inside the loop. ASTERISK-23616 #close Reported by: ibercom * app_voicemail: fix missing symbol ASTERISK-23391 caused a regression where the symbol 'defaultlanguage' was used by app_voicemail but not exported by main/asterisk. This change renames the variable to ast_defaultlanguage. The variable was already renamed in Asterisk 12+. (closes issue ASTERISK-23559) Reported by: Corey Farrell 2014-03-28 Asterisk Development Team * Asterisk 11.9.0-rc1 Released. 2014-03-28 17:44 +0000 [r411531] Alexandr Anikin * addons/ooh323c/src/oochannels.c, addons/ooh323c/src/ooCmdChannel.c, addons/ooh323c/src/ooq931.c, addons/ooh323c/src/ooh323.c, addons/ooh323c/src/ooGkClient.c, addons/chan_ooh323.c: process stack command even if gatekeeper client isn't register don't destroy gatekeeper client if it is not started don't destroy gatekeeper client in some sort of gatekeeper errors signal rtp create condition when call cleared before rtp structure created (closes issue ASTERISK-23460) Reported by: Dmitry Melekhov Patches: ASTERISK-23460-2.patch Tested by: Dmitry Melekhov 2014-03-28 16:16 +0000 [r411463] Scott Griepentrog * main/manager.c, /, main/http.c, main/tcptls.c: http: response body often missing after specific request This patch works around a problem with the HTTP body being dropped from the response to a specific client and under specific circumstances: a) Client request comes from node.js user agent "Shred" via use of swagger-client library. b) Asterisk and Client are *not* on the same host or TCP/IP stack In testing this problem, it has been determined that the write of the HTTP body is lost, even if the data is written using low level write function. The only solution found is to instruct the TCP stack with the shutdown function to flush the last write and finish the transmission. See review for more details. ASTERISK-23548 #close (closes issue ASTERISK-23548) Reported by: Sam Galarneau Review: https://reviewboard.asterisk.org/r/3402/ ........ Merged revisions 411462 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-28 15:43 +0000 [r411373-411458] Matthew Jordan * /, UPGRADE.txt: UPGRADE: Note IAX2 compatibility issue between 1.4 and 1.8+ systems. ........ Merged revisions 411457 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * configs/res_odbc.conf.sample, include/asterisk/res_odbc.h, res/res_config_odbc.c, /, res/res_odbc.exports.in, UPGRADE.txt, res/res_odbc.c: res_config_odbc/res_odbc: Fix handling of non-text columns updates with empty values. This patch fixes setting nullable integer columns to NULL instead of an empty string, which fails for PostgreSQL, for example. The current code is supposed to do so, but the check is broken. The patch also allows the first column in the list to be a nullable integer. This patch also adds a compatibility setting in res_odbc.conf, allow_empty_string_in_nontext. It is enabled by default. It should be disabled for database backends (such as PostgreSQL) that require NULL instead of an empty string for Integer columns. Review: https://reviewboard.asterisk.org/r/3375 (issue ASTERISK-23459) Reported by: zvision patches: res_config_odbc.diff uploaded by zvision (License 5755) ........ Merged revisions 411399 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/sip/include/sip.h, /: chan_sip: Add MESSAGE request to allowed methods The allowed methods advertised by chan_sip did not previously note the MESSAGE request. Even in Asterisk 1.8, we do accept in-dialog MESSAGE requests; we should advertise that we support MESSAGE requests. ASTERISK-23504 #close ASTERISK-23504 #comment Reported by: Martin Kontsek ASTERISK-23504 #comment Patch sip.h_patch.diff uploaded by Martin Kontsek (license 6587) Review: https://reviewboard.asterisk.org/r/3396/ ........ Merged revisions 411372 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-27 19:13 +0000 [r411310-411314] Corey Farrell * funcs/func_strings.c, funcs/func_math.c, funcs/func_jitterbuffer.c, res/res_xmpp.c, channels/chan_iax2.c, res/res_jabber.c, res/res_mutestream.c, funcs/func_global.c, apps/app_speech_utils.c, apps/confbridge/conf_config_parser.c, funcs/func_pitchshift.c, funcs/func_callcompletion.c, funcs/func_groupcount.c, funcs/func_volume.c, funcs/func_odbc.c, funcs/func_blacklist.c, funcs/func_channel.c, funcs/func_frame_trace.c, main/features.c, funcs/func_callerid.c, apps/app_stack.c, main/message.c, res/res_calendar.c, apps/app_jack.c, apps/app_voicemail.c, funcs/func_speex.c, funcs/func_dialplan.c, channels/chan_sip.c, /: Fix dialplan function NULL channel safety issues (closes issue ASTERISK-23391) Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/3386/ ........ Merged revisions 411313 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/format.c, include/asterisk.h, main/asterisk.c: main/formats: Fix crash in ast_format_cmp during non-clean shutdown. * Backport ast_register_cleanup from Asterisk 12. * Use ast_register_cleanup for format_attr_shutdown. ast_register_cleanup was originally commited in r390122 by dlee. (closes issue ASTERISK-23103) Reported by: JoshE 2014-03-26 22:44 +0000 [r411244] Joshua Colp * /, main/say.c: say: Fix a bug where SayNumber in Polish tries to play incorrect sound. This change fixes a bug where calling SayNumber with a number divisible by 100 using the Polish language would cause the code to attempt to play a sound file with an empty name. (closes issue ASTERISK-23509) Reported by: zvision Review: https://reviewboard.asterisk.org/r/3378/ ........ Merged revisions 411243 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-26 15:57 +0000 [r411190] Jonathan Rose * configs/sip.conf.sample, /, channels/chan_sip.c: chan_sip: Send real CallerID information with P-Assserted-Identity (RFC-3325) Prior too this patch, the P-Asserted-Identity header would include anonymous caller id information which seems to go against the point of the P-Asserted-Identity header. Now the real caller ID information will be included in this header. Also, no privacy header would be included. This patch adds 'Privacy: id' to outgoing SIP messages that include the P-Asserted-Identity header. (closes issue AST-1301) ........ Merged revisions 411189 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-25 15:52 +0000 [r411089] Kinsey Moore * /, channels/chan_sip.c: chan_sip: Fix incorrect use of timers If update_provisional_keepalive() is called while send_provisional_keepalive_full() is waiting on the PVT lock, then pvt->provisional_keepalive_sched_id will be changed to a new sched_id value by update_provisional_keepalive(), but that new sched_id then may be overwritten with -1 by send_provisional_keepalive_full(), killing the pvt's reference to a schedule and "leaking" the reference. (closes issue ASTERISK-22079) Review: https://reviewboard.asterisk.org/r/3368/ Reported by: Jamuel Starkey, Matteo, Leif Madsen, Steve Davies Patches: provisional_keepalive_fix.diff uploaded by Steve Davies (license 5012) ........ Merged revisions 411088 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-24 21:37 +0000 [r411022] Joshua Colp * /, channels/chan_sip.c: chan_sip: Always use fromdomain if set for domain, even if callerid is set to restricted. (closes issue ASTERISK-20841) Reported by: Kelly Goedert ........ Merged revisions 411021 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-20 22:46 +0000 [r410965] Jonathan Rose * apps/app_confbridge.c: app_confbridge: Fix bug - users with startmuted set don't start muted (closes issue ASTERISK-23461) Reported by: Chico Manobela Review: https://reviewboard.asterisk.org/r/3373/ 2014-03-18 11:50 +0000 [r410829] Sean Bright * res/res_fax_spandsp.c: res_fax_spandsp: Use g711_free() when available. Per Johann Steinwendtner on the asterisk-dev mailing list: http://lists.digium.com/pipermail/asterisk-dev/2014-March/066102.html g711_free() was introduced in spandsp 0.0.6pre4 and g711_release() became a noop. I opted not to remove the call to g711_release() since it is harmless and to call g711_free() if we have a sufficiently recent version of spandsp. (issue ASTERISK-20149) Reported by: Alexandr Gordeev 2014-03-17 21:55 +0000 [r410717-410749] Russ Meyerriecks * /, main/callerid.c: !fixup: callerid: Logic error in checksum processing Fixes syntax error in previous commit :-( ........ Merged revisions 410748 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, main/callerid.c: callerid: Logic error in checksum processing Callerid checksum-ing was being handled incorrectly here. When the checksum is calculated to be 0x00, it will perform 0x100-0x00 which results in 0x100. This value will then fail the otherwise correct callerid message. This patch changes the logic to simply add the calculated checksum to the transmitted 2's compliment checksum. Review: https://reviewboard.asterisk.org/r/3356/ (closes issue ASTERISK-23488) ........ Merged revisions 410710 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-14 21:12 +0000 [r410609] Jonathan Rose * main/manager.c: manager: fix memory leak in manager_add_filter function (closes issue ASTERISK-23420) Reported by: Etienne Lessard Patches: manager_eventfilter_leak uploaded by Etienne Lessard (license 6394) 2014-03-14 20:53 +0000 [r410556-410606] Mark Michelson * main/db.c: Remove an extra ast_cond_wait() that slipped through the patch. * main/db.c: Prevent delayed astdb syncs. The syncing thread sleeps for a second before waiting to be told to attempt to sync again. If a signal were sent during this sleeping period, we would end up having to wait until the next sync signal occurred in order to sync up the astdb. This code rearrangement also ensures that any pending transactions will be synced prior to Asterisk shutting down. Patches: db_sync.patch by John Hardin (License #6512) 2014-03-12 18:35 +0000 [r410490] Richard Mudgett * apps/confbridge/conf_state.c, apps/confbridge/conf_state_single.c, apps/confbridge/conf_state_inactive.c, apps/confbridge/conf_state_single_marked.c: app_confbridge: Make explicitly stop MOH if a user is kicked or hangs up while MOH is playing. When MOH is playing to a user in a conference and the user is kicked or hangs up from the conference then the AMI MusicOnHoldStop events didn't happen. (Asterisk v11 AMI event: MusicOnHold, state:Stop) (closes issue ASTERISK-23311) Reported by: Benjamin Keith Ford Review: https://reviewboard.asterisk.org/r/3306/ 2014-03-10 17:09 +0000 [r410381] Richard Mudgett * /, main/http.c: AST-2014-001: Stack overflow in HTTP processing of Cookie headers. Sending a HTTP request that is handled by Asterisk with a large number of Cookie headers could overflow the stack. Another vulnerability along similar lines is any HTTP request with a ridiculous number of headers in the request could exhaust system memory. (closes issue ASTERISK-23340) Reported by: Lucas Molas, researcher at Programa STIC, Fundacion; and Dr. Manuel Sadosky, Buenos Aires, Argentina ........ Merged revisions 410380 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-10 13:18 +0000 [r410311] Kinsey Moore * /, channels/chan_sip.c: AST-2014-002: chan_sip: Exit early on bad session timers request This change allows chan_sip to avoid creation of the channel and consumption of associated file descriptors altogether if the inbound request is going to be rejected anyway. (closes issue ASTERISK-23373) Reported by: Corey Farrell Patches: chan_sip-earlier-st-1.8.patch uploaded by Corey Farrell (license 5909) chan_sip-earlier-st-11.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 410308 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-07 22:52 +0000 [r410225] Corey Farrell * /, channels/chan_sip.c: chan_sip: Fix deadlock of monlock between unload_module and do_monitor Release monlock before calling pthread_join. This ensures do_monitor cannot freeze by locking monlock during module unload. (closes issue ASTERISK-21406) Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/3284/ ........ Merged revisions 410224 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-07 04:38 +0000 [r410106] Matthew Jordan * /, channels/chan_sip.c: chan_sip: Allow static realtime members to be qualified during module load. When a static realtime peer with qualify=yes is loaded, Asterisk will fail to send an OPTIONS request due to the lastms being equal to 0. This results in the peer being unable to receive calls from Asterisk because the status is permanently UNKNOWN. This patch allows an OPTIONS request to be sent during module load by ignoring the lastms value on startup only. Review: https://reviewboard.asterisk.org/r/3294/ (closes issue ASTERISK-17523) Reported by: Maciej Krajewski Tested by: wushumasters patches: realtime_fix_11.7.0.txt uploaded by Trevor Peirce (license 6112) ........ Merged revisions 410105 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-06 23:15 +0000 [r410044] Russell Bryant * /, res/res_musiconhold.c: moh: fix a refcount error with realtime MOH I observed a crash in res_musiconhold on an Asterisk 11 system using realtime MOH. Investigation of the backtrace showed a corrupt mohclass, implying that it got destroyed before the code expected it to. I went looking for reference counting errors that could have caused this crash and this patch this result. It contains 2 changes. 1) Remove a usless block of code that was impossible to reach. There was even a comment indicating that it was impossible to reach. The conditional includes "!ast_test_flag(global_flags, MOH_CACHERTCLASSES)" and it's inside of an if block with the opposite check "ast_test_flag(global_flags, MOH_CACHERTCLASSES)". There's no good reason to keep it around. 2) A similar block to #1 contained a reference counting error. It stores state->class in the local variable mohclass without increasing its reference count. The reference count on mohclass is decremented at the end of the function. This block of code probably very rarely runs, which would help explain why this system was working fine for many months before experiencing a crash. Review: https://reviewboard.asterisk.org/r/3282/ ........ Merged revisions 410043 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-06 01:58 +0000 [r409990] Matthew Jordan * res/res_fax_spandsp.c: res_fax_spandsp: Fix crash when passing ulaw/alaw data to spandsp When acting as a T.38 fax gateway, res_fax_spandsp would at times cause a crash in libspandsp. This would occur when, during fax tone detection, a ulaw/alaw frame would be passed to modem_connect_tones_rx. That particular routine expects the data to be in slin format. This patch looks at the frame type and, if the data is ulaw/alaw, converts the format to slin before passing it to modem_connect_tones_rx. Review: https://reviewboard.asterisk.org/r/3296 (closes issue ASTERISK-20149) Reported by: Alexandr Gordeev Tested by: Michal Rybarik patches: spandsp_g711decode.diff uploaded by Michal Rybarik (license 6578) 2014-03-05 20:37 +0000 [r409917] Kinsey Moore * main/config.c, /: config: Fix inverted test The test of the result of the stat() call was inverted such that its output was only used if the call failed. This inverts the test so that the output of stat() is used correctly. This was causing full reloads on unchanged files. (closes issue ASTERISK-23383) Reported by: David Woolley ........ Merged revisions 409916 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-05 18:45 +0000 [r409886] Mark Michelson * funcs/func_presencestate.c: Fix documentation for PRESENCE_STATE to properly illustrate how to create a presence hint. There was a missing comma. This was discovered by Dan Kaplan. 2014-03-05 16:55 +0000 [r409834] David M. Lee * main/config.c, /, configure, include/asterisk/autoconfig.h.in, configure.ac: Corrected cross-platform stat nanosecond code When nanosecond time resolution was added for identifying config file changes, it didn't cover all of the myriad of ways that one might obtain nanosecond time resolution off of struct stat. Rather than complicate the #if even further figuring out one system from the next, this patch directly tests for the three struct members I know about today, and #ifdef's accordingly. Review: https://reviewboard.asterisk.org/r/3273/ ........ Merged revisions 409833 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-05 12:04 +0000 [r409778] Sean Bright * /, contrib/scripts/astgenkey, contrib/scripts/astgenkey.8: Fix references to 'keys' CLI commands in astgenkey ........ Merged revisions 409777 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-05 06:28 +0000 [r409745-409761] Igor Goncharovskiy * channels/chan_unistim.c, /: Correct RTP handling in chan_unistim and fix transfer process broken in previous fix: - Fixed too early RTP setup with phone, that cause no ringback tone on caller side - Handle call transfer cancel only in STATE_CALL case (related to ASTERISK-23073) (Reported by: Németh Tamás, niurkin sil) * channels/chan_unistim.c: Add update_peer function to unistim_rtp_glue, improve other unistim_rtp_glue functions conforming to other channel drivers. Do not forget auto-detected and user-selected phone settings on 'unistim reload' ........ Merged revisions 409705 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-05 04:55 +0000 [r409681-409703] Moises Silva * res/res_http_websocket.c: Fix res/res_http_websocket.c build failure in 32bit due to incorrect print format for uint64_t * res/res_http_websocket.c: Fix WebRTC over WSS not working Several fixes for the WebSockets implementation in res/res_http_websocket.c * Flush the websocket session FILE* as fwrite() may not actually guarantee sending the data to the network. If we do not flush, it seems that buffering on the SSL socket for outbound messages causes issues * Refactored ast_websocket_read to take into account that SSL file descriptors may be ready to read via fread() but poll() will not actually say so because the data was already read from the network buffers and is now in the libc buffers (closes issue ASTERISK-23099) (closes issue ASTERISK-21930) Review: https://reviewboard.asterisk.org/r/3248/ 2014-03-04 19:33 +0000 [r409625] Michael L. Young * funcs/func_audiohookinherit.c, /: func_audiohookinheritance: Check If A Channel Was Specified This patch prevents a crash when using the function audiohookinheritance without setting the channel. (closes issue ASTERISK-23104) Reported by: Joel Vandal Tested by: Joel Vandal Patches: asterisk-23104_audiohook_inherit_no_channel-11.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/3272/ ........ Merged revisions 409623 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-04 16:51 +0000 [r409567] Kinsey Moore * main/astobj2.c, /: AO2: Add an assert for bad objects This adds an assert that will only be active if Asterisk is compiled with DO_CRASH and allows the testsuite to fail tests that would otherwise require log file parsing. ........ Merged revisions 409566 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-04 16:40 +0000 [r409565] Jonathan Rose * res/res_rtp_asterisk.c: res_rtp_asterisk: Fix one way audio problems with hold/unhold when using ICE ICE sessions will now be restarted if sessions are changed to use new sets of remote candidates. (closes issue ASTERISK-22911) Reported by: Vytis Valentinavičius Review: https://reviewboard.asterisk.org/r/3275/ 2014-03-04 15:35 +0000 [r409524] Kinsey Moore * main/rtp_engine.c, /: rtp_engine: Clean up after a failed remote bridge Upon failure of an INVITE transaction meant to initiate a remote native bridge, rtp_engine.c would not clean up non-reference-counted bridge instance pointers leaving a dangling pointer which was being used to perform a local native bridge after the other channel had hung up. This lead to dereferencing into freed memory and plenty of AO2 errors. This change allows the remote native bridge loop to clean up properly when the bridge fails. (closes issue ASTERISK-23310) Reported by: Jeremy Laine ........ Merged revisions 409521 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-04 14:52 +0000 [r409473] Sean Bright * /, channels/chan_sip.c: Minor whitespace change to 'sip show peers' output. (closes issue ASTERISK-23406) Reported by: ibercom Tested by: ibercom Patches: asterisk-11.patch uploaded by ibercom ........ Merged revisions 409472 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-03 02:07 +0000 [r409362] Matthew Jordan * /, main/asterisk.c: doxygen: Tweak the link back to ye olde Digium website ........ Merged revisions 409361 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-02 12:26 +0000 [r409344] Tzafrir Cohen * /, Makefile.rules: Makefile: replace -O6 with -O3 -O6 is not a legal option of gcc. Unofficially gcc considers it to be equivalent of -O3. clang chalks on it, though. This commit sets the default optimization flag to be -O3, like gcc actually considered it. Review: https://reviewboard.asterisk.org/r/3280/ ........ Merged revisions 409308 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-28 21:30 +0000 [r409255] Richard Mudgett * /, channels/chan_sip.c: chan_sip: Add precautionary p->owner checks. * Add precautionary p->owner checks in sip_hangup(), get_refer_info(), get_also_info(), and interpret_t38_parameters(). * Simplify some tangled logic in get_refer_info(), get_also_info(), and add_rpid(). * Removed some dead code in handle_request_invite(). (closes issue ASTERISK-23323) Reported by: Walter Doekes Patches: issueA23323-more_p_owner_checks-1.8.x.patch (license #5674) uploaded by wdoekes (modified) issueA23323-more_p_owner_checks-11.x.patch (license #5674) uploaded by wdoekes (modified) issueA23323-more_p_owner_checks-12.x.patch (license #5674) uploaded by wdoekes (modified) issueA23323-more_p_owner_checks-trunk.patch (license #5674) uploaded by wdoekes (modified) ........ Merged revisions 409207 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-28 21:13 +0000 [r409208] Kinsey Moore * apps/app_queue.c: app_queue: Fix documentation generation The documentation for QueueMemberPaused was causing documentation generation to fail because the documentation for that AMI event was in the wrong location. This moves that documentation the correct location and adds a missing parameter. (closes issue SWDAT-261) 2014-02-28 18:00 +0000 [r409157] Richard Mudgett * /, channels/chan_sip.c: chan_sip: Fix crash in ast_channel_hangupcause_set(). * Fix crash in ast_channel_hangupcause_set() because p->owner not checked before calling. Regression introduced by the fix for ASTERISK-22621. (closes issue ASTERISK-23135) Reported by: OK (issue ASTERISK-23323) Reported by: Walter Doekes ........ Merged revisions 409156 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-27 19:38 +0000 [r409129-409130] Jonathan Rose * res/res_rtp_asterisk.c: res_rtp_asterisk: correct build error from r409129 Accidentally placed a declaration below functional code (issue ASTERISK-23213) Reported by: Andrea Suisani Review: https://reviewboard.asterisk.org/r/3256/ * res/res_rtp_asterisk.c: res_rtp_asterisk: Fix checklist creating problems in ICE sessions Prior to this patch, local candidate lists including SRFLX would fail to start properly when building ICE candidate check lists. This patch fixes that problem by making sure that each SRFLX candidate is associated with the proper base address so that the check list can create matches properly. This patch was written by jcolp. The issue will be left open to await testing by the issue participants. (issue ASTERISK-23213) Reported by: Andrea Suisani Review: https://reviewboard.asterisk.org/r/3256/ 2014-02-27 16:24 +0000 [r409083] David M. Lee * /, utils/astman.c: Fix memory stomping bug in astman. This memset complained in dev mod on my Ubuntu box. The memset is both unnecessary and dangerous. At this point, m hasn't been initialized yet, so the memset will write off to whatever address happens to be on the stack at the time. ........ Merged revisions 409077 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-27 16:03 +0000 [r409053] Corey Farrell * /, res/res_fax.c, configs/res_fax.conf.sample: res_fax: Warn that minrate=2400 is not valid for V.27 instead of failing load. Change minrate from 2400 to 4800 on config reload in response to changes from ASTERISK-22790 only. Any config with minrate of 2400 that would fail before r405693 will still fail. Comment out many settings in res_fax.conf.sample. The defaults are set in res_fax.c, so setting the same value in sample config does nothing but make the sample config more fragile. (closes issue ASTERISK-23231) Reported by: David Brillert Review: https://reviewboard.asterisk.org/r/3261/ ........ Merged revisions 409052 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-27 12:47 +0000 [r409002] Matthew Jordan * main/rtp_engine.c, /, include/asterisk/rtp_engine.h: rtp_engine: fix crash during remote native bridging when calling get_codecs When two RTP channels are in a remote bridge, the remote bridging loop in rtp_engine will periodically check to see if the two channels can still be bridged. One of the many things it checks is whether or not the codecs have changed on the channel. If the codec has changed, it will break out of the loop to re-determine which type of bridge is appropriate. In order to perform this check, the ast_rtp_glue virtual table's get_codec callback is called for each channel. The callback implementations assume that the channel tech private is valid when called; as such, there has always been some code in place to check whether or not the channel pvt is NULL before calling. However, this check is insufficient. The channels are unlocked during the remote bridging loop. It is possible for a channel to get masqueraded between the check for the pvt being NULL and the actual call to get_codec. When this occurs, the callback is called with a ZOMBIE channel, which now has a NULL pvt. Crash. While this has always been possible in Asterisk 1.8, it is much more likely to occur in Asterisk 11 and later versions due to the timing changes that occur when getting the codec from a channel. Note that this is much more likely to be reproduced on slow, boggy hardware running Asterisk 11 - but fairly rarely otherwise. Also Note: This crash was also caught by the various SIP blind transfer tests, in addition to the bug report Alec filed. Review: https://reviewboard.asterisk.org/r/3247/ (closes issue ASTERISK-21737) Reported by: Alec Davis Tested by: Alec Davis ........ Merged revisions 409001 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-25 17:43 +0000 [r408877] Rusty Newton * /, configs/voicemail.conf.sample: configs/voicemail.conf.sample - Make mailcmd sample text more explicit Made the wording a bit more explicit. Didn't really change the meaning. ........ Merged revisions 408876 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-22 17:42 +0000 [r408838] Alexandr Anikin * addons/chan_ooh323.c: ignore AST_CONTROL_PVT_CAUSE_CODE without any messages (closes issue ASTERISK-23336) Reported by: Alexander Semych 2014-02-22 02:28 +0000 [r408786] Corey Farrell * res/ael/pval.c, main/pbx.c, /, utils/extconf.c, utils/conf2ael.c: Remove extra defines of AST_PBX_MAX_STACK. * Ensure AST_PBX_MAX_STACK is only defined in extconf.h and pbx.h. * Fix incorrect function parameters in utils/extconf.c. (closes issue ASTERISK-23141) Reported by: Maxim Review: https://reviewboard.asterisk.org/r/3241/ ........ Merged revisions 408785 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-21 20:21 +0000 [r408643-408748] Kevin Harwell * /, apps/app_forkcdr.c: app_forkcdr: ForkCDR v option does not keep CDR variables for subsequent records When the 'v' option is specified to ForkCDR application, AST_CDR_FLAG_KEEP_VARS flag is set only for the first CDR in the chain. So ForkCDR works fine with this option only once. After the second and further calls to ForkCDR, CDR variables get cleared on all CDRs besides the first one and moved to the newly forked CDR. It always sets the KEEP_VARS flag on the first CDR in the chain, instead of the most recent CDR which is used as a base to fork a new CDR. This patch sets KEEP_VARS flag on the most recent CDR on the stack (the CDR used for forking). (closes issue ASTERISK-23260) Reported by: zvision Patches: app_forkcdr.diff uploaded by zvision (license 5755) ........ Merged revisions 408747 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * contrib/scripts/install_prereq: install_prereq: Missing uuid[-dev] for debian distros Added uuid and uuid-dev to install prereq script. (closes issue ASTERISK-23255) Reported by: Rusty Newton * contrib/scripts/install_prereq, main/rtp_engine.c: rtp_engine: Dynamic payload change in rtp mapping not supported Asterisk didn't support the dynamic payload change in rtp mapping in the 200 OK response. Scenario: Asterisk sends the INVITE proposing alaw and telephone-event, it proposes rtpmap:101 for telephone-event. Peer responds with 2xx, it answers with alaw and telephone-event also, but it proposes a different rtpmap number (rtpmap:103) for telephone-event. Expected Behaviour: Asterisk should honour the rtpmapping in the response and send DTMF packets using 103 as payload type for DTMF. Actual Behaviour: Asterisk sends DTMF packets using payload type 101. With this patch asterisk now supports changes that can occur in the rtp mapping in the response. (closes issue ASTERISK-23279) Reported by: NITESH BANSAL Review: https://reviewboard.asterisk.org/r/3225/ Patches: dynamic_payload_change.patch uploaded by nbansal (license 6418) * main/rtp_engine.c, /: rtp_engine: Output mixup in ${CHANNEL(rtpqos,audio,all)} Fixed the output of CHANNEL(rtpqos,audio,all) to use txjitter instead of rxjitter. (closes issue ASTERISK-23261) Reported by: rsw686 Patches: rtpqos.patch uploaded by rsw686 (license 5887) ........ Merged revisions 408646 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c, main/channel.c: channel.c: MOH is not working for transferee after attended transfer Updated the code to check to see if MOH is playing on the transferor and if so then start it on the channel that replaces it during a masquerade. Example scenario of the problem: Alice calls Bob and then Bob begins the attended transfer process into a queue. Upon going on hold Alice hears music and so does Bob once he is in the queue. Bob then transfers Alice into the queue and then music for Alice stops even though she should be hearing it since has now replaced Bob in the queue. The problem that was occurring is that once the channel was masqueraded the app (queues, confbridge, etc...) had no way of knowing that the channel had just been swapped out thus it did not start music for the present channel. Credit to Olle Johansson for pointing me in the right direction on this issue. (closes issue ASTERISK-19499) Reported by: Timo Teräs Review: https://reviewboard.asterisk.org/r/3226/ ........ Merged revisions 408642 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-21 10:40 +0000 [r408590] Alexandr Anikin * /, addons/ooh323c/src/ooCalls.h: Fix type of roundTripDelay variables ........ Merged revisions 408589 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-21 00:47 +0000 [r408537] Michael L. Young * /, apps/app_chanspy.c: app_chanspy: Documentation Update To Clarify "x" Option When using the "x" option (specify a DTMF digit to exit the application), it is not obvious in the documentation that this only works when spying on a channel. If a channel being used to spy on other channels is waiting to connect to a channel or is no longer attached to a channel, the DTMF is ignored. As noted on the issue tracker, since there are workarounds available and this is a rarely used option we are opting for a documentation change here. (closes issue ASTERISK-22661) Reported by: Chris Hillman Patches: asterisk-22661-doc-clarify-chan_spy.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2990/ ........ Merged revisions 408536 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-20 02:41 +0000 [r408448] Rusty Newton * apps/app_queue.c, /: apps/app_queue - Fix incorrect Macro parameter documentation Macro is executed on the called channel, not the calling channel. (closes issue ASTERISK-23069) Reported By: Bryan Anderson ........ Merged revisions 408447 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-19 19:05 +0000 [r408388] Richard Mudgett * main/config.c, /: config: Add file size and nanosecond resolution fields to the cached modified config file information. Repeatedly modifying config files and reloading too fast sometimes fails to reload the configuration because the cached modification timestamp has one second resolution. * Added file size and nanosecond resolution fields to the cached config file modification timestamp information. Now if the file size changes or the file system supports nanosecond resolution the modified file has a better chance of being detected for reload. * Added a missing unlock in an off-nominal code path. (closes issue AST-1303) Review: https://reviewboard.asterisk.org/r/3235/ ........ Merged revisions 408387 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-19 11:45 +0000 [r408312-408330] Alexandr Anikin * addons/ooh323c/src/ooCapability.c, /, addons/ooh323c/src/ooh245.c: process receiveAndTransmit user input remote caps instead of receive only send receiveAndTransmit user input our caps instead of receive only ........ Merged revisions 408328 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * addons/ooh323c/src/ooh323.c: Allow different socket and signalling ip on h.323 connection if gk mode is active Reported by: Gabriele Odone Patches: ASTERISK-22738-1.patch Tested by: Gabriele Odone 2014-02-16 03:15 +0000 [r408193-408201] Matthew Jordan * main/pbx.c, /: pbx: Handle a completely empty dialplan during a context merge It is highly unlikely, but - at least in Asterisk 12 - theoretically possible to load Asterisk with no dialplan whatsoever. If that occurs, and some other module (that is not a pbx module) attempts to merge its contexts into the dialplan, the existing merge routine will crash. This is because it is not insane, and rightly believes that you provided some sort of dialplan, somewhere. This patch will gracefully merge the contexts in such a case. Note that this is highly unlikely to occur in 1.8/11, as features will most likely provide some dialplan via parking. However, in Asterisk 12, parking is now provided by res_parking, and hence may create its dialplan later. (closes issue ASTERISK-23297) Reported by: CJ Oster Review: https://reviewboard.asterisk.org/r/3222 ........ Merged revisions 408200 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * Makefile: buildsystem: Unbreak the build (infloop) on Asterisk 11+ Apparently r408084 ( https://reviewboard.asterisk.org/r/3212/ ) broke the build. This patch fixes it by ignoring the .lastclean dependencies if the MENUSELECT_EMBED variable is not defined. patches: tmp.diff uploaded by wdoekes (License 5674) Review: https://reviewboard.asterisk.org/r/3228/ 2014-02-14 21:53 +0000 [r408137-408143] Scott Griepentrog * main/pbx.c, /: pbx: ast_custom_function_unregister resource leak In pbx.c ast_custom_function_unregister(), a list of escalations being removed from the list wasn't being free'd creating a leak. This patch corrects that by freeing the records. Review: https://reviewboard.asterisk.org/r/3213/ Reported by: Corey Farrell Patches: acf_escalating_leak.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 408142 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/format.c: format.c: correct possible null pointer dereference In ast_format_sdp_parse and ast_format_sdp_generate the check checks for a valid interface and function were potentially confusing, and hid an error in the test of the presence of the function that is called later. This patch clears up and corrects the test. Review: https://reviewboard.asterisk.org/r/3208/ (closes issue ASTERISK-23098) Reported by: marcelloceschia Patches: main_format.patch uploaded by marcelloceschia (license 6036) ASTERISK-23098.patch uploaded by coreyfarrell (license 5909) 2014-02-14 13:27 +0000 [r408084] Walter Doekes * Makefile, /: buildsystem: Don't force main to depend on everything else. Directory 'main' only needs to depend on embedded modules. If no module embedding is selected, the dependency is dropped. Review: https://reviewboard.asterisk.org/r/3212/ ........ Merged revisions 408083 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-14 01:24 +0000 [r408021] Rusty Newton * configs/agents.conf.sample, /: configs/agents.conf.sample - Remove example for non-functional "goodbye" parameter The "goodbye" parameter is not implemented in the source code, it does nothing. (closes issue SWP-6518) Reported By: Steve Pitts ........ Merged revisions 408020 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-10 16:34 +0000 [r407874] Walter Doekes * res/res_config_pgsql.c, /: res_config_pgsql: Fix ast_update2_realtime calls. Fix so multiple updates from a single call works (add missing ','). Remove bogus ast_free's that weren't supposed to be there. Moved a few spaces for readability. Review: https://reviewboard.asterisk.org/r/3194/ ........ Merged revisions 407873 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-10 15:28 +0000 [r407857] Kinsey Moore * configs/confbridge.conf.sample, apps/confbridge/include/confbridge.h, UPGRADE.txt, apps/app_confbridge.c, apps/confbridge/conf_state_multi_marked.c, apps/confbridge/conf_state_empty.c, apps/confbridge/conf_config_parser.c: ConfBridge: Correct prompt playback target Currently, when the first marked user enters the conference that contains waitmarked users, a prompt is played indicating that the user is being placed into the conference. Unfortunately, this prompt is played to the marked user and not the waitmarked users which is not very helpful. This patch changes that behavior to play a prompt stating "The conference will now begin" to the entire conference after adding and unmuting the waitmarked users since the design of confbridge is not conducive to playing a prompt to a subset of users in a conference in an asynchronous manner. (closes issue PQ-1396) Review: https://reviewboard.asterisk.org/r/3155/ Reported by: Steve Pitts 2014-02-09 15:52 +0000 [r407818] Tzafrir Cohen * channels/chan_dahdi.c, /: chan_dahdi: handle DAHDI_EVENT_REMOVED on a pri D-Channel When a DAHDI device is removed at run-time it sends the event DAHDI_EVENT_REMOVED on each channel. This is intended to signal the userspace program to close the respective file handle, as the driver of the device will need all of them closed to properly clean-up. This event has long since been handled in chan_dahdi (chan_zap at the time). However the event that is sent on a D-Channel of a "PRI" (ISDN) span simply gets ignored. This commit adds handling for closing the file descriptor (and shutting down the span, while we're at it). It also adds a CLI command 'pri destroy span ' to destroy the span and its DAHDI channels. Backported from trunk/12. Review: https://reviewboard.asterisk.org/r/726/ ........ Merged revisions 394552 394567 from http://svn.asterisk.org/svn/asterisk/trunk ........ Merged revisions 407817 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-07 20:46 +0000 [r407727-407765] Richard Mudgett * /, channels/chan_iax2.c: chan_iax2: Add some more iaxs[] NULL checks to a routine already full of them. ........ Merged revisions 407764 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_iax2.c, include/asterisk/frame.h, configs/iax.conf.sample, /: chan_iax2: Block unnecessary control frames to/from the wire. Establishing an IAX2 call between Asterisk v1.4 and v1.8 (or later) results in an unexpected call disconnect. The problem happens because newer values in the enum ast_control_frame_type are not consistent between the branch versions of Asterisk. For example: 1) v1.4 calls v1.8 (or later) using IAX2 2) v1.8 answers and sends a connected line update control frame. (on v1.8 AST_CONTROL_CONNECTED_LINE = 22) 3) v1.4 receives the control frame as an end-of-q (on v1.4 AST_CONTROL_END_OF_Q = 22) 4) v1.4 disconnects the call once the receive queue becomes empty. Several things are done by this patch to fix the problem and attempt to prevent it from happening again in the future: * Added a warning at the definition of enum ast_control_frame_type about how to add new control frame values. * Made block sending and receiving control frames that have no reason to go over the wire. * Extended the connectedline iax.conf parameter to also include the redirecting information updates. * Updated the connectedline iax.conf parameter documentation to include a notice that the parameter must be "no" when the peer is an Asterisk v1.4 instance. (closes issue AST-1302) Review: https://reviewboard.asterisk.org/r/3174/ ........ Merged revisions 407678 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-07 13:06 +0000 [r407623] Tzafrir Cohen * /, configs/indications.conf.sample: indications.conf: add stutter tone; end properly * If the "stutter" (voicemail indication) tone is indeed a stutter tone, and it ends with a constant tone, make sure that it is the dial tone. This was done for India (in), Mexico (mx) and the Philippines (ph). * If no "stutter" tone exists for a country, provide one. This was done for Spain (es), Malaysia (my) and Venezuela (ve). Review: https://reviewboard.asterisk.org/r/3158/ ........ Merged revisions 407622 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-05 22:59 +0000 [r407512] Rusty Newton * /, formats/format_wav.c: formats/format_wav: enhancing log message "Not a wav file" to be clear on what is supported Modifying the log message to be more specific as to what is supported. Specifically it seems format_wav supports only PCM encoded versions with a lower-case '.wav' extension. (closes issues ASTERISK-22310) Reported by: Jim Credland Review: https://reviewboard.asterisk.org/r/3188/ ........ Merged revisions 407511 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-05 20:37 +0000 [r407457] Jonathan Rose * channels/chan_local.c: chan_local: Fix reversed LocalOptimization field in LocalBridge event (closes issue ASTERISK-23232) Reported by: Leon Roy 2014-02-05 20:37 +0000 [r407456] Kinsey Moore * /, main/logger.c: Logger: Fix handling of absolute paths This fixes path handling for log files so that an extra / is not appended to the file path when the path is absolute (begins with /). This would previously result in different but functionally equivalent paths in the output of 'logger show channels'. ........ Merged revisions 407455 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-04 19:56 +0000 [r407273-407338] Richard Mudgett * include/asterisk/devicestate.h, /, main/devicestate.c: devicestate: Make ast_devstate_changed_literal() return value and doxygen consistent. Nothing actually cares about the value anyway. (closes issue ASTERISK-23178) Reported by: Jonathan Rose ........ Merged revisions 407337 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * configs/sip.conf.sample, main/tcptls.c, /: tcptls.c: Made TLS handle a certificate chain file. Thanks to Guillaume Martres for doing the necessary research to validate the change. (closes issue ASTERISK-17727) Reported by: LN Patches: use_certificate_chain.patch (license #5864) patch uploaded by st documente_certificate_chain.patch (license #6576) patch uploaded by Guillaume Martres ........ Merged revisions 407272 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-04 02:20 +0000 [r407210] Joshua Colp * res/res_clialiases.c, /: res_clialiases: Fix crash when reloading and re-aliasing an alias that is in use. The code assumed that unregistering the alias would always succeed while in practice this is not actually true. A common case is the "reload" command itself. If the cli_aliases.conf configuration file was changed and reload executed the command would fail to unregister and ultimately point to freed memory. The reload process now checks whether unregistering succeeded or not and if not the old CLI alias is retained. (closes issue ASTERISK-19773) Reported by: Joel Vandal (closes issue ASTERISK-22757) Reported by: Gareth Blades ........ Merged revisions 407205 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-02-01 00:23 +0000 [r407103] Corey Farrell * apps/app_stack.c, /: app_stack: protect against missing parameters to STACK_PEEK and LOCAL_PEEK STACK_PEEK requires 2 parameters and LOCAL_PEEK requires 1 parameter. This protects against situations where those parameters are blank or missing by logging an error and returning. (closes issue ASTERISK-23220) Reported by: James Sharp ........ Merged revisions 407100 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-31 23:28 +0000 [r407074] Matthew Jordan * apps/app_dial.c, /: app_dial: Allow macro/gosub pre-bridge execution to occur on priorities The parsing for the destination of the macro/gosub uses the '^' character to separate out context, extension, and priority. However, the logic for the macro/gosub execution was written such that it would only do the actual macro/gosub jump if a '^' character existed. This doesn't apply when the macro/gosub jump occurs in a priority/priority label. This patch changes the logic so that the parsing still occurs, but the jump will occur even for priorities/priority labels. (issue ASTERISK-23164) Review: https://reviewboard.asterisk.org/r/3154 ........ Merged revisions 407041 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-30 20:28 +0000 [r406934] Corey Farrell * main/udptl.c, res/res_rtp_asterisk.c, /: res_rtp_asterisk & udptl: fix port selection to work with SELinux restrictions ast_bind to a port reserved for another program by SELinux causes errno == EACCES. This caused random failures when binding rtp or udptl sockets. Treat EACCES as a non-fatal error, try next port. (closes issue ASTERISK-23134) Reported by: Corey Farrell ........ Merged revisions 406933 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-30 17:32 +0000 [r406918] Sean Bright * main/manager.c: Make a NOTICE about an invalid channel name more useful. 2014-01-29 00:39 +0000 [r406861] Russell Bryant * /, configs/queues.conf.sample: queues.conf.sample Fix documented default for persistentmembers Closes issue ASTERISK-22662 ........ Merged revisions 406860 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-28 23:10 +0000 [r406802] Kevin Harwell * configure, include/asterisk/autoconfig.h.in, configure.ac, cdr/cdr_radius.c, cel/cel_radius.c, /: cdr_radius, cel_radius: build agains libfreeradius-client Asterisk's RADIUS module currently build against libradiusclient-ng, but this project has been superseeded by libfreeradius-client. The API is 99% compatible except that the header name has changed, the library name has changed, and the configuration file location has changed. (closes issue ASTERISK-22980) Reported by: Jeremy Lainé Patches: freeradius-client.patch uploaded by sharky (license 6561) ........ Merged revisions 406801 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-28 16:40 +0000 [r406722] Scott Griepentrog * main/rtp_engine.c, /: rtp_engine: improved handling of get_rtp_info failure In ast_rtp_instance_make_compatible(), after a failure of channel tech call get_rtp_info() to return peer_instance, the null pointer would be passed to ao2_ref, producing an error that looked like a refernce counting problem but is not. This patch corrects that and adds helpful LOG_ERROR messages to indicate which failure path occurred. (issue AST-1276) Review: https://reviewboard.asterisk.org/r/3156/ ........ Merged revisions 406721 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-27 20:35 +0000 [r406567-406644] Russell Bryant * /, main/config.c: Allow nested #includes in extconfig.conf extconfig.conf was hard-coded to not allow nested includes for some reason. The code has been this way since a patch was merged for ASTERISK-3333 (revision 4889), which was a significant update to this code ("Merge config updates"). I can't figure out any good reason why this should be limited. This patch just removes the limit and uses the default nesting depth limit. Closes issue ASTERISK-17837 Review: https://reviewboard.asterisk.org/r/3159/ ........ Merged revisions 406643 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/channel.c, /, main/file.c, include/asterisk/channel.h: Protect ast_filestream object when on a channel The ast_filestream object gets tacked on to a channel via chan->timingdata. It's a reference counted object, but the reference count isn't used when putting it on a channel. It's theoretically possible for another thread to interfere with the channel while it's unlocked and cause the filestream to get destroyed. Use the astobj2 reference count to make sure that as long as this code path is holding on the ast_filestream and passing it into the file.c playback code, that it knows it's valid. Bug reported by Leif Madsen. Review: https://reviewboard.asterisk.org/r/3135/ ........ Merged revisions 406566 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-26 23:01 +0000 [r406515] Richard Mudgett * main/tcptls.c, /: tcptls.c: Add missing cleanup on off nominal path. ........ Merged revisions 406514 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-24 23:07 +0000 [r406400-406418] Richard Mudgett * /, main/cel.c: CEL: Protect data structures during reload and shutdown. The CEL data structures need to be protected during a configuration reload and shutdown. Asterisk crashed during a shutdown because CEL events were still in flight and the CEL data structures were already destroyed. * Protected the appset and linkedids ao2 containers using the reload_lock. As a result appset, linkedids, and held objects don't need a lock. * Added NULL checks before use of the appset and linkedids ao2 containers in case the CEL module is already shutdown. * Fixed overloading of the linkedids held objects reference count. During shutdown any held objects would be leaked. * Fixed memory leak of linkedids held objects if the LINKEDID_END is not being tracked. The objects in the linkedids container were not removed if the LINKEDID_END event is not used. * Added access protection to the appset container during the CLI "cel show status" command. * Made CEL config reload not set defaults if the cel.conf file is invalid. (closes issue AST-1253) Reported by: Guenther Kelleter Review: https://reviewboard.asterisk.org/r/3127/ ........ Merged revisions 406417 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/manager.c, /: manager: Register atexit shutdown routine only once. * Made register atexit shutdown routine only once in __init_manager(). * Fixed some initial load failure conditions in __init_manager(). * Made reset options to defaults on reload when the reload will actually happen. * Removed unnecessary container traversals of the white/black filters during manager_free_user(). * ast_free() does not need a NULL check before calling. ........ Merged revisions 406359 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-24 21:14 +0000 [r406361] Jonathan Rose * res/res_config_pgsql.c, /: res_config_pgsql: Fix a memory leak and use RAII_VAR for cleanup when practical Review: https://reviewboard.asterisk.org/r/3141/ ........ Merged revisions 406360 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-24 17:54 +0000 [r406341] Richard Mudgett * main/manager.c: manager: Protect data structures during shutdown. Occasionally, the manager module would get an "INTERNAL_OBJ: bad magic number" error on a "core restart gracefully" command if an AMI connection is established. * Added ao2_global_obj protection to the sessions global container. * Fixed the order of unreferencing a session object in session_destroy(). * Removed unnecessary container traversals of the white/black filters during session_destructor(). (closes issue AST-1242) Reported by: Guenther Kelleter Review: https://reviewboard.asterisk.org/r/3144/ 2014-01-22 22:18 +0000 [r406245] Scott Griepentrog * main/pbx.c, /, utils/extconf.c: pbx.c: Pre-initialize timezone to avoid crash on destroy In ast_build_timing, initialize the timezone value to NULL in order to avoid deferencing an uninitialized value later when calling ast_destroy_timing. The timezone value could be uninitialized if ast_build_timing were to fail due to a zero length time string. (closes issue ASTERISK-22861) Reported by: Sebastian Murray-Roberts Review: https://reviewboard.asterisk.org/r/3134/ Patches: ast_build_timing-initialize-timezone.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 406241 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-22 19:31 +0000 [r406171-406217] Kinsey Moore * apps/app_confbridge.c: ConfBridge: Fix channel parameter documentation Confbridge AMI and CLI commands for mute, unmute, and setting the single video source can accept channel prefixes in lieu of a full channel name, but documentation states only that it is required and is a channel name. This corrects the documentation. (closes issue PQ-1397) Reported by: Steve Pitts * /, channels/chan_sip.c: chan_sip: Decline image streams on unsupported transports This change allows chan_sip to decline individual image streams over unsupported transports in the SDP of the 200 response. Previously, an image stream offer with RTP/AVP as the transport would cause chan_sip to respond with a 488. (closes issue ASTERISK-22988) Reported by: adomjan Original patch by: adomjan ........ Merged revisions 406170 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-21 21:05 +0000 [r406080] Walter Doekes * main/manager.c, /, configs/manager.conf.sample: manager: Clarify eventfilter documentation. Textual changes only. Review: https://reviewboard.asterisk.org/r/3133/ ........ Merged revisions 406079 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-21 19:59 +0000 [r406038] Kinsey Moore * res/res_pktccops.c, channels/chan_mgcp.c, /: chan_mgcp: Enforce locking for oseq This restricts direct usage of global oseq so that all accesses are locked and threads are not racing to get oseq values that they did not claim. This also fixes a build error in res_pktccops under dev mode. (closes issue ASTERISK-23100) Reported by: adomjan Patch by: adomjan ........ Merged revisions 406037 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-20 22:04 +0000 [r405927] Richard Mudgett * /, channels/sig_pri.c: chan_dahdi/PRI: Suppress CONNECTED_LINE updates when nothing in the udpate is valid. * Also simplified some subddress handling code. (closes issue ASTERISK-23008) Reported by: Michael Cargile ........ Merged revisions 405926 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-17 15:40 +0000 [r405792] Rusty Newton * /, channels/chan_sip.c, doc/asterisk.8, main/features.c, configs/sip.conf.sample, apps/app_queue.c, apps/app_transfer.c, channels/chan_iax2.c: Documentation: doc fixes across various parts of the code for ASTERISK issues 23061,23028,23046,23027 Fixes typos of "transfered" instead of "transferred" in various code. Fixes incorrect gosub param help text for app_queue. Fixes Asterisk man pages containing unquoted minus signs. Adds note about the "textsupport" option in sip.conf.sample. (issue ASTERISK-23061) (issue ASTERISK-23028) (issue ASTERISK-23046) (issue ASTERISK-23027) (closes issue ASTERISK-23061) (closes issue ASTERISK-23028) (closes issue ASTERISK-23046) (closes issue ASTERISK-23027) Reported by: Eugene, Jeremy Laine, Denis Pantsyrev Patches: transferred.patch uploaded by Jeremy Laine (license 6561) hyphen.patch uploaded by Jeremy Laine (license 6561) sip.conf.sample.patch uploaded by Eugene (license 6360) ........ Merged revisions 405791 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-16 19:51 +0000 [r405693-405745] Kevin Harwell * main/manager.c: manager: Originate doesn't abort on failed format_cap allocation action_originate responds to the remote system with an error when cap==NULL, but doesn't return (abort the originate). Patched to return. (closes issue ASTERISK-23034) Reported by: Corey Farrell Patches: ASTERISK-23034.patch uploaded by coreyfarrell (license 5909) * configs/res_fax.conf.sample, UPGRADE.txt, /, res/res_fax.c: res_fax: check_modem_rate() returned incorrect rate for V.27 According to the new standard for V.27 and V.32 they are able to transmit at a bit rate of 4,800 or 9,600. The check_mode_rate function needed to be updated to reflect this. Also, because of this change the default 'minrate' value was updated to be 4800. (closes issue ASTERISK-22790) Reported by: Paolo Compagnini Patches: res_fax.txt uploaded by looserouting (license 6548) ........ Merged revisions 405656 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-15 16:35 +0000 [r405582] Joshua Colp * /, cel/cel_manager.c: cel_manager: Don't crash if configuration file is invalid. The cel_manager module did not properly handle the case where the configuration file was invalid. The module will now output a warning message and disable itself if this occurs. Reported by: Bryan Walters ........ Merged revisions 405581 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-03-03 Asterisk Development Team * Asterisk 11.8.0 Released. 2014-03-01 Asterisk Development Team * Asterisk 11.8.0-rc3 Released. * chan_sip: Fix crash in ast_channel_hangupcause_set(). Fix crash in ast_channel_hangupcause_set() because p->owner not checked before calling. Regression introduced by the fix for ASTERISK-22621. (closes issue ASTERISK-23135) Reported by: OK (issue ASTERISK-23323) Reported by: Walter Doekes 2014-02-27 Asterisk Development Team * Asterisk 11.8.0-rc2 Released. * res_rtp_asterisk: Fix checklist creating problems in ICE sessions Prior to this patch, local candidate lists including SRFLX would fail to start properly when building ICE candidate check lists. This patch fixes that problem by making sure that each SRFLX candidate is associated with the proper base address so that the check list can create matches properly. This patch was written by jcolp. Note that the issue will be left open to await testing by the issue participants. (issue ASTERISK-23213) Reported by: Andrea Suisani Review: https://reviewboard.asterisk.org/r/3256 revisions 409129,409130 from https://svn.asterisk.org/svn/asterisk/branches/11 2014-01-14 Asterisk Development Team * Asterisk 11.8.0-rc1 Released. 2014-01-14 18:43 +0000 [r405434-405487] Scott Griepentrog * /, channels/chan_sip.c: chan_sip: No BYE message sent after INVITE with Replaces Setting channel state DOWN is an unnecessary step that was only being done in handle_invite_replaces(). This changes that by removing the call and reducing locking. (closes issue ASTERISK-23010) Reported by: Ryan Tilton Review: https://reviewboard.asterisk.org/r/3116/ ........ Merged revisions 405486 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c: chan_sip: fix Local From tag on outbound register regression In ASTERISK-12117, an improvement to insure consistant local from tags on outbound registrations resulted in an undesirable behavior - caused by leftover unexpired sip_pvt dialogs (with the previous cseq number), resulting in many uncessary REGISTER requests. Instead of significant rework of transmit_register(), this change deletes the dialogs after a 200 OK response indiciating a successful registration, keeping the old dialogs from interfering with normal operation. (closes issue ASTERISK-22946) Reported by: Stephan Eisvogel Review: https://reviewboard.asterisk.org/r/3109/ ........ Merged revisions 405433 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-14 17:26 +0000 [r405431] Richard Mudgett * main/asterisk.c, configs/logger.conf.sample, main/cli.c, include/asterisk/logger.h, main/pbx.c, main/manager.c, funcs/func_timeout.c, apps/app_dumpchan.c, main/logger.c, UPGRADE.txt, apps/app_verbose.c: verbosity: Fix performance of console verbose messages. The per console verbose level feature as previously implemented caused a large performance penalty. The fix required some minor incompatibilities if the new rasterisk is used to connect to an earlier version. If the new rasterisk connects to an older Asterisk version then the root console verbose level is always affected by the "core set verbose" command of the remote console even though it may appear to only affect the current console. If an older version of rasterisk connects to the new version then the "core set verbose" command will have no effect. * Fixed the verbose performance by not generating a verbose message if nothing is going to use it and then filtered any generated verbose messages before actually sending them to the remote consoles. * Split the "core set debug" and "core set verbose" CLI commands to remove the per module verbose support that cannot work with the per console verbose level. * Added a silent option to the "core set verbose" command. * Fixed "core set debug off" tab completion. * Made "core show settings" list the current console verbosity in addition to the root console verbosity. * Changed the default verbose level of the 'verbose' setting in the logger.conf [logfiles] section. The default is now to once again follow the current root console level. As a result, using the AMI Command action with "core set verbose" could again set the root console verbose level and affect the verbose level logged. (closes issue AST-1252) Reported by: Guenther Kelleter Review: https://reviewboard.asterisk.org/r/3114/ 2014-01-14 15:32 +0000 [r405362-405380] Matthew Jordan * channels/chan_sip.c: chan_sip: Hangup transferer/transferee when transfer to Parking fails When performing a SIP transfer to a Park extension, if the Park fails, chan_sip will currently not hang up either the transferer or the transfer target. This results in the channels being orphaned with no thread to service frames, resulting in stuck channels. This patch immediately hangs up the two channels if a Park fails. (closes issue ASTERISK-22834) Reported by: rsw686 Tested by: rsw686 (closes issue ASTERISK-23047) Reported by: Tommy Thompson Tested by: Tommy Thomspon Review: https://reviewboard.asterisk.org/r/3107 * res/Makefile: res/Makefile: alias dist-clean to distclean A 'make distclean' is equivalent to 'make dist-clean' in the top most Makefile. This patch updates the res/Makefile to recognize both distclean and dist-clean. Note that this is needed for removing build.mak, which can run into problems if the source file of Asterisk or its path is changed after build.mak is generated. (issue ASTERISK-22480) Reported by: Matt Jordan 2014-01-10 17:50 +0000 [r405281] Richard Mudgett * main/logger.c: Logging callid: Fix some sizeof() references per coding guidelines. 2014-01-09 16:49 +0000 [r405234] Kevin Harwell * res/res_rtp_asterisk.c: res_rtp_asterisk: Fails to resume WebRTC call from hold In ast_rtp_ice_start if the ice session create check list failed, start check was never initiated and ice_started was never set to true. Upon re-entering the function (for instance, [un]hold) it would try to create the check list again with duplicate remote candidates. Fixed so that if the create check list fails the necessary data structures are properly re-initialized for any subsequent retries. Note, it was decided to not stop ice support (by calling ast_rtp_ice_stop) on a check list failure because it possible things might still work. However, a debug message was added to help with any future troubleshooting. (closes issue ASTERISK-22911) Reported by: Vytis Valentinavičius Patches: works_on_my_machine.patch uploaded by xytis (license 6558) 2014-01-09 15:41 +0000 [r405215] Matthew Jordan * apps/confbridge/conf_state_multi_marked.c, apps/app_confbridge.c: app_confbridge: Fix crash caused when waitmarked/marked users leave together When waitmarked users join a ConfBridge, the conference state is transitioned from EMPTY -> INACTIVE. In this state, the users are maintined in a waiting users list. When a marked user joins, the ConfBridge conference transitions from INACTIVE -> MULTI_MARKED, and all users are put onto the active list of users. This process works correctly. When the marked user leaves, if they are the last marked user, the MULTI_MARKED state does the following: (1) It plays back a message to the bridge stating that the leader has left the conference. This requires an unlocking of the bridge. (2) It moves waitmarked users back to the waiting list (3) It transitions to the appropriate state: in this case, INACTIVE However, because it plays the prompt back to the bridge before moving the users and before finishing the state transition, this creates a race condition: with the bridge unlocked, waitmarked users who leave the conference (or are kicked from it) can cause a state transition of the bridge to another state before the conference is transitioned to the INACTIVE state. This causes the state machine to get a bit wonky, often leading to a crash when the MULTI_MARKED state attempts to conclude its processing. This patch fixes this problem: (1) It prevents kicked users from being kicked again. That's just a nicety. (2) More importantly, it fixes the race condition by only playing the prompt once the state has transitioned correctly to INACTIVE. If waitmarked users sneak out during the prompt being played, no harm no foul. Review: https://reviewboard.asterisk.org/r/3108/ (closes issue AST-1258) Reported by: Steve Pitts 2014-01-09 14:12 +0000 [r405161] Walter Doekes * apps/app_dumpchan.c, /: "Minimun" typo. ........ Merged revisions 405160 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-08 16:17 +0000 [r405081-405091] Kinsey Moore * /, configure, configure.ac, pbx/pbx_lua.c: pbx_lua: Add support for Lua 5.2 This adds support for Lua 5.2 in pbx_lua which is available on newer operating systems. (closes issue ASTERISK-23011) Review: https://reviewboard.asterisk.org/r/3075/ Reported by: George Joseph Patch by: George Joseph ........ Merged revisions 405090 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * UPGRADE.txt, /: UPGRADE: Add a note about non-functionality Add a note that the "retry on 403 response to REGISTER" for chan_sip is non-functional in the versions in which it was first introduced. ........ Merged revisions 405088 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c: Add the missing part of r400140 When the patch to add retry-on-forbidden-response was committed, part of the patch for chan_sip was not committed which caused the feature to be entirely nonfunctional. This corrects the code in question. (closes issue ASTERISK-17138) Review: https://reviewboard.asterisk.org/r/2874 ........ Merged revisions 405033 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-03 22:24 +0000 [r404888] Tzafrir Cohen * main/asterisk.c, /: asterisk.c: suppress live_dangerously warning on rasterisk Even since the fixes of AST-2013-007, Asterisk prints the following warning on startup if the user decided to live dangerously: Privilege escalation protection disabled! See https://wiki.asterisk.org/wiki/x/1gKfAQ for more details. This message is intended for the logs and interactive startup. No need for it to appear on a remote console. This commit removes it from there. (closes issue ASTERISK-23084) Review: https://reviewboard.asterisk.org/r/3101/ ........ Merged revisions 404861 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-03 21:58 +0000 [r404773-404858] Kevin Harwell * cel/cel_pgsql.c, /: cel_pgsql: module not correctly reloading Upon reload the module unconditionally "unloaded" the module (freeing memory and setting pointers to NULL) and then when attempting a "load" if the config file had not changed then nothing would be reinitialized. By moving the "unload" to occur conditionally (reload only) after an attempted configuration load, but before module "loading" alleviates the issue. The module now loads/unloads/reloads correctly. (closes issue ASTERISK-22871) Reported by: Matteo ........ Merged revisions 404857 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_dahdi.c, /: chan_dahdi: dahdi show channels slices PRI channel dnid on output dahdi show channels output slices the callerid (which is dnid copied over on PRI channels). If the channel naming structures look like: 'DAHDI/i1/1408409XXXX-6' then the output slices 1408409XXXX down to 1408409XXX. This patch just opens it up to 15 chars so you can see the whole thing. (closes issue ASTERISK-22918) Reported by: outtolunc Patches: svn_chan_dahdi.c.format12_15.diff.txt uploaded by outtolunc (license 5198) ........ Merged revisions 404784 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, apps/app_meetme.c: app_meetme: compiler warning Fixed a compiler warning (errors in 'dev-mode') given by gcc version 4.8.1. The one in app_meetme involved the 'sizeof-pointer-memaccess' (see: http://gcc.gnu.org/gcc-4.8/porting_to.html) warning. Fixed so it would no longer issue a warning and can compile again in 'dev-mode'. Review: https://reviewboard.asterisk.org/r/3098/ ........ Merged revisions 404742 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2014-01-02 19:35 +0000 [r404675] Scott Griepentrog * /, funcs/func_strings.c: func_strings: use memmove to prevent overlapping memory on strcpy When calling REPLACE() with an empty replace-char argument, strcpy is used to overwrite the the matching . However as the src and dest arguments to strcpy must not overlap, it causes other parts of the string to be overwritten with adjacent characters and the result is mangled. Patch replaces call to strcpy with memmove and adds a test suite case for REPLACE. (closes issue ASTERISK-22910) Reported by: Gareth Palmer Review: https://reviewboard.asterisk.org/r/3083/ Patches: func_strings.patch uploaded by Gareth Palmer (license 5169) ........ Merged revisions 404674 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-12-31 21:26 +0000 [r404579-404604] Kevin Harwell * /, cel/cel_pgsql.c: cel_pgsql: deadlock on unload and core_event_dispatcher A deadlock can happen between a thread unloading or reloading the cel_pgsql module and the core_event_dispatcher taskprocessor thread. Description of what is happening: Thread 1 (for example, a netconsole thread): a "module reload cel_pgsql" is launched the thread enter the "my_unload_module" function (cel_pgsql.c) the thread acquire the write lock on psql_columns the thread enter the "ast_event_unsubscribe" function (event.c) the thread try to acquire the write lock on ast_event_subs[sub->type] Thread 2 (core_event_dispatcher taskprocessor thread): the taskprocessor pop a CEL event the thread enter the "handle_event" function (event.c) the thread acquire the read lock on ast_event_subs[sub->type] the thread callback the "pgsql_log" function (cel_pgsql.c), since it's a subscriber of CEL events the thread try to acquire a read lock on psql_columns (closes issue ASTERISK-22854) Reported by: Etienne Lessard Patches: cel_pgsql_fix_deadlock_event.patch uploaded by hexanol (license 6394) ........ Merged revisions 404603 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/channel.c: channels.c: core show channeltypes slicing 'core show channeltypes' type column is being sliced, resulting in incomplete type names. (closes issue ASTERISK-22919) Reported by: outtolunc Patches: svn_channel.c.format_15.diff.txt uploaded by outtolunc (license 5198) 2013-12-20 21:15 +0000 [r404457] Scott Griepentrog * /, main/say.c: say.c: correct time for polish In ast_say_date_with_format_pl(), change ast_say_number() to use tm_sec instead of tm_mn. (closes issue ASTERISK-22856) Reported by: Robert Mordec Review: https://reviewboard.asterisk.org/r/3082/ Patches: say.c.patch uploaded by veilen (license 6555) ........ Merged revisions 404456 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-12-19 16:57 +0000 [r404344-404351] Scott Griepentrog * res/res_fax.c: res_fax.c: crash on framehook with no dsp in fax detect In fax_detect_framehook() a null pointer reference can occur where a voice frame is processed but no dsp is attached to the fax detection structure. The code block that rejects frames that detection cannot be processed on is checking for dsp but falls through when it should instead return, as this change implements. (closes issue ASTERISK-22942) Reported by: adomjan Review: https://reviewboard.asterisk.org/r/3076/ * main/db.c: astdb: crash in sqlite3 during shutdown When Asterisk is shut down, the astdb_atexit() function releases (finalize) the previously initiated (prepared) SQL statements in sqlite3. Another thread making a subsequent request can cause a crash in sqlite3. This patch eliminates that issue by resetting the statement pointer after it is released/cleared. The sqlite3 code detects the null pointer, and aborts the operation cleanly. (closes issue AST-1265) Reported by: Alexander Hömig (closes issue ASTERISK-22350) Reported by: Birger "WIMPy" Harzenetter Review: https://reviewboard.asterisk.org/r/3078/ 2013-12-19 08:15 +0000 [r404318] Alexandr Anikin * addons/ooh323c/src/ooGkClient.c, addons/chan_ooh323.c, addons/ooh323c/src/ooGkClient.h, addons/ooh323c/src/oochannels.c: Handle temporary failures on gk registration Introduce new 'stopped' state for gk client and restart gk client on failures Remove ooh323 stack command lock as it is not need now. (closes issue ASTERISK-21960) Reported by: Dmitry Melekhov Patches: ASTERISK-21960.patch ASTERISK-21960-stacklockup-2.patch Tested by: Dmitry Melekhov 2013-12-18 22:34 +0000 [r404275] Jason Parker * main/manager.c: Add AMI event for presence state. Review: https://reviewboard.asterisk.org/r/3039/ 2013-12-18 20:19 +0000 [r404219] Richard Mudgett * addons/ooh323c/src/ooTimer.c, /: ooh323c: Fix gcc 4.6.3 compiler warnings. ........ Merged revisions 404212 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-12-18 11:59 +0000 [r404136] Joshua Colp * /, res/res_calendar.c: res_calendar: Protect channel when adding datastore. This change adds a missing channel lock when adding a datastore to a channel. ........ Merged revisions 404135 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-12-18 00:28 +0000 [r404045-404087] Rusty Newton * /, funcs/func_strings.c: func_strings: Documentation fix for QUOTE() Example output was inaccurate. (issue ASTERISK-22970) (closes issue ASTERISK-22970) Reported by: Gareth Palmer Patches: func_strings.patch uploaded by Gareth Palmer (license 5169) ........ Merged revisions 404081 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/rtp_engine.c, channels/chan_iax2.c, apps/app_chanspy.c, apps/app_mixmonitor.c, include/asterisk/test.h, main/channel.c: Several components: fixing Typos in comments and code, "avaliable" instead of "available" (issue ASTERISK-23021) (closes issue ASTERISK-23021) Reported by: Jeremy Lainé Tested by: Rusty Newton Patches: available.patch uploaded by Jeremy Lainé (license 6561) 2013-12-16 17:14 +0000 [r403917] David M. Lee * funcs/func_realtime.c, main/pbx.c, main/tcptls.c, funcs/func_db.c, /, README-SERIOUSLY.bestpractices.txt, configs/asterisk.conf.sample, funcs/func_shell.c, funcs/func_env.c, funcs/func_lock.c, UPGRADE.txt, include/asterisk/pbx.h, main/asterisk.c: security: Inhibit execution of privilege escalating functions This patch allows individual dialplan functions to be marked as 'dangerous', to inhibit their execution from external sources. A 'dangerous' function is one which results in a privilege escalation. For example, if one were to read the channel variable SHELL(rm -rf /) Bad Things(TM) could happen; even if the external source has only read permissions. Execution from external sources may be enabled by setting 'live_dangerously' to 'yes' in the [options] section of asterisk.conf. Although doing so is not recommended. (closes issue ASTERISK-22905) Review: http://reviewboard.digium.internal/r/432/ ........ Merged revisions 403913 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-12-16 15:55 +0000 [r403855-403863] Scott Griepentrog * main/pbx.c, /: pbx.c: put copy of ast_exten.data on stack to prevent memory corruption During dialplan execution in pbx_extension_helper(), the contexts global read lock prevents link list corruption, but was released with a pointer to the ast_exten and data later used in variable substitution. Instead, this patch removes pbx_substitute_variables() and locates a copy of the ast_exten data on the stack before releasing the lock, where ast_exten could get free'd by another thread performing a module reload. (issue AST-1179) Reported by: Thomas Arimont (issue AST-1246) Reported by: Alexander Hömig Review: https://reviewboard.asterisk.org/r/3055/ ........ Merged revisions 403862 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, apps/app_sms.c: app_sms: BufferOverflow when receiving odd length 16 bit message This patch prevents an infinite loop overwriting memory when a message is received into the unpacksms16() function, where the length of the message is an odd number of bytes. (closes issue ASTERISK-22590) Reported by: Jan Juergens Tested by: Jan Juergens ........ Merged revisions 403853 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-12-11 19:14 +0000 [r403635] Russell Bryant * /, channels/chan_sip.c: Reset peer outboundproxy on sip.conf reload If you set a peer's outboundproxy and then removed it from the config, this would not get picked up in a config reload. This patch fixes that by resetting it in set_peer_defaults(). Closes ASTERISK-19454 Review: https://reviewboard.asterisk.org/r/3065/ ........ Merged revisions 403634 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-12-09 03:11 +0000 [r403450] Matthew Jordan * res/res_fax_spandsp.c, /: res_fax_spandsp: Always init T.38 session to avoid crashes during state change Prior to this patch, res_fax_spandsp was conservative with how it initialized the spandsp T.38 context. It would only initialize it if the driver thought the current state was a T.38 fax. While this works fine in nominal situations, in certain off nominal situations, res_fax_spandsp can believe that a T.38 fax will not occur when in fact one has started. In particular, this was discovered when res_fax would fall back to audio after timing out on a T.38 upgrade. The SIP channel driver would continue to retry the re-INVITE and - if the remote end responded after res_fax timed out with a 200 OK - a T.38 frame would be delivered to the res_fax stack when it no longer expected it. As it turns out, there does not appear to be any downside to always initializing the T.38 context, other than the actual memory allocation. Since that avoids this off nominal situation (and others which are equally likely hard to predict), this is the safest way to avoid this problem. Much thanks to Torrey as well for providing a scenario that reproduces this issue. (closes issue ASTERISK-21242) Reported by: Ashley Winters Tested by: Torrey Searle patches: always-init-t38.patch uploaded by awinters (License 6477) A_PARTY.xml uploaded by tsearle (License 5334) ........ Merged revisions 403449 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-12-02 17:55 +0000 [r403288] Alexandr Anikin * addons/chan_ooh323.c: Check and reject non-digits e164 values on peers and general sections in ooh323.conf Regenerate e164 endpoint list on reload ooh323 (issue ASTERISK-22901) Reported by: Cyril CONSTANTIN Patches: ASTERISK-22901.patch 2013-11-22 17:11 +0000 [r403015] Joshua Colp * /, main/translate.c: translate: Move freeing of frame to after it is used. When translating from one format to another it is possible to inform the translation function that the source frame should be freed. This was previously done immediately but shortly afterwards the frame that was freed was accessed and used again. This change moves code around a bit so that the frame is now freed after it has been completely used. (closes issue ASTERISK-22788) Reported by: Corey Farrell Patches: translate-access-after-free-11up.patch uploaded by coreyfarrell (license 5909) translate-access-after-free-1.8.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 403014 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-11-12 15:00 +0000 [r402709] Kinsey Moore * channels/chan_dahdi.c, /: chan_dahdi: Fix crash during caller ID read Asterisk will sometimes core dump during caller id read on analog channels due to a negative return value from the read() in my_get_callerid that slips through as a negative length argument to callerid_feed() if the errno returned by DAHDI is ELAST. This change ensures that the negative return is treated properly even when it is ELAST. (closes issue ASTERISK-22746) Reported by: Michael Walton Patches: chan_dahdi_cid_crash_fix.r401410.patch uploaded by Michael Walton (License 6502) ........ Merged revisions 402708 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-11-11 19:26 +0000 [r402686] Mark Michelson * apps/app_confbridge.c: Get rid of some inaccurate comments. I'm doing some unrelated work in app_confbridge and finding these "invalid pin" comments to be annoying. Get out! 2013-11-11 15:35 +0000 [r402646] Kinsey Moore * /, apps/app_queue.c: app_queue: Honor penalty limits of 0 In the current app_queue code from 1.8 up to trunk the upper and lower penalties can be set to 0 but the value is interpreted to be disabled instead of actually setting limits. This is especially evident if min and max limits are set to 0 and members with penalties of 0 and 1 are in the queue since the member with penalty 1 will still receive calls. This patch adjusts the special disabled value to be INT_MAX instead of 0. (closes issue ASTERISK-20862) Review: https://reviewboard.asterisk.org/r/2995/ Reported by: Schmooze Com ........ Merged revisions 402645 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-11-08 22:48 +0000 [r402605] Scott Griepentrog * channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip: keep same local (from) tag for outgoing register requests For outbound register requests the tag on the From line was updated every 20 seconds prior to a successful registration and also once for each registration renewal. That behavior can possibly cause the registration to be denied because of the different tag, and is not aligned with the intention of RFC 3261 8.1.3.5 "... request constitutes a new transaction and SHOULD have the same value of the Call-ID, To, and From of the previous request...". This updates chan_sip to have a field to keep the local tag in the registration structure and use that tag for registration requests where the callid is also unchanged. (closes issue ASTERISK-12117) Reported by: Pawel Pierscionek Review: https://reviewboard.asterisk.org/r/2988/ ........ Merged revisions 402604 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-11-05 15:11 +0000 [r402450-402469] Kevin Harwell * /: Recorded merge of revisions 402468 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ chan_sip: notify dialog info ignores presentation indicator in callerid The presentation indicator in a callerid (e.g. set by dialplan function Set(CALLERID(name-pres)= ...)) is not checked when SIP Dialog Info Notifies are generated during extension monitoring. Added a check to make sure the name and/or number presentations on the callee (remote identity) are set to allow. If they are restricted then "anonymous" is used instead. (closes issue AST-1175) Reported by: Thomas Arimont Review: https://reviewboard.asterisk.org/r/2976/ * channels/chan_sip.c: chan_sip: notify dialog info ignores presentation indicator in callerid The presentation indicator in a callerid (e.g. set by dialplan function Set(CALLERID(name-pres)= ...)) is not checked when SIP Dialog Info Notifies are generated during extension monitoring. Added a check to make sure the name and/or number presentations on the callee (remote identity) are set to allow. If they are restricted then "anonymous" is used instead. (closes issue AST-1175) Reported by: Thomas Arimont Review: https://reviewboard.asterisk.org/r/2976/ 2013-11-02 02:11 +0000 [r402407-402425] Richard Mudgett * apps/confbridge/conf_state_inactive.c, apps/confbridge/conf_state_single_marked.c, apps/confbridge/include/confbridge.h, apps/confbridge/conf_state_multi.c, apps/app_confbridge.c, apps/confbridge/conf_state_multi_marked.c, apps/confbridge/conf_state.c, apps/confbridge/conf_state_single.c: confbridge: Separate user muting from system muting overrides. The system overrides the user muting requests when MOH is playing or a waitmarked user is waiting for a marked user to join. System muting overrides interfere with what the user may wish the muting to be when the system override ends. * User muting requests are now independent of the system muting overrides. The effective muting is now the logical or of the user request and system override. * Added a Muted column to the CLI "confbridge list " command. * Added a Muted header to the AMI ConfbridgeList action ConfbridgeList event. (closes issue AST-1102) Reported by: John Bigelow Review: https://reviewboard.asterisk.org/r/2960/ * main/config.c, configs/confbridge.conf.sample: config: Allow ConfBridge DTMF menus to have '#' as the first digit. ConfBridge allows custom DTMF menus to be created in the confbridge.conf file by assigning a DTMF key sequence to a sequence of actions as follows: DTMF-sequence = action,action... Unfortunately, the normal config file processing code interprets an initial '#' character as starting a directive such as #include. * Add the ability to escape the first non-blank character in a config line so the '#' character can be used without triggering the directive processing code. (closes issue AFS-2) (closes issue ASTERISK-22478) Reported by: Nicolas Tanski Patches: jira_asterisk_22478_v11.patch (license #5621) patch uploaded by rmudgett (modified) Review: https://reviewboard.asterisk.org/r/2969/ 2013-11-01 12:31 +0000 [r402345] Kinsey Moore * include/asterisk/rtp_engine.h, res/res_rtp_asterisk.c, channels/chan_sip.c: chan_sip: Fix RTCP port for SRFLX ICE candidates This corrects one-way audio between Asterisk and Chrome/jssip as a result of Asterisk inserting the incorrect RTCP port into RTCP SRFLX ICE candidates. This also exposes an ICE component enumeration to extract further details from candidates. (closes issue ASTERISK-21383) Reported by: Shaun Clark Review: https://reviewboard.asterisk.org/r/2967/ 2013-10-31 15:59 +0000 [r402288] Matthew Jordan * main/loader.c, /: core/loader: Don't call dlclose in a while loop For awhile now, we've noticed continuous integration builds hanging on CentOS 6 64-bit build agents. After resolving a number of problems with symbols, strange locks, and other shenanigans, the problem has persisted. In all cases, gdb shows the Asterisk process stuck in loader.c on one of the infinite while loops that calls dlclose repeatedly until success. The documentation of dlclose states that it returns 0 on success; any other value on error. It does not state that repeatedly calling it will eventually clear those errors. Most likely, the repeated calls to dlclose was to force a close by exhausting the references on the library; however, that will never succeed if: (a) There is some fundamental error at work in the loaded library that precludes unloading it (b) Some other loaded module is referencing a symbol in the currently loaded module This results in Asterisk sitting forever. Since we have matching pairs of dlopen/dlclose, this patch opts to only call dlclose once, and log out as an ERROR if dlclose fails to return success. If nothing else, this might help to determine why on the CentOS 6 64-bit build agent things are not closing successfully. Review: https://reviewboard.asterisk.org/r/2970 ........ Merged revisions 402287 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-29 23:42 +0000 [r402225] Rusty Newton * sounds/Makefile, /: Updates for 1.4.25 core sounds and 1.4.14 extra sounds, plus new en_GB language set The new sound packages relate to issues: ASTERISK-22544, ASTERISK-22411, ASTERISK-21413, ASTERISK-20782 Modified sounds/Makefile for the new sound versions and to account for the new en_GB language set. (issue ASTERISK-22659) (closes issue ASTERISK-22659) (closes issue ASTERISK-22411) (closes issue ASTERISK-22544) ........ Merged revisions 402224 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-29 12:49 +0000 [r402151] Matthew Jordan * main/xmldoc.c, main/channel.c, main/pbx.c, /, main/translate.c: Remove some spammy debug messages; improve clarity of others Debug messages aren't free. Even when the debug level is sufficiently low such that the messages are never evaluated, there is a cost to having to parse Asterisk logs that contain debug messages that (a) fail to convey sufficient information or (b) occur so frequently as to be next to meaningless. Based on having to stare at lots of DEBUG messages, this patch makes the following changes: * channel.c: When copying variables from a parent channel to a child channel, specify the channels involved. Do not log anything for a variable that is not inherited; the fact that it doesn't have an _ or __ already signifies that it won't be inherited. * pbx.c: Specify what function evaluation has occurred that created the result. * translate.c: Bump up the translator path messages to 10. I've never once had to use these debug messages, and for each format that is registered (on startup) and unregistered (on shutdown) the entire f^2 matrix is logged out. For short tests in the Asterisk Test Suite, this should make finding the actual test much easier. * xmldoc.c: The debug message that 'blah' is not found in the tree is expected. Often, description elements - which are not required - are not provided. This debug message adds no additional value, as it is not indicative of an error or helpful in debugging which element did not contain a 'blah' element as a child. If an element is supposed to contain a child element, then that XML tree should have failed validation in the first place. Review: https://reviewboard.asterisk.org/r/2966/ ........ Merged revisions 402150 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-28 14:50 +0000 [r402111] Michael L. Young * channels/chan_sip.c, UPGRADE.txt: chan_sip: Clarify 'Forcerport' Setting Displayed When Running "sip show peers" While looking at ASTERISK-22236, Walter Doekes pointed out that when running "sip show peers", the setting being displayed can be confusing. The display of "N" used to mean NAT (i.e. yes). The NAT setting has gone through many different changes resulting in the display of different characters to try and convey what the current setting is for 'Forcerport' (A for Auto and Forcerport is currently on, a for Auto but Forcerport is off, Y for yes, and N for no). During the initial code review to try and clarify these settings (especially since "N" no longer meant what it used to mean in prior versions of Asterisk), Mark Michelson suggested using the full space available to display the settings which helped to make the settings very clear. That was a great suggestion. Therefore, this patch does the following: * The column for 'Forcerport' now will show: Auto (Yes), Auto (No), Yes, or No. * A column for the 'Comedia' setting has been added. It too will display the setting in a non-cryptic way: Auto (Yes), Auto (No), Yes, or No. * UPGRADE.txt has been updated to document this change. (closes issue ASTERISK-22728) Reported by: Walter Doekes Tested by: Michael L. Young Patches: asterisk-forcerport-display-clarification_v3.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2941 2013-12-17 Asterisk Development Team * Asterisk 11.7.0 Released. 2013-12-16 Asterisk Development Team * Asterisk 11.7.0-rc2 Released. * AST-2013-006 - app_sms: BufferOverflow when receiving odd length 16 bit message This patch prevents an infinite loop overwriting memory when a message is received into the unpacksms16() function, where the length of the message is an odd number of bytes. (closes issue ASTERISK-22590) * AST-2013-007 - security: Inhibit execution of privilege escalating functions This patch allows individual dialplan functions to be marked as 'dangerous', to inhibit their execution from external sources. A 'dangerous' function is one which results in a privilege escalation. For example, if one were to read the channel variable SHELL(rm -rf /) Bad Things(TM) could happen; even if the external source has only read permissions. Execution from external sources may be enabled by setting 'live_dangerously' to 'yes' in the [options] section of asterisk.conf. Although doing so is not recommended. (closes issue ASTERISK-22905) 2013-10-28 Asterisk Development Team * Asterisk 11.7.0-rc1 Released. 2013-10-25 23:32 +0000 [r401960-402042] Scott Griepentrog * /, include/asterisk/rtp_engine.h, main/rtp_engine.c: rtp_engine: fix rtp payloads copy and improve argument names In function ast_rtp_instance_early _bridge_make_compatible the use of instance 0/1 as arguments doesn't clearly communicate a direction that the copying of payloads from the source channel to the destination channel will occur, making it more probable to have the arguments to ast_rtp_codecs_payloads_copy() put in the reverse order. This patch renames the arguments with _dst and _src suffixes and corrects the copy direction. (closes issue ASTERISK-21464) Reported by: Kevin Stewart Review: https://reviewboard.asterisk.org/r/2894/ ........ Merged revisions 402000 from http://svn.asterisk.org/svn/asterisk/branches/1.8 Test shows rtpmap:119 being copied per this change, but is not in sip invite * include/asterisk/pbx.h, main/pbx.c, /: pbx.c: fix confused match caller id that deleted exten still in hash This fixes a bug where a zero length callerid match adjacent to a no match callerid extension entry would be deleted together, which then resulted in hashtable references to free'd memory. A third state of the matchcid value has been added to indicate match to any extension which allows enforcing comparison of matchcid on/off without errors. (closes issue AST-1235) Reported by: Guenther Kelleter Review: https://reviewboard.asterisk.org/r/2930/ ........ Merged revisions 401959 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-25 17:29 +0000 [r401896-401935] Jonathan Rose * /, utils/clicompat.c: Put clicompat-r2.patch back in We've figured out how to resolve the problems this was causing in 12/trunk, so this can go back in now. (issue ASTERISK-22467) Reported by: Corey Farrell Patches: clicompat-r2.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 401914 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * utils/clicompat.c, /: revert clicompat-r2.patch from r401704 Patch caused the following build errors against testsuite https://bamboo.asterisk.org/bamboo/browse/AST-ATRUNKBUILD4-244 (issue ASTERISK-22467) Reported by: Corey Farrell ........ Merged revisions 401895 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-25 16:05 +0000 [r401833-401884] Kevin Harwell * channels/chan_sip.c: chan_sip: Allow a sip peer to accept both AVP and AVPF calls Adapts the behaviour of avpf to only impact the format of outgoing calls. For inbound calls, both AVP and AVPF calls will be accepted regardless of the value of avpf in the configuration. (closes issue ASTERISK-22005) Reported by: Torrey Searle Patches: optional_avpf_trunk.patch uploaded by tsearle (license 5334) * main/logger.c: Logging: Logging types ignored after specifying a verbose level If one specified a verbose level within a logging facility in logger.conf then any component after it was ignored. Fixed so all values are correctly read. (closes issue ASTERISK-22456) Reported by: Kevin Harwell 2013-10-24 20:33 +0000 [r401620-401830] Jonathan Rose * /, main/utils.c: utils: Fix memory leaks and missed unregistration of CLI commands on shutdown Final set of patches in a series of memory leak/cleanup patches by Corey Farrell (closes issue ASTERISK-22467) Reported by: Corey Farrell Patches: main-utils-1.8.patch uploaded by coreyfarrell (license 5909) main-utils-11.patch uploaded by coreyfarrell (license 5909) main-utils-12up.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 401829 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, tests/test_linkedlists.c: test_linkedlists: Fix memory leak (issue ASTERISK-22467) Reported by: Corey Farrell Patches: test_linkedlists-1.8.patch uploaded by coreyfarrell (license 5909) test_linkedlists-11up.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 401790 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/jitterbuf.c, /: jitterbuf: Fix memory leak on jitter buffer reset (issue ASTERISK-22467) Reported by: Corey Farrell Patches: jitterbuf-jb_reset-leak-1.8.patch jitterbuf-jb_reset-leak-11up.patch ........ Merged revisions 401786 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, main/astobj2.c: astobj2: Unregister debug CLI commands at exit (issue ASTERISK-22467) Reported by: Corey Farrell Patches: astobj2-clean-debug-cli-1.8-11.patch uploaded by coreyfarrell (license 5909) astobj2-clean-debug-cli-12up.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 401781 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, apps/app_voicemail.c: app_voicemail: Memory Leaks against tests (issue ASTERISK-22467) Reported by: Corey Farrell Patches: app_voicemail-1.8.patch uploaded by coreyfarrell (license 5909) app_voicemail-11up.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 401743 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * utils/clicompat.c, channels/chan_dahdi.c, codecs/ilbc/doCPLC.c, main/data.c, /, main/app.c, main/asterisk.c: memory leaks: Memory leak cleanup patch by Corey Farrell (second set) Also covers ast_app_parse_timelen-fail-zero-length.patch, but the patch was replaced with one of my own. (issue ASTERISK-22467) Reported by: Corey Farrell Patches: chan_dahdi-cleanup_push.patch uploaded by coreyfarrell (license 5909) clicompat-r2.patch uploaded by coreyfarrell (license 5909) codecs-ilbc-doCPLC.patch uploaded by coreyfarrell (license 5909) data-cleanup-test-registration.patch uploaded by coreyfarrell (license 5909) main-asterisk-kill-listener.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 401704 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * tests/test_dlinklists.c, funcs/func_math.c, channels/sip/reqresp_parser.c, main/test.c, main/editline/readline.c, /: memory leaks: Memory leak cleanup patch by Corey Farrell (first set) (issue ASTERSIK-22467) Reported by: Corey Farrell Patches: chan_sip-parse_contact_header_test-free-contacts.patch uploaded by coreyfarrell (license 5909) cli-filename-completion-leak.patch uploaded by coreyfarrell (license 5909) func_math.patch uploaded by corefarrell (license 5909) main-test-cleanup.patch uploaded by coreyfarrell (license 5909) test_dlinklists.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 401660 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_rtp_asterisk.c, /, main/translate.c: res_rtp_asterisk: Address jittery DTMF events in RTP streams (closes issue ASTERISK-21170) Reported by: NITESH BANSAL Patches: dtmf-timestamp.patch uploaded by NITESH BANSAL (license 6418) Review: https://reviewboard.asterisk.org/r/2938/ ........ Merged revisions 401619 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-23 16:46 +0000 [r401579] Richard Mudgett * cdr/cdr_adaptive_odbc.c, /: cdr_adaptive_odbc: Also apply a filter when the CDR value is empty. Extra CDR records are written if a filtered CDR value is empty because the filter is not checked. (closes issue ASTERISK-22272) Reported by: Jordi Llull Chavarria ........ Merged revisions 401577 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-23 15:22 +0000 [r401538] Kinsey Moore * channels/chan_mgcp.c, /: chan_mgcp: Properly handle malformed media lines This corrects a situation in which a media line was not parsed properly and resulted in a crash. (closes issue ASTERISK-21190) Reported by: adomjan Patches: chan_mgcp.c-sscnaf_fix uploaded by adomjan (License 5448) ........ Merged revisions 401537 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-23 11:11 +0000 [r401498] Joshua Colp * /, channels/chan_sip.c: Fix an issue where an incompatible audio format may be added to SDP. If preferred codecs included any non-audio format the code would mistakenly add the audio format, even if it was not a joint capability with the remote side. (closes issue ASTERISK-21131) Reported by: nbougues Patches: patch_unsupported_codec_1.8.patch uploaded by nbougues (license 6470) ........ Merged revisions 401497 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-22 22:42 +0000 [r401446] Matthew Jordan * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fix crash when RTCP is not available during SSRC change In r400089, a patch was put in to correct erroneous RTCP statistic resets. Unfortunately, ast_rtp_read can be called on an RTP instance that does not have RTCP information. This patch prevents that crash by only resetting the statistics if we do actually have an RTCP instance. (issue AST-1174) (closes issue ASTERISK-22667) Reported by: John Bigelow ........ Merged revisions 401445 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-22 19:02 +0000 [r401379-401433] Richard Mudgett * apps/app_queue.c: app_queue: Fix CLI "queue remove member" queue_log entry. The queue_log entry resulting from CLI "queue remove member" when log_membername_as_agent is enabled is wrong. It always uses the interface name instead of the member name in the queue_log entry. * Get the queue member before removing it from the queue so the member name is available for the queue_log entry. (closes issue ASTERISK-21826) Reported by: Oscar Esteve Patches: fix_membername.diff (license #6505) patch uploaded by Oscar Esteve (modified to fix potential ref leak) * channels/sig_analog.c, /: chan_dahdi: Fix unable to get index warning when transferring an analog call. Transferring an analog call using flashhooks generated an unable to get index WARNING message when the transfer is completed. * Removed unnecessary analog subchannel shell games when transferring a call using flashhooks. Thanks to Tzafrir Cohen for mentioning this in a comment on issue ASTERISK-22720. ........ Merged revisions 401378 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-21 19:46 +0000 [r401326] Kevin Harwell * main/editline/term.c, /: Segfault in LIBEDIT_INTERNAL after tgetstr(), when libncurses5-dev isn't installed Include the appropriate declarations when not using termcap, but term+curses and [n]curses do not exist. (closes issue ASTERISK-22351) Reported by: A. Iglesias Patches: issueA22351_libedit_internal_without_ncurses_dev.patch uploaded by wdoekes (license 5674) ........ Merged revisions 401325 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-18 15:11 +0000 [r401182] Michael L. Young * channels/chan_sip.c: Remove Port Restriction When Checking For NAT When trying to determine if a peer is behind NAT, we should not be using the ports when comparing addresses. This patch removes the port from being checked and just useds the addresses now. (closes issue ASTERISK-22729) Reported by: Michael L. Young Tested by: Michael L. Young Patches: asterisk-remove-using-port-for-nat-check.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2927/ 2013-10-18 14:43 +0000 [r401179] Walter Doekes * main/channel.c, /: Properly copy/remove the device state cache flag over a masquerade. In r378303 the AST_FLAG_DISABLE_DEVSTATE_CACHE flag was added that tells the devstate system to not cache states for non-real devices. However, when optimizing away channels (ast_do_masquerade), that flag wasn't copied. In my case, using Local devices as queue members created a situation where the endpoint was considered in use, but the state change of the device being available again was ignored (not cached). The endpoint channel was optimized into the (previously) Local channel, but kept the do-not-cache flag. The end result being that the queue member apparently stayed in use forever. (closes issue ASTERISK-22718) Reported by: Walter Doekes Review: https://reviewboard.asterisk.org/r/2925/ ........ Merged revisions 401178 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-17 20:32 +0000 [r401167] Michael L. Young * channels/chan_sip.c: Fix Setting A chan_sip Dialog's SIP_NAT_FORCE_RPORT Flag A condition was added in a commit to fix ASTERISK-21374, that, if the SIP_PAGE3_NAT_AUTO_RPORT flag was set, to then copy a peer's SIP_NAT_FORCE_RPORT flag to the dialog. This condition should not have been there since it assumed that if Asterisk is in an environment where NAT is involved, that the auto_* nat settings or force_rport setting would be on in the global settings. If the nat setting in the global setting is set to 'nat=no' and then turned on for peers (which is not quite the recommended way, although it is allowed) this flag is never copied to the dialog resulting in problems like, REGISTER replies going to the wrong port. This patch removes this conditional check and will now always use the peer's flag which by this point in the code the checks on whether the peer is behind NAT or not (if using auto_force_rport) have already been run. (closes issue ASTERISK-22236) Reported by: Filip Frank Tested by: Michael L. Young Patches: asterisk-2236-always-set-rport.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2919/ 2013-10-17 15:36 +0000 [r401120] Kinsey Moore * /, res/res_xmpp.c, res/res_jabber.c: Reduce log level of a non-pubsub error message Drop an error log message to debug level 1 since distributed device state functions correctly when receiving this message and it spams the logs. (closes issue ASTERISK-22410) Reported by: abelbeck Patches: asterisk-1.8-res_jabber-log-nonpubsub-error-to-debug.patch uploaded by abelbeck (License 5903) asterisk-11-res_xmpp-log-nonpubsub-error-to-debug.patch uploaded by abelbeck (License 5903) ........ Merged revisions 401119 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-16 11:52 +0000 [r401076] Walter Doekes * apps/app_queue.c, /: Don't check all realtime queues when doing "queue show some_queue". When using realtime queues, queues have to be fetched from the database every now and then to see if any info has been changed or to see if the queue has been removed. When fetching info for an individual queue, the pruning of other queues is unnecessarily costly. Review: https://reviewboard.asterisk.org/r/2907/ ........ Merged revisions 401049 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-15 19:57 +0000 [r401016] Richard Mudgett * channels/chan_iax2.c: chan_iax2: Fix channel left locked in off nominal code path. 2013-10-15 14:58 +0000 [r400971] Mark Michelson * /, channels/chan_sip.c: Prevent chan_sip from sending duplicate BYEs. When a 200 OK for an initial INVITE is received, we were doing the right thing by ACKing and sending an immediate BYE. However, we also were doing the wrong thing and queuing an answer frame, thus causing the call to be answered. This would cause the call to be hung up by the channel thread, thus resulting in a second BYE being sent out. In this fix, I also have set the hangupcause to be correct since the initial BYE being sent by Asterisk had an unknown hangup cause. I have changed to using "Bearer capabilty not available" since the call was hung up due to an SDP offer/answer error. (closes issue ASTERISK-22621) reported by Kinsey Moore ........ Merged revisions 400970 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-14 21:44 +0000 [r400909] Richard Mudgett * channels/chan_dahdi.c, /: chan_dahdi: Reflect the set software gain in the CLI "dahdi show channel" output. * Remember the swgain setting from CLI "dahdi set swgain" command so the CLI "dahdi show channel" output will reflect the current setting. * Updated CLI "dahdi set hwgain" and "dahdi set swgain" documentation. (issue ASTERISK-22429) Reported by: Jaco Kroon Patches: jira_asterisk_22429_v1.8_v2.patch (license #5621) patch uploaded by rmudgett ........ Merged revisions 400907 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-14 21:42 +0000 [r400908] Mark Michelson * /, channels/chan_sip.c: Do not increment the SDP version between 183 and 200 responses. Bumping the SDP version number can cause interoperability problems since receivers of the responses will expect that a 200 SDP will be identical to a previous 183 SDP. (closes issue ASTERISK-21204) reported by NITESH BANSAL Patches: dont-increment-session-version-in-2xx-after-183.patch uploaded by NITESH BANSAL (License #6418) ........ Merged revisions 400906 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-08 22:27 +0000 [r400768] Kinsey Moore * /, configure, configure.ac: Add warning when compiling with iODBC support When running configure, libiodbc2 development headers will fulfill the requirement for ODBC development headers, but will not function properly. This adds a warning when libiodbc2 development headers are detected instead of unixodbc development headers. (closes issue ASTERISK-22459) Reported by: Patrick Maille Tested by: Walter Doekes Patches: issueA22459_warn_when_using_iodbc.patch uploaded by Walter Doekes (License 5674) ........ Merged revisions 400767 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-08 20:14 +0000 [r400723-400741] Richard Mudgett * UPGRADE.txt, apps/app_confbridge.c, apps/confbridge/conf_config_parser.c, configs/confbridge.conf.sample, apps/confbridge/include/confbridge.h: app_confbridge: Can now set the language used for announcements to the conference. ConfBridge now has the ability to set the language of announcements to the conference. The language can be set on a bridge profile in confbridge.conf or by the dialplan function CONFBRIDGE(bridge,language)=en. (closes issue ASTERISK-19983) Reported by: Jonathan White Patches: M19983_rev2.diff (license #5138) patch uploaded by junky (modified) Tested by: rmudgett * apps/confbridge/conf_config_parser.c: app_confbridge: Fix duplicate default_user profile. * Fixed looking in the wrong profiles container to see if the default_user profile is already created in verify_default_profiles(). The bridge profile container is never going to hold user profiles. :) 2013-10-08 18:18 +0000 [r400681-400697] Kinsey Moore * funcs/func_config.c, /: Fix func_config list entry allocation The AST_CONFIG dialplan function defined in func_config.c allocates its config file list entries using ast_malloc. List entry allocations destined for use with Asterisk's linked list API must be ast_calloc()d or otherwise initialized so that list pointers are set to NULL. These uses of ast_malloc have been replaced by ast_calloc to prevent dereferencing of uninitialized pointer values when traversing the list. (closes issue ASTERISK-22483) Reported by: Brian Scott ........ Merged revisions 400694 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_rtp_asterisk.c: Fix STUN crash when using IPv6 any address Ensure that when chan_sip binds to the IPv6 any address ([::]), IPv4 candidates are also added. (closes issue ASTERISK-21917) Reported by: Torrey Searle Patches: 0023_ipv6_stun_crash.patch uploaded by Torrey Searle (License 5334) 2013-10-06 17:09 +0000 [r400623] Michael L. Young * apps/app_queue.c, /: Fix Regression With Queuelog EXITWITHKEY Only Logging Two Out Of Four Fields Commit r62462 added two extra fields for logging "the original position the caller entered the queue at, and the amount of time the caller was waiting in the queue." But when r75969 was merged from 1.4 into trunk (r75977), these two fields disappeared. Those two extra fields were not logged in 1.4 and when the patch was merged, those fields went away. Therefore, this is a regression and was caught by the reporter because he was reading the awesome "Asterisk: The Definitive Guide" book. (closes issue ASTERISK-22197) Reported by: Dalius M. Tested by: Dalius M. Patches: asterisk-22197-q-log-exitwithkey.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2901/ ........ Merged revisions 400622 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-03 22:59 +0000 [r400470] Jonathan Rose * /, channels/chan_sip.c: chan_sip: Don't ignore expires value in contact header if it lacks semicolon (closes issue ASTERISK-22574) Reported by: Filip Jenicek Patches: chan_sip_expires.patch uploaded by Filip Jenicek (license 6277) ........ Merged revisions 400469 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-03 19:22 +0000 [r400394-400421] Kinsey Moore * main/security_events.c: Fix security events for AMI invalid password In r337595, additional security events were added for chan_sip authentication failures. The new IEs added to the existing invalid password event were defined as required IEs, but existing users of the event did not set the new IEs and could not since they didn't apply to existing uses. They are now marked as optional IEs. (closes issue ASTERISK-22578) Reported by: Matt Jordan * res/res_rtp_multicast.c, /: Ensure res_rtp_mutlicast sets SSRC properly This fixes a bug where the SSRC field on multicast RTP can be stuck at 0 which can cause problems for endpoints trying to make sense of incoming streams. (closes issue ASTERISK-22567) Reported by: Simone Camporeale Patches: 22567_res_mulitcast_ssrc.patch uploaded by Simone Camporeale (License 6536) ........ Merged revisions 400393 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-02 21:31 +0000 [r400315] Michael L. Young * /, channels/chan_iax2.c: Cast Integer Argument To Unsigned Char The member reg in the peercnt structure is an unsigned char and peercnt_modify() is expecting an unsigned char argument which gets assigned to peercnt->reg. This patch fixes that by casting the integer argument being passed to peercnt_modify to unsigned char. ........ Merged revisions 400314 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-02 17:36 +0000 [r400279] Tzafrir Cohen * Makefile, doc/astdb2sqlite3.8 (added), doc/astdb2bdb.8 (added): man pages for astdb2bdb and astdb2sqlite3 Review: https://reviewboard.asterisk.org/r/2898/ 2013-09-30 15:26 +0000 [r400140] Kinsey Moore * UPGRADE.txt, configs/sip.conf.sample, /, channels/chan_sip.c: Allow Asterisk to retry after 403 on register This adds a global option in chan_sip to allow it to continue attempting registration if a 403 is received, clearing the cached nonce and treating it as a non-fatal response. Normally, this would cause registration attempts to that endpoint to stop. (closes issue ASTERISK-17138) Review: https://reviewboard.asterisk.org/r/2874/ Reported by: Rudi ........ Merged revisions 400137 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-28 22:21 +0000 [r400075-400093] Matthew Jordan * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Correct erroneous lost packet information in RTCP reports RTCP's calculation of the number of lost packets in an RTP stream is based on that stream's sequence number count, the number of received packets, and how many packets we expect to receive. When the SSRC for an RTP stream changes, there can - and almost always will be - a large jump in the next packet's timestamp and sequence number. If we don't reset the number of received packets, sequence number count, and other metrics used by RTCP, the next RR/SR report will use the previous SSRC's values to calculate the lost packet count for the new SSRC - resulting in a very large number of lost packets. This patch modifies res_rtp_asterisk such that, if it detects a SSRC change, it will reset the various values used by the RTCP calculations. From the perspective of RTCP, this appears as a new media stream - which is what it is. Review: https://reviewboard.asterisk.org/r/2886/ (closes issue AST-1174) Reported by: Thomas Arimont ........ Merged revisions 400089 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, configure, configure.ac: Add check for openSUSE when detecting bfd library In ASTERISK-17842, some additional library checks were added to the configure script so that the bfd library could be found on CentOS and Fedora systems. As it turns out, openSUSE requires an additional library. This patch adds another check to the configure script for openSUSE that will add that library. Review: https://reviewboard.asterisk.org/r/2885/ (closes issue AST-1169) Reported by: Guenther Kelleter ........ Merged revisions 400073 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-27 21:35 +0000 [r400014] Richard Mudgett * /, channels/chan_sip.c, channels/sip/reqresp_parser.c: chan_sip: Increase some scratch buffer sizes dealing with caller id. * Eliminated an unnecessary initialization in check_user_full(). (closes issue ASTERISK-22477) Reported by: Michael Shepelev ........ Merged revisions 400013 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-27 17:24 +0000 [r399962] Jonathan Rose * /, channels/chan_sip.c, channels/sip/include/sip.h: chan_sip: Reject calls on 200 OKs if no SDP has been received When Asterisk receives a 200 OK in response to an invite, that peer should have sent an SDP at some point by then. If the channel has never received an SDP, media won't have been set and the remote address won't be known. Endpoints in general should not be doing this. This patch makes it so that Asterisk will simply hang up a call if it sends a 200 OK at this point. So far this odd behavior for endpoints has only been observed in tests which involved manually created SIP transactions in SIPp. (closes issue ASTERISK-22424) Reported by: Jonathan Rose Review: https://reviewboard.asterisk.org/r/2827/ ........ Merged revisions 399939 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-25 20:28 +0000 [r399834] Richard Mudgett * channels/sig_ss7.c, channels/chan_dahdi.c, /: chan_dahdi: CLI "core stop gracefully" has needless delay for PRI and SS7. The PRI and SS7 link control threads are not stopped correctly when the chan_dahdi.so module is unloaded. The link control threads pri_dchannel() and ss7_linkset() are not awakened from a poll() to cancel the thread. * Added a SIGURG signal after requesting the thread cancel to break the link control thread poll() immediately. For SS7 it was slightly worse, the link poll() timeout would always be whatever was the last libss7 scheduled event time used. If no libss7 scheduled event was pending, the thread could run more often than necessary. * Set nextms to 60 seconds for the ss7_linkset() poll() if there is no other libss7 scheduled event. ........ Merged revisions 399818 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-25 19:27 +0000 [r399795] Michael L. Young * /, channels/chan_sip.c: Fix Realtime Peer Update Problem When Un-registering And Expires Header In 200ok 1st Issue When a realtime peer sends an un-REGISTER request, Asterisk un-registers the peer but the database table record still has regseconds and fullcontact for the peer. This results in calls attempting to be routed to the peer which is no longer registered. The expected behavior is to get busy/congested when attempting to call an un-registered peer through the dialplan. What was discovered is that we are clearing out the peer's registration in the database in parse_register_contact() when calling expire_register() but then upon returning from parse_register_contact(), update_peer() is run which stores back in the database table regseconds and fullcontact. 2nd Issue The reporter pointed out that the 200 ok being returned by Asterisk after un-registering a peer contains a Contact header with ;expires= and the Expires header is not set to 0. This is actually a regression. Tests were created for this second issue (ASTERISK-22548). The tests have been reviewed and a Ship It! was received on those tests. This patch does the following: * Do not ignore the Expires header value even when it is set to 0. The patch sets the pvt->expiry earlier on in the function so that it is set properly and used. * If pvt->expiry is 0, do not call update_peer since that means the peer has already been un-registered and there is no need to update the database record again since nothing has changed. (closes issue ASTERISK-22428) Reported by: Ben Smithurst Tested by: Ben Smithurst, Michael L. Young Patches: asterisk-22428-rt-peer-update-and-expires-header.diff by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2869/ ........ Merged revisions 399794 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-24 20:20 +0000 [r399708] Richard Mudgett * /, channels/chan_iax2.c: chan_iax2: Prevent some needless breaking of the native IAX2 bridge. * Clean up some twisted code in the iax2_bridge() loop. * Add AST_CONTROL_VIDUPDATE and AST_CONTROL_SRCCHANGE to a list of frames to prevent the native bridge loop from breaking. * Passing the AST_CONTROL_T38_PARAMETERS frame should also allow FAX over a native IAX2 bridge. (issue ABE-2912) Review: https://reviewboard.asterisk.org/r/2870/ ........ Merged revisions 399697 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-20 22:35 +0000 [r399564] Kinsey Moore * main/config_options.c: Ensure global types in the config framework are initialized If a config object was allocated but one of its global objects was never encountered, then the global object's defaults were never applied. Ensure that global objects are initialized properly upon allocation instead of on configuration. Review: https://reviewboard.asterisk.org/r/2866/ 2013-09-20 14:23 +0000 [r399513] Kevin Harwell * main/logger.c: Fix memory leak in logger. Fixed a memory leak discovered in the logger where a temporary string buffer was not being freed. (closes issue ASTERISK-22540) Reported by: John Hardin 2013-09-19 16:45 +0000 [r399457] Jonathan Rose * /, channels/chan_sip.c: chan_sip: Make direct media reinvites for T38 put Asterisk in the media path Prior to this patch, Asterisk would incorrectly use the previous endpoint addresses in SDP in spite of providing its own port. T38 is never meant to be done through directmedia and Asterisk should always be in the media path for these streams. (closes issue ASTERISK-17273) Reported by: Kevin Stewart (closes issue ASTERISK-18706) Reported by: Jeremy Kister Review: https://reviewboard.asterisk.org/r/2853/ ........ Merged revisions 399456 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-10-21 Asterisk Development Team * Asterisk 11.6.0 Released. 2013-10-18 Asterisk Development Team * Asterisk 11.6.0-rc2 Released. * Remove Port Restriction When Checking For NAT When trying to determine if a peer is behind NAT, we should not be using the ports when comparing addresses. This patch removes the port from being checked and just useds the addresses now. * Properly copy/remove the device state cache flag over a masquerade. In r378303 the AST_FLAG_DISABLE_DEVSTATE_CACHE flag was added that tells the devstate system to not cache states for non-real devices. However, when optimizing away channels (ast_do_masquerade), that\ flag wasn't copied. In my case, using Local devices as queue members created a situation where the endpoint was considered in use, but the state change of the device being available again was ignored (not cached). The endpoint channel was optimized into the (previously) Local channel, but kept the do-not-cache flag. The end result being that the queue member apparently stayed in use forever. * Fix Setting A chan_sip Dialog's SIP_NAT_FORCE_RPORT Flag A condition was added in a commit to fix ASTERISK-21374, that, if the SIP_PAGE3_NAT_AUTO_RPORT flag was set, to then copy a peer's SIP_NAT_FORCE_RPORT flag to the dialog. This condition should not have been there since it assumed that if Asterisk is in an environment where NAT is involved, that the auto_* nat settings or force_rport setting would be on in the global settings. If the nat setting in the global setting is set to 'nat=no' and then turned on for peers (which is not quite the recommended way, although it is allowed) this flag is never copied to the dialog resulting in problems like, REGISTER replies going to the wrong port. This patch removes this conditional check and will now always use the peer's flag which by this point in the code the checks on whether the peer is behind NAT or not (if using auto_force_rport) have already been run. * Fix memory leak in logger Fixed a memory leak discovered in the logger where a temporary string buffer was not being freed. 2013-09-19 Asterisk Development Team * Asterisk 11.6.0-rc1 Released. 2013-09-18 23:36 +0000 [r399442] Richard Mudgett * main/udptl.c: UDPTL: Backport some fixes from v12 that should be in v11. Backported the following as applied to udptl.c: * -r398020 Fixup udpdl defaults if config file not present. * -r398533 Fixup improper use of ao2_global_obj_replace(). 2013-09-18 19:55 +0000 [r399403] Kinsey Moore * main/abstract_jb.c, /: Fix jitter buffer log file creation This adjusts '/'-to-'#' replacement to replace all instances of '/' instead of just the first to ensure that the jitter buffer log file gets the correct name as per Richard Kenner's suggestion. (closes issue ASTERISK-21036) Reported by: Richard Kenner ........ Merged revisions 399402 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-18 17:22 +0000 [r399353-399373] Matthew Jordan * /, build_tools/prep_tarball: Update prep_tarball with new documentation files on the Asterisk wiki This will now pull both a command reference for the version being prepared, as well as an Admin Guide that applies to all versions of Asterisk. (issue ASTERISK-22439) Reported by: Olle Johansson ........ Merged revisions 399351 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * bridges/bridge_softmix.c: Add a WARNING in bridge_softmix when a timing module isn't loaded If bridge_softmix fails to be created because no timing source is present in Asterisk, this will currently fail gracefully but with (most likely) a generic error message by whatever module tried to create the softmix bridge. This patch adds a more explicit warning so you can actually diagnose and fix the problem. Review: https://reviewboard.asterisk.org/r/2857/ 2013-09-18 01:34 +0000 [r399305] Michael L. Young * /, main/features.c: Fix Segfault When Syntax Of A Line Under [applicationmap] Is Invalid When processing the lines under the [applicationmap] context in features.conf, a segfault occurs from attempting to process a line with an invalid syntax (basically missing most of the arguments). Example: [applicationmap] automon=*6 * This patch moves the checking for empty arguments to before they are accessed. * Also, checked the "todo" comment and removed it. Some applications do not require arguments. (closes issue ASTERISK-22416) Reported by: CGI.NET Tested by: CGI.NET Patches: asterisk-22416-check-syntax-first_v2.diff by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2803 ........ Merged revisions 399304 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-17 18:32 +0000 [r399222-399267] Kevin Harwell * main/asterisk.c, main/logger.c: Remote console: more output discrepancies The remote console continued to have issues with its output. In this case CLI command output would either not show up (if verbose level = 0) or would contain verbose prefixes (if verbose level > 0) once log messages were sent to the remote console. The fix now now adds verbose prefix data to all new lines contained in a verbose log string. (closes issue ASTERISK-22450) Reported by: David Brillert (closes issue AST-1193) Reported by: Guenther Kelleter Review: https://reviewboard.asterisk.org/r/2825/ * apps/confbridge/conf_state_multi_marked.c: Confbridge: empty conference not being torn down Confbridge would not properly tear down an empty conference bridge when all users were kicked via end_marked=yes and at least one user was also set to wait_marked. This occurred because while end_marked users were being kicked and at least one was also set to wait_marked then the leave wait_marked handler would be called on that user, but there would be no waiting user (still considered active). The waiting users would decrement and now be negative. The conference would remain, but be put into an inactive state. The solution was to move from the active list to the wait list, those users with wait_marked set right before kicking. This allows both the active and wait users to decrement correctly and the confbridge to tear down properly. A crashed also occurred when trying to list the specific conference from the CLI. This happened because the conference specified was invalid. Since the conference properly tears down now there is no way to reference it thus alleviating the crash as well. (closes issue ASTERISK-21859) Reported by: Chris Gentle Review: https://reviewboard.asterisk.org/r/2848/ 2013-09-16 16:42 +0000 [r399159] Richard Mudgett * channels/chan_iax2.c, /: chan_iax2: Fix saving the wrong expiry time in astdb. When a new IAX2 client registers, the astdb database is updated with the value of minregexpire defined in iax.conf instead of using the expiry time that is provided by the client. The provided expiry time of the client is updated after inserting the astdb entry. As a consequence, restarting or reloading asterisk creates clients whose registration may expire before they reregister. The clients are therefore unavailable after minregexpire seconds until they reregister. * Move updating of the expiry time to before inserting into the astdb. (closes issue ASTERISK-22504) Reported by: Stefan Wachtler Patches: chan_iax2.c.patch (license #6533) patch uploaded by Stefan Wachtler ........ Merged revisions 399158 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-13 20:49 +0000 [r399099] David M. Lee * main/astobj2.c, /: Don't write to /tmp/refs when REF_DEBUG is not defined. If MALLOC_DEBUG is enabled, then the debug destructor for the container is used, which would erroneously write to /tmp/refs. This patch only uses the debug destructor if ref_debug is used. (closes issue ASTERISK-22536) ........ Merged revisions 399098 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-13 13:48 +0000 [r399034] Kinsey Moore * /, apps/app_meetme.c: Fix several crashes in MeetMeAdmin This change ensures that MeetMeAdmin commands requiring a user actually get a user and fixes another issue where an extra dereference could occur for a last-entered user being ejected if a user identifier was also provided. (closes issue ASTERISK-21907) Reported by: Alex Epshteyn Review: https://reviewboard.asterisk.org/r/2844/ ........ Merged revisions 399033 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-12 20:19 +0000 [r398986] Jonathan Rose * channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip: Revert r398835 due to failing tests involving originate (issue ASTERISK-22424) Reported by: Jonathan Rose ........ Merged revisions 398977 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-12 00:02 +0000 [r398881-398885] Rusty Newton * /, apps/app_queue.c: 'queue add member' help text correction You are adding dial strings to the queue, not channels. An aribitrary string could be used, but you are typically referencing a channel. Correcting the command help text. (issue ASTERISK-22263) (closes issue ASTERISK-22263) Reported By: Rusty Newton ........ Merged revisions 398884 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * configs/chan_dahdi.conf.sample, /: Documentation fix - waitfordialtone is not boolean, it's time in milliseconds Changing text in chan_dahdi.conf sample to be accurate. (issue ASTERISK-22308) (closes issue ASTERISK-22308) Reported By: Malcolm Davenport ........ Merged revisions 398880 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-11 19:46 +0000 [r398836] Jonathan Rose * channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip: Reject calls without prior SDP on 200 OK If we receive a 200 OK without SDP, we will now check to see if the remote address has been established for that channel's RTP session and if the to tag for that channel has changed from the most recent to tag in a response less than 200. If either a change has been made since the last to-tag was received or the remote address is unset, then we will drop the call. (closes issue ASTERISK-22424) Reported by: Jonathan Rose Review: https://reviewboard.asterisk.org/r/2827/diff/#index_header ........ Merged revisions 398835 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-11 18:01 +0000 [r398820] Russell Bryant * configs/confbridge.conf.sample: Fix typo in confbridge.conf.sample The denoise filter requires func_speex, not codec_speex. Fix this in the description of the denoise=yes option in confbridge.conf. 2013-09-10 17:56 +0000 [r398758] Richard Mudgett * main/event.c, res/res_musiconhold.c, main/indications.c, main/asterisk.c, main/xmldoc.c, main/cli.c, /, funcs/func_dialgroup.c, main/heap.c: Fix incorrect usages of ast_realloc(). There are several locations in the code base where this is done: buf = ast_realloc(buf, new_size); This is going to leak the original buf contents if the realloc fails. Review: https://reviewboard.asterisk.org/r/2832/ ........ Merged revisions 398757 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-10 17:48 +0000 [r398749-398753] David M. Lee * utils/check_expr.c, /: Fixed utils directory breakage from r398748, this time with extra hate. ........ Merged revisions 398752 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * utils/ael_main.c, utils/conf2ael.c, utils/check_expr.c, /: Fixed utils directory breakage from r398648 ........ Merged revisions 398748 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-09 23:21 +0000 [r398721] Richard Mudgett * /, main/astmm.c: MALLOC_DEBUG: Change fence magic number to be completely different from the freed magic number. Race conditions between freeing a nul terminated string and ast_strdup()'ing it are more likely to be detected if the fence and freed magic numbers are completely different. ........ Merged revisions 398703 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-09 20:02 +0000 [r398649] David M. Lee * main/lock.c, /, main/utils.c, include/asterisk/lock.h: Fix DEBUG_THREADS when lock is acquired in __constructor__ This patch fixes some long-standing bugs in debug threads that were exacerbated with recent Optional API work in Asterisk 12. With debug threads enabled, on some systems, there's a lock ordering problem between our mutex and glibc's mutex protecting its module list (Ubuntu Lucid, glibc 2.11.1 in this instance). In one thread, the module list will be locked before acquiring our mutex. In another thread, our mutex will be locked before locking the module list (which happens in the depths of calling backtrace()). This patch fixes this issue by moving backtrace() calls outside of critical sections that have the mutex acquired. The bigger change was to reentrancy tracking for ast_cond_{timed,}wait, which wrongly assumed that waiting on the mutex was equivalent to a single unlock (it actually suspends all recursive locks on the mutex). (closes issue ASTERISK-22455) Review: https://reviewboard.asterisk.org/r/2824/ ........ Merged revisions 398648 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-07 00:59 +0000 [r398510-398618] Kinsey Moore * res/res_xmpp.c: Prevent XMPP timeout on blank responses Sometimes the Google Voice servers have a bad habit of sending out 1 byte replies to the xmpp resource. When a blank 1 byte reply is received from the socket the buffer attempts to wait (endlessly) for the rest of the reply from google which effectively blocks the socket and google voice calls will no longer come into the server. This patch allows the xmpp module to correctly detect empty packets and send out ping replies to google. It also sets a socket timeout on the default socket which prevents the xmpp socket from closing and preventing future google voice calls from coming into the server. Furthermore instead of sending an empty reply back to google we send a proper xmpp ping reply back. This also adds several more socket messages. (closes issue ASTERISK-22347) Reported by: Andrew Nagy Review: https://reviewboard.asterisk.org/r/2771 Patches: xmpp_fix_1.diff uploaded by Andrew Nagy (License #6524) * /, res/res_xmpp.c, res/res_jabber.c: Commit the remainder of r398523 This is a missing part of the commit in revision 398523 that corrects the name of a variable. (issue ASTERISK-22435) ........ Merged revisions 398576 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, res/res_xmpp.c, res/res_jabber.c: Fix Jabber/XMPP distributed MWI The mailbox and context are swapped on the receiving end for all users of Jabber and XMPP distributed MWI in Asterisk 1.8 and all more recent versions. This swaps those values to be correct when publishing to the internal event system from Jabber/XMPP distributed MWI state. (closes issue ASTERISK-22435) Reported by: abelbeck Tested by: Michael Keuter Patches: asterisk-1.8-res_jabber-aji_handle_pubsub_event.patch uploaded by abelbeck asterisk-11-res_xmpp-xmpp_pubsub_handle_event.patch uploaded by abelbeck ........ Merged revisions 398523 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_h323.c: Fix chan_h323 compilation This fixes the things in chan_h323 that were missed or ignored in the great channel opaquification and gets chan_h323 back into a compiling state. (closes issue ASTERISK-22365) Reported by: Dmitry Melekhov Patches: chan_h323.patch uploaded by Dmitry Melekhov 2013-09-05 19:13 +0000 [r398302-398457] Richard Mudgett * channels/chan_iax2.c, /: chan_iax2: Reduce indentation in __attempt_transmit(). * Reduce indentation in __attempt_transmit(). * Don't update the static last error time variable every time in __schedule_action() and socket_read(). ........ Merged revisions 398456 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_iax2.c, /: chan_iax2: Fix stray reference to worker thread idle_list. * Fix stray reference to idle_list in cleanup_thread_list(). This may be the reason for the note in iax2_process_thread() about threads not being removed from the task lists. * Move cleanup_thread_list(&idle_list) to after the other lists are cleaned up. ........ Merged revisions 398416 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_iax2.c, /: chan_iax2: Fix bridgecallno deadlock avoidance. * Fix bridgecallno deadlock avoidance. When doing deadlock avoidance, you need to retest the status of values for each loop to see if you still need the lock for bridgecallno. * As a safety check, after acquiring the bridgecallno lock you should check if iaxs[bridgecallno] is NULL just like the current callno checks. * Move setting thread->iostate to IAX_IOSTATE_IDLE to after processing any deferred frames to ensure that the iostate is IDLE when it is placed back into the idle list. defer_full_frame() tries to ensure iax2_process_thread() wakes up to process the frame. ........ Merged revisions 398379 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/iax2-parser.c: chan_iax2: Add missing control frame names to debug frame decode output. (Part 2) * channels/iax2-parser.c, /: chan_iax2: Add missing control frame names to debug frame decode output. ........ Merged revisions 398301 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-04 21:33 +0000 [r398281-398285] Jonathan Rose * tests/test_voicemail_api.c: unit tests: test_voicemail_api leaks stringfields from snapshots (closes issue ASTERISK-22414) Reported by: Corey Farrell Patches: test_voicemail_api-leaks-11.patch uploaded by coreyfarrell (license 5909) * apps/app_voicemail.c: app_voicemail: Fix leaking config objects when msg_id doesn't match (issues ASTERISK-22414) Reported by: Corey Farrell Patch: test_voicemail_api-leaks-11.patch uploaded by coreyfarrell (license 5909) 2013-09-04 15:57 +0000 [r398236] Richard Mudgett * channels/chan_misdn.c, /: chan_misdn: Fix misdn debug output printed with arbitrary verbose levels. Fix the misdn debug output to remote consoles. chan_misdn uses ast_console_puts() which doesn't know about verbose levels. Better to use ast_verbose() instead. Without this patch the misdn debug messages are appended to the verbose level which ever was set by the message sent to the console before, i.e. any undefined level. (closes issue AST-1218) Reported by: Guenther Kelleter Patches: misdnlog.patch (license #6372) patch uploaded by Guenther Kelleter ........ Merged revisions 398235 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-09-03 19:45 +0000 [r398214] Alexandr Anikin * addons/ooh323c/src/ooh245.c: Fix remote tcs sequence handling on empty tcs received 2013-09-02 07:28 +0000 [r398168] Walter Doekes * /, cel/cel_custom.c: Be a little more verbose when loading cel_custom.conf. Review: https://reviewboard.asterisk.org/r/2805/ ........ Merged revisions 398167 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-30 19:16 +0000 [r398022-398103] Kevin Harwell * main/indications.c, main/config.c, res/res_security_log.c, /, channels/chan_sip.c, main/translate.c, main/named_acl.c: Fix various memory leaks main/config.c - cleanup cache fie includes res/res_security_log.c - unregister logger level channesl/chan_sip.c - cleanup io context and notify_types main/translator.c - cleanup at shutdown main/named_acl.c - cleanup cli commands main/indications.c - ast_get_indication_tone() unref default_tone_zone if used (closes issues ASTERISK-22378) Reported by: Corey Farrell Patches: config_shutdown.patch uploaded by coreyfarrell (license 5909) res_security_log.patch uploaded by coreyfarrell (license 5909) chan_sip-11.patch uploaded by coreyfarrell (license 5909) indications_refleak.patch uploaded by coreyfarrell (license 5909) named_acl-cli_unreg-11.patch uploaded by coreyfarrell (license 5909) translate_shutdown.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 398102 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_agi.c, main/manager.c, /: Memory leak fix ast_xmldoc_printable returns an allocated block that must be freed by the caller. Fixed manager.c and res_agi.c to stop leaking these results. (closes issue ASTERISK-22395) Reported by: Corey Farrell Patches: manager-leaks-11.patch uploaded by coreyfarrell (license 5909) res_agi-xmldoc-leaks.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 398060 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, main/features.c: Fix memory leak Fixed a features.c test that leaked a reference to a parked call. This caused chancount to never reach 0, so graceful shutdown stops. Also added an unregister test. (closes issue ASTERISK-22413) Reported by: Corey Farrell Patches: features-TEST_FRAMEWORK.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 398021 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-30 16:57 +0000 [r398019] Richard Mudgett * tests/test_substitution.c, /: test_substituition: Fix failed test reporting to actually report failure. You cannot put the "Testing pass/fail" on a single line before actually performing the test. Now any additional failure information is logged before the test pass/fail announcement. * Added an additional CDR(answer,u) test. ........ Merged revisions 398018 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-30 16:20 +0000 [r397948-398011] Kevin Harwell * /, apps/app_mixmonitor.c: Fix memory leaks (closes issue ASTERISK-22368) Reported by: Corey Farrell Patches: issueA22368_mixmonitor_free_filename.patch uploaded by wdoekes (license 5674) ........ Merged revisions 398004 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/asterisk.c: Check return value on fwrite * channels/chan_misdn.c, apps/app_dumpchan.c, main/features.c, main/logger.c, apps/app_verbose.c, main/asterisk.c: Verbose logging discrepancies Refactored cases where a combination of ast_verbose/options_verbose were present. Also in general tried to eliminate, in as many places as possible, where the options_verbose global variable was being used. Refactored the way local and remote consoles handle verbose message logging in an attempt to solve the various discrepancies that sometimes would show between the two. (closes issue AST-1193) Reported by: Guenther Kelleter Review: https://reviewboard.asterisk.org/r/2798/ 2013-08-27 18:03 +0000 [r397758] Matthew Jordan * /, channels/chan_sip.c: AST-2013-005: Fix crash caused by invalid SDP If the SIP channel driver processes an invalid SDP that defines media descriptions before connection information, it may attempt to reference the socket address information even though that information has not yet been set. This will cause a crash. This patch adds checks when handling the various media descriptions that ensures the media descriptions are handled only if we have connection information suitable for that media. Thanks to Walter Doekes, OSSO B.V., for reporting, testing, and providing the solution to this problem. (closes issue ASTERISK-22007) Reported by: wdoekes Tested by: wdoekes patches: issueA22007_sdp_without_c_death.patch uploaded by wdoekes (License 5674) ........ Merged revisions 397756 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 397757 from http://svn.asterisk.org/svn/asterisk/branches/10 2013-08-27 16:40 +0000 [r397744] Richard Mudgett * channels/chan_sip.c, channels/chan_motif.c, channels/chan_iax2.c, channels/sig_pri.c, channels/sig_ss7.c, channels/chan_dahdi.c, channels/sig_analog.c: Fix uninitialized value in struct ast_control_pvt_cause_code usage. 2013-08-27 15:55 +0000 [r397712] Matthew Jordan * /, channels/chan_sip.c: AST-2013-004: Fix crash when handling ACK on dialog that has no channel A remote exploitable crash vulnerability exists in the SIP channel driver if an ACK with SDP is received after the channel has been terminated. The handling code incorrectly assumed that the channel would always be present. This patch adds a check such that the SDP will only be parsed and applied if Asterisk has a channel present that is associated with the dialog. Note that the patch being applied was modified only slightly from the patch provided by Walter Doekes of OSSO B.V. (closes issue ASTERISK-21064) Reported by: Colin Cuthbertson Tested by: wdoekes, Colin Cutherbertson patches: issueA21064_fix.patch uploaded by wdoekes (License 5674) ........ Merged revisions 397710 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 397711 from http://svn.asterisk.org/svn/asterisk/branches/10 2013-08-23 21:57 +0000 [r397604] Joshua Colp * res/res_rtp_asterisk.c, UPGRADE.txt, res/Makefile: Make libuuid an optional dependency for res_rtp_asterisk instead of a requirement. Review: https://reviewboard.asterisk.org/r/2777/ 2013-08-23 16:07 +0000 [r397528] Richard Mudgett * main/utils.c, include/asterisk/lock.h, main/astmm.c, channels/sig_pri.c, main/astobj2.c, include/asterisk/logger.h, main/lock.c, include/asterisk/utils.h, include/asterisk/astmm.h, /, main/logger.c: Fix memory corruption when trying to get "core show locks". Review https://reviewboard.asterisk.org/r/2580/ tried to fix the mismatch in memory pools but had a math error determining the buffer size and didn't address other similar memory pool mismatches. * Effectively reverted the previous patch to go in the same direction as trunk for the returned memory pool of ast_bt_get_symbols(). * Fixed memory leak in ast_bt_get_symbols() when BETTER_BACKTRACES is defined. * Fixed some formatting in ast_bt_get_symbols(). * Fixed sig_pri.c freeing memory allocated by libpri when MALLOC_DEBUG is enabled. * Fixed __dump_backtrace() freeing memory from ast_bt_get_symbols() when MALLOC_DEBUG is enabled. * Moved __dump_backtrace() because of compile issues with the utils directory. (closes issue ASTERISK-22221) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/2778/ ........ Merged revisions 397525 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-22 08:22 +0000 [r397378] Walter Doekes * default.exports, /, main/asterisk.exports.in: Add _IO_stdin_used in version-script to fix SIGBUSes on Sparc. The --version-script,asterisk.exports linker flag (and the module exports) didn't provide _IO_stdin_used in the list of exported symbols. That causes some kind of libc compatibility mode to kick in, where stdio file structures (stdout/stderr) land somewhere else. In the case of the Sparc, they landed on misaligned memory. This became apparent first after r376428 (Reorder startup sequence) when a lot of ast_log's were replaced with fprintf's. Writing to stderr triggered a SIGBUS. (Compared to x86 and amd64 architectures, the Sparc is very picky about memory alignment.) (issue ASTERISK-21763) (issue ASTERISK-21665) Reported by: Jeremy Kister Review: https://reviewboard.asterisk.org/r/2760/ ........ Merged revisions 397377 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-21 23:02 +0000 [r397365] Jonathan Rose * main/udptl.c: UDPTL: Fix a regression where UDPTL won't load default settings If the file udptl.conf is unavailable at startup, UDPTL will fail to initialize and while it makes some noise, it isn't immediately obvious why consumers start to fail when using it. This patch makes UDPTL load as though an empty config was provided when udptl is unavailable at startup. (closes issue ASTERISK-22349) Reported by: Jonathan Rose Review: https://reviewboard.asterisk.org/r/2773/ 2013-08-21 17:07 +0000 [r397309] David M. Lee * /, main/http.c: Complete http_shutdown. This patch frees up some resources allocated in http.c. * tcp listeners stopped * tls settings freed * uri redirects freed * unregister internal http.c uri's (closes issue ASTERISK-22237) Reported by: Corey Farrell Patches: http.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 397308 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-21 15:12 +0000 [r397257] Matthew Jordan * /, include/asterisk/frame.h: Set 14400 as the default max bit rate if T38MaxBitRate is not specified If an endpoint fails to include the T38MaxBitRate attribute during negotiation, Asterisk will negotiate a bit rate of 2400 instead of the ITU recommended bit rate of 14400. This patch fixes this by making AST_T38_RATE_14400 the 'default' value of the enum by assigning it a value of 0, such that if an endpoint fails to include the attribute, the default will be 14400. Note that Walter Doekes included the nice comment in frame.h about why we are purposefully assigning AST_T38_RATE_14400 a value of 0. (closes issue ASTERISK-22275) Reported by: Andreas Steinmetz patches: fax-fix.patch uploaded by anstein (License 6523) ........ Merged revisions 397256 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-21 14:36 +0000 [r397254] Mark Michelson * channels/chan_sip.c: Prevent a crash on outbound SIP MESSAGE requests. If a From header on an outbound out-of-call SIP MESSAGE were malformed, the result could crash Asterisk. In addition, if a From header on an incoming out-of-call SIP MESSAGE request were malformed, the message was happily accepted rather than being rejected up front. The incoming message path would not result in a crash, but the behavior was bad nonetheless. (closes issue ASTERISK-22185) reported by Zhang Lei 2013-08-21 02:11 +0000 [r397205] Michael L. Young * /, channels/chan_sip.c: Fix Not Storing Current Incoming Recv Address In 1.8, r384779 introduced a regression by retrieving an old dialog and keeping the old recv address since recv was already set. This has caused a problem when a proxy is involved since responses to incoming requests from the proxy server, after an outbound call is established, are never sent to the correct recv address. In 11, r382322 introduced this regression. The fix is to revert that change and always store the recv address on incoming requests. Thank you Walter Doekes for helping to point out this error and Mark Michelson for your input/review of the fix. (closes issue ASTERISK-22071) Reported by: Alex Zarubin Tested by: Alex Zarubin, Karsten Wemheuer Patches: asterisk-22071-store-recvd-address.diff by Michael L. Young (license 5026) ........ Merged revisions 397204 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-20 17:41 +0000 [r397133-397157] Mark Michelson * /, channels/chan_sip.c: Remove REF_DEBUG definition. ........ Merged revisions 397156 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c, channels/sip/dialplan_functions.c: Fix refcounting of sip_pvt in test_sip_rtpqos test and unlink it from the list of pvts. (closes issue ASTERISK-22248) reported by Corey Farrell patches: test_sip_rtpqos.patch uploaded by Corey Farrell (license #5909) ........ Merged revisions 397112 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-20 15:27 +0000 [r397034-397107] Kinsey Moore * /, main/threadstorage.c, main/astfd.c: Unregister CLI commands on exit This patch ensures that CLI commands enabled by DEBUG_FD_LEAKS and DEBUG_THREADLOCALS are cleaned up properly on exit. (closes issue ASTERISK-22238) Reported by: Corey Farrell Tested by: Corey Farrell Patches: debug_cli_unregister.patch uploaded by Corey Farrell ........ Merged revisions 397106 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/xmldoc.c, /: Fix xmldoc memory leak This fixes a single-attribute memory leak that was occurring when the "required" attribute was not true. (closes issue ASTERISK-22249) Reported by: Corey Farrell Tested by: Corey Farrell Patches: xmldoc-free_attr_required.patch uploaded by Corey Farrell ........ Merged revisions 397064 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/cel.c, /: Protect CEL from an invalid config on reload This patch fixes CEL to properly handle an invalid config on reload. (closes issue ASTERISK-22259) Reported by: Corey Farrell Tested by: Corey Farrell Patches: cel-config.patch uploaded by Corey Farrell ........ Merged revisions 397033 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-20 11:47 +0000 [r396995] Walter Doekes * configs/h323.conf.sample, /, configs/sip.conf.sample: Add "autoframing" option to sip.conf.sample and h323.conf.sample. The autoframing option was added to chan_sip.c in r43243 (mogorman, 2006-09-19 01:32:57), but never made its way into the sample configs. Review: https://reviewboard.asterisk.org/r/2768/ ........ Merged revisions 396994 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-20 01:18 +0000 [r396944-396961] Matthew Jordan * main/data.c, /: Fix invalid access to disposed memory in main/data unit test It is not safe to iterate over a macro'd list of ao2 objects, deref them such that the item's destructor is called, and leave them in the list. The list macro to iterate over items requires the item to be a valid allocated object in order to proceed to the next item; with MALLOC_DEBUG on the corruption of the linked list is caught in the crash. This patch fixes the invalid access to free'd memory by removing the ao2 item from the list before de-refing it. Note that this is a backport of r396915 from Asterisk trunk. ........ Merged revisions 396958 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * apps/app_queue.c: Let Queue wrap up time influence member availability Queue members who happen to be in multiple queues at the same time may not have any wrap up time. This problem occurred due to a code change in Asterisk 11.3.0 that unified device state tracking of Queue members in multiple Queues (which fixed some other problems, but unfortunately caused this one). This patch fixes the behavior by having the is_member_available function check the queue's wrap up time and the time of the member's last call, such that for a particular queue, the member won't be considered available if their last call is within the wrap up time. (closes issue ASTERISK-22189) Reported by: Tony Lewis Tested by: Tony Lewis * apps/app_meetme.c: Resolve conflicts between CONFFLAG_DONT_DENOISE and CONFFLAG_INTROUSER_VMREC When r382230 added an option to not denoise the MeetMe conference (if a user had a channel whose format's sample rate changed frequently, for example), the value added was the maximum allowed value for the constants that define the options for MeetMe in 1.8. Not so in 11 - unfortunately, the option CONFFLAG_DONT_DENOISE conflicts with CONFFLAG_INTROUESR_VMREC. This patch fixes that, and also tweaks one of the way in which the constants was declared for consistency. Thanks to Tony Mountifield for pointing out the problem and solution. (closes issue ASTERISK-22269) Reported by: Tony Mountifield 2013-08-16 22:45 +0000 [r396884] John Bigelow * main/features.c: Add test suite events to indicate when a feature is detected or not These are needed by the bridge test suite tests for them to be able to run against Asterisk 11. Review: https://reviewboard.asterisk.org/r/2751/ 2013-08-15 16:29 +0000 [r396746] Kinsey Moore * main/asterisk.c, main/cli.c, /: Remove leading spaces from the CLI command before parsing If you've mistakenly put a space before typing in a command, the leading space will be included as part of the command, and the command parser will not find the corresponding command. This patch rectifies that situation by stripping the leading spaces on commands. Review: https://reviewboard.asterisk.org/r/2709/ Patch-by: Tilghman Lesher ........ Merged revisions 396745 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-14 19:06 +0000 [r396620-396657] Joshua Colp * tests/test_hashtab_thrash.c, /: Tweak comment for why usleep is used. ........ Merged revisions 396656 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, tests/test_hashtab_thrash.c: Tweak test_hashtab_thrash test to allow the critical threads to execute. Depending on certain conditions it was possible for the hashtab counting thread to starve other threads, preventing them from executing in the expected fashion. This change adds a sleep to allow the others to do what they need to do. While this doesn't thrash the hashtab as much as previously, it at least works. (closes issue ASTERISK-22276) Reported by: Matt Jordan ........ Merged revisions 396619 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-13 18:45 +0000 [r396580-396583] Walter Doekes * /, channels/chan_sip.c: chan_sip: Convert 'just did sched_add waitid...' from warning to debug message. Patches: reviewboard-2377.patch uploaded by Paul Belanger Review: https://reviewboard.asterisk.org/r/2377/ ........ Merged revisions 396582 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c: chan_sip: Fix IP-addr in warning when rejecting a contact ACL. Patches: reviewboard-2155.patch uploaded by Paul Belanger Review: https://reviewboard.asterisk.org/r/2155/ ........ Merged revisions 396579 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-08 20:21 +0000 [r396441] Walter Doekes * include/asterisk/logger.h, /, main/logger.c, main/utils.c, main/astobj2.c: Consistent memory allocation by ast_bt_get_symbols. Always use ast_alloc/ast_free. This is handled differently in trunk (r391012). Review: https://reviewboard.asterisk.org/r/2580/ ........ Merged revisions 396427 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-08 07:03 +0000 [r396377] Igor Goncharovskiy * channels/chan_unistim.c: - Fix different issues with call transfer cancel. In case 3rd party busy or congestion call was not returned. - Fix displaying soft button 'Redial' in case of no redial number exists 2013-08-06 08:37 +0000 [r396287-396310] Walter Doekes * funcs/func_strings.c: Check result of ast_var_assign() calls for memory allocation failure (2). Missed a spot in the previous commit. * apps/app_stack.c, apps/app_playback.c, funcs/func_global.c, main/cdr.c, pbx/pbx_loopback.c, main/pbx.c, /, funcs/func_strings.c, pbx/pbx_dundi.c, utils/extconf.c: Check result of ast_var_assign() calls for memory allocation failure. We try to keep the system running even when all available memory is spent. Review: https://reviewboard.asterisk.org/r/2734/ ........ Merged revisions 396279 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-08-05 20:19 +0000 [r396197-396248] Michael L. Young * /, channels/chan_sip.c: Fix Registration Failure When A Peer And TLS Are Used If a peer is used in a register line and TLS is defined as the transport, the registration fails since the transport on the dialog is never set properly resulting in UDP being used instead of TLS. This patch sets the dialog's transport based on the transport that was defined in the register line. If the register line does not specify a transport, the parsing function for the register line always defaults back to UDP. (closes issue ASTERISK-21964) Reported by: Doug Bailey Tested by: Doug Bailey Patches: asterisk-21964-set-reg-dialog-transport.diff by Michael L. Young (license 5026) ........ Merged revisions 396240 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * UPGRADE.txt: Change "from" to "From". (related to issue ASTERISK-21903) * /, UPGRADE.txt: Adding a note to UPGRADE.txt about a change made to res_agi in order to indicate when streaming an audio file fails like it is done in other parts of the code to indicate an error. Note was requested by Paul Belanger: http://lists.digium.com/pipermail/asterisk-dev/2013-July/061420.html (related to issue ASTERISK-21903) ........ Merged revisions 396196 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-07-22 13:50 +0000 [r394890-395033] Matthew Jordan * main/asterisk.c, /: Update copyright year to 2013 in asterisk.c; some whitespace fixes (closes issue ASTERISK-22179) Reported by: Malcolm Davenport ........ Merged revisions 395032 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * CHANGES, UPGRADE.txt: Add an upgrade note for libuuid dependency; remove note in CHANGES This patch notes that libuuid is now a dependency for res_rtp_asterisk; this was introduced in between 11.4.0 and 11.5.0 to resolve a dependency for pjproject, which res_rtp_asterisk uses for ICE/STUN/TURN support. It also removes a conflicting note from CHANGES. While support for playing prompts to the first participant was added for app_queue, it was disabled by default and an option added to enable it. That was properly noted in the UPGRADE.txt file. * /, funcs/func_channel.c: Clean up documentation This patch cleans up documentation in func_channel for the following items: * rtpsource * secure_signaling * secure_media * various OOH323 parameters (closes issue ASTERISK-20969) Reported by: snuffy patches: func_chan-update.diff uploaded by snuffy (License 5024) ........ Merged revisions 394980 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, configs/indications.conf.sample: Provide proper ring tone in indications.conf for Malaysia The ring tone provided in the sample indications.conf was incorrect. This patch modifies the sample ring tone to be what it should: ring = 425/400,0/200,425/400,0/2000 This brings it in line with the tone definition in DAHDI 2.7.0. (zonedata.c) (closes issue ASTERISK-21997) Reported by: Filip Jenicek patches: malaysia_ring.patch uploaded by phill (License 6277) ........ Merged revisions 394940 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/http.c, /: Tolerate presence of RFC2965 Cookie2 header by ignoring it This patch modifies parsing of cookies in Asterisk's http server by doing an explicit comparison of the "Cookie" header instead of looking at the first 6 characters to determine if the header is a cookie header. This avoids parsing "Cookie2" headers and overwriting the previously parsed "Cookie" header. Note that we probably should be appending the cookies in each "Cookie" header to the parsed results; however, while clients can send multiple cookie headers they never really do. While this patch doesn't improve Asterisk's behavior in that regard, it shouldn't make it any worse either. Note that the solution in this patch was pointed out on the issue by the issue reporter, Stuart Henderson. (closes issue ASTERISK-21789) Reported by: Stuart Henderson Tested by: mjordan, Stuart Henderson ........ Merged revisions 394899 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * contrib/realtime/postgresql/realtime.sql, /: Update PostgreSQL realtime scripts with schema for queue_log table This patch updates the realtime SQL scripts with an entry that will create the queue_log table. This brings the PostgreSQL scripts inline with the MySQL scripts, with respect to what tables they will create. (closes issue ASTERISK-21021) Reported by: Eugene patches: queue_log.sql uploaded by varnav (license 6360) ........ Merged revisions 394896 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * configs/iax.conf.sample, /: Document connectedline parameter for chan_iax2 The connectedline parameter for a chan_iax2 peer was undocumented. This patch documents the options in the sample configuration file. (closes issue ASTERISK-21953) Reported by: Birger "WIMPy" Harzenetter ........ Merged revisions 394886 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-07-18 12:52 +0000 [r394641] Michael L. Young * res/res_agi.c, /: Properly indicate failure to open an audio stream in res_agi If there is an error streaming an audio file, the current return status makes it difficult for an AGI script to determine that there was an error with the audio file. This patches changes the result to return -1 and the function returns RESULT_FAILURE instead of RESULT_SUCCESS. From looking at other parts of res_agi, this would appear to be the proper way to handle an error. (closes issue ASTERISK-21903) Reported by: Ariel Wainer Tested by: Ariel Wainer Patches: asterisk-21903-return-stream-res_1.8.diff by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2625/ ........ Merged revisions 394640 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-07-14 02:34 +0000 [r394303-394345] Matthew Jordan * apps/app_queue.c: Provide error message for QUEUE_MEMBER when member is not in queue When QUEUE_MEMBER is used and the member specified is not in the queue, Asterisk provides an ERROR message that indicates that the option specified is not valid. This patch now properly displays an ERROR message that the member is not in the queue if an interface is specified. (closes issue ASTERISK-21980) Reported by: Avraam David * /, funcs/func_strings.c: Clarify documentation for function PASSTHRU It is not apparent to the average user that the PASSTHRU function should not be passed as ${PASSTHRU(string)} but just as PASSTHRU(string) to functions which take a variable name and not its contents. This patch clarifies the behavior in the documentation and provides an example. (closes issue ASTERISK-21717) Reported by: Richard Miller patches: func_strings.diff uploaded by Richard Miller (license 5685) ........ Merged revisions 394302 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-07-11 21:28 +0000 [r394173] Moises Silva * channels/chan_dahdi.c, /: Fix a longstanding issue with MFC-R2 configuration that prevented users from mixing different variants or general MFC-R2 settings within the same E1 line. Most users do not have a problem with this since MFC-R2 lines are usually fractional E1s, or the whole E1 has the same country variant and R2 settings. In Venezuela however is common to have inbound MFC-R2 and outbound DTMF-R2 within the same E1. This fix now properly parses the chan_dahdi.conf file to generate a new openr2 context every time a new channel => section is found and the configuration was changed. (closes issue ASTERISK-21117) Reported by: Rafael Angulo Related Elastix issue: http://bugs.elastix.org/view.php?id=1612 ........ Merged revisions 394106 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-07-10 01:49 +0000 [r393929] Russell Bryant * configs/sla.conf.sample, /, apps/app_meetme.c: astobj2-ify the SLA code The SLA code within app_meetme was written before asotbj2 had been merged into Asterisk. Worse, support for reloads did not exist at first and was added later as a bolt-on feature. I knew at the time that reloading was not safe at all while SLA was in use, so the reload would be queued up to execute when the system was idle. Unfortunately, this approach was still prone to errors beyond the fact that this was the only place in Asterisk where configuration was not reloaded instantly when requested. This patch converts various SLA objects to be reference counted objects using astobj2. This allows reloads to be processed while the system is in use. The code ensures that the objects will not disappear while one of the other threads is using them. However, they will be immediately removed from the global trunk and station containers so no new calls will use them if removed from configuration. Review: https://reviewboard.asterisk.org/r/2581/ ........ Merged revisions 393928 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-07-03 23:52 +0000 [r393628-393630] Richard Mudgett * apps/app_mixmonitor.c: MixMonitor: Fix refleak in manager_stop_mixmonitor() if could not stop monitoring. ........ Merged revisions 393490 from http://svn.asterisk.org/svn/asterisk/trunk * channels/chan_dahdi.c, /: chan_dahdi: Fix segfault reloading chan_dahdi when round robin is used. * Clear round_robin[] in dahdi_restart(). (closes issue ASTERISK-21847) Reported by: Ivo Andonov Patches: jira_asterisk_21847_v1.8.patch (license #5621) patch uploaded by rmudgett ........ Merged revisions 393627 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-07-02 10:14 +0000 [r393395] Igor Goncharovskiy * channels/chan_unistim.c: Fix issue with inability to cancell call transfer made by on-sceen menus. Reported by: Igor Olhovskiy 2013-06-25 01:07 +0000 [r392810] Matthew Jordan * channels/chan_motif.c, main/http.c, main/config_options.c, main/named_acl.c, res/res_calendar.c: Fix memory/ref counting leaks in a variety of locations This patch fixes the following memory leaks: * http.c: The structure containing the addresses to bind to was not being deallocated when no longer used * named_acl.c: The global configuration information was not disposed of * config_options.c: An invalid read was occurring for certain option types. * res_calendar.c: The loaded calendars on module unload were not being properly disposed of. * chan_motif.c: The format capabilities needed to be disposed of on module unload. In addition, this now specifies the default options for the maxpayloads and maxicecandidates in such a way that it doesn't cause the invalid read in config_options.c to occur. (issue ASTERISK-21906) Reported by: John Hardin patches: http.patch uploaded by jhardin (license 6512) named_acl.patch uploaded by jhardin (license 6512) config_options.patch uploaded by jhardin (license 6512) res_calendar.patch uploaded by jhardin (license 6512) chan_motif.patch uploaded by jhardin (license 6512) 2013-06-14 16:21 +0000 [r391794] Jonathan Rose * apps/app_mixmonitor.c, /: app_mixmonitor: Fix crashes caused by unloading app_mixmonitor Unloading app_mixmonitor while active mixmonitors were running would cause a segfault. This patch fixes that by making it impossible to unload app_mixmonitor while mixmonitors are active. Review: https://reviewboard.asterisk.org/r/2624/ ........ Merged revisions 391778 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-06-13 18:47 +0000 [r391700] Richard Mudgett * apps/confbridge/conf_config_parser.c, apps/confbridge/include/confbridge.h, apps/app_confbridge.c: app_confbridge: Fix memory leak on reload. The config framework options should not be registered multiple times. Instead the configuration just needs to be reprocessed by the config framework. 2013-06-12 21:00 +0000 [r391560] David M. Lee * res/res_http_websocket.c: Fix segfault for certain invalid WebSocket input. The WebSocket code would allocate, on the stack, a string large enough to hold a key provided by the client, and the WEBSOCKET_GUID. If the key is NULL, this causes a segfault. If the key is too large, it could overflow the stack. This patch checks the key for NULL and checks the length of the key to avoid stack smashing nastiness. (closes issue ASTERISK-21825) Reported by: Alfred Farrugia Tested by: Alfred Farrugia, David M. Lee Patches: issueA21825_check_if_key_is_sent.patch uploaded by Walter Doekes (license 5674) 2013-06-12 02:25 +0000 [r391507] Matthew Jordan * main/loader.c, main/format.c, /: Fix memory leak while loading priority modules and adding formats This patch fixes two memory leaks: * When we load a module with the LOAD_PRIORITY flag, we remove its entry from the load order list. Unfortunately, we don't free the memory associated with entry in the list. This patch corrects that and properly frees the memory for the module in the list. * When adding a custom format (such as SILK or CELT), the routine for adding the format was leaking a reference. RAII_VAR cleans this up properly. ........ Merged revisions 391489 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-06-11 10:22 +0000 [r391379] Igor Goncharovskiy * channels/chan_unistim.c: Fix issue with no sound in both way in case of previous call to chan_unistim phone was canceled. (related to ASTERISK-20183) 2013-06-11 08:10 +0000 [r391334] Alec L Davis * channels/chan_iax2.c, /: IAX2: Transfer Reject: Lock bridgecallno before touching it, refactor 1). When touching the bridgecallno, we need to lock it. 2). Remove magic number '0' and replace with TRANSFER_NONE. 3). Exit early if no bridgecallno. 4). Reduce indentation. Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2613/ ........ Merged revisions 391333 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-07-15 Asterisk Development Team * Asterisk 11.5.0 Released. 2013-07-12 Asterisk Development Team * Asterisk 11.5.0-rc2 Released. * Properly lock and safely handle a transfer failure in IAX2 When touching the bridgecallno, we need to lock it - otherwise a race condition can occur. This patch does the proper locking of the bridgecallno before modifying its state. 2013-06-10 Asterisk Development Team * Asterisk 11.5.0-rc1 Released. 2013-06-10 14:25 +0000 [r391241] Matthew Jordan * /, configs/queues.conf.sample, UPGRADE.txt, apps/app_queue.c: Add announce-to-first-user option for app_queue In r386792, the ability to play prompts to the first caller in a call queue was added. While this is arguably a bug fix for those who expect the first caller to continue receiving prompts while the agent is dialed, it has the side effect of preventing the first caller from hearing the agent immediately upon bridging. This may not be a problem for those who really want this option, but for those who didn't care whether or not the first caller in queue heard their position, it was an issue. This patch disables the ability for the first caller in the queue to hear prompts and adds a new option, announce-to-first-user, to queues.conf. Those who the behavior can enable it by setting this value to True. Note that if we ever implement the ability to have the prompts be stopped upon bridging, this option can be removed. (closes issue ASTERISK-21782) Reported by: Remi Quezada ........ Merged revisions 391215 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-06-10 09:32 +0000 [r391063-391148] Alec L Davis * /, channels/chan_iax2.c: chan_iax2: nativebridge refactor, missed unlock bridgecallno ........ Merged revisions 391143 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_iax2.c: fix bad edit after conflict resolution ........ Merged revisions 391107 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_iax2.c: IAX2: refactor nativebridge transfer remove triple checking of iaxs[fr->callno]->transferring reduce indentation. Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2602/ ........ Merged revisions 391065 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_iax2.c: IAX2: fix race condition with nativebridge transfers. 1). When touching the bridgecallno, we need to lock it. 2). stop_stuff() which calls iax2_destroy_helper() Assumes the lock on the pvt is already held, when iax2_destroy_helper() is called. Thus we need to lock the bridgecallno pvt before we call stop_stuff(iaxs[fr->callno]->bridgecallno); 3). When evaluating the state of 'callno->transferring' of the current leg, we can't change it to READY unless the bridgecallno is locked. Why, if we are interrupted by the other call leg before 'transferring = TRANSFER_RELEASED', the interrupt will find that it is READY and that the bridgecallno is also READY so Releases the legs. (closes issue ASTERISK-21409) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2594/ ........ Merged revisions 391062 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-31 10:34 +0000 [r390228-390229] Alexandr Anikin * addons/chan_ooh323.c: remove unnecessary declarations (issue ASTERISK-21800) * addons/chan_ooh323.c, /: reject call attempts when gatekeeper is configured but not registered (closes issue ASTERISK-21800) Reported by: Dmitry Melekhov Patches: ASTERISK-21800-1.patch Tested by: Dmitry Melekhov ........ Merged revisions 390181 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 390223 from http://svn.asterisk.org/svn/asterisk/branches/10 2013-05-29 20:18 +0000 [r390047] Richard Mudgett * main/channel.c, /: Fix segfault when dealing with chan_agent channels. Check the returned bridged pointer for NULL to avoid a crash. It looks like chan_agent is returning a NULL pointer when it probably should be returning a pointer to the channel the Agent channel is pretending to be. (closes issue ASTERISK-21793) Reported by: Rodrigo P. Telles Patches: jira_asterisk_21793_v1.8.patch (license #5621) patch uploaded by rmudgett Tested by: Rodrigo P. Telles ........ Merged revisions 390044 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-28 17:43 +0000 [r389896] Jonathan Rose * /, main/slinfactory.c: Fix a memory copying bug in slinfactory which was causing mixmonitor issues. Reported by: Michael Walton Tested by: Jonathan Rose Patches: slinfactory.c.ASTERISK-21799.patch uploaded by Michael Walton (license 6502) (closes issue ASTERISK-21799) ........ Merged revisions 389895 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-24 11:49 +0000 [r389677] Matthew Jordan * /, main/logger.c: Print all logger messages on shutdown When Asterisk shuts down and shuts down the loggin gsubsystem, any messages currently in flight will not get logged. This patch prevents the loop writing messages from breaking out prematurely, such that all of the messages are logged. (closes issue ASTERISK-21716) Reported by: Corey Farrell patches: logger-process-all-messages.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 389676 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-24 10:12 +0000 [r389661] Igor Goncharovskiy * channels/chan_unistim.c: Fix several problems caused by multiple line usage with i2004 phones. Reported by: Daniel Bohling, MihaiMircea (closes issue ASTERISK-21061) (closes issue ASTERISK-21120) 2013-05-20 17:43 +0000 [r389245] Jason Parker * /: Add doxygen.log to svn:ignore property. ........ Merged revisions 389244 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-15 15:57 +0000 [r388839] kharwell : * main/lock.c, /: Fix for segfault in __ast_rwlock_destroy with DEBUG_THREADS If DEBUG_THREADS is enabled __ast_rwlock_destroy causes a segfault while trying to access a possible NULL t->track object. A NULL check has been added before trying to access the memory. (closes issue ASTERISK-21724) Reported by: Corey Farrell Fixed by: Corey Farrell Patches: ast_rwlock_destroy-segv.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 388838 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-15 14:25 +0000 [r388816] Jason Parker * apps/app_voicemail.c: Fix VM snapshot handling for combined INBOX. The snapshot API contains an option that allow for combining of new and old messages within a single snapshot. New messages, however, include options beyond just 'INBOX' - it also includes the Urgent folder. A previous patch that combined INBOX and Urgent accidentally impacted snapshots that attempted to gain messages from just the Old folder. This patch fixes the snapshot gathering such that the API returns the appropriate messages for the folder selected, with and without the combine option. This should make it more clear about what's happening. Review: https://reviewboard.asterisk.org/r/2539/ 2013-05-15 12:39 +0000 [r388769] Kinsey Moore * res/res_srtp.c, /, configure, include/asterisk/autoconfig.h.in, configure.ac: Use srtp_shutdown when available This allows the SRTP library to be shut down properly when the functionality is offered by libsrtp. Review: https://reviewboard.asterisk.org/r/2538/ (closes issue ASTERISK-21719) ........ Merged revisions 388768 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-14 18:55 +0000 [r388700] Richard Mudgett * include/asterisk/astobj2.h, main/astobj2.c: Make ao2 global objects not always use the debug version of the ao2_ref() calls. The debug versions of ao2_ref() should only be used if REF_DEBUG is enabled so nothing is written to /tmp/refs unexpectedly. (closes issue ASTERISK-21785) Reported by: abelbeck Patches: jira_asterisk_21785_v11.patch (license #5621) patch uploaded by rmudgett Tested by: abelbeck 2013-05-13 21:17 +0000 [r388601-388605] Michael L. Young * main/logger.c: Fix Missing CALL-ID When Logging Through Syslog The CALL-ID (ie [C-00000074]) is missing when logging to syslog. This was just an oversight when this feature was added. * Add CALL-IDs when using syslog (closes issue ASTERISK-21430) Reported by: Nikola Ciprich Tested by: Nikola Ciprich, Michael L. Young Patches: asterisk-21430-syslog-callid_trunk.diff by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2526/ * channels/chan_sip.c: Fix Crash Caused By One-way Audio With auto_* NAT Settings Fix The prior code committed, r385473, failed to take into consideration that not all outgoing calls will be to a peer. My fault. This patch does the following: * Check if there is a related peer involved. If there is, check and set NAT settings according to the peer's settings. * Fix a problem with realtime peers. If the global setting has auto_force_rport set and we issued a "sip reload" while a peer is still registered, the peer's flags for NAT are reset to off. When this happens, we were always setting the contact address of the peer to that of the full contact info that we had. (closes issue ASTERISK-21374) Reported by: jmls Tested by: Michael L. Young Patches: asterisk-21374-fix-crash-and-rt-peers.diff by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2524/ 2013-05-13 20:35 +0000 [r388597] Kinsey Moore * res/res_srtp.c, /: Revert r388529 for now Adding the cleanup function needs some deeper thought since it apparently doesn't exist for all variants of libsrtp. ........ Merged revisions 388596 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-13 19:24 +0000 [r388578] Jonathan Rose * main/pbx.c, /: pbx: Fix lack of cleanup on macrolock and context_table (closes issue ASTERISK-21723) Reported by: Corey Farrell Patches: core-pbx-cleanup.patch uploaded by Correy Farrell (license 5909) ........ Merged revisions 388532 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-13 18:09 +0000 [r388530] Kinsey Moore * res/res_srtp.c, /: Close libsrtp properly Ensure that libsrtp is shutdown properly when res_srtp is unloaded. (closes issue ASTERISK-21719) Reported by: Corey Farrell Patches: res_srtp-library-shutdown.patch uploaded by Corey Farrell ........ Merged revisions 388529 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-13 14:26 +0000 [r388478] Richard Mudgett * main/manager.c, /: Fix SendText AMI action to never return non-zero. AMI actions must never return non-zero unless they intend to close the AMI connection. (Which is almost never.) (closes issue ASTERISK-21779) Reported by: Paul Goldbaum ........ Merged revisions 388477 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-10 22:11 +0000 [r388424-388426] Richard Mudgett * /, channels/misdn/isdn_msg_parser.c: Allow mISDN to send PROGRESS messsage. * Made isdn_msg_parser.c build a progress message with the mandatory progress indicator IE. (The mISDNuser NT state machine rejected sending the incomplete message.) Note: The associated mISDN and mISDNuser patches respectively are viewable here: http://svnview.digium.com/svn/thirdparty?view=rev&rev=200 http://svnview.digium.com/svn/thirdparty?view=rev&rev=201 (closes issue AST-1153) Reported by: Guenther Kelleter Patches: progress-chan_misdn.diff (license #6372) patch uploaded by Guenther Kelleter progress-misdn.diff (license #6372) mISDN patch uploaded by Guenther Kelleter progress-misdnuser.diff (license #6372) mISDNuser patch uploaded by Guenther Kelleter ........ Merged revisions 388425 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * utils, /: Add version.c to list of ignored files in the utils directory. ........ Merged revisions 388423 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-10 20:41 +0000 [r388378] Mark Michelson * /, pbx/pbx_dundi.c: Fix memory leak in pbx_dundi pbx_dundi added an io context without removing it. This caused a memory leak when the module was unloaded. (closes ASTERISK-21718) Reported by Corey Farrell Patches: pbx_dundi-ast_io_remove.patch uploaded by Corey Farrell (License #5909) ........ Merged revisions 388376 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-10 11:46 +0000 [r388253] Sean Bright * channels/chan_sip.c: Fix copy/paste error in one-touch-recording implementation. 2013-05-09 04:10 +0000 [r388108-388112] Michael L. Young * res/res_rtp_asterisk.c, /: Fix The Payload Being Set On CN Packets And Do Not Set Marker Bit When we send out a CN packet (for instance, in the case of using rtpkeepalives), we are not setting the payload code properly. Also, we are setting the marker bit when we shouldn't be according to RFC 3389, section 4. AST_RTP_CN is not defined by AST_FORMAT codes. Therefore, we should be using ast_rtp_codecs_payload_code() rather than ast_rtp_codecs_payload_lookup(). 11 and trunk already use the appropriate function. * In 1.8, use ast_rtp_codecs_payload_code() * Remove the setting of the marker bit * Fix the debug message by incrementing the seqno after the debug message is set in order to display the correct seqno that was sent out (closes issue ASTERISK-21246) Reported by: Peter Katzmann Tested by: Peter Katzmann, Michael L. Young Patches: asterisk-21246-rtp-cng-payload-error_1.8_v2.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2500/ ........ Merged revisions 388111 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * apps/app_queue.c: Fix Segfault In app_queue When "persistentmembers" Is Enabled And Using Realtime When the "ignorebusy" setting was deprecated, we added some code to allow us to be compatible with older setups that are still using the "ignorebusy" setting instead of "ringinuse". We set a char *variable with the column name to use, which helps the realtime functions to use the correct column in their SQL queries. When "persistentmembers" is enabled, we are not setting this variable before the realtime functions were called to load members. This results in the variable being NULL and therefore causing a segfault when loading members during the module's process of loading. The solution was to move the code that sets that variable to be before these realtime functions are called during the loading of the module. (closes issue ASTERISK-21738) Reported by: JoshE Tested by: JoshE Patches: asterisk-21738-rt-ringinuse-field-not-set.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2499/ 2013-05-08 07:19 +0000 [r387880] Alec L Davis * /, channels/chan_sip.c: chan_sip: NOTIFYs for BLF start queuing up and fail to be sent out after retries fail RFC6665 4.2.2: ... after a failed State NOTIFY transaction remove the subscription The problem is that the State Notify requests rely on the 200OK reponse for pacing control and to not confuse the notify susbsystem. The issue is, the pendinginvite isn't cleared if a response isn't received, thus further notify's are never sent. The solution, follow RFC 6665 4.2.2's 'SHOULD' and remove the subscription after failure. (closes issue ASTERISK-21677) Reported by: Dan Martens Tested by: Dan Martens, David Brillert, alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2475/ ........ Merged revisions 387875 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-07 18:29 +0000 [r387823] David M. Lee * res/res_config_pgsql.c, main/manager.c: Minor fixups to Doxygen comments. The \example tags marks an entire file as an example, not a code snippet. 2013-05-06 15:55 +0000 [r387689] Russell Bryant * /, apps/app_meetme.c: Make SLA reload more paranoid. Reload support was originally not included for SLA. It was added later, but in a fairly non-traditional way. It basically sets a flag indicating that a reload is pending, and then waits for a time where it thinks everything SLA related is idle and unused, and *then* executes the reload. It does this because the reload process is destructive. It starts by throwing everything away and starting over. There are a number of problems with this approach. One of them is that the check to see if anything in use was incomplete. This patch makes it more complete and thus less likely for a crash to occur during reload processing. However, this approach still has problems so some much more significant reworking of this code will need to come in as a next step. Patch credit and testing by CoreDial, LLC. ........ Merged revisions 387688 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-02 17:15 +0000 [r387422] Matthew Jordan * utils/Makefile, /: Update utils Makefile to handle r387294 Alec's patch that added the Asterisk version to 'core show locks' angered the items in utils, as they exist somewhat outside of the Asterisk build system. Some day, this Makefile should get nuked from high orbit, but for now, include version.c in its list of stuff to pile in. ........ Merged revisions 387421 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-02 08:09 +0000 [r387295-387345] Alec L Davis * channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip: Session-Expires: Set timer to correctly expire at (~2/3) of the interval when not the refresher RFC 4028 Section 10 if the side not performing refreshes does not receive a session refresh request before the session expiration, it SHOULD send a BYE to terminate the session, slightly before the session expiration. The minimum of 32 seconds and one third of the session interval is RECOMMENDED. Prior to this asterisk would refresh at 1/2 the Session-Expires interval, or if the remote device was the refresher, asterisk would timeout at interval end. Now, when not refresher, timeout as per RFC noted above. (closes issue ASTERISK-21742) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2488/ ........ Merged revisions 387344 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c: chan_sip: Honor Session-Expires in 200OK response when it's a RE-INVITE when asterisk is the refresher. RFC 4028 Section 7.2 "UACs MUST be prepared to receive a Session-Expires header field in a response, even if none were present in the request." What changed After ASTERISK-20787, inbound calls to asterisk with no Session-Expires in the INVITE are now are offered a Session-Expires (1800 asterisk default) in the response, with asterisk as the refresher. Symptom: After 900 seconds (asterisk default refresher period 1800), asterisk RE-INVITEs the device, the device may respond with a much lower Session-Expires (180 in our case) value that it is now using. Asterisk ignores this response, as it's deemed both an INBOUND CALL, and a RE-INVITE. After 180 seconds the device times out and sends BYE (hangs up), asterisk is still working with the refresher period of 1800 as it ignored the 'Session Expires: 180' in the previous 200OK response. Fix: handle_response_invite() when 200OK, remove check for outbound and reinvite. (closes issue ASTERISK-21664) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2463/ ........ Merged revisions 387312 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_dahdi.c, /: chan_dahdi: fix lower bound check with -ve integer conversion from a float Lower bound of a 16bit signed int is -32768 not -32767 (closes issue ASTERISK-21744) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) ........ Merged revisions 387297 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, main/utils.c: Add Asterisk Version to core show locks Assist with reporting 'core show locks' when submitting bug reports. Example below: =========================== == SVN-branch-1.8-... == Currently Held Locks =========================== (closes issue ASTERISK-21743) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) ........ Merged revisions 387294 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-01 21:17 +0000 [r387038-387216] Matthew Jordan * res/res_rtp_asterisk.c, /: Clear the DTMF sending digit tracking on off nominal paths In certain situations, when the RTP engine goes to send a DTMF end digit it may be in a situation where the remote address is no longer available, or the digit that was supposed to be sent is invalid. In such cases, we need to clear the RTP counters appropriately. Otherwise, when the RTP source is set again, we'll continue to think that we're in the middle of sending a DTMF digit, which can confuse the remote party (signficantly). (closes issue ASTERISK-21522) Reported by: Corey Farrell patches: rtp_dtmf_process_end.patch uploaded by Corey Farrell (License 5909) ........ Merged revisions 387213 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_sip.c: Prevent crash in 'sip show peers' when the number of peers on a system is large When you have lots of SIP peers (according to the issue reporter, around 3500), the 'sip show peers' CLI command or AMI action can crash due to a poorly placed string duplication that occurs on the stack. This patch refactors the command to not allocate the string on the stack, and handles the formatting of a single peer in a separate function call. (closes issue ASTERISK-21466) Reported by: Guillaume Knispel patches: fix_sip_show_peers_stack_overflow_asterisk_11.3.0-v2.patch uploaded by gknispel (License 6492) * /, main/features.c: Fix CDR not being created during an externally initiated blind transfer Way back when in the dark days of Asterisk 1.8.9, blind transferring a call in a context that included the 'h' extension would inadvertently execute the hangup code logic on the transferred channel. This was a "bad thing". The fix was to properly check for the softhangup flags on the channel and only execute the 'h' extension logic (and, in later versions, hangup handler logic) if the channel was well and truly dead (Jim). Unfortunately, CDRs are fickle. Setting the softhangup flag when we detected that the channel was leaving the bridge (but not to die) caused some crucial snippet of CDR code, lying in ambush in the middle of the bridging code, to not get executed. This had the effect of blowing away one of the CDRs that is typically created during a blind transfer. While we live and die by the adage "don't touch CDRs in release branches", this was our bad. The attached patch restores the CDR behavior, and still manages to not run the 'h' extension during a blind transfer (at least not when it's supposed to). Thanks to Steve Davies for diagnosing this and providing a fix. Review: https://reviewboard.asterisk.org/r/2476 (closes issue ASTERISK-21394) Reported by: Ishfaq Malik Tested by: Ishfaq Malik, mjordan patches: fix_missing_blindXfer_cdr2 uploaded by one47 (License 5012) ........ Merged revisions 387036 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-30 22:15 +0000 [r387030] Jonathan Rose * main/event.c: Add forgotten event types to event_names array 2013-04-30 13:46 +0000 [r386930] Sean Bright * include/asterisk/utils.h, /: Use the proper lower bound when doing saturation arithmetic. 16 bit signed integers have a range of [-32768, 32768). The existing code was using the interval (-32768, 32768) instead. This patch fixes that. Review: https://reviewboard.asterisk.org/r/2479/ ........ Merged revisions 386929 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-29 23:35 +0000 [r386878] Rusty Newton * /, sounds/Makefile: Modifying sounds/Makefile to pull down 1.4.24 core sounds 1.4.24 core sounds includes a full set of Italian prompts for core sounds and a fix for the missing voicemail prompts in the Russian language. (closes issue ASTERISK-19431) (closes issue ASTERISK-19721) ........ Merged revisions 386877 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-29 08:54 +0000 [r386794] Olle Johansson * /, CHANGES, apps/app_queue.c: Play periodic prompts for first call in a call queue Review: https://reviewboard.asterisk.org/r/2263/ ........ Merged revisions 386792 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-26 21:27 +0000 [r386642-386677] Matthew Jordan * main/config.c, /: Clean up memory leak in config file on off nominal paths when glob is allowed If a system allows for its usage, Asterisk will use glob to help parse Asterisk .conf files. The config file loading routine was leaking the memory allocated by the glob() routine when the config file was in an unmodified or invalid state. This patch properly calls globfree in those off nominal paths. (closes issue ASTERISK-21412) Reported by: Corey Farrell patches: config_glob_leak.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 386672 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, main/features.c: Clean up resources in features on exit This patch cleans up two things features: * It properly unregisters the CLI commands that features registered * It cancels and performs a pthread_join on the created parking thread. This not only properly joins a non-detached thread, but also prevents disposing of the parking lots prior to the parking thread completely exiting. (closes issue ASTERISK-21407) Reported by: Corey Farrell patches: features_shutdown-r2.patch uploaded by Corey Farrell (License 5909) ........ Merged revisions 386641 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-25 03:02 +0000 [r386484-386486] Michael L. Young * channels/chan_sip.c: Fix Displaying Symmetric RTP Global Setting * Use comedia_string() to display correctly the symmetric rtp setting when running "sip show settings" * /, channels/chan_sip.c: Change Case On Forcerport For Consistency * Change "ForcerPort" to "Forcerport" to match everywhere else it is displayed ........ Merged revisions 386483 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-22 16:30 +0000 [r386286] Richard Mudgett * main/channel.c, /: Fix crash when AMI redirect action redirects two channels out of a bridge. The two party bridging loops were changing the bridge peer pointers without the channel locks held. Thus when ast_channel_massquerade() tested and used the pointer there is a small window of opportunity for the pointers to become NULL even though the masquerade code has the channels locked. (closes issue ASTERISK-21356) Reported by: William luke Patches: jira_asterisk_21356_v11.patch (license #5621) patch uploaded by rmudgett Tested by: William luke ........ Merged revisions 386256 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-19 22:25 +0000 [r386159] Matthew Jordan * /, res/res_timing_pthread.c: Prevent res_timing_pthread from blocking callers There were several reports of deadlock when using res_timing_pthread. Backtraces indicated that one thread was blocked waiting for the write to the pipe to complete and this thread held the container lock for the timers. Therefore any thread that wanted to create a new timer or read an existing timer would block waiting for either the timer lock or the container lock and deadlock ensued. This patch changes the way the pipe is used to eliminate this source of deadlocks: 1) The pipe is placed in non-blocking mode so that it would never block even if the following changes someone fail... 2) Instead of writing bytes into the pipe for each "tick" that's fired the pipe now has two states--signaled and unsignaled. If signaled, the pipe is hot and any pollers of the read side filedescriptor will be woken up. If unsigned the pipe is idle. This eliminates even the chance of filling up the pipe and reduces the potential overhead of calling unnecessary writes. 3) Since we're tracking the signaled / unsignaled state, we can eliminate the exta poll system call for every firing because we know that there is data to be read. (closes issue ASTERISK-21389) Reported by: Matt Jordan Tested by: Shaun Ruffell, Matt Jordan, Tony Lewis patches: 0001-res_timing_pthread-Reduce-probability-of-deadlocking.patch uploaded by sruffell (License 5417) (closes issue ASTERISK-19754) Reported by: Nikola Ciprich (closes issue ASTERISK-20577) Reported by: Kien Kennedy (closes issue ASTERISK-17436) Reported by: Henry Fernandes (closes issue ASTERISK-17467) Reported by: isrl (closes issue ASTERISK-17458) Reported by: isrl Review: https://reviewboard.asterisk.org/r/2441/ ........ Merged revisions 386109 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-19 05:18 +0000 [r386006-386051] David M. Lee * main/cli.c, /: cli.c: Properly initialize debug_modules and verbose_modules. This avoids some lock errors on the core set {debug,verbose} commands. ........ Merged revisions 386049 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/message.c: Fix lock errors on startup. In messages.c, there are several places in the code where we create a tmp_tech_holder and pass that into an ao2_find call. Unfortunately, we weren't initializing the rwlock on the tmp_tech_holder, which the hash function was locking. It's apparently harmless, but still not the best code. This patch extracts all that copy/pasted code into two functions, msg_find_by_tech and msg_find_by_tech_name, which properly initialize and destroy the rwlock on the tmp_tech_holder. Review: https://reviewboard.asterisk.org/r/2454/ 2013-04-16 23:27 +0000 [r385917-385938] Alec L Davis * res/res_xmpp.c: Distributed Device State broken at sites using res_xmpp or res_jabber where Secuity Advisory AST-2012-015 is inplace res_xmpp was not adding AST_EVENT_IE_CACHABLE to the event as each message came in, then devstate_change_collector_cb() was unable to find AST_EVENT_IE_CACHABLE in the event, so defaulted incorrectly to AST_DEVSTATE_NOT_CACHABLE. (issue ASTERISK-20175) (closes issue ASTERISK-21429) (closes issue ASTERISK-21069) (closes issue ASTERISK-21164) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2452/ * /, main/devicestate.c, res/res_jabber.c: Distributed Device State broken at sites using res_xmpp or res_jabber where Secuity Advisory AST-2012-015 is inplace res_jabber/res_xmpp were not adding AST_EVENT_IE_CACHABLE to the event as each message came in, then devstate_change_collector_cb() was unable to find AST_EVENT_IE_CACHABLE in the event, so defaulted incorrectly to AST_DEVSTATE_NOT_CACHABLE. (issue ASTERISK-20175) (closes issue ASTERISK-21429) (closes issue ASTERISK-21069) (closes issue ASTERISK-21164) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2452/ ........ Merged revisions 385916 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-15 17:23 +0000 [r385768] Jason Parker * Makefile, /: Don't unnecessarily rebuild things on every run of 'make'. Review: https://reviewboard.asterisk.org/r/2449/ ........ Merged revisions 385745 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-15 15:18 +0000 [r385689] David M. Lee * channels/sig_ss7.c, channels/sip/include/security_events.h, contrib/realtime/mysql/queue_log.sql, channels/chan_multicast_rtp.c, channels/sig_ss7.h, /, tests/test_expr.c, apps/app_saycounted.c, channels/sip/security_events.c, contrib/realtime/mysql/voicemail_messages.sql, BSDmakefile, contrib/realtime/mysql/voicemail_data.sql, build_tools/sha1sum-sh, res/res_mutestream.c, configs/res_curl.conf.sample, tests/test_func_file.c, include/asterisk/select.h, res/res_rtp_multicast.c, include/asterisk/bridging_technology.h, include/asterisk/bridging_features.h, tests/test_locale.c, doc/Makefile, tests/test_poll.c, contrib/realtime/mysql/musiconhold.sql, res/res_timing_kqueue.c: Fix the svn:keywords property on several files. Normally I think keyword expansion is silly, but the one time it would have been good, it didn't work because the property had quotes in it. This patch fixes obviously busted svn:keywords properties. ........ Merged revisions 385683 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-14 03:00 +0000 [r385634-385637] Matthew Jordan * res/res_rtp_multicast.c, /: Calculate the timestamp for outbound RTP if we don't have timing information This patch calculates the timestamp for outbound RTP when we don't have timing information. This uses the same approach in res_rtp_asterisk. Thanks to both Pietro and Tzafrir for providing patches. (closes issue ASTERISK-19883) Reported by: Giacomo Trovato Tested by: Pietro Bertera, Tzafrir Cohen patches: rtp-timestamp-1.8.patch uploaded by tzafrir (License 5035) rtp-timestamp.patch uploaded by pbertera (License 5943) ........ Merged revisions 385636 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_alsa.c: Don't attempt to create a voice frame on a read error Prior to this patch, a read error in snd_pcm_readi would still be treated as a nominal result when constructing a voice frame from the expected data. Since the value returned is negative, as opposed to the number of samples read, this could result in a crash. With this patch, we now return a null frame when a read error is detected. Note that the patch on ASTERISK-21329 was modified slightly for this commit, in that we bail immediately on detecting the read error, rather than bypassing the construction of the voice frame. (closes issue ASTERISK-21329) Reported by: Keiichiro Kawasaki patches: chan_alsa.diff uploaded by kawasaki (License 6489) ........ Merged revisions 385633 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-12 22:37 +0000 [r385594] Michael L. Young * /, apps/app_queue.c: Fix Manager Segfault When app_queue Is Unloaded When app_queue is unloaded, some manager commands are not being unregistered which result in a segfault. This patch corrects this. (closes issue ASTERISK-21397) Reported by: Peter Katzmann, Corey Farrell Tested by: Corey Farrell Patches: asterisk-21397-missing-unreg-manager-cmd_1.8.diff Michael L. Young (license 5026) asterisk-21397-missing-unreg-manager-cmd_11.diff Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2444/ ........ Merged revisions 385593 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-12 22:25 +0000 [r385582] Kinsey Moore * codecs/codec_resample.c: Allow codec_resample to be unloaded Ensure that trans_size is correct to prevent uninitialized entries from preventing reload. (closes issue ASTERISK-21401) Reported by: Corey Farrell Tested by: Corey Farrell Patches: codec_resample-unload.patch uploaded by Corey Farrell 2013-04-12 22:18 +0000 [r385473-385557] Michael L. Young * apps/app_voicemail.c, /: Fix app_voicemail Segfault And A Few Memory Leaks The original report was that app_voicemail would crash. This was caused by ast_config_load() returning CONFIG_STATUS_FILEINVALID but no checks being performed for that return status. After adding the initial patch to fix this issue, Jaco Kroon (jkroon) added some fixes to memory leaks he had discovered. During review, Walter Doekes (wdoekes) suggested adding a helper function in order to determine if we had a valid configuration or not. This patch does the following: * Creates a helper function to check if the configuration is valid * Adds calls to the new helper function where appropiate * Fixes memory leaks where the code returned without running ast_config_destroy() on the configuration that was loaded (closes issue ASTERISK-21302) Reported by: Jaco Kroon Tested by: Jaco Kroon, Michael L. Young Patches: asterisk-11.3.0-app_voicemail-ast_config-fixes.patch Jaco Kroon (license 5671) asterisk-21302-valid_cfg_and_mem_leaks_v3-1.8.diff Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2443/ ........ Merged revisions 385551 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_sip.c: Fix One-Way Audio With auto_* NAT Settings When SIP Calls Initiated By PBX When we reload Asterisk or chan_sip, the flags force_rport and comedia that are turned on and off when using the auto_force_rport and auto_comedia nat settings go back to the default setting off. These flags are turned on when needed or off when not needed at the time that a peer registers, re-registers or initiates a call. This would apply even when only the default global setting "nat=auto_force_rport" is being used, which in this case would only affect the force_rport flag. Everything is good except for the following: The nat setting is set to auto_force_rport and auto_comedia. We reload Asterisk and the peer's registration has not expired. We load in the settings for the peer which turns force_rport and comedia back to off. Since the peer has not re-registered or placed a call yet, those flags remain off. We then initiate a call to the peer from the PBX. The force_rport and comedia flags stay off. If NAT is involved, we end up with one-way audio since we never checked to see if the peer is behind NAT or not. This patch does the following: * Moves the checking of whether a peer is behind NAT into its own function * Create a function to set the peer's NAT flags if they are using the auto_* NAT settings * Adds calls in sip_request_call() to these new functions in order to setup the dialog according to the peer's settings (closes issue ASTERISK-21374) Reported by: Michael L. Young Tested by: Michael L. Young Patches: asterisk-21374-auto-nat-outgoing-fix_v2.diff Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2421/ 2013-04-12 08:50 +0000 [r385403-385430] Alec L Davis * /, channels/chan_iax2.c: IAX2 defer_full_frames fail to get sent Ensure iax2_process_thread is signalled when a deferred frame is queued to it. (issue ASTERISK-18827) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2426/ ........ Merged revisions 385429 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_iax2.c: IAX2, prevent network thread starting before all helper threads are ready On startup, it's possible for a frame to arrive before the processing threads were ready. In iax2_process_thread() the first pass through falls into ast_cond_wait, should a frame arrive before we are at ast_cond_wait, the signal will be ignored. The result iax2_process_thread stays at ast_cond_wait forever, with deferred frames being queued. Fix: When creating initial idle iax2_process_threads, wait for init_cond to be signalled after each thread is started. (issue ASTERISK-18827) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2427/ ........ Merged revisions 385402 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-11 19:59 +0000 [r385356] Jason Parker * res/res_rtp_asterisk.c, build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Add dependency on libuuid, for res_rtp_asterisk pjproject is what actually requires libuuid. (closes issue ASTERISK-21125) reported by Private Name (Ed. note: Really? Private Name? I am rolling my eyes so hard right now.) 2013-04-11 16:52 +0000 [r385313] Richard Mudgett * configs/cli_aliases.conf.sample: Fix 'pri intense debug span' alias. 2013-04-10 14:25 +0000 [r385173-385199] Matthew Jordan * /, res/res_config_ldap.c: Use LDAP memory management functions instead of Asterisk's When MALLOC_DEBUG is enabled with res_config_ldap, issues (munmap_chunk: invalid pointer errors) can occur as the memory is being allocated with Asterisk's wrappers around malloc/calloc/free/strdup, as opposed to the LDAP library's wrappers. This patch uses the LDAP library's wrappers where appropriate, so that compiling with MALLOC_DEBUG doesn't cause more problems than it solves. Note that the patch listed below was modified slightly for this commit to account for some additional memory allocation/deallocations. (closes issue ASTERISK-17386) Reported by: John Covert Tested by: Andrew Latham patches: issue18789-1.8-r316873.patch uploaded by seanbright (License 5060) ........ Merged revisions 385190 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_sip.c: Fix crash in chan_sip when a core initiated op occurs at the same time as a BYE When a BYE request is processed in chan_sip, the current SIP dialog is detached from its associated Asterisk channel structure. The tech_pvt pointer in the channel object is set to NULL, and the dialog persists for an RFC mandated period of time to handle re-transmits. While this process occurs, the channel is locked (which is good). Unfortunately, operations that are initiated externally have no way of knowing that the channel they've just obtained (which is still valid) and that they are attempting to lock is about to have its tech_pvt pointer removed. By the time they obtain the channel lock and call the channel technology callback, the tech_pvt is NULL. This patch adds a few checks to some channel callbacks that make sure the tech_pvt isn't NULL before using it. Prime offenders were the DTMF digit callbacks, which would crash if AMI initiated a DTMF on the channel at the same time as a BYE was received from the UA. This patch also adds checks on sip_transfer (as AMI can also cause a callback into this function), as well as sip_indicate (as lots of things can queue an indication onto a channel). Review: https://reviewboard.asterisk.org/r/2434/ (closes issue ASTERISK-20225) Reported by: Jeff Hoppe ........ Merged revisions 385170 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-08 23:36 +0000 [r385048] Rusty Newton * /, configs/extconfig.conf.sample: Modified the list of keys for the driver backends for sake of sample clarity Added a line showing the mapping of "mysql" to res_config_mysql available in add-ons. We used "mysql" as an example driver key in the sample, but didn't show what module it mapped too. Also added a subtitle above the list of keys for driver backends. ........ Merged revisions 385047 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-05 20:34 +0000 [r384827] Michael L. Young * channels/chan_sip.c, UPGRADE.txt: Fix For Not Overriding The Default Settings In chan_sip The initial report was that the "nat" setting in the [general] section was not having any effect in overriding the default setting. Upon confirming that this was happening and looking into what was causing this, it was discovered that other default settings would not be overriden as well. This patch works similar to what occurs in build_peer(). We create a temporary ast_flags structure and using a mask, we override the default settings with whatever is set in the [general] section. In the bug report, the reporter who helped to test this patch noted that the directmedia settings were being overriden properly as well as the nat settings. This issue is also present in Asterisk 1.8 and a separate patch will be applied to it. (issue ASTERISK-21225) Reported by: Alexandre Vezina Tested by: Alexandre Vezina, Michael L. Young Patches: asterisk-21225-handle-options-default-prob_v4.diff Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2385/ 2013-04-03 20:18 +0000 [r384689] Richard Mudgett * channels/sig_pri.h, channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, /, channels/sig_pri.c: chan_dahdi: Add inband_on_proceeding compatibility option. The new inband_on_proceeding option causes Asterisk to assume inband audio may be present when a PROCEEDING message is received. Q.931 Section 5.1.2 says the network cannot assume that the CPE side has attached to the B channel at this time without explicitly sending the progress indicator ie informing the CPE side to attach to the B channel for audio. However, some non-compliant ISDN switches send a PROCEEDING without the progress indicator ie indicating inband audio is available and assume that the CPE device has connected the media path for listening to ringback and other messages. ASTERISK-17834 which causes this issue was dealing with a non-compliant network switch. (closes issue ASTERISK-21151) Reported by: Gianluca Merlo Tested by: rmudgett ........ Merged revisions 384685 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-03 17:10 +0000 [r384641] Matthew Jordan * /, funcs/func_channel.c: Update documentation for CHANNEL function Document that you can read/write the 'accountcode' and 'amaflags' on a channel. ........ Merged revisions 384640 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-02 17:34 +0000 [r384545] David M. Lee * Makefile, /: Fixed spurious rebuilds of func_version. func_version.so was being rebuilt every time, because build.h was changing every build, because of the cleantest dependency that was added in r384410 to fix parallel make bugs. Now build.h will only be created if it does not exist, which was the original behavior of the Makefile. ........ Merged revisions 384544 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-04-01 14:07 +0000 [r384414] Joshua Colp * apps/app_voicemail.c: Remove silly use of strncmp. 2013-04-01 13:28 +0000 [r384411] David M. Lee * Makefile, /: Fix parallel make problems. Occasionally, make -j would fail due to missing includes, or other unusual errors. This was due to the 'cleantest' target, which was designed to force a make clean when some change in the code would cause the typical depedency checking to fail. Several targets in the main Makefile did not depend upon cleantest, hence would run in parallel to it. By adding the dependency, make -j runs happily now. Review: https://reviewboard.asterisk.org/r/2418/ ........ Merged revisions 384410 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-29 16:31 +0000 [r384326] Jonathan Rose * apps/app_voicemail.c, /: app_voicemail: Add blank argument to externnotify if no context argument At least one call to run_externnotify provides a NULL context parameter and because the snprintf statement doesn't account for a NULL context parameter, it simply writes '(null)' to the arguments string instead. This patch makes it write two quotes back to back for that argument instead in the event of a NULL context. (closes issue ASTERISK-18207) Reported by: Barry L. Kline Patches: modified from patch-20130306 uploaded by Karsten Wemheuer (License 5930) ........ Merged revisions 384325 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-05-17 Asterisk Development Team * Asterisk 11.4.0 Released. 2013-05-15 Asterisk Development Team * Asterisk 11.4.0-rc3 Released. * Fix VM snapshot handling for combined INBOX. The snapshot API contains an option that allow for combining of new and old messages within a single snapshot. New messages, however, include options beyond just 'INBOX' - it also includes the Urgent folder. A previous patch that combined INBOX and Urgent accidentally impacted snapshots that attempted to gain messages from just the Old folder. This patch fixes the snapshot gathering such that the API returns the appropriate messages for the folder selected, with and without the combine option. 2013-05-09 Asterisk Development Team * Asterisk 11.4.0-rc2 Released. * Fix Segfault In app_queue When "persistentmembers" Is Enabled And Using Realtime When the "ignorebusy" setting was deprecated, we added some code to allow us to be compatible with older setups that are still using the "ignorebusy" setting instead of "ringinuse". We set a char *variable with the column name to use, which helps the realtime functions to use the correct column in their SQL queries. When "persistentmembers" is enabled, we are not setting this variable before the realtime functions were called to load members. This results in the variable being NULL and therefore causing a segfault when loading members during the module's process of loading. The solution was to move the code that sets that variable to be before these realtime functions are called during the loading of the module. * Distributed Device State broken at sites using res_xmpp or res_jabber where Secuity Advisory AST-2012-015 is inplace res_jabber/res_xmpp were not adding AST_EVENT_IE_CACHABLE to the event as each message came in, then devstate_change_collector_cb() was unable to find AST_EVENT_IE_CACHABLE in the event, so defaulted incorrectly to AST_DEVSTATE_NOT_CACHABLE. * Fix CDR not being created during an externally initiated blind transfer Way back when in the dark days of Asterisk 1.8.9, blind transferring a call in a context that included the 'h' extension would inadvertently execute the hangup code logic on the transferred channel. This was a "bad thing". The fix was to properly check for the softhangup flags on the channel and only execute the 'h' extension logic (and, in later versions, hangup handler logic) if the channel was well and truly dead (Jim). Unfortunately, CDRs are fickle. Setting the softhangup flag when we detected that the channel was leaving the bridge (but not to die) caused some crucial snippet of CDR code, lying in ambush in the middle of the bridging code, to not get executed. This had the effect of blowing away one of the CDRs that is typically created during a blind transfer. While we live and die by the adage "don't touch CDRs in release branches", this was our bad. The attached patch restores the CDR behavior, and still manages to not run the 'h' extension during a blind transfer (at least not when it's supposed to). Thanks to Steve Davies for diagnosing this and providing a fix. * Prevent res_timing_pthread from blocking callers There were several reports of deadlock when using res_timing_pthread. Backtraces indicated that one thread was blocked waiting for the write to the pipe to complete and this thread held the container lock for the timers. Therefore any thread that wanted to create a new timer or read an existing timer would block waiting for either the timer lock or the container lock and deadlock ensued. This patch changes the way the pipe is used to eliminate this source of deadlocks: 1) The pipe is placed in non-blocking mode so that it would never block even if the following changes someone fail... 2) Instead of writing bytes into the pipe for each "tick" that's fired the pipe now has two states--signaled and unsignaled. If signaled, the pipe is hot and any pollers of the read side filedescriptor will be woken up. If unsigned the pipe is idle. This eliminates even the chance of filling up the pipe and reduces the potential overhead of calling unnecessary writes. 3) Since we're tracking the signaled / unsignaled state, we can eliminate the exta poll system call for every firing because we know that there is data to be read. * Fix crash when AMI redirect action redirects two channels out of a bridge. The two party bridging loops were changing the bridge peer pointers without the channel locks held. Thus when ast_channel_massquerade() tested and used the pointer there is a small window of opportunity for the pointers to become NULL even though the masquerade code has the channels locked. 2013-03-28 Asterisk Development Team * Asterisk 11.4.0-rc1 Released. 2013-03-27 19:51 +0000 [r384163] Kinsey Moore * /, channels/chan_sip.c, main/format_pref.c: Address uninitialized conditional that valgrind found ........ Merged revisions 384162 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-27 18:51 +0000 [r384119] Matthew Jordan * /, main/http.c: Fix a file descriptor leak in off nominal path While looking at the security vulnerability in ASTERISK-20967, Walter noticed a file descriptor leak and some other issues in off nominal code paths. This patch corrects them. Note that this patch is not related to the vulnerability in ASTERISK-20967, but the patch was placed on that issue. (closes issue ASTERISK-20967) Reported by: wdoekes patches: issueA20967_file_leak_and_unused_wkspace.patch uploaded by wdoekes (License 5674) ........ Merged revisions 384118 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-27 17:06 +0000 [r384049] Kinsey Moore * res/res_rtp_asterisk.c, /: Fix white noise on SRTP decryption When res_rtp_asterisk.c was altered to avoid attempting to apply unprotect algorithms to non-audio RTP packets, the test used was incorrect. This caused the audio packets to not be decrypted and resulted in loud white noise on the other endpoint (or both endpoints depending on the call legs involved). The test now properly checks the version field in the RTP header to ensure that RTP and RTCP are decrypted while other types of packets are not. (closes issue ASTERISK-21323) Reported by: andrea Tested by: Kinsey Moore, andrea, John Bigelow Patches: whitenoise_fix.diff uploaded by Kinsey Moore ........ Merged revisions 384048 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-27 15:23 +0000 [r383973-384003] Matthew Jordan * channels/sip/include/sip.h, channels/chan_sip.c, channels/sip/security_events.c: AST-2013-003: Prevent username disclosure in SIP channel driver When authenticating a SIP request with alwaysauthreject enabled, allowguest disabled, and autocreatepeer disabled, Asterisk discloses whether a user exists for INVITE, SUBSCRIBE, and REGISTER transactions in multiple ways. The information is disclosed when: * A "407 Proxy Authentication Required" response is sent instead of a "401 Unauthorized" response * The presence or absence of additional tags occurs at the end of "403 Forbidden" (such as "(Bad Auth)") * A "401 Unauthorized" response is sent instead of "403 Forbidden" response after a retransmission * Retransmission are sent when a matching peer did not exist, but not when a matching peer did exist. This patch resolves these various vectors by ensuring that the responses sent in all scenarios is the same, regardless of the presence of a matching peer. This issue was reported by Walter Doekes, OSSO B.V. A substantial portion of the testing and the solution to this problem was done by Walter as well - a huge thanks to his tireless efforts in finding all the ways in which this setting didn't work, providing automated tests, and working with Kinsey on getting this fixed. (closes issue ASTERISK-21013) Reported by: wdoekes Tested by: wdoekes, kmoore patches: AST-2013-003-1.8 uploaded by kmoore, wdoekes (License 6273, 5674) AST-2013-003-10 uploaded by kmoore, wdoekes (License 6273, 5674) AST-2013-003-11 uploaded by kmoore, wdoekes (License 6273, 5674) * main/http.c: AST-2013-002: Prevent denial of service in HTTP server AST-2012-014, fixed in January of this year, contained a fix for Asterisk's HTTP server for a remotely-triggered crash. While the fix put in place fixed the possibility for the crash to be triggered, a denial of service vector still exists with that solution if an attacker sends one or more HTTP POST requests with very large Content-Length values. This patch resolves this by capping the Content-Length at 1024 bytes. Any attempt to send an HTTP POST with Content-Length greater than this cap will not result in any memory allocation. The POST will be responded to with an HTTP 413 "Request Entity Too Large" response. This issue was reported by Christoph Hebeisen of TELUS Security Labs (closes issue ASTERISK-20967) Reported by: Christoph Hebeisen patches: AST-2013-002-1.8.diff uploaded by mmichelson (License 5049) AST-2013-002-10.diff uploaded by mmichelson (License 5049) AST-2013-002-11.diff uploaded by mmichelson (License 5049) * res/res_format_attr_h264.c: AST-2013-001: Prevent buffer overflow through H.264 format negotiation The format attribute resource for H.264 video performs an unsafe read against a media attribute when parsing the SDP. The value passed in with the format attribute is not checked for its length when parsed into a fixed length buffer. This patch resolves the vulnerability by only reading as many characters from the SDP value as will fit into the buffer. (closes issue ASTERISK-20901) Reported by: Ulf Harnhammar patches: h264_overflow_security_patch.diff uploaded by jrose (License 6182) 2013-03-26 02:28 +0000 [r383840-383878] Matthew Jordan * /, channels/chan_sip.c: Resolve deadlock between SIP registration and channel based functions In r373424, several reentrancy problems in chan_sip were addressed. As a result, the SIP channel driver is now properly locking the channel driver private information in certain operations that it wasn't previously. This exposed two latent problems either in register_verify or by functions called by register_verify. This includes: * Holding the private lock while calling sip_send_mwi_to_peer. This can create a new sip_pvt via sip_alloc, which will obtain the channel container lock. This is a locking inversion, as any channel related lock must be obtained prior to obtaining the SIP channel technology private lock. Note that this issue was already fixed in Asterisk 11. * Holding the private lock while calling sip_poke_peer. In the same vein as sip_send_mwi_to_peer, sip_poke_peer can create a new SIP private, causing the same locking inversion. Note that this locking inversion typically occured when CLI commands were run while a SIP REGISTER request was being processed, as many CLI commands (such as 'sip show channels', 'core show channels', etc.) have to obtain the channel container lock. (issue ASTERISK-21068) Reported by: Nicolas Bouliane (issue ASTERISK-20550) Reported by: David Brillert (issue ASTERISK-21314) Reported by: Badalian Vyacheslav (issue ASTERISK-21296) Reported by: Gabriel Birke ........ Merged revisions 383863 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/cdr.c, /: Resolve deadlock between pending CDR and batch CDR locks r375757 attempted to resolve a race condition between multiple submissions of CDRs while in batch mode from attempting to destroy the scheduled batch submission by extending the batch CDR lock. Unfortunately, this causes a deadlock between the pending CDR lock and the batch CDR lock. This patch resolves the intent of r375757 by simply providing a new lock that protects the scheduling of the batches. The original batch CDR lock is kept to protect manipulation of the batch CDR settings, but has been placed such that it is not held when the pending lock is held. Thanks to Chase Venters for providing lock analysis on the issue. (issue ASTERISK-21162) Reported by: Chase Venters ........ Merged revisions 383839 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-26 01:36 +0000 [r383836] Russell Bryant * /, apps/app_meetme.c: Fix multi-station answer race condition. When an SLA trunk is ringing (inbound call on the trunk) Asterisk will make outbound calls to the stations that have that trunk. If more than one station answers the call at the same time, all channels other than the first one to answer are left in a bad state. The channel gets leaked, is not connected to anything, and there's no way to get rid of it. We now properly clean up these losing channels by hanging up on them. Since they lost the race, as we process their answer, there is no ringing trunk for them to answer. ........ Merged revisions 383835 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-25 23:24 +0000 [r383798] Richard Mudgett * /, channels/sig_pri.c: Set the CALLERID(dnid-num-plan) for incoming ISDN calls. The CALLEDTON channel variable is set for incoming ISDN calls to the lower 7 bits of the Q.931 type-of-number/numbering-plan octet. The CALLERID(dnid-num-plan) should have the same value. (closes issue ASTERISK-21248) Reported by: rmudgett ........ Merged revisions 383796 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-25 12:36 +0000 [r383668] Sean Bright * res/res_config_curl.c, /: Properly delimit post data in res_config_curl. ........ Merged revisions 383667 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-22 20:41 +0000 [r383631] Michael L. Young * apps/app_mixmonitor.c: Fix StopMixMonitor Hanging Up When Unable To Stop MixMonitor On A Channel A regression was accidentally introduced when allowing an optional ID to be used when calling StopMixMonitor. When we are unable to stop MixMonitor on a channel, -1 is being returned which triggers the hangup of the channel. This patch restores the prior behavior by returning 0 whether we were successful or not. It also allows the call from the manager to use the return code when the action fails. (closes issue ASTERISK-21294) Reported by: daroz Tested by: daroz Patches: asterisk-21294-stop_mixmonitor_hangingup.diff Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2404/ 2013-03-20 20:25 +0000 [r383457-383461] Walter Doekes * funcs/func_curl.c, /: Have func_curl log a warning when a curl request fails. Review: https://reviewboard.asterisk.org/r/2403/ ........ Merged revisions 383460 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * funcs/func_curl.c: Minor cleanup in func_curl near hashcompat code. Review: https://reviewboard.asterisk.org/r/2402/ 2013-03-19 15:58 +0000 [r383341-383342] David M. Lee * codecs/Makefile: Remove codecs/speex/*.i on make clean * codecs/Makefile, /: Removed codecs/g722/*.i on make clean ........ Merged revisions 383340 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-16 15:14 +0000 [r383266] Joshua Colp * res/res_xmpp.c: Fix a bug where resources were not found due to hashing on the priority itself. 2013-03-15 12:51 +0000 [r383166] Kinsey Moore * main/tcptls.c, main/manager.c, /, channels/chan_sip.c, main/http.c: tcptls: Prevent unsupported options from being set AMI, HTTP, and chan_sip all support TLS in some way, but none of them support all the options that Asterisk's TLS core is capable of interpreting. This prevents consumers of the TLS/SSL layer from setting TLS/SSL options that they do not support. This also gets tlsverifyclient closer to a working state by requesting the client certificate when tlsverifyclient is set. Currently, there is no consumer of main/tcptls.c in Asterisk that supports this feature and so it can not be properly tested. Review: https://reviewboard.asterisk.org/r/2370/ Reported-by: John Bigelow Patch-by: Kinsey Moore (closes issue AST-1093) ........ Merged revisions 383165 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-15 01:34 +0000 [r383121-383125] Matthew Jordan * /, channels/chan_sip.c: When a session timer expires during a T.38 call, re-invite with correct SDP When a session timer expires during a dialog that has re-negotiated to T.38 and Asterisk is the refresher, Asterisk will send a re-INVITE with an SDP containing audio media only. This causes some hilarity with the poor fax session under weigh. This patch corrects that by sending T.38 parameters if we are in the middle of a T.38 session. (closes issue ASTERISK-21232) Reported by: Nitesh Bansal patches: dont-send-audio-reinvite-for-sess-timer-in-t38-call.patch uploaded by nbansal (License 6418) ........ Merged revisions 383124 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * pbx/pbx_spool.c, /: Fix processing of call files when using KQueue on OS X In certain situations, call files are not processed when using KQueue with pbx_spool. Asterisk was sending an invalid timeout value when the spool directory is empty, causing the call to kevent to error immediately. This can create a tight loop, increasing the CPU load on the system. (closes issue ASTERISK-21176) Reported by: Carlton O'Riley patches: kqueue_osx.patch uploaded by coriley (License 6473) ........ Merged revisions 383120 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-14 16:57 +0000 [r383062] Jason Parker * autoconf/ast_ext_lib.m4, /: Fix whitespace in AST_EXT_LIB_CHECK macro. ........ Merged revisions 383061 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-12 21:17 +0000 [r382940-382943] Michael L. Young * addons/res_config_mysql.c, /: Fix Sorting Order For Parking Lots Stored In Static Realtime When retrieving the parking lots from a MySQL database table, the current order is "filename, cat_metric desc, var_metric asc, category". If there are multiple parking lots with the same cat_metric but different categories, everything is being sorted on cat_metric first resulting in errors when loading the parking lots. This patch fixes the problem by sorting on the category field first, then the cat_metric field. (closes issue ASTERISK-21035) Reported by: Alex Epshteyn Patches: asterisk-21035-orderby.diff Michael L. Young (license 5026) ........ Merged revisions 382942 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * contrib/realtime/mysql/sippeers.sql, /, contrib/realtime/postgresql/realtime.sql: Update Contributed Realtime Schema Files - IPv6 Addresses This commit updates some fields in the contributed realtime schema files to handle IPv6 addresses. (closes issue ASTERISK-21173) Reported by: Torrey Searle Patches: realtime_sql.patch Torrey Searle (license 5334) asterisk-21173-update-ip-fields.diff Michael L. Young (license 5026) ........ Merged revisions 382939 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-12 20:06 +0000 [r382923] Joshua Colp * res/res_xmpp.c: Fix a crash when res_xmpp is configured using a username without a domain. (closes issue ASTERISK-21156) Reported by: amsoft2001 2013-03-12 16:23 +0000 [r382848] Matthew Jordan * /, channels/chan_sip.c, UPGRADE.txt: Include the Username field in SIP Registry events when Status is registered In ASTERISK-17888, the AMI Registry event during SIP registrations was supposed to include the Username field. Somehow, one of the events was missed. This patch corrects that - the Username field should be included in all AMI Registry events involving SIP registrations. (issue ASTERISK-17888) (closes issue ASTERISK-21201) Reported by: Dmitriy Serov patches: chan_sip.c.diff uploaded by Dmitriy Serov (license 6479) ........ Merged revisions 382847 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-12 08:53 +0000 [r382827] Igor Goncharovskiy * channels/chan_unistim.c: Fix core dump on CLI usage Fix issue with 'unistim show info' CLI command when device connected not configured 2013-03-08 20:16 +0000 [r382739] Jonathan Rose * channels/chan_sip.c: chan_sip: Update the via header when relaying SMS MESSAGE Prior to this change, certain conditions for sending the message would result in an address of '(null)' being used in the via header of the SIP message because a NULl value of pvt->ourip was used when initially generating the via header. This is fixed by adding a call to build_via when the address is set before sending the message. (closes issue ASTERISK-21148) Reported by: Zhi Cheng Patches: 700-sip_msg_send_via_fix.patch uploaded by Zhi Cheng (license 6475) 2013-03-07 17:57 +0000 [r382617] Matthew Jordan * apps/app_voicemail.c: Let vm_mailbox_snapshot combine "Urgent" when no folder is specified r381835 fixed a bug in vm_mailbox_snapshot where combining INBOX and Old forgot that Urgent also "counts" as new messages. This fixed the problem when any of the three folders was specified and the combine option was used. It missed the case where the folder isn't specified and we build a snapshot of all folders. This patch corrects that. 2013-03-07 15:08 +0000 [r382574] Kinsey Moore * main/logger.c: Ensure that logmsgs are freed properly Messages sent while the logger thread is shutting down will now have their associated callid freed properly. 2013-03-07 14:58 +0000 [r382573] Matthew Jordan * res/res_rtp_asterisk.c: Add a 'secret' probation strictrtp mode to handle delayed changes in RTP source Often, Asterisk may realize that a change in the source of an RTP stream is about to occur and ask that the RTP engine reset it's lock on the current RTP source. In certain scenarios, it may take awhile for the new remote system to send RTP packets, while the old remote system may continue providing RTP during that time period. This causes Asterisk to re-lock onto the old source, thereby rejecting the new source when the old source stops sending RTP and the new source begins. This patch prevents that by having a constant secondary, 'secret' probation mode enabled when an RTP source has been chosen. RTP packets from other sources are always considered, but never chosen unless the current RTP source stops sending RTP. Review: https://reviewboard.asterisk.org/r/2364 (closes issue AST-1124) Reported by: John Bigelow Tested by: John Bigelow (closes issue AST-1125) Reported by: John Bigelow Tested by: John Bigelow 2013-03-06 18:28 +0000 [r382514] Kinsey Moore * /: Recorded merge of revisions 382513 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Correct app_page documentation The 'A' and 'n' options for Page() mention that the announcement will be played simultaneously. This is not necessarily the case. 2013-03-05 03:51 +0000 [r382410] Igor Goncharovskiy * channels/chan_unistim.c, /: Fix several unreleased mutex locks that cause problem with processing calls Reported by: Daniel Bohling Tested by: Daniel Bohling (Closes issue ASTERISK-21119) ........ Merged revisions 382409 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-04 21:12 +0000 [r382390] Jason Parker * /, main/event.c: Fix comparison of presence state in event subsystem. Several new IEs were not given types (or names), causing the comparison function to improperly succeed. This adds those. (closes issue AST-1128) 2013-03-04 20:03 +0000 [r382385] kharwell : * apps/app_confbridge.c: Confbridge CLI new record file name check. This fix checks to make sure that if a confbridge record start command is issued from the CLI it will always use the file name given on the CLI even if it changes between start/stop records for a conference. Previously it had been reusing the same file between start/stops even if a new filename was given. (issue AST-1088) Reported by: John Bigelow 2013-03-01 04:28 +0000 [r382322] Michael L. Young * contrib/realtime/mysql/sippeers.sql, channels/chan_sip.c, contrib/realtime/postgresql/realtime.sql, CHANGES: Fix / Clean Up Some Items To Handle The New auto_* NAT Options The original report had to do with a realtime peer behind NAT being pruned and the peer's private address being used instead of its external address. Upon debugging, it was discovered that this was being caused by the addition of the auto_force_rport and auto_comedia settings. This patch does the following: * Adds a missing note to the CHANGES file indicating that the default global nat setting is auto_force_rport * Constify the 'req' parameter for check_via() * Add calls to check_via() in a couple of places in order for the auto_* settings to do their job in attempting to determine if NAT is involved * Set the flags SIP_NAT_FORCE_RPORT and SIP_PAGE2_SYMMETRICRTP if the auto_* settings are in use where it was needed * Moves the copying of peer flags up in build_peer() to before they are used; this fixes the realtime prune issue * Update the contrib/realtime schemas to allow the nat column to handle the different nat setting combinations we have This patch received a review and "Ship It!" on the issue itself. (closes issue ASTERISK-20904) Reported by: JoshE Tested by: JoshE, Michael L. Young Patches: asterisk-20904-nat-auto-and-rt-peersv2.diff Michael L. Young (license 5026) 2013-02-28 21:58 +0000 [r382296-382298] Joshua Colp * res/res_rtp_asterisk.c: While the ICE negotiation is occurring leave strictrtp in an open state, media can and will come from different places. * res/res_rtp_asterisk.c: Fix a bug with ICE and strictrtp where media could get dropped. If the end result of the ICE negotiation resulted in the path for media changing it was possible for the strictrtp code to discard the RTP packets. This change causes strictrtp to enter learning mode once again when the ICE negotiation has completed successfully. 2013-02-28 17:16 +0000 [r382230-382234] Matthew Jordan * /, channels/chan_iax2.c: Prevent deadlock in chan_iax2 when attempting to set caller ID A deadlock can occur in chan_iax2 when it attempts to set the caller ID, as it already holds the iax2 private lock and improperly fails to obtain the channel lock before calling ast_set_callerid. By not safely obtaining the channel lock, a locking inversion can take place, causing a deadlock. This patch solves this by calling the required deadlock avoidance functions that obtain the channel lock before setting the caller ID. Thanks to Pavel for fixing my syntax errors and testing this patch out. (closes issue ASTERISK-21128) Reported by: Pavel Troller Tested by: Pavel Troller patches: ASTERISK-21128-1.8.diff uploaded by mjordan (license 6283) ASTERISK-21128-modified-1.8.diff uploaded by Pavel Troller (license 6302) ........ Merged revisions 382233 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, apps/app_meetme.c, UPGRADE.txt: Let channels joining a MeetMe conference opt out of the denoiser For some channel drivers, specifically those that have a varying rate in the number of audio samples, the audio quality for a MeetMe conference can be exceedingly poor. This is due to a unilateral application of the DENOISE function in func_speex to channels joining the conference. The denoiser function in the speex library is initialized with the number of audio samples in each sample that will be provided to it. If the number of audio samples changes, the denoiser has to be thrown away and re-initialized. While this could be worked around by removing func_speex, that doesn't help if you actually use the denoiser with other channels on the system. This patches does the following: * Checks for the presence of func_speex as opposed to codec_speex when determining if the DENOISE function is present (which is where the function is actually implemented) * Adds an option to MeetMe 'n' that causes the denoiser to not be applied to a channel when it joins. This keeps the current behavior the default, but let's users disable the denoiser if it causes problems on their system. Review: https://reviewboard.asterisk.org/r/2358 (closes issue AST-1062) Reported by: Thomas Arimont ........ Merged revisions 382227 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-27 16:17 +0000 [r382151-382174] Joshua Colp * /, channels/chan_sip.c: Relax dialog checking in get_sip_pvt_byid_locked so it works when the dialog is forked. (closes issue ASTERISK-20638) Reported by: eelcob Patches: pedantic-call-pickup-from-tag.patch uploaded by eelcob (license 6442) ........ Merged revisions 382171 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * configure, include/asterisk/autoconfig.h.in: Regenerate the configure script. The one in the tree was not working for me at all. 2013-02-26 19:45 +0000 [r382111] Tzafrir Cohen * /, configure, configure.ac: Consider linux-gnuspe as linux-gnu * The powerpcspe Linux port uses linux-gnuspe as the OS string. * Our build system shouldn't really care for that, so just call it linux-gnu. * Original report: Roland Stigge , http://bugs.debian.org/701505 Review: https://reviewboard.asterisk.org/r/2357/ ........ Merged revisions 382110 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-26 19:34 +0000 [r382108] Walter Doekes * /, channels/chan_sip.c: Correct RPID parsing for unquoted display-name. Parsing Remote-Party-ID will now succeed if display-name is of the *(token LWS) kind and not just the quoted-string kind. Review: https://reviewboard.asterisk.org/r/2341/ ........ Merged revisions 382107 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-26 19:19 +0000 [r382096] Tzafrir Cohen * /, main/Makefile: Remove unneeded linux-gnueabi* As of r380521 the configure scripts converts the value of linux-gnueabi* of OSARCH to "linux-gnu". So no point in testing for those values. ........ Merged revisions 382087 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-26 15:38 +0000 [r382066-382069] Matthew Jordan * apps/app_confbridge.c: Fix typo in r382068 Well, that was embarrassing. Removed an '-l' that somehow got in there. * apps/app_confbridge.c: Clean up ConfBridge commands to account for wait_marked users When ConfBridge was refactored to better handle the concept of marked, wait_marked, and normal users co-existing in a conference (thereby implementing a state machine for the conference), the wait_marked users were put into their own list of conference participants, separate from the active users. This list is used for wait_marked users when they are waiting in a conference but no marked user has joined; normal users may have joined at this point however. There are several AMI/CLI commands that affect conference users that were not checking the wait_marked users list: * CLI/AMI commands that mute/unmute a participant. In this case, wait_marked users have to remain in their particular state and should not be affected - however, the commands would return "Channel not found" as opposed to the appropriate error condition. * CLI/AMI commands that kick a participant. An admin should always be able to kick a participant out of the conference. This patch fixes both sets of commands, and cleans up the CLI commands slightly by allowing them to complete a participant name (this was supposed to have been added, but the function call was commented out and wasn't implemented). Review: https://reviewboard.asterisk.org/r/2346/ (closes issue AST-1114) Reported by: John Bigelow Tested by: John Bigelow * apps/confbridge/conf_config_parser.c, configs/confbridge.conf.sample: Ensure that the default bridge/user profiles are always available ConfBridge and Page require that there always be a default bridge and user profile available. While properties of the default profiles can be overriden in the configuration file, removing them can create situations where neither application can function properly. This patch ensures that if an administrator removes the profiles from the confbridge.conf configuration file, the profiles are added upon load. Documentation clarifying this has been added to the confbridge.conf.sample file. Review: https://reviewboard.asterisk.org/r/2356/ (closes issue AST-1115) Reported by: John Bigelow Tested by: John Bigelow 2013-02-25 12:50 +0000 [r381917-382022] Matthew Jordan * addons/res_config_mysql.c, /: Clean up use of va_end/va_args in res_config_mysql There were several problems using variadic argument macros in res_config_mysql. * Improper use of va_end. Multiple calls to va_end were possible resulting in an unbalanced matching of va_start/va_end. * Calls to va_arg after a possible encounter of a SENTINEL value. This patch corrects those errors. (closes issue ASTERISK-19451) Reported by: wdoekes patches: ASTERISK-19451-1.8--2.diff uploaded by wdoekes (License 5674) ........ Merged revisions 382021 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_jingle.c, /: Set the sin_family on the bind address socket during initialization Somehow, chan_jingle has managed to operate for years without setting the sin_family on its bindaddr socket. This patch properly sets the field during initial module load to AF_INET. Note that the patch on the issue was modified slightly to change the initialization of the socket from allocation of a chan_jingle private to the module initialization, as the bindaddr object (which is static) only needs to have the address set once. (closes issue ASTERISK-19341) Reported by: andre valentin patches: 0105-chan_jingle.patch uploaded by avalentin (License 6064) ........ Merged revisions 381975 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/manager.c, /: Don't display the AMI ALL class authorization for users if they don't have it When converting AMI class authorizations to a string representation, the method always appends the ALL class authorization. This is especially important for events, as they should always communicate that class authorization - even if the event itself does not specify ALL as a class authorization for itself. (Events have always assumed that the ALL class authorization is implied when they are raised) Unfortunately, this did mean that specifying a user with restricted class authorizations would show up in the 'manager show user' CLI command as having the ALL class authorization. Rather then modifying the existing string manipulation function, this patch adds a function that will only return a string if the field being compared explicitly matches class authorization field it is being compared against. This prevents ALL from being returned unless it is actually specified for the user. (closes issue ASTERISK-20397) Reported by: Johan Wilfer ........ Merged revisions 381939 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * apps/app_parkandannounce.c, /: Make ParkAndAnnounce return to priority + 1 when return context is not defined The ParkAndAnnounce application documentation for the optional return_context parameter states the following: return_context The goto-style label to jump the call back into after timeout. Default 'priority+1'. Unfortunately, the application was sending the channel back into the dialplan at 'priority', which is the ParkAndAnnounce application call. This causes an infinite loop of the channel constantly being parked, announced, timed out, parked, announced, timed out... while fun, especially for those callers you wish to drive to the end of madness, this was not the intent of the application. (closes issue ASTERISK-20113) Reported by: serginuez patches: app_parkandannounce.diff uploaded by serginuez (License 6405) ........ Merged revisions 381916 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-22 19:38 +0000 [r381893] Michael L. Young * res/res_agi.c: Fix FastAGI To Properly Check For A Connection When IPv6 support was added to FastAGI, the intent was to have the ability to check all addresses resolved for a host since we might receive an IPv4 address and an IPv6 address. The problem with the current code, is that, since we are doing O_NONBLOCK, we get EINPROGRESS when calling ast_connect() but are ignoring this instead of handling it. We break out of the loop and continue on. When we later call ast_poll(), it succeeds but we never check if we have a connection or not on the socket level. We then attempt to send data to the host address that we think is setup and it fails. We then check the errno and see that we have "connection refused" and then return with agi failed. This patch does the following: * Handles EINPROGRESS by creating the function handle_connection() - ast_poll() was moved into this function - This function checks the results of the connection on the socket level after calling ast_poll() * Continues to the next address if the above fails to create a connection * Once all addresses resolved are tried and we still are unable to establish a connection, then we return that the FastAGI call failed (closes issue ASTERISK-21065) Reported by: Jeremy Kister Tested by: Jeremy Kister, Michael L. Young Patches: asterisk-21065_poll_correctly_v4.diff Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2330/ 2013-02-22 15:41 +0000 [r381880] Jonathan Rose * apps/app_dial.c: app_dial: Honor the 'c' flag when the calling party hangs up Apparently this feature became broken in 11, probably as a result of the Hangup Cause project. (closes issue ASTERISK-21113) Reprted by: Heiko Wundram Patches: app_dial.patch uploaded by Heiko Wundram (license 5822) 2013-02-21 22:48 +0000 [r381848] Matthew Jordan * /, configure, configure.ac: Properly detect launchd Asterisk was a little too pro-active in claiming that it found launchd. On systems without launchd - such as FreeBSD - this resulted in certain items in Asterisk that conflict with launchd to not be selectable, such as res_timing_kqueue. (closes issue ASTERISK-20749) Reported by: Oleg Baranov ........ Merged revisions 381847 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-20 19:14 +0000 [r381835] Matthew Jordan * apps/app_voicemail.c: Let vm_mailbox_snapshot_create's combine option apply to "Urgent" as well The vm_mailbox_snapshot_create function has an option that combines the contents of INBOX and Old into a single snapshot. The intent of this is that both 'new' messages and 'deleted' messages are given in a single snapshot, as some applications prefer this view of the voicemail world. Unfortunately, the initial implementation ignored the "Urgent" folder. The "Urgent" folder is a pseudo-INBOX, in that new messages left with the 'U' flag will be placed in that folder as opposed to INBOX. Thus, the option failed the intent with which it was added. This patch makes it so that the "Urgent" folder is included in the snapshot when that option is used. 2013-02-19 19:44 +0000 [r381702-381791] kharwell : * /, main/features.c: Write the correct callid to the data1 field in queue_log for transfer events. The incorrect callid was being written to the "data1" field in queue_log table for transfer events. The callid of the queue was being written instead of the transfer target's callid. This now gets the correct "transfer to" number and places that in the "data1" field of the queue_log table when a transfer event is triggered. (closes issue ASTERISK-19960) Reported by: vladimir shmagin ........ Merged revisions 381770 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * apps/app_confbridge.c: Confbridge channels staying active when all participants leave. If you started/stopped recording of a conference multiple times channels would remain active even when all participants left the conference. This was due to the fact that a reference to the confbridge was being added every time a start record command was issued, but when the recording was stopped there was no matching de-reference thus keeping the conference alive. Made sure only a single reference is added for the record thread no matter how many times recording is started/stopped. A de-reference is issued upon thread ending. Note, this issue is being fixed under AST-1088 since it relates to it and should have been corrected along with those modifications. (issue AST-1088) Reported by: John Bigelow * apps/app_confbridge.c: Fixed Confbridge file recording deadlock and appending. A deadlock occurred after starting/stopping and then restarting a confbridge recording. Upon starting a recording a record thread is created that holds a lock until just before exiting. Stopping the recording does not stop/exit the thread or release the lock. The thread waits until recording begins again. Starting a stopped recording signals the thread to continue and start recording again. However restarting the recording also created another record thread resulting in a deadlock. The fix was to make sure the record thread was only created once. Also it was noted that filenames for the recordings were being concatenated for each start/stop. This was fixed by creating a new file for each conference session and appending the actual recorded data within the file (e.g. passing the 'a' option to MixMonitor). (issue AST-1088) Reported by: John Bigelow Review: http://reviewboard.digium.internal/r/374/ 2013-02-18 20:30 +0000 [r381669] Walter Doekes * /, configs/sip.conf.sample: Remove "registertrying" and add "rtp_engine" from/to sip.conf.sample The "registertrying" option was removed in r343220. The "rtp_engine" option was added in r186078 but erroneously named "engine" in the sample. Note that there is no global sip setting for a different engine. ........ Merged revisions 381668 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-18 19:43 +0000 [r381655] Jonathan Rose * funcs/func_presencestate.c: PRESENCE_STATE: Provide better documentation for the 'e' option. Notes that the 'e' option actually decodes data when used as a write function such as with the SET application while it encodes data when used to read. Review: https://reviewboard.asterisk.org/r/2335/ 2013-02-16 16:22 +0000 [r381594-381613] Matthew Jordan * channels/chan_sip.c: Don't send presencestate information if the state is invalid Previously, presencestate information was sent whenever the state was not NOT_SET. When r381594 actually returned INVALID presence state in all the places it was supposed to, it caused chan_sip to start adding presence state information to NOTIFY requests that it previously would not have added. chan_sip shouldn't be adding presence state information when the provider is in an invalid state; users can't set the state to invalid and an invalid state always implies that the provider is in an error condition. (issue AST-1084) * main/presencestate.c, funcs/func_presencestate.c, main/manager.c: Fix crash in PresenceState AMI action when specifying an invalid provider This patch fixes a crash in Asterisk that could be caused by using the PresenceState AMI action while providing an invalid provider. This patch also adds some additional warnings when a user attempts to provide the PresenceState action with invalid data, and removes some NOTICE statements that were still lurking in the code from testing. (closes issue AST-1084) Reported by: John Bigelow Tested by: John Bigelow 2013-02-15 18:42 +0000 [r381566] Mark Michelson * channels/chan_sip.c: Fix a crash that occurred when a BYE was received on a replaced dialog. Reference counting for the channel and its tech_pvt got messed up at some point between 1.8 and 11. The result was that if a BYE for a dialog that had been replaced (via an INVITE with Replaces) was received, Asterisk would crash due to trying to access data on a channel that was no longer there. The fix I introduced is to remove code that both unrefs the sip_pvt and sets the channel's tech_pvt to NULL when an INVITE with Replaces is handled. This way when a BYE is received, the tech_pvt will be non-NULL and so the BYE can be processed and not cause a crash. (closes issue ASTERISK-20929) reported by Kristopher Lalletti patches: ASTERISK-20929.patch uploaded by Mark Michelson (License #5049) 2013-02-15 17:17 +0000 [r381554] kharwell : * include/asterisk/logger.h, main/autoservice.c, main/logger.c: Stopped spamming of debug messages during attended transfer. While autoservice is running and servicing a channel the callid is being stored and removed in the thread's local storage for each iteration of the thread loop. If debug was set to a sufficient level the log file would be spammed with callid thread local storage debug messages. Added a new function that checks to see if the callid to be stored is different than what is already contained (if anything). If it is different then store/replace and log, otherwise just leave as is. Also made it so all logging of debug messages pertaining to the callid thread storage outputs only when TEST_FRAMEWORK is defined. (issue ASTERISK-21014) (closes issue ASTERISK-21014) Report by: Rusty Newton Review: https://reviewboard.asterisk.org/r/2324/ 2013-02-15 17:12 +0000 [r381553] Jonathan Rose * channels/chan_sip.c: chan_sip: Use video and text crypto attributes to append RTP profiles to SDP Some bad copy/pasting resulted in using the audio crypto attribute for both text and video RTP. Also the audio crypto isn't set until after these, so it was really just bad all around. (closes ASTERISK-20905) Reported by: Kristopher Lalletti patches: rtp_crypto_video_text.diff uploaded by Jonathan Rose (license 6182) 2013-02-14 19:44 +0000 [r381467] Richard Mudgett * /, main/features.c: End stuck DTMF if AST_SOFTHANGUP_ASYNCGOTO because it isn't a real hangup. It doesn't hurt to check AST_SOFTHANGUP_UNBRIDGE either, but it should not be set outside of a bridge. (issue ASTERISK-20492) ........ Merged revisions 381466 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-14 03:48 +0000 [r381365] Matthew Jordan * /, apps/app_db.c: Don't throw a spurious error when using DBdeltree The function call ast_db_deltree returns the number of row deleted, or a negative number if it failed. DBdeltree was treating any non-zero return as an error, causing a spurious verbose error message to be displayed. This patch handles the return code of ast_db_deltree correctly. (closes issue ASTERISK-21070) Reported by: ianc patches: dbdeltree.diff uploaded by ianc (License #5955) ........ Merged revisions 381364 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-12 20:31 +0000 [r381306] Mark Michelson * main/rtp_engine.c, /: Do not allow native RTP bridging if packetization of media streams differs. The RTP engine will no longer allow for local and remote native RTP bridges if packetization of streams differs. Allowing native bridging in this scenario has been known to cause FAX failures. (closes ASTERISK-20650) Reported by: Maciej Krajewski Patches: ASTERISK-20659.patch uploaded by Mark Michelson (License #5049) Review: https://reviewboard.asterisk.org/r/2319 ........ Merged revisions 381281 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-12 20:16 +0000 [r381282] Kinsey Moore * channels/sip/include/sip.h, channels/chan_sip.c, channels/sip/security_events.c: Fix some more REF_DEBUG-related build errors When sip_ref_peer and sip_unref_peer were exported to be usable in channels/sip/security_events.c, modifications to those functions when building under REF_DEBUG were not taken into account. This change moves the necessary defines into sip.h to make them accessible to other parts of chan_sip that need them. 2013-02-11 20:55 +0000 [r381217] kharwell : * apps/app_playback.c, /: Properly load say.conf upon reload of module app_playback. If say.conf did not exists prior to originally loading module app_playback it would not load on subsequent reloads of the module once it had been created. This occurred because upon reload of the app_playback module it would only load a new configuration if an old one had previously existed. This fix simply removed the association between checking if an old configuration existed and the loading of the new one. (closes issue ASTERISK-20800) Reported by: pgoergler ........ Merged revisions 381216 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-11 15:03 +0000 [r381159] Matthew Jordan * res/res_xmpp.c: Fix crash in res_xmpp when deleting pubsub node from CLI An error existed in res_xmpp where it would attempt to delete attributes from a node that itself was also deleted. Per the iksemel documentation, attributes added using iks_insert are copied to the parent node's stack, and will be reclaimed when that node is itself destroyed. (closes issue ASTERISK-20982) Reported by: marcelloceschia patches: delete-node-fix.diff uploaded by marcelloceschia (License 6036) 2013-02-08 17:29 +0000 [r381067] Richard Mudgett * apps/app_confbridge.c: app_confbridge: Fix crash from receiving an AMI action after ConfBridge unloaded. Unloading ConfBridge caused the next AMI action received to crash Asterisk. * Add the missing unregister of AMI action ConfbridgeSetSingleVideoSrc when ConfBridge is unloaded. (closes issue ASTERISK-20994) Reported by: Jeremy Kister Patches: jira_asterisk_20994_v11.patch (license #5621) patch uploaded by rmudgett Tested by: Rusty Newton, Jeremy Kister 2013-02-06 20:14 +0000 [r380974] David M. Lee * /, channels/chan_sip.c: Fixed failing test from r380696. When I added my extensive suite of session timer unit tests, apparently one of them was failing and I never noticed. If neither Min-SE nor Session-Expires is set in the header, it was responding with a Session-Expires of the global maxmimum instead of the configured max for the endpoint. (issue ASTERISK-20787) ........ Merged revisions 380973 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-06 08:42 +0000 [r380926-380942] Damien Wedhorn * channels/chan_skinny.c: Fix reload skinny with active devices. Patch ensures that d->activeline and l->activesub are moved over to the new device and line so that on callend the appropriate subs can be found to complete hangup before device resets. (closes issue ASTERISK-16610) Reported by: wedhorn Tested by: snuffy, myself Patches: skinny-reloadactive01.diff uploaded by wedhorn (license 5019) * channels/chan_skinny.c: Reset skinny vmexten on reload. Make skinny reset vmexten '\0' on reload to ensure that it is set to '\0' if the appropriate item is removed/commented in skinny.conf. part of ASTERISK-21037 Reported by: snuffy Tested by: snuffy, myself Patches: part of immed_dial_fix.diff uploaded by snuffy (license 5024) 2013-02-05 19:09 +0000 [r380854-380894] Richard Mudgett * apps/app_page.c, apps/app_confbridge.c: app_page and app_confbridge: Fix custom announcement on entering conference. The Page and ConfBridge custom announcement did not play when users entered the conference. * Fix the CONFBRIDGE(user,announcement) file not getting played. The code to do this got removed accidentally when the ConfBridge code was restructured to be more state machine like. * Fixed play_prompt_to_user() doxygen comments. * Fixed the Page A(x) and n options for the caller. The caller never played the announcement file and totally ignored the n option. The code to do this was lost when the application was converted to use ConfBridge. * Factored out setup_profile_bridge(), setup_profile_paged(), and setup_profile_caller() routines to setup ConfBridge profiles. Made each profile setup routine use the default template if one has not already been setup by dialplan. (closes issue ASTERISK-20990) Reported by: Jeremy Kister Tested by: rmudgett * apps/confbridge/conf_state_multi_marked.c: app_confbridge: Fix error messages on exiting conference. A marked user ending a conference with only end_marked users generates error messages: ERROR[0000][C-00000000]: confbridge/conf_state.c:47 conf_invalid_event_fn: Invalid event for confbridge user '' * The MULTI_MARKED state was doing too much when it was kicking out the end_marked users from the conference. The kicked out users will clean up after themselves when they exit the conference. (closes issue ASTERISK-20991) Reported by: Jeremy Kister Tested by: rmudgett * apps/app_page.c: app_page: Fixup application XML documentation typos and inaccuracies. * apps/confbridge/conf_config_parser.c: Because the compiler can check types with a struct copy and memcpy() cannot. * main/dial.c, /: Separate option_types[] from the struct definition. Updated the option_types[] doxygen comment. ........ Merged revisions 380853 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-02-04 19:50 +0000 [r380816] Jason Parker * res/pjproject/aconfigure, res/pjproject/build/os-auto.mak.in, Makefile, res/pjproject/aconfigure.ac, res/Makefile, res/pjproject/build/common.mak: Fix how we build pjproject. Allow parallel builds, better tolerate failures, build faster. This also stops running dependencies before top-level configure has been run. (closes issue ASTERISK-20815) Review: https://reviewboard.asterisk.org/r/2292/ 2013-01-31 21:42 +0000 [r380735-380736] Jason Parker * res/pjproject/pjlib/include/pj/config_site.h: Ignore warnings caused by PJ_TODO()s in pjproject. * res/pjproject/pjlib/src/pj/ssl_sock_ossl.c, res/pjproject/pjlib/src/pj/log.c, res/pjproject/pjlib/src/pj/pool_buf.c, res/pjproject/pjsip-apps/src/samples/icedemo.c, res/pjproject/pjmedia/src/test/test.c: Fix a few compiler warnings. 2013-01-31 20:10 +0000 [r380698] David M. Lee * /, channels/chan_sip.c: Process session timers, even if Session-Expires header is missing Previously, Asterisk only processed session timer information if both the 'Supported: timer' and 'Session-Expires' headers were present. However, the Session-Expires header is optional. If we were to receive a request with a Min-SE greater than our configured session-expires, we would respond with a 'Session-Expires' header that was too small. This patch cleans the situation up a bit, always processing timer information if the 'Supported: timer' header is present. (closes issue ASTERISK-20787) Reported by: Mark Michelson Review: https://reviewboard.asterisk.org/r/2299/ ........ Merged revisions 380696 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-31 19:03 +0000 [r380671-380673] Jason Parker * res/pjproject/pjsip/build/Makefile, res/pjproject/pjsip-apps/build/Makefile, res/pjproject/pjmedia/build/Makefile, res/pjproject/pjlib-util/build/Makefile, res/pjproject/pjlib/build/Makefile, res/pjproject/pjnath/build/Makefile: Add support for parallel builds of pjproject. Also adds proper dependency checking, and direct .a file targets. We don't take advantage of this currently, but we will soon. (issue ASTERISK-20815) * res/pjproject/aconfigure, res/pjproject/aconfigure.ac: Always check for libm, regardless of configure options. * res/pjproject/aconfigure, res/pjproject/aconfigure.ac, res/pjproject/build/cc-auto.mak.in, res/pjproject/build/rules.mak: Remove a cross-compile workaround. ar and ranlib can be easily detected with autoconf. 2013-01-31 00:30 +0000 [r380575-380612] Richard Mudgett * /, include/asterisk/channel.h: Make CHECK_BLOCKING() debug message more useful. Change the displayed pthread value to hex format so it can be easily matched with CLI core show threads or gdb. ........ Merged revisions 380611 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_dahdi.c, /: chan_dahdi: Fix "dahdi show channels group" for groups greater than 31. The variable type used was not large enough to hold a group bit field. ........ Merged revisions 380572 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-03-27 Asterisk Development Team * Asterisk 11.3.0-rc2 Released. * app_confbridge: Fix error messages on exiting conference. A marked user ending a conference with only end_marked users generates error messages: ERROR[0000][C-00000000]: confbridge/conf_state.c:47 conf_invalid_event_fn: Invalid event for confbridge user '' The MULTI_MARKED state was doing too much when it was kicking out the end_marked users from the conference. The kicked out users will clean up after themselves when they exit the conference. * app_page and app_confbridge: Fix custom announcement on entering conference. The Page and ConfBridge custom announcement did not play when users entered the conference. Fix the CONFBRIDGE(user,announcement) file not getting played. The code to do this got removed accidentally when the ConfBridge code was restructured to be more state machine like. Fixed play_prompt_to_user() doxygen comments. Fixed the Page A(x) and n options for the caller. The caller never played the announcement file and totally ignored the n option. The code to do this was lost when the application was converted to use ConfBridge. Factored out setup_profile_bridge(), setup_profile_paged(), and setup_profile_caller() routines to setup ConfBridge profiles. Made each profile setup routine use the default template if one has not already been setup by dialplan. * app_confbridge: Fix crash from receiving an AMI action after ConfBridge unloaded. Unloading ConfBridge caused the next AMI action received to crash Asterisk. Add the missing unregister of AMI action ConfbridgeSetSingleVideoSrc when ConfBridge is unloaded. * Fixed Confbridge file recording deadlock and appending. A deadlock occurred after starting/stopping and then restarting a confbridge recording. Upon starting a recording a record thread is created that holds a lock until just before exiting. Stopping the recording does not stop/exit the thread or release the lock. The thread waits until recording begins again. Starting a stopped recording signals the thread to continue and start recording again. However restarting the recording also created another record thread resulting in a deadlock. The fix was to make sure the record thread was only created once. * Confbridge channels staying active when all participants leave. If you started/stopped recording of a conference multiple times channels would remain active even when all participants left the conference. This was due to the fact that a reference to the confbridge was being added every time a start record command was issued, but when the recording was stopped there was no matching de-reference thus keeping the conference alive. Made sure only a single reference is added for the record thread no matter how many times recording is started/stopped. A de-reference is issued upon thread ending. * Let vm_mailbox_snapshot_create's combine option apply to "Urgent" as well The vm_mailbox_snapshot_create function has an option that combines the contents of INBOX and Old into a single snapshot. The intent of this is that both 'new' messages and 'deleted' messages are given in a single snapshot, as some applications prefer this view of the voicemail world. Unfortunately, the initial implementation ignored the "Urgent" folder. The "Urgent" folder is a pseudo-INBOX, in that new messages left with the 'U' flag will be placed in that folder as opposed to INBOX. Thus, the option failed the intent with which it was added. * Fix comparison of presence state in event subsystem. Several new IEs were not given types (or names), causing the comparison function to improperly succeed. This adds those. * Let vm_mailbox_snapshot combine "Urgent" when no folder is specified r381835 fixed a bug in vm_mailbox_snapshot where combining INBOX and Old forgot that Urgent also "counts" as new messages. This fixed the problem when any of the three folders was specified and the combine option was used. It missed the case where the folder isn't specified and we build a snapshot of all folders. This patch corrects that. * Do not allow native RTP bridging if packetization of media streams differs. The RTP engine will no longer allow for local and remote native RTP bridges if packetization of streams differs. Allowing native bridging in this scenario has been known to cause FAX failures. * Resolve deadlock between pending CDR and batch CDR locks r375757 attempted to resolve a race condition between multiple submissions of CDRs while in batch mode from attempting to destroy the scheduled batch submission by extending the batch CDR lock. Unfortunately, this causes a deadlock between the pending CDR lock and the batch CDR lock. This patch resolves the intent of r375757 by simply providing a new lock that protects the scheduling of the batches. The original batch CDR lock is kept to protect manipulation of the batch CDR settings, but has been placed such that it is not held when the pending lock is held. Thanks to Chase Venters for providing lock analysis on the issue. * Resolve deadlock between SIP registration and channel based functions In r373424, several reentrancy problems in chan_sip were addressed. As a result, the SIP channel driver is now properly locking the channel driver private information in certain operations that it wasn't previously. This exposed two latent problems either in register_verify or by functions called by register_verify. This includes: * Holding the private lock while calling sip_send_mwi_to_peer. This can create a new sip_pvt via sip_alloc, which will obtain the channel container lock. This is a locking inversion, as any channel related lock must be obtained prior to obtaining the SIP channel technology private lock. * Holding the private lock while calling sip_poke_peer. In the same vein as sip_send_mwi_to_peer, sip_poke_peer can create a new SIP private, causing the same locking inversion. Note that this locking inversion typically occured when CLI commands were run while a SIP REGISTER request was being processed, as many CLI commands (such as 'sip show channels', 'core show channels', etc.) have to obtain the channel container lock. * AST-2013-001: Prevent buffer overflow through H.264 format negotiation The format attribute resource for H.264 video performs an unsafe read against a media attribute when parsing the SDP. The value passed in with the format attribute is not checked for its length when parsed into a fixed length buffer. This patch resolves the vulnerability by only reading as many characters from the SDP value as will fit into the buffer. * AST-2013-002: Prevent denial of service in HTTP server AST-2012-014, fixed in January of this year, contained a fix for Asterisk's HTTP server for a remotely-triggered crash. While the fix put in place fixed the possibility for the crash to be triggered, a denial of service vector still exists with that solution if an attacker sends one or more HTTP POST requests with very large Content-Length values. This patch resolves this by capping the Content-Length at 1024 bytes. Any attempt to send an HTTP POST with Content-Length greater than this cap will not result in any memory allocation. The POST will be responded to with an HTTP 413 "Request Entity Too Large" response. This issue was reported by Christoph Hebeisen of TELUS Security Labs * AST-2013-003: Prevent username disclosure in SIP channel driver When authenticating a SIP request with alwaysauthreject enabled, allowguest disabled, and autocreatepeer disabled, Asterisk discloses whether a user exists for INVITE, SUBSCRIBE, and REGISTER transactions in multiple ways. The information is disclosed when: * A "407 Proxy Authentication Required" response is sent instead of a "401 Unauthorized" response * The presence or absence of additional tags occurs at the end of "403 Forbidden" (such as "(Bad Auth)") * A "401 Unauthorized" response is sent instead of "403 Forbidden" response after a retransmission * Retransmission are sent when a matching peer did not exist, but not when a matching peer did exist. This patch resolves these various vectors by ensuring that the responses sent in all scenarios is the same, regardless of the presence of a matching peer. This issue was reported by Walter Doekes, OSSO B.V. A substantial portion of the testing and the solution to this problem was done by Walter as well - a huge thanks to his tireless efforts in finding all the ways in which this setting didn't work, providing automated tests, and working with Kinsey on getting this fixed. * Fix white noise on SRTP decryption When res_rtp_asterisk.c was altered to avoid attempting to apply unprotect algorithms to non-audio RTP packets, the test used was incorrect. This caused the audio packets to not be decrypted and resulted in loud white noise on the other endpoint (or both endpoints depending on the call legs involved). The test now properly checks the version field in the RTP header to ensure that RTP and RTCP are decrypted while other types of packets are not. 2013-01-30 Asterisk Development Team * Asterisk 11.3.0-rc1 Released. 2013-01-30 17:46 +0000 [r380452-380521] Matthew Jordan * /, configure, include/asterisk/autoconfig.h.in, configure.ac: Support building Asterisk for Raspberry Pi/Raspbian with hard-float support Building Asterisk on Raspbian with hard-float support fails as it uses the string 'linux-gnueabihf' for host os, as opposed to 'linux-gnueabi'. This patch modifies the configure script for Asterisk such that it will match on any string beginning with 'linux-gnueabi', as opposed to requiring an explicit match. (closes issue ASTERISK-21006) Reported by: Christian Hesse Tested by: Christian Hesse patches: linux-gnueabihf.patch uploaded by Christian Hesse (license 6459) linux-gnueabihf-autoconf.patch uploaded by Christian Hesse (license 6459) ........ Merged revisions 380520 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_sip.c: Unregister SIP provider API if module load is declined A user in #asterisk ran into a problem where a configuration error prevented the chan_sip module from being loaded. Upon fixing their configuratione error, they could no longer load the chan_sip module. This was because the configuration checking happened after the SIP provider was registered with the Asterisk core, and subsequent attempts to load the SIP module failed as the provider was already registered. Since we want to detect any failure in registering chan_sip as early as possible (as that could be emblematic of a deeper mismatch between module and Asterisk core), this patch does not change the registration location, but does ensure that if a module load is declined, we unregister the module as the SIP api provider. * /, channels/chan_sip.c: Perform case insensitive comparisons for T.38 attributes RFC5347 section 2.5.2 states the following: ... The attribute "T38MaxBitRate" was once incorrectly registered with IANA as "T38maxBitRate" (lower-case "m"). In accordance with T.38 examples and common implementation practice, the form "T38MaxBitRate" SHOULD be generated by implementations conforming to this package. In general, it is RECOMMENDED that implementations of this package accept lowercase, uppercase, and mixed upper/lowercase encodings of all the T.38 attributes. ... Asterisk currently does not perform case insensitive matching on the T.38 attributes. This causes the T38MaxBitRate attribute to be negotiated at 2400 baud instead of 14400 (or whatever value you actually wanted). This patch makes it so that when we compare T.38 attributes, we do so in a case insensitive fashion. Note that while the issue reporter did not directly write the patch, they contributed to it (and would have provided one themselves if the license had gone through a tad faster), and hence get attribution for it. Review: https://reviewboard.asterisk.org/r/2298/ (closes issue ASTERISK-20897) Reported by: Eric Hill Tested by: Eric Hill patches: -- uploaded by Eric Hill ........ Merged revisions 380458 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * res/res_calendar_icalendar.c, /: Fix memory leak in res_calendar_icalendar The ICalendar module had a systemic memory leak on each fetch of data from the ICalendar source. The previous fetched data was not being properly disposed. This patch makes it so that before each fetch of data, we dispose of the previously fetched data. (closes issue ASTERISK-21012) Reported by: Joel Vandal Tested by: Joel Vandal ........ Merged revisions 380451 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-29 17:54 +0000 [r380384] Richard Mudgett * /, channels/chan_agent.c: chan_agent: Prevent multiple channels from logging in as the same agent. Multiple channels logging in as the same agent can result in dead channels waiting for a condition signal that will never come because another channel thread stole it. A symptom is chan_sip repeatedly generating warning messages about rescheduling autodestruction of dialogs with an agent channel owner. * Made only login_exec() (the app AgentLogin) clear the agent_pvt->chan pointer to prevent multiple channels from logging in as the same agent. agent_read(), agent_call(), and agent_set_base_channel() no longer disconnect the agent channel from the agent_pvt. This also eliminates the need to keep checking for agent_pvt->chan being NULL. * Made agent_hangup() not wake up the AgentLogin agent thread until it is done. * Made agent_request() not able to get the agent until he has logged in and any wrapup time has expired. * Made agent_request() use ast_hangup() instead of agent_hangup() to correctly dispose of a channel. * Removed agent_set_base_channel(). Nobody calls it and it is a bad thing in general. * Made only agent_devicestate() determine the current device state of an agent. Note: Agent group device states have never been supported. Review: https://reviewboard.asterisk.org/r/2260/ ........ Merged revisions 380364 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-29 17:14 +0000 [r380350] David M. Lee * channels/sip/sdp_crypto.c, /: Corrected crypto tag in SDP ANSWER for SRTP. (again) The original fix (r380043) for getting Asterisk to respond with the correct tag overlooked some corner cases, and the fact that the same code is in 1.8. This patch moves the building of the crypto line out of sdp_crypto_process(). Instead, it merely copies the accepted tag. The call to sdp_crypto_offer() will build the crypto line in all cases now, using a tag of "1" in the case of sending offers. (closes issue ASTERISK-20849) Reported by: José Luis Millán Review: https://reviewboard.asterisk.org/r/2295/ ........ Merged revisions 380347 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-29 17:05 +0000 [r380348] Jonathan Rose * main/features.c: call_parking: Make sure fallbacks are used when lacking a flat channel exten A regression was introduced which removed automatic fallback behavior from the PBX. This behavior was used by call parking (or at least documented as how the feature works) in order to select an extension when the flat channel extension wasn't available from the comebackcontext. Parking now handles the fallbacks internally in order to keep behavior matching with how it is documented. (closes issue ASTERISK-20716) Reported by: Chris Gentle Review: https://reviewboard.asterisk.org/r/2296/ 2013-01-29 14:45 +0000 [r380298-380331] Matthew Jordan * channels/chan_sip.c: Ensure that a declined media stream is terminated with a '\r\n' In r369028, chan_sip's processing of media streams in an SDP was modified to better handle multiple offered media streams. Part of that change modified how streams were declined. Previously, declined media streams were not handled in an RFC compliant manner; now, we set the port number to 0 in the media stream definition and proceed on with the next media stream. Unfortunately, the formatting of the declined media stream forgot to append a '\r\n' to the end of the media stream. This is normally added to the accepted media streams later on in the processing of the SDP. Since the declined media stream uses a different buffer than the accepted media streams (and is a malloc'd buffer as opposed to a struct ast_str), it's easier to just slap the '\r\n' on the declined media stream buffer rather than attempt to append it later on. So, that's what we do. And now some devices (and probably some providers) will be a bit happier (but probably not terribly happy, since we just rejected something they offered). Review: https://reviewboard.asterisk.org/r/2297/ (closes issue ASTERISK-20908) Reported by: Dennis DeDonatis Tested by: Dennis DeDonatis * autoconf/ast_check_pwlib.m4, /, configure: Update configure script to be compatible with ptlib 2.10.9 With ptlib 2.10.9, the configure script fails due to grep returning multiple matches for the pattern it searches for. This patch updates the pattern matching to return only the actual version for the symbol searched for, PTLIB_VERSION. (closes issue ASTERISK-20980) Reported by: Stefan Reuter patches: ASTERISK-20980-1.patch uploaded by Stefan Reuter (license 5339) ........ Merged revisions 380297 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-28 21:08 +0000 [r380255] Sean Bright * /, channels/iax2.h, channels/chan_iax2.c: Correct the number of available call numbers in IAX2. There is currently an edge case where call number 32768 might be allocated for a call, even though the IAX2 protocol requires call numbers be only 15 bits. This resulted in some unpredictable behavior when call number 32678 is chosen. This patch was mostly written by Richard Mudgett via ReviewBoard. I'm just committing it. Review: https://reviewboard.asterisk.org/r/2293/ ........ Merged revisions 380254 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-28 01:57 +0000 [r380211] Russell Bryant * /, main/file.c: Change cleanup ordering in filestream destructor. This patch came about due to a problem observed where wav files had an empty header. The header is supposed to be updated in wav_close(). It turns out that this was broken when the cache_record_files option from asterisk.conf was enabled. The cleanup code was moving the file to its final destination *before* running the close() method of the file destructor, so the header didn't get updated. Another problem here is that the move was being done before actually closing the FILE *. Finally, the last bug fixed here is that I noticed that wav_close() checks for stream->filename to be non-NULL. In the previous cleanup order, it's checking a pointer to freed memory. This doesn't actually cause anything to break, but it's treading on dangerous waters. Now the free() of stream->filename is happening after the format module's close() method gets called, so it's safer. Review: https://reviewboard.asterisk.org/r/2286/ ........ Merged revisions 380210 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-27 20:31 +0000 [r380193] Michael L. Young * apps/confbridge/conf_config_parser.c: Fix Some Configured Conference Bridge Sounds Not Being Set The "sound_only_one" sound was not being set even though it was configured. In looking into this, I found that the "join" and "leave" prompts were not being set either. (closes issue ASTERISK-20898) Reported by: Stephan Tested by: Stephan Patches: asterisk-20898-custom-sounds-ignored.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2289/ 2013-01-24 16:39 +0000 [r380043] David M. Lee * channels/sip/sdp_crypto.c: Corrected crypto tag in SDP ANSWER for SRTP. When Asterisk responds with an SDP ANSWER for SRTP, it had the code to correctly fill in the crypto data, which was overwritten by a call to sdp_crypto_offer. Corrected the situation by changing sdp_crypto_offer to not replacing crypto data if it already exists. (closes issue ASTERISK-20849) Reported by: José Luis Millán Tested by: Iñaki Baz Castillo Patches: fix_sdp_crypto_tags.diff uploaded by Pedro Kiefer (license 6407) 2013-01-24 04:01 +0000 [r380028] Matthew Jordan * apps/app_confbridge.c: Correct documentation for ConfbridgeList AMI action The documentation for ConfbridgeList states that the Conference field is optional. That's not really the case: if you fail to provide a Conference number, the command will kick back an error. (closes issue AST-1090) Reported by: John Bigelow 2013-01-23 00:23 +0000 [r379964] Richard Mudgett * /, main/astobj2.c: Attempt to be more helpful when using a bad ao2 object pointer. Put the external obj pointer in the message instead of the internal version. ........ Merged revisions 379963 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-22 22:05 +0000 [r379892-379949] Jonathan Rose * res/res_fax_spandsp.c: res_fax_spandsp: fix t38 transmission bug caused by not returning success This patch fixes the problem, but the issue includes a test which is still being considered for the automated test suite. (issue ASTERISK-20919) Reported by: NITESH BANSAL Patches: patch_ast_fax_spandsp.patch uploaded by NITESH BANSAL (license 6418) * /, apps/app_meetme.c, sounds/Makefile: app_meetme: Use new prompts for administrator menu The old prompts for the administrator menu were inadequate. They didn't mention that the menu had additional options through the 8 key and pressing the 8 key wouldn't reveal what those options were. This patch fixes all of that while also organizing code pertaining to each individual menu type which was previously all stored in one gigantic function along with many of the basic conference functions. (closes issue AST-996) Reported by: John Bigelow Review: http://reviewboard.digium.internal/r/360/ ........ Merged revisions 379885 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-22 14:51 +0000 [r379826] Matthew Jordan * /, apps/app_meetme.c: Fix station ringback; trunk hangup issues in SLA This patch fixes two bugs: * If an outbound call is made from a SLA phone using SLAStation, then there is no ringtone audible to the phone that originates the call. The indication of the ringing was not being passed to the SLA station; this patch fixes that by passing through the progress indications. * If an SLA station hangs up before the called party answers, then the channel to the called party continues to ring until a timeout occurs. If the called party manages to answer, Asterisk attempts to connect the called party to a non-existant MeetMe room. This patch corrects the behavior by abandoning the call attempt if it detects that the SLA station is no longer in use while attempting to call the called party. Review: https://reviewboard.asterisk.org/r/2275/ (closes issue ASTERISK-20462) Reported by: dkerr patches: asterisk-11-bugid20440+20462.patch uploaded by dkerr (license 5558) asterisk-11-bugid20462.patch uploaded by dkerr (license 5558) (closes issue ASTERISK-20440) Reported by: dkerr patches: asterisk-11-bugid20440.patch uploaded by dkerr (license 5558) asterisk-11-bugid20440+20462.patch uploaded by dkerr (license 5558) ........ Merged revisions 379825 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-22 00:35 +0000 [r379808] Richard Mudgett * channels/chan_bridge.c, apps/app_confbridge.c: confbridge: Minor fixes playing user counts to the conference. * Generate a warning message if sound files do not exist when trying to play the user count to the conference. Use the new helper routine sound_file_exists() for consistency. * Put the new user into autoservice when playing user counts to the conference. * Check the return value of ast_bridge_impart(). 2013-01-21 20:40 +0000 [r379790] Matthew Jordan * contrib/scripts/safe_asterisk, main/asterisk.c, contrib/init.d/rc.suse.asterisk, contrib/init.d/rc.mandriva.asterisk, contrib/init.d/rc.debian.asterisk, /, contrib/init.d/rc.redhat.asterisk, UPGRADE.txt, contrib/init.d/rc.gentoo.asterisk, contrib/init.d/rc.slackware.asterisk, contrib/init.d/rc.archlinux.asterisk: Update init.d scripts to handle stderr; readd splash screen for remote consoles When r376428 was commited to re-order start up sequences to be more tolerant of forking with thread primitives, a few items were changed that caused changes in behavior on some distros. This includes: * Not displaying the splash screen on a remote console. * Displaying an error message on stderr when a remote console cannot connect to a running instance of Asterisk. In the first case, the splash screen was re-added (thanks to Michael L. Young). In the second case, the various init.d scripts were modified to pipe stderr to /dev/null, as the error message is useful - if you execute a remote console or a remote console command execution and it fail, it should tell you. Note that the error message was always present, it just failed to be printed prior to r376428. Much thanks to the folks who quickly reported this problem, provided solutions, and promptly tested the various init.d scripts on a variety of distros. (closes issue ASTERISK-20945) Reported by: Warren Selby Tested by: Michael L. Young, Jamuel Starkey, kaldemar, Danny Nicholas, mjordan patches: asterisk-20945-remote-intro-msg.diff uploaded by elguero (license 5026) ASTERISK-20945-1.8-mjordan.diff uploaded by mjordan (license 6283) ........ Merged revisions 379760 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 379777 from http://svn.asterisk.org/svn/asterisk/branches/10 2013-01-21 18:33 +0000 [r379719] Kinsey Moore * /, codecs/codec_ilbc.c: Prevent segfault for interpolated iLBC frames When iLBC is being used with a jitter buffer and the jb has to interpolate frames, it generates frames with a null pointer and a non-zero datalen. This is now handled properly. (closes issue ASTERISK-20914) Reported By: John McEleney Patches: ASTERISK-20914-1.8.diff uploaded by Matt Jordan (license 6283) ........ Merged revisions 379718 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-21 06:27 +0000 [r379677] Damien Wedhorn * channels/chan_skinny.c: Fix device call logging issues in skinny Skinny device call logging (ie missed, place and received calls) has issues because the incorrect sequence of callstates is/can be sent to the device. This patch removes some extra callstate updates driven by forces external to skinny and ensures the needed intermediary callstate messages are sent. (closes issue ASTERISK-20964) Reported by: wedhorn Tested by: snuffy, myself Patches: ast11-skinny-calllog01.diff uploaded by wedhorn (license 5019) 2013-01-21 04:39 +0000 [r379643] Andrew Latham * contrib/scripts/install_prereq: Add LDAP libraries to install script Add LDAP dev package to Debian/Ubuntu install list. Existed in Redhat already. (issue ASTERISK-20886) 2013-01-21 04:07 +0000 [r379609] Matthew Jordan * /, apps/app_minivm.c: Fix crash in app_minivm when mime encoding string An incorrect string initializations was left in ast_str_encode_mime from the patch that converted string manipulations to use ast_str strings (r191140). The string initialization causes a crash when ast_str_set is called on the string later on in the function. (closes issue ASTERISK-18697) Reported by: Chris Boot patches: minivm-null-pointer-dereference-fix.patch uploaded by bootc (license 6309) (issue ASTERISK-20854) Reported by: Chris Warr Tested by: Chris Warr ........ Merged revisions 379608 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-20 02:53 +0000 [r379582] Damien Wedhorn * channels/chan_skinny.c: Fix issues with skinny sessions Fixes a couple of issues with the way skinny handles sessions by ensuring sessions aren't used after being freed. Some other minor changes. Review: https://reviewboard.asterisk.org/r/2272/ 2013-01-19 20:49 +0000 [r379548] Walter Doekes * /, configure, include/asterisk/autoconfig.h.in, include/asterisk/compat.h, main/strcompat.c, configure.ac: Add builtin roundf() for systems lacking it. (closes issue ASTERISK-16854) Review: https://reviewboard.asterisk.org/r/2276 Reported-by: Ovidiu Sas ........ Merged revisions 379547 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-19 00:17 +0000 [r379513] Matthew Jordan * main/asterisk.c, /: Fix astcanary startup problem due to wrong pid value from before daemon call When Asterisk forks itself into the background via a call to daemon, it must re-set the pid value of the new process. Otherwise, astcanary gets the pid value of the process before the fork, which prevents it from running. Asterisk eventually starts lowering its priority, as it can no longer communicate with the proverbial canary in the coal mine. This patch ensures that the correct process identifier is used by astcanary. Note that this is getting committed to 10 as a regression fix. (closes issue ASTERISK-20947) Reported by: Jakob Hirsch Tested by: mjordan patches: asterisk-10.12.0.astcanary_ppid.diff uploaded by Jakob Hirsch (license 6113) ........ Merged revisions 379509 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 379510 from http://svn.asterisk.org/svn/asterisk/branches/10 2013-01-18 21:46 +0000 [r379478] Kinsey Moore * apps/app_confbridge.c: Fix regression in Confbridge user count When the restructuring work got committed to Confbridge in r375470 to fix many open issues, it caused a regression in the reported count of users when conference information was requested via CLI or manager. This corrects the user count and user information displayed when listing conference information from the CLI and manager. (closes issue ASTERISK-20938) Reported By: Timo Teras Patches: confbridge-list.patch uploaded by Timo Teras (license 5409) 2013-01-18 21:10 +0000 [r379475] David M. Lee * Makefile, configure, include/asterisk/autoconfig.h.in, main/Makefile, configure.ac, UPGRADE.txt, makeopts.in: Specify the -rpath linker flag when prefix != /usr. This allows Asterisk to start without having to specify the LD_LIBRARY_PATH. This can be disabled by passing --disable-rpath to configure. (closes issue ASTERISK-20407) Reported by: David M. Lee Review: https://reviewboard.asterisk.org/r/2132/ 2013-01-18 18:13 +0000 [r379460] Jonathan Rose * apps/app_voicemail.c: app_voicemail: Improve msg_id handling app_voicemail will no longer issue error messages when it retrieves an msg_id with a NULL value from realtime and will instead simply populate the msg_id field with a newly generated msg_id. In addition, this patch changes the way msg_ids are generated to eliminate certain causes of duplicate IDs appearing within a single system. In addition, when messages are copied, they will now receive a new msg_id. (closes issue ASTERISK-20717) Reported by: Alec Davis Review: https://reviewboard.asterisk.org/r/2220/ 2013-01-18 05:26 +0000 [r379393] David M. Lee * channels/sip/include/reqresp_parser.h, /, channels/chan_sip.c, channels/sip/reqresp_parser.c: Fix Record-Route parsing for large headers. Record-Route parsing copied the header into a char[256] array, which can be a problem if the header is longer than that. This patch parses the header in place, without the copy, avoiding the issue. In addition to the original patch, I added a unit test for the new get_in_brackets_const function. (closes issue ASTERISK-20837) Reported by: Corey Farrell Patches: chan_sip-build_route-optimized-rev1.patch uploaded by Corey Farrell (license 5909) (with minor changes by dlee) ........ Merged revisions 379392 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-17 02:30 +0000 [r379343] Matthew Jordan * /, addons/chan_mobile.c: Fix issue where chan_mobile fails to bind to first available port Per the bluez API, in order to bind to the first available port, the rc_channel field of the socket addressing structure used to bind the socket should be set to 0. Previously, Asterisk had set the rc_channel field set to 1, causing it to connect to whatever happens to be on port 1. We could probably not explicitly set rc_channel to 0 since we memset the struct earlier, but explicitly setting it will hopefully prevent someone from coming in and setting it to some explicit port in the future. (closes issue ASTERISK-16357) Reported by: challado Tested by: Alexander Heinz, Nikolay Ilduganov, benjamin, eliafino, David van Geyn patches: ASTERISK-16357.diff uploaded by Nikolay Ilduganov (license 6253) ........ Merged revisions 379342 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-16 22:49 +0000 [r379311] Mark Michelson * main/manager.c, /: Further fix misinformation in the description of manager MailboxStatus command. The description still claimed that it returned the number of messages rather than whether there were messages waiting. ........ Merged revisions 379310 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-16 21:13 +0000 [r379277] Jason Parker * contrib/scripts/install_prereq, /: Reduce number of packages install_prereq installs on Debian systems. 'search' will look for any package containing the name provided, so we need to force a more exact search. ........ Merged revisions 379276 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-16 18:08 +0000 [r379230-379232] Richard Mudgett * main/logger.c: Reduce call-id logging resource usage. Since there is no need for the call-id logging ao2 object to have a lock, don't create it with one. * channels/chan_misdn.c, /: chan_misdn: Fix compile error. (issue ASTERISK-15456) ........ Merged revisions 379226 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-16 17:45 +0000 [r379146-379228] Matthew Jordan * res/res_xmpp.c, res/res_jabber.c, doc/appdocsxml.dtd: Let documentation reference links specify which module they're linking to Again, since res_jabber/res_xmpp have duplicate APIs, their documentation ref links have to specify which reference they're referring to. The various documentation parsers can interpret the module attribute however they want in order to construct the appropriate links. * doc/appdocsxml.dtd: Update the dtd to actually *support* the module attribute in all elements Mea culpa. * res/res_xmpp.c, res/res_jabber.c: Add module tags to documentation for res_jabber/res_xmpp Since res_jabber/res_xmpp provide the same APIs (app/func/manager/etc.), the XML documentation for each needs to call out which module is providing the documentation. The module attribute has been added to the various XML fragments for this purpose. * /, addons/chan_mobile.c: Fix parsing SMSSRC for SMS messages The parser for SMS messages would incorrectly parse out the from number. The parsing would incorrectly start scanning for the from number at the same index as the first double quote ("); this would inadvertently cause it to treat the first double quote as the terminating double quote for the from number as well. The SMSSRC should now populate correctly. (closes issue ASTERISK-16822) Reported by: menschentier Tested by: Jonas Falck patches: fixSMSSRC.patch uploaded by jonax (license 6320) (closes issue ASTERISK-19153) Reported by: Panos Gkikakis patches: sms-sender-fix.diff uploaded by roeften (license 5884) ........ Merged revisions 379178 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * channels/chan_misdn.c, /: Set the INVALID_EXTEN channel variable when chan_misdn forces the 'i' extension The chan_misdn channel driver will send a channel with an invalid destination to the 'i' extension itself if said extension can be reached. It forgot, however, to set the INVALID_EXTEN channel variable when it bounces the channel to this extension. Dialplan writers everywhere moaned at yet another inconsistency. This is yet another example of why duplicating logic in multiple places results in bugs that stick around in Jira for just under three years. Yes: ASTERISK-15456 was created on January 18th, 2010. Patch committed on January 15th, 2013. Ouch. (closes issue ASTERISK-15456) Reported by: Thomas Omerzu patches: chan_misdn_invalid.patch2 uploaded by Thomas Omerzu (license 5927) ........ Merged revisions 379145 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-14 15:27 +0000 [r379020] David M. Lee * /, channels/chan_sip.c: Fix XML encoding of 'identity display' in NOTIFY messages, continued. When r378933 was merged into 1.8, it should have also escaped remote_display, since it will have the same XML encoding problem when the caller/callee roles are reversed. (closes issue ABE-2902) Reported by: Guenther Kelleter ........ Merged revisions 379001 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-13 21:44 +0000 [r378984] Matthew Jordan * res/res_rtp_asterisk.c, /: Reset RTP timestamp; sequence number on SSRC change In r370252 for ASTERISK-18404, Asterisk's handling of RTP was modified to better account for out of order RTP packets. This was accomplished by using the RTP timestamp and sequence number to check for out of order packets. However, when a SSRC change occurs, the timestamp and sequence number will no longer have any relation to the previously received packets. The variables tracking the timestamp and sequence number therefore have to be reset. (closes issue ASTERISK-20906) Reported by: Eelco Brolman patches: dtmf_on_hold.patch uploaded by Eelco Brolman (license #6442) ........ Merged revisions 378967 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-12 06:36 +0000 [r378934] David M. Lee * include/asterisk/utils.h, /, channels/chan_sip.c, tests/test_xml_escape.c (added), main/utils.c: Fix XML encoding of 'identity display' in NOTIFY messages. XML encoding in chan_sip is accomplished by naively building the XML directly from strings. While this usually works, it fails to take into account escaping the reserved characters in XML. This patch adds an 'ast_xml_escape' function, which works similarly to 'ast_uri_encode'. This is used to properly escape the local_display attribute in XML formatted NOTIFY messages. Several things to note: * The Right Thing(TM) to do would probably be to replace the ast_build_string stuff with building an ast_xml_doc. That's a much bigger change, and out of scope for the original ticket, so I refrained myself. * It is with great sadness that I wrote my own ast_xml_escape function. There's one in libxml2, but it's knee-deep in libxml2-ness, and not easily used to one-off escape a string. * I only escaped the string we know is causing problems (local_display). At least some of the other strings are URI-encoded, which should be XML safe. Rather than figuring out what's safe and escaping what's not, it would be much cleaner to simply build an ast_xml_doc for the messages and let the XML library do the XML escaping. Like I said, that's out of scope. (closes issue ABE-2902) Reported by: Guenther Kelleter Tested by: Guenther Kelleter Review: http://reviewboard.digium.internal/r/365/ ........ Merged revision 378919 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier ........ Merged revisions 378933 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-11 23:04 +0000 [r378917] Joshua Colp * res/res_xmpp.c: Retain XMPP filters across reconnections so external modules continue to function as expected. Previously if an XMPP client reconnected any filters added by an external module were lost. This issue exhibited itself with chan_motif not receiving and reacting to Jingle signaling. (closes issue ASTERISK-20916) Reported by: kuj 2013-01-09 20:29 +0000 [r378734-378780] David M. Lee * main/rtp_engine.c, /: Fix end condition in ast_rtp_lookup_mime_multiple2. The erroneous end condition would never include the AST_RTP_CISCO_DTMF flag in the debug output. (closes issue ASTERISK-20772) Reported by: Xavier Hienne ........ Merged revisions 378776 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * include/asterisk/strings.h: Move declaration of ast_regex_string_to_regex_pattern futher down strings.h. The prior location is before the declaration of struct ast_str, which causes compiler warnings. (closes issue ASTERISK-20852) Reported by: Pavel Troller Patches: strings.diff uploaded by Pavel Troller (license 6302) * /, include/asterisk/causes.h: Replace errant tabs with spaces in causes.h. (closes issue ASTERISK-20826) Reported by: snuffy Patches: notabs.dif uploaded by snuffy (license 5024) ........ Merged revisions 378733 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-09 00:03 +0000 [r378687-378690] Richard Mudgett * /, apps/app_queue.c: app_queue: Fix incorrect assertion. (issue ASTERISK-16115) ........ Merged revisions 378689 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, configs/queues.conf.sample, UPGRADE.txt, CHANGES, apps/app_queue.c: app_queue: Fix multiple calls to a queue member that is in only one queue. When ringinuse=no queue members can receive more than one call if these calls happen at nearly the same time. * Fix so a queue member does not receive more than one call from a queue. NOTE: This fix does not prevent multiple calls to a member if the member is in more than one queue. * Did some refactoring to eliminate some code redundancy. (issue ASTERISK-16115) Reported by: nik600 Patches: jira_asterisk_16115_single_q_v1.8.patch (license #5621) patch uploaded by rmudgett Modified * Revert the -r341580 and -r341599 changes adding the queues.conf check_state_unknown option as it was added in an attempt to fix this problem. The fix did not need to be optional. The fix should not have tried to explicitly set the device state. Setting the device state by something other than the device introduces a race condition. I also could not see how the change would be effective other than delaying the app_queue code long enough for the device state to propagate to app_queue. ........ Merged revisions 378663 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 378683 from http://svn.asterisk.org/svn/asterisk/branches/10 2013-01-06 20:40 +0000 [r378622] Damien Wedhorn * channels/chan_skinny.c: Rewrite skinny dialing to remove threaded simpleswitch This rewrite changes skinny dialing from the threaded simpleswitch to a scheduled timeout approach. There were some underlying issues with the threaded simple switch with occasional corruption and possible segfaults. Review: https://reviewboard.asterisk.org/r/2240/ 2013-01-04 23:04 +0000 [r378592] Jonathan Rose * res/res_srtp.c, /: res_srtp: Prevent a crash from occurring due to srtp_create failures in srtp_create Under some circumstances, libsrtp's srtp_create function deallocates memory that it wasn't initially responsible for allocating. Because we weren't initially aware of this behavior, this memory was still used in spite of being unallocated during the course of the srtp_unprotect function. A while back I made a patch which would set this value to NULL, but that exposed a possible condition where we would then try to check a member of the struct which would cause a segfault. In order to address these problems, ast_srtp_unprotect will now set an error value when it ends without a valid SRTP session which will result in the caller of srtp_unprotect observing this error and hanging up the relevant channel instead of trying to keep using the invalid session address. (closes issue ASTERISK-20499) Reported by: Tootai Review: https://reviewboard.asterisk.org/r/2228/diff/#index_header ........ Merged revisions 378591 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-04 22:18 +0000 [r378582] Kinsey Moore * res/pjproject/aconfigure, res/pjproject/aconfigure.ac, res/pjproject/build/common.mak: Fix pjproject compilation in certain circumstances On a fresh checkout of Asterisk 11, running make before ./configure could cause the pjproject subdirectory to get in an odd state that would prevent compilation. This patch by Tilghman prevents that from occurring. (closes issue ASTERISK-20681) Reported by: Dinesh Ramjuttun Tested by: danilo borges, Steve Lang patches: 20121208__ccar_solved.diff.txt uploaded by Tilghman Lesher (license 5003) 2013-01-04 21:18 +0000 [r378559] Michael L. Young * /, channels/chan_sip.c: Fix SIP Notify Messages To Have The Proper IP Address In The FROM Field On a multihomed server when sending a NOTIFY message, we were not figuring out which network should be used to contact the peer. This patch fixes the problem by calling ast_sip_ouraddrfor() and then build_via() so that our NOTIFY message contains the correct IP address. Also, a debug message is being added to help follow the call-id changes that occur. This was helpful for confirming that the IP address was set properly since the call-id contains the IP address. It also will be helpful for troubleshooting purposes when following a call in the debug logs. (closes issue ASTERISK-20805) Reported by: Bryan Hunt Tested by: Bryan Hunt, Michael L. Young Patches: asterisk-20805-notify-ip-v2.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2255/ ........ Merged revisions 378554 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-04 21:16 +0000 [r378555] Joshua Colp * res/res_rtp_asterisk.c, /: Don't pass STUN packets through the SRTP unprotect function. (closes issue AST-1036) Reported by: jbigelow ........ Merged revisions 378553 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-03 22:12 +0000 [r378515] Michael L. Young * /, apps/app_queue.c: Fix Queue Log Reporting Every Call COMPLETECALLER With "h" Extension Present When the "h" extension is present within the context of the queue, all calls are being reported COMPLETECALLER even when the agent is hanging up the call. This patch checks to see if the agent hung-up or not instead of only relying on checking if the queue (caller) channel hung-up or not. It would appear that having the h extension in the mix, the pbx goes to the h extension, "hanging-up" the queue channel and triggering the reporting of COMPLETECALLER. (closes issue ASTERISK-20743) Reported by: call Tested by: call, Michael L. Young Patches: asterisk-20743-q-cmplt-caller.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2256/ ........ Merged revisions 378514 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-03 19:41 +0000 [r378487] Richard Mudgett * /, channels/chan_agent.c: chan_agent: Fix wrapup time wait response. * Made agent_cont_sleep() and agent_ack_sleep() stop waiting if the wrapup time expires. agent_cont_sleep() had tried but returned the wrong value to stop waiting. * Made agent_ack_sleep() take a struct agent_pvt pointer instead of a void pointer for better type safety. ........ Merged revisions 378486 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-03 18:48 +0000 [r378459] Kinsey Moore * main/channel.c, /: Add missing test event This test event was missing from channel.c causing the dial_LS_options test to fail intermittently because of a race condition where most code paths emitted the test event but this one did not. The dial_LS_options test should stop bouncing now. ........ Merged revisions 378455 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-03 18:44 +0000 [r378428-378457] Richard Mudgett * /, channels/chan_agent.c: chan_agent: Misc code cleanup. * Fix off-nominal path resource cleanup in agent_request(). * Create agent_pvt_destroy() to eliminate inlined versions in many places. * Pull invariant code out of loop in add_agent(). * Remove redundant module user references in login_exec(). * Remove unused struct agent_pvt logincallerid[] member. * Remove some redundant code in agent_request(). ........ Merged revisions 378456 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, channels/chan_agent.c: chan_agent: Fix agent_indicate() locking. Avoid deadlock potential with local channels and simplify the locking. ........ Merged revisions 378427 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-03 15:38 +0000 [r378411] Joshua Colp * res/res_xmpp.c: Prevent exhaustion of system resources through exploitation of event cache This patch changes res_xmpp to no longer cache events under certain circumstances. (issue ASTERISK-20175) Reported by: Russell Bryant, Leif Madsen, Joshua Colp Tested by: kmoore 2013-01-03 15:36 +0000 [r378376-378409] Matthew Jordan * res/res_xmpp.c: Prevent crashes in res_xmpp when receiving large messages Similar to r378287, res_xmpp was marshaling data read from an external source onto the stack. For a sufficiently large message, this could cause a stack overflow. This patch modifies res_xmpp in a similar fashion to res_jabber by removing the stack allocation, as it was unnecessary. (issue ASTERISK-20658) Reported by: wdoekes * main/config.c, funcs/func_realtime.c, /: Prevent crashes from occurring when reading from data sources with large values When reading configuration data from an Asterisk .conf file or when pulling data from an Asterisk RealTime backend, Asterisk was copying the data on the stack for manipulation. Unfortunately, it is possible to read configuration data or realtime data from some data source that provides a large blob of characters. This could potentially cause a crash via a stack overflow. This patch prevents large sets of data from being read from an ARA backend or from an Asterisk conf file. (issue ASTERISK-20658) Reported by: wdoekes Tested by: wdoekes, mmichelson patches: * issueA20658_dont_process_overlong_config_lines.patch uploaded by wdoekes (license 5674) * issueA20658_func_realtime_limit.patch uploaded by wdoekes (license 5674) ........ Merged revisions 378375 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-02 21:17 +0000 [r378358] Richard Mudgett * main/manager.c, /, main/features.c, include/asterisk/channel.h: Fix AMI redirect action with two channels failing to redirect both channels. The AMI redirect action can fail to redirect two channels that are bridged together. There is a race between the AMI thread redirecting the two channels and the bridge thread noticing that a channel is hungup from the redirects. * Made the bridge wait for both channels to be redirected before exiting. * Made the AMI redirect check that all required headers are present before proceeding with the redirection. * Made the AMI redirect require that any supplied ExtraChannel exist before proceeding. Previously the code fell back to a single channel redirect operation. (closes issue ASTERISK-18975) Reported by: Ben Klang (closes issue ASTERISK-19948) Reported by: Brent Dalgleish Patches: jira_asterisk_19948_v11.patch (license #5621) patch uploaded by rmudgett Tested by: rmudgett, Thomas Sevestre, Deepak Lohani, Kayode Review: https://reviewboard.asterisk.org/r/2243/ ........ Merged revisions 378356 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2013-01-02 18:30 +0000 [r378337] Kinsey Moore * /: Restore branch-1.8-merged on 11 This was accidentally deleted during a merge. 2013-01-02 18:09 +0000 [r378287-378321] Matthew Jordan * res/res_calendar.c, include/asterisk/devicestate.h, channels/chan_local.c, /, main/ccss.c, channels/chan_sip.c, apps/app_meetme.c, main/channel_internal_api.c, channels/chan_agent.c, main/devicestate.c, include/asterisk/channel.h, res/res_jabber.c, apps/app_queue.c, channels/chan_iax2.c, main/channel.c, channels/chan_dahdi.c, channels/chan_skinny.c, include/asterisk/event_defs.h, main/features.c, main/event.c, apps/app_confbridge.c, apps/confbridge/conf_state_empty.c, funcs/func_devstate.c: Prevent exhaustion of system resources through exploitation of event cache Asterisk maintains an internal cache for devices in the event subsystem. The device state cache holds the state of each device known to Asterisk, such that consumers of device state information can query for the last known state for a particular device, even if it is not part of an active call. The concept of a device in Asterisk can include entities that do not have a physical representation. One way that this occurred was when anonymous calls are allowed in Asterisk. A device was automatically created and stored in the cache for each anonymous call that occurred; this was possible in the SIP and IAX2 channel drivers and through channel drivers that utilized the res_jabber/res_xmpp resource modules (Gtalk, Jingle, and Motif). These devices are never removed from the system, allowing anonymous calls to potentially exhaust a system's resources. This patch changes the event cache subsystem and device state management to no longer cache devices that are not associated with a physical entity. (issue ASTERISK-20175) Reported by: Russell Bryant, Leif Madsen, Joshua Colp Tested by: kmoore patches: event-cachability-3.diff uploaded by jcolp (license 5000) ........ Merged revisions 378303 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 378320 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/sip/include/sip.h, /, channels/chan_sip.c, main/http.c, res/res_jabber.c: Resolve crashes due to large stack allocations when using TCP Asterisk had several places where messages received over various network transports may be copied in a single stack allocation. In the case of TCP, since multiple packets in a stream may be concatenated together, this can lead to large allocations that overflow the stack. This patch modifies those portions of Asterisk using TCP to either favor heap allocations or use an upper bound to ensure that the stack will not overflow: * For SIP, the allocation now has an upper limit * For HTTP, the allocation is now a heap allocation instead of a stack allocation * For XMPP (in res_jabber), the allocation has been eliminated since it was unnecesary. Note that the HTTP portion of this issue was independently found by Brandon Edwards of Exodus Intelligence. (issue ASTERISK-20658) Reported by: wdoekes, Brandon Edwards Tested by: mmichelson, wdoekes patches: ASTERISK-20658_res_jabber.c.patch uploaded by mmichelson (license 5049) issueA20658_http_postvars_use_malloc2.patch uploaded by wdoekes (license 5674) issueA20658_limit_sip_packet_size3.patch uploaded by wdoekes (license 5674) ........ Merged revisions 378269 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 378286 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-31 14:44 +0000 [r378219] Kinsey Moore * /, channels/chan_sip.c: Ensure chan_sip rejects encrypted streams without crypto info This ensures that Asterisk rejects encrypted media streams (RTP/SAVP audio and video) that are missing cryptographic keys and ensures that the incoming SDP is consistent with RFC4568 as far as having a crypto attribute present for any SAVP streams. Review: https://reviewboard.asterisk.org/r/2204/ ........ Merged revisions 378217 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 378218 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-20 21:44 +0000 [r378163-378165] Richard Mudgett * main/channel.c, /: Give the causes[] a struct name. ........ Merged revisions 378164 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /: Add branch-1.8-merged property to allow direct merging from v1.8 2012-12-18 17:41 +0000 [r378121] Kinsey Moore * main/channel.c, /: Add test events for time limit-related hangups This patch adds hangup-related test events in order to support testing of time-limited bridges. This aids in testing the S() and L() bridge options. (issue SWP-4713) ........ Merged revisions 378119 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 378120 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-17 23:09 +0000 [r378090-378094] Richard Mudgett * main/loader.c, /: Fix potential double free when unloading a module. ........ Merged revisions 378092 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 378093 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_local.c, /: Make chan_local module references tied to local_pvt lifetime. The chan_local module references were manually tied to the existence of the ;1 and ;2 channel links. * Made chan_local module references tied to the existence of the local_pvt structure as well as automatically take care of the module references. * Tweaked the wording of the local_fixup() failure warning message to make sense. Review: https://reviewboard.asterisk.org/r/2181/ ........ Merged revisions 378088 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 378089 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-17 20:58 +0000 [r378073] Jason Parker * main/Makefile: Make libasteriskssl.so symlink use a relative path. This was causing issues when using DESTDIR, since the path to which the link pointed is not likely to exist (and not useful to exist) on the target system. (issue ASTNOW-284) 2012-12-14 21:32 +0000 [r378038] Richard Mudgett * /, apps/app_queue.c: app_queue: Revert bad ringinuse=no patch. With the option ringinuse=no set, the patch committed for ASTERISK-16115 causes non-SIP queue members to never be called because the device state is checked after a channel is created to determine if the member is busy. These queue members always get the "Member %s is busy, cannot dial" message. Most channel drivers other than chan_sip use the default device state handling. The default device-state state is considered in use or unknown if the channel exists or not respectively. (closes issue ASTERISK-20801) Reported by: rmudgett Patches: jira_asterisk_16115_revert_r370418_v1.8.patch (license #5621) patch uploaded by rmudgett ........ Merged revisions 378036 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 378037 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-14 01:49 +0000 [r378010] Damien Wedhorn * channels/chan_skinny.c: Fix skinny to recognise vmexten in general section of conf Fixup the vmexten so if globally set in general section will be honored by chan_skinny. Also get rid of the 'global_' part of variable name to match regexten. (closes issue ASTERISK-20790) Reported by: snuffy Tested by: snuffy, myself Patches: skinny-vm.diff uploaded by snuffy (license 5024) 2012-12-13 21:04 +0000 [r377993] Richard Mudgett * apps/confbridge/conf_state.c, /, apps/confbridge/include/confbridge.h, include/asterisk/bridging.h, apps/app_confbridge.c, apps/confbridge/conf_state_multi_marked.c: confbridge: Fix MOH on simultaneous user entry to a new conference. When two users entered a new conference simultaneously, one of the callers hears MOH. This happened if two unmarked users entered simultaneously and also if a waitmarked and a marked user entered simultaneously. * Created a confbridge internal MOH API to eliminate the inlined MOH handling code. Note that the conference mixing bridge needs to be locked when actually starting/stopping MOH because there is a small window between the conference join unsuspend MOH and actually joining the mixing bridge. * Created the concept of suspended MOH so it can be interrupted while conference join announcements to the user and DTMF features can operate. * Suspend any MOH until the user is about to actually join the mixing bridge of the conference. This way any pre-join file playback does not need to worry about MOH. * Made post-join actions only play deferred entry announcement files. Changing the user/conference state during that time is not protected or controlled by the state machine. (closes issue ASTERISK-20606) Reported by: Eugenia Belova Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/2232/ ........ Merged revisions 377992 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-13 20:03 +0000 [r377985-377991] Damien Wedhorn * channels/chan_skinny.c: Minor fixes for chan_skinny Whitespace, change SUBSTATE_ONHOOK to correct SKINNY_ONHOOK and correct len of 2 strcmp in skinny_setdebug(). (see opticron's review on https://reviewboard.asterisk.org/r/2240/) * channels/chan_skinny.c: Fix skinny debug tab completion Review the syntax of the 'skinny debug' command to show more than just 'show' for options to 'skinny debug' command. (closes issue ASTERISK-20789) Reported by: snuffy Tested by: snuffy, myself Patches: skinny-debug.diff uploaded by snuffy (license 5024) 2012-12-13 13:51 +0000 [r377948] Kinsey Moore * /, channels/chan_sip.c: Ensure Min-SE is included in outbound INVITEs Asterisk now includes Min-SE in outbound INVITEs when the value is not 90 (the default) and session timers are not disabled. This has the effect of Asterisk following RFC4028 more closely with regard to 422 responses and preventing situations in which Asterisk would be forced to temporarily accept a call to tear it down based on a Session-Expires below the locally configured Min-SE. (issue SWP-5051) Review: https://reviewboard.asterisk.org/r/2222/ Reported-by: Kinsey Moore Patch-by: Kinsey Moore ........ Merged revisions 377946 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377947 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-12 22:42 +0000 [r377924] Rusty Newton * /, sounds/Makefile: Incremented EXTRA_SOUNDS_VERSION in sounds/Makefile to 1.4.12 for new Extra Sounds releases See CHANGES-* files in English extra 1.4.12 tarballs for new sound prompts added. (closes ASTERISK-20328) Reported by: Matt Jordan (closes AST-755) Reported by: John Bigelow ........ Merged revisions 377922 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377923 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-11 23:59 +0000 [r377910] Mark Michelson * channels/chan_sip.c: Fix a potential deadlock in chan_sip during transfers. The issue comes from the fact that transfers may perform a redirecting update on a channel. The issue is that lock inversion between the channel and its tech_pvt occurs since the channel lock is released during the transfer process. The fix is to move when the redirecting update occurs to a place where neither the tech_pvt or the channel is locked so that the two can be locked in the proper order. (closes issue ASTERISK-20708) reported by Mark Michelson patches: ASTERISK-20708-3.patch uploaded by Mark Michelson (License #5049) Tested by: Tim Ringenbach at Asteria Solutions Group 2012-12-11 22:01 +0000 [r377849-377883] Richard Mudgett * main/timing.c, main/channel.c, main/data.c, main/stun.c, /, main/file.c, main/http.c, main/aoc.c, main/image.c, main/cel.c: Cleanup CLI commands on exit for several files. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: unregister-cli-multiple-all.patch (license #5909) patch uploaded by Corey Farrell ........ Merged revisions 377881 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377882 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/udptl.c, /: Cleanup udptl on exit. * Cleanup CLI commands on exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: udptl-shutdown-1_8-10.patch (license #5909) patch uploaded by Corey Farrell udptl-shutdown-11-trunk.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377847 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377848 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-11 20:51 +0000 [r377843] Mark Michelson * res/res_clialiases.c, /: Fix crash that can occur if CLI registration fails for an aliased command. A recent memory leak fix in main/cli.c causes an ast_cli_entry's command field to be freed and NULLed if ast_cli_register() fails. res_clialiases was ignoring the return value of ast_cli_register() and was then passing the NULL command off to a a hash function. This resulted in a crash. The fix is not to ignore the erroneous return value. If ast_cli_register() fails, then we do not continue trying to process the current alias. ........ Merged revisions 377840 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377842 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-11 20:45 +0000 [r377706-377839] Richard Mudgett * /, main/taskprocessor.c: Cleanup taskprocessor on exit. * Cleanup CLI commands on exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: taskprocessor-cleanup-1_8-11-trunk.patch (license #5909) patch uploaded by Corey Farrell taskprocessor-cleanup-10-only.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377837 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377838 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/pbx.c, /: Cleanup pbx on exit. * Cleanup CLI commands on exit. * Unreference hints and statecbs containers on exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: pbx-cleanup-1_8.patch (license #5909) patch uploaded by Corey Farrell pbx-cleanup-10.patch (license #5909) patch uploaded by Corey Farrell pbx-cleanup-11-trunk.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377806 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377807 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/logger.c: Cleanup logger on exit. * Cleanup CLI commands, destroy verbosers and logchannels lists on exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: logger-cleanup-all.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377771 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377772 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/indications.c: Cleanup indications on exit. * Made ast_unregister_indication_country() unlink the found tone zone before selecting a new default_tone_zone to make it impossible to select the tone zone being unregistered again. * Ringcadence is no longer parsed twice in store_config_tone_zone(). * Cleanup CLI commands and destroy default_tone_zone on exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: indications-cleanup-all.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377740 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377741 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/event.c: Cleanup event on exit. * Cleanup CLI commands on exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: event_shutdown-10-only.patch (license #5909) patch uploaded by Corey Farrell event_shutdown-1_8-11-trunk.patch (license #5909) patch uploaded by Corey Farrell ........ Merged revisions 377708 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377709 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/dnsmgr.c, /: Cleanup dnsmgr on exit. * Cleanup dnsmgr thread and CLI commands on exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: dnsmgr-cleanup-1_8.patch (license #5909) patch uploaded by Corey Farrell dnsmgr-cleanup-10-11-trunk.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377704 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377705 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-10 16:55 +0000 [r377625-377657] Kinsey Moore * /, res/res_fax.c: Ensure ReceiveFax provides a CED tone via T.38 When using res_fax_digium, the T.38 CED tone was not being provided properly which would cause some incoming faxes to fail. This was not an issue with res_fax_spandsp since it does not strictly honor the send_ced flag and sends the CED tone whenever receiving a T.38 fax. (closes issue FAX-343) Reported-by: Benjamin Tietz Patch-by: Kinsey Moore ........ Merged revisions 377655 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377656 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Handle Session-Expires less than local Min-SE in 200 OK Ensure that a call is immediately torn down if a Session-Expires value received in a 200 OK is less than the local Min-SE. This also prevents Asterisk from allowing calls with Session-Expires below the RFC4028-mandated minimum (90s). (closes issue ASTERISK-20653) Review: https://reviewboard.asterisk.org/r/2237/ Patch-by: Kinsey Moore ........ Merged revisions 377623 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377624 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-10 06:49 +0000 [r377577-377593] Igor Goncharovskiy * channels/chan_unistim.c, /: Fix codec mismatch Fix code to send in both rx and tx open stream messages correct codecs. Found that on phase 0/1 phones wrong codecs cause to no audio in some situations. (issue ASTERISK-20183) ........ Merged revisions 377591 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377592 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_unistim.c: Remove trailing whitespaces in number from incoming redial list. Reported by: Igor Olhovskiy 2013-01-14 Asterisk Development Team * Asterisk 11.2.0 Released. 2013-01-09 Asterisk Development Team * Asterisk 11.2.0-rc2 Released. * Fix pjproject compilation in certain circumstances. On a fresh checkout of Asterisk 11, running make before ./configure could cause the pjproject subdirectory to get in an odd state that would prevent compilation. This patch by Tilghman prevents that from occurring. (closes issue ASTERISK-20681) Patch-by: Tilghman Lesher * AST-2012-014: Resolve crashes due to large stack allocations when using TCP Asterisk had several places where messages received over various network transports may be copied in a single stack allocation. In the case of TCP, since multiple packets in a stream may be concatenated together, this can lead to large allocations that overflow the stack. This patch modifies those portions of Asterisk using TCP to either favor heap allocations or use an upper bound to ensure that the stack will not overflow: * For SIP, the allocation now has an upper limit * For HTTP, the allocation is now a heap allocation instead of a stack allocation * For XMPP, the allocation has been eliminated since it was unnecessary. This patch contains the fix for both res_jabber and res_xmpp. * AST-2012-015: Prevent exhaustion of system resources through exploitation of event cache Asterisk maintains an internal cache for devices in the event subsystem. The device state cache holds the state of each device known to Asterisk, such that consumers of device state information can query for the last known state for a particular device, even if it is not part of an active call. The concept of a device in Asterisk can include entities that do not have a physical representation. One way that this occurred was when anonymous calls are allowed in Asterisk. A device was automatically created and stored in the cache for each anonymous call that occurred; this was possible in the SIP and IAX2 channel drivers and through channel drivers that utilized the res_jabber/res_xmpp resource modules (Gtalk, Jingle, and Motif). These devices are never removed from the system, allowing anonymous call to potentially exhaust a system's resources. This patch changes the event cache subsystem and device state management to no longer cache devices that are not associated with a physical entity. * Revert bad ringinuse=no patch. With the option ringinuse=no set, the patch committed previous for ASTERISK-16115 causes non-SIP queue members to never be called because the device state is checked after a channel is created to determine if the member is busy. These queue members always get the "Member %s is busy, cannot dial" message. Most channel drivers other than chan_sip use the default device state handling. The default device state is considered in use or unknown if the channel exists or not, respectively. * Fix multiple calls to a queue member that is only in queue. When ringinuse=no queue members can receive more than one call if these calls happen at nearly the same time. This patch fixes it so a queu member does not receive more than one call from a queue. note that this fix does not prevent multiple calls to a member if hte member is in more than one queue (see ASTERISK-16115). 2012-12-10 Asterisk Development Team * Asterisk 11.2.0-rc1 Released. 2012-12-10 01:41 +0000 [r377505-377511] Tilghman Lesher * main/xmldoc.c, /: Improve documentation by making all of the colors used readable, no matter what the background color is. Dark blue on a black background is unreadable, as is yellow on a light background. This patch turns on the bright attribute for colors when on a dark background and turns *off* the bright attribute when the -W command line option is used (indicating a _light_ background). This ensures that text is readable in both cases. Patch by: tilghman Review: https://reviewboard.asterisk.org/r/2224 ........ Merged revisions 377509 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377510 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, addons/cdr_mysql.c: Remove some dead code and additionally handle a case that wasn't handled. ........ Merged revisions 377487 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377504 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-09 01:22 +0000 [r377462] Joshua Colp * channels/chan_motif.c: Add missing support for "who hung up" to chan_motif. (closes issue ASTERISK-20671) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/2208/ 2012-12-08 00:29 +0000 [r377401-377433] Richard Mudgett * contrib/realtime/mysql/sippeers.sql, /: Fix order of SIP allow/disallow in MySQL contrib script. Using the contrib sippeers.sql script to create the sippeers MySQL table would result in being unable to place calls if you set the disallow value to all. (closes issue ASTERISK-20756) Reported by: Andre Luis Patches: sippeers.patch patch uploaded by Andre Luis ........ Merged revisions 377431 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377432 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/astmm.c: MALLOC_DEBUG: Only wait if we want atexit allocation dumps. ........ Merged revisions 377398 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377399 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-07 22:02 +0000 [r377383] Kinsey Moore * /, codecs/codec_dahdi.c: codec_dahdi: Fix output of "transcoder show" CLI command. In r306010 "Asterisk media architecture conversion - no more format bitfields", the logic for incrementing encoders and decoders when opening transcoder channels was changed without making the corresponding change when decrementing encoder / decoder channels. The result being that when a channel was destroyed, codec_dahdi couldn't properly tell if it was an encoder or decoder, and the default case is to assume it was a decoder. This could result in negative numbers for decoders in use like in: VOIP6*CLI> transcoder show 2/-2 encoders/decoders of 92 channels are in use. (closes issue ASTERISK-19921) Patch-by: Shaun Ruffell ........ Merged revisions 377382 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-06 23:58 +0000 [r377355] Richard Mudgett * apps/confbridge/conf_config_parser.c, /, apps/app_confbridge.c: confbridge: Fix some resource leaks on conference teardown. * Made destroy_conference_bridge() destroy a missed ast_mutex_t and ast_cond_t. * Made join_conference_bridge() init the ast_mutex_t's and ast_cond_t so destroy_conference_bridge() can destroy them unconditionally. * Made join_conference_bridge() abort if the new conference could not be added to the conferences container. * Made leave_conference() discard any post-join actions if join_conference_bridge() had to abort early. * Made the join_conference_bridge() diagnostic messages better describe what happened. * Renamed leave_conference_bridge() to leave_conference() and made it only take a conference user pointer. The conference pointer was redundant. * Made conf_bridge_profile_copy() use struct copy instead of memcpy(). * No need to lock the conference in start_conf_record_thread() since all of the callers already have it locked. ........ Merged revisions 377354 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-06 17:28 +0000 [r377340] Russell Bryant * main/named_acl.c: Add CLI tab completion to 'acl show'. The 'acl show' CLI command allows you to show the details about a specific named ACL in acl.conf. This patch adds tab completion to the command. Review: https://reviewboard.asterisk.org/r/2230/ 2012-12-06 14:11 +0000 [r377319] Matthew Jordan * main/manager.c: Fix memory leak in 'manager show event' when command entered incorrectly When the CLI command 'manager show event' was run incorrectly and its usage instructions returned, a reference to the event container was leaked. This would prevent the container from being reclaimed when Asterisk exits. We now properly decrement the count on the ao2 object using the nifty RAII_VAR macro. Thanks to Russell for helping me stumble on this, and Terry for writing that ridiculously helpful macro. 2012-12-05 17:08 +0000 [r377262] Jonathan Rose * res/res_srtp.c, /: res_srtp: Fix a crash caused by srtp_dealloc on an already dealloced session When srtp_create fails, the session may be dealloced or just not alloced. At the same time though, the session pointer might not be set to NULL in this process and attempting to srtp_dealloc it again will cause a segfault. This patch checks for failure of srtp_create and sets the session pointer to NULL if it fails. (closes issue ASTERISK-20499) Reported by: tootai Review: https://reviewboard.asterisk.org/r/2228/ ........ Merged revisions 377256 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377261 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-05 16:50 +0000 [r377259] Joshua Colp * /, channels/chan_sip.c: Fix a SIP request memory leak with TLS connections. During the TLS re-work in chan_sip some TLS specific code was moved into a separate function. This function operates on a copy of the incoming SIP request. This copy was never deinitialized causing a memory leak for each request processed. This function is now given a SIP request structure which it can use to copy the incoming request into. This reduces the amount of memory allocations done since the internal allocated components are reused between packets and also ensures the SIP request structure is deinitialized when the TLS connection is torn down. (closes issue ASTERISK-20763) Reported by: deti ........ Merged revisions 377257 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377258 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-05 02:19 +0000 [r377213-377244] Richard Mudgett * main/format.c, /: Fix registering core show codecs/codec CLI commands twice. ........ Merged revisions 377241 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/confbridge/conf_config_parser.c, /: confbridge: Fix several small issues. * Made func_confbridge_helper() allow an empty value when setting options. You previously could not Set(CONFBRIDGE(user,pin)=) and clear the configured pin from the dialplan. * Made func_confbridge_helper() handle its datastore better if multiple threads attempt to set the first CONFBRIDGE option value on the channel. * Made the func_confbridge_helper() only output one diagnostic message concerning the option. * Made the bridge video_mode able to repeatedly change in the config file and CONFBRIDGE dialplan function. The video_mode option values are an enum and not independent of each other. * Made handle_cli_confbridge_show_bridge_profile() better handle the video_mode option. * Simplified datastore handling code in conf_find_user_profile() and conf_find_bridge_profile(). (closes issue ASTERISK-20655) Reported by: Birger "WIMPy" Harzenetter ........ Merged revisions 377227 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_confbridge.c: confbridge: Update online XML documentation. ........ Merged revisions 377212 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-04 12:59 +0000 [r377195] Russell Bryant * contrib/scripts/install_prereq: Add libuuid to install_prereq for Fedora. I ran this script and my build failed. pjproject requires this. 2012-12-03 22:58 +0000 [r377039-377167] Richard Mudgett * main/asterisk.c, /: Cleanup ast_run_atexits() atexits list. * Convert atexits list to a mutex instead of a rd/wr lock. The lock is only write locked. * Move CLI verbose Asterisk ending message to where AMI message is output in really_quit() to avoid further surprises about using stuff already shutdown. (issue ASTERISK-20649) Reported by: Corey Farrell ........ Merged revisions 377165 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377166 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/asterisk.c, /, include/asterisk/_private.h, main/stdtime/localtime.c: Cleanup core main on exit. * Cleanup time zones on exit. * Make exit clean/unclean report consistent for AMI and CLI in really_quit(). (issue ASTERISK-20649) Reported by: Corey Farrell Patches: core-cleanup-1_8-10.patch (license #5909) patch uploaded by Corey Farrell core-cleanup-11-trunk.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377135 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377136 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/config.c, /: Cleanup config cache on exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: config-cleanup-all.patch (license #5909) patch uploaded by Corey Farrell ........ Merged revisions 377104 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377105 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/cli.c, /: Cleanup CLI resources on exit and CLI command registration errors. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: cli-leaks-1_8-10.patch (license #5909) patch uploaded by Corey Farrell cli-leaks-11-trunk.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377073 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377074 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/cdr.c, /: Cleanup CDR resources on exit. * Simplify do_reload() return handling since it never returned anything other than 0. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: cdr-cleanup-1_8.patch (license #5909) patch uploaded by Corey Farrell cdr-cleanup-10-11-trunk.patch (license #5909) patch uploaded by Corey Farrell Modified ........ Merged revisions 377069 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377070 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/ccss.c: Fix CCSS CLI commands and logger level not unregistered. (issue ASTERISK-20649) Reported by: Corey Farrell Patches: ccss-cleanup-all.patch (license #5909) patch uploaded by Corey Farrell ........ Merged revisions 377037 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 377038 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-03 14:54 +0000 [r377021] Joshua Colp * channels/chan_motif.c: Fix an RTP instance reference count leak in chan_motif. When setting up an RTP instance the RTCP portion of the instance keeps a reference to the instance itself. In order to release this reference and stop RTCP the stop API call must be called before destroying the instance. (closes issue ASTERISK-20751) Reported by: joshoa 2012-12-01 00:46 +0000 [r376983] Joshua Colp * configs/motif.conf.sample, channels/chan_motif.c: Tweak extension used for incoming calls received on Motif. Based on feedback from numerous individuals this patch tweaks incoming calls to first look for an extension with the name of the endpoint. If no such extension exists the call will silently fall back to the "s" extension as it previously did. 2012-11-30 21:35 +0000 [r376952] Richard Mudgett * /, channels/misdn/isdn_lib.c: chan_misdn: Fix sending RELEASE_COMPLETE in response to SETUP. Fix sending a RELEASE_COMPLETE in response to a SETUP if chan_misdn does not have a B channel available to assign to the call. (closes issue ABE-2869) Reported by: Guenther Kelleter Patches: setup-reject_2.diff (license #6372) patch uploaded by Guenther Kelleter Modified ........ Merged revision 376949 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier ........ Merged revisions 376950 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376951 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-30 17:07 +0000 [r376921] Sean Bright * /, funcs/func_volume.c: Minor spelling fix to the VOLUME documentation. ........ Merged revisions 376919 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376920 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-30 16:36 +0000 [r376917] Mark Michelson * /, channels/chan_sip.c: Fix potential crashes during SIP attended transfers. The principal behind this patch is simple. During a transfer, we manipulate channels that are owned by a separate thread than the one we currently are running in, so it makes sense that we need to grab a reference to the channels so that they cannot disappear out from under us. In the wild, crashes were sometimes seen when the transferring party would hang up the call before the transfer target answered the call. The most common place to see the crash occur was when attempting to send a connected line update to the transferer channel. (closes issue ASTERISK-20226) Reported by Jared Smith Patches: ASTERISK-20226.patch uploaded by Mark Michelson (License #5049) Tested by: Jared Smith ........ Merged revisions 376901 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376916 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-29 22:59 +0000 [r376866-376870] Richard Mudgett * channels/chan_local.c, /: chan_local: Fix local_pvt ref leak in local_devicestate(). Regression introduced by ASTERISK-20390 fix. (closes issue ASTERISK-20769) Reported by: rmudgett Tested by: rmudgett ........ Merged revisions 376868 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376869 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Fix compile error. (issue ASTERISK-20724) ........ Merged revisions 376864 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376865 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-29 21:57 +0000 [r376836] Michael L. Young * /, channels/chan_sip.c: Improve Code Readability And Fix Setting natdetected Flag For 1.8, 10, 11 and trunk we are are improving the code readability. For 11 and trunk, auto nat detection was added. The natdetected flag was being set to 1 when the host address in the VIA header did not specifiy a port. This patch fixes this by setting the port on the temporary sock address used to SIP_STANDARD_PORT in order for the sock address comparison to work properly. (closes issue ASTERISK-20724) Reported by: Michael L. Young Patches: asterisk-20724-set-port-v2.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2206/ ........ Merged revisions 376834 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376835 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-29 17:17 +0000 [r376822] Pedro Kiefer * channels/chan_sip.c: Fix chan_sip websocket payload handling Websocket by default doesn't return an ast_str for the payload received. When converting it to an ast_str on chan_sip the last character was being omitted, because ast_str functions expects that the given length includes the trailing 0x00. payload_len only has the actual string length without counting the trailing zero. For most cases this passed unnoticed as most of SIP messages ends with \r\n. (closes issue ASTERISK-20745) Reported by: Iñaki Baz Castillo Review: https://reviewboard.asterisk.org/r/2219/ 2012-11-29 00:46 +0000 [r376760-376790] Richard Mudgett * main/asterisk.c, /, main/astmm.c: Add MALLOC_DEBUG atexit unreleased malloc memory summary. * Adds the following CLI commands to control MALLOC_DEBUG reporting of unreleased malloc memory when Asterisk is shut down. memory atexit list on memory atexit list off memory atexit summary byline memory atexit summary byfunc memory atexit summary byfile memory atexit summary off * Made check all remaining allocated region blocks atexit for fence violations. * Increased the allocated region hash table size by about three times. It still isn't large enough considering the number of malloced blocks Asterisk uses. * Made CLI "memory show allocations anomalies" use regions_check_all_fences(). Review: https://reviewboard.asterisk.org/r/2196/ ........ Merged revisions 376788 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376789 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/astmm.c: Enhance MALLOC_DEBUG CLI commands. * Fixed CLI "memory show allocations" misspelling of anomalies option. The command will still accept the original misspelling. * Miscellaneous tweaks to CLI "memory show allocations" command output format. * Made CLI "memory show summary" summarize by line number instead of by function if a filename is given. * Made CLI "memory show summary" sort its output by filename or function-name/line-number depending upon request. * Miscellaneous tweaks to CLI "memory show summary" command output format. ........ Merged revisions 376758 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376759 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-28 16:37 +0000 [r376727] Jonathan Rose * main/manager.c, /: manager: Make challenge work with allowmultiplelogin=no Prior to this patch, challenge would yield a multiple logins error if used without providing the username (which isn't really supposed to be an argument to challenge) if allowmultiplelogin was set to no because allowmultiplelogin finds a user with a zero length login name. This check is simply disabled for the challenge action when the username is empty by this patch. (closes issue ASTERISK-20677) Reported by: Vladimir Patches: challenge_action_nomultiplelogin.diff uploaded by Jonathan Rose (license 6182) ........ Merged revisions 376725 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376726 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-28 00:08 +0000 [r376629-376690] Richard Mudgett * main/pbx.c, /, UPGRADE.txt: Fix extension matching with the '-' char. The '-' char is supposed to be ignored by the dialplan extension matching. Unfortunately, it's treatment is not handled consistently throughout the extension matching code. * Made the old exten matching code consistently ignore '-' chars. * Made the old exten matching code consistently handle case in the matching. * Made ignore empty character sets. * Fixed ast_extension_cmp() to return -1, 0, or 1 as documented. The only user of it in pbx_lua.c was testing for -1. It was originally returning the strcmp() value for less than which is not usually going to be -1. * Fix character set sorting if the sets have the same number of characters and start with the same character. Character set [0-9] now sorts before [02-9a] as originally intended. * Updated some extension label and priority already in use warnings to also indicate if the extension is aliased. (closes issue ASTERISK-19205) Reported by: Philippe Lindheimer, Birger "WIMPy" Harzenetter Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/2201/ ........ Merged revisions 376688 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376689 from http://svn.asterisk.org/svn/asterisk/branches/10 * addons/res_config_mysql.c, /, apps/app_celgenuserevent.c, pbx/pbx_dundi.c: Remove unnecessary channel module references. * Removed call to ast_module_user_hangup_all() in res_config_mysql.c since it is effectively a noop. No channels can attach a reference to that module. * Removed call to ast_module_user_hangup_all() in app_celgenuserevent.c. The caller of unload_module() has already called it. * Removed redundant channel module references in pbx_dundi.c. The registered dialplan function callback dispatchers for the read/read2/write callbacks already reference the module before calling. * pbx_dundi: Moved unregistering CLI commands, DUNDi switch, and dialplan functions to the first thing the unload_module() does. This will reduce the chance of new channels using DUNDi services while the module is being torn down. ........ Merged revisions 376657 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376658 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, include/asterisk/linkedlists.h: Made AST_LIST_REMOVE() simpler and use better names. * Update doxygen of AST_LIST_REMOVE(). ........ Merged revisions 376627 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376628 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-22 23:58 +0000 [r376588] Matthew Jordan * main/lock.c, /, main/logger.c, include/asterisk/lock.h: Re-initialize logmsgs mutex upon logger initialization to prevent lock errors Similar to the patch that moved the fork earlier in the startup sequence to prevent mutex errors in the recursive mutex surrounding the read/write thread registration lock, this patch re-initializes the logmsgs mutex. Part of the start up sequence before forking the process into the background includes reading asterisk.conf; this has to occur prior to the call to daemon in order to read startup parameters. When reading in a conf file, log statements can be generated. Since this can't be avoided, the mutex instead is re-initialized to ensure a reset of any thread tracking information. This patch also includes some additional debugging to catch errors when locking or unlocking the recursive mutex that surrounds locks when the DEBUG_THREADS build option is enabled. DO_CRASH or THREAD_CRASH will cause an abort() if a mutex error is detected. (issue ASTERISK-19463) Reported by: mjordan Tesetd by: mjordan ........ Merged revisions 376586 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376587 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-20 21:58 +0000 [r376561] David M. Lee * res/res_http_websocket.c: Added missing newlines to websocket ast_logs. Without these newlines, log messages just continue tacking onto the same line, and do not flush immediately. 2012-11-20 18:57 +0000 [r376550] Mark Michelson * channels/sip/include/sip.h, /, channels/chan_sip.c: Add "Require: timer" to 200 OK responses when appropriate. The method by which the Require header is added to 200 responses is inspired by the method that Olle Johansson uses in his darjeeling-prack branch. (closes issue ASTERISK-20570) Reported by Matt Jordan, at the behest of Olle Johansson Review: https://reviewboard.asterisk.org/r/2172 ........ Merged revisions 376521 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376522 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-20 17:37 +0000 [r376540] Alec L Davis * channels/chan_sip.c: Reduce CLI spam of "Extension Changed" device state messages. Asterisk 11 follows RFC3265 that states that after every subscribe or resubscribe a notify should be sent. Thus the console if filled continuously with the following after every subscribe; == Extension Changed 8512[phones] new state IDLE for Notify User cisco1 In Asterisk 1.8 only changes would be sent. Thus only when a device state changed was anything emitted to the console. fix: Only print to console when device state isn't forced. (closes issue ASTERISK-20706) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) 2012-11-19 19:54 +0000 [r376471] Walter Doekes * /, channels/chan_sip.c, main/security_events.c, main/indications.c: Fix most leftover non-opaque ast_str uses. Instead of calling str->str, one should use ast_str_buffer(str). Same goes for str->used as ast_str_strlen(str) and str->len as ast_str_size(str). Review: https://reviewboard.asterisk.org/r/2198 ........ Merged revisions 376469 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376470 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-18 20:22 +0000 [r376415-376441] Matthew Jordan * main/asterisk.c, /, main/utils.c: Reorder startup sequence to prevent lockups when process is sent to background Although it is very rare and timing dependent, the potential exists for the call to 'daemon' to cause what appears to be a deadlock in Asterisk during startup. This can occur when a recursive mutex is obtained prior to the daemon call executing. Since daemon uses fork to send the process into the background, any threading primitives are unsafe to re-use after the call. Implementations of pthread recursive mutexes are highly likely to store the thread identifier of the thread that previously obtained the mutex. If the mutex was locked prior to the fork, a subsequent unlock operation will potentially fail as the thread identifier is no longer valid. Since the mutex is still locked, all subsequent attempts to grab the mutex by other threads will block. This behavior exhibited itself most often when DEBUG_THREADS was enabled, as this compile time option surrounds the mutexes in Asterisk with another recursive mutex that protects the storage of thread related information. This made it much more likely that a recursive mutex would be obtained prior to daemon and unlocked after the call. This patch does the following: a) It backports a patch from Asterisk 11 that prevents the spawning of the localtime monitoring thread. This thread is now spawned after Asterisk has fully booted. b) It re-orders the startup sequence to call daemon earlier during Asterisk startup. This limits the potential of threading primitives being accessed by initialization calls before daemon is called. c) It removes calls to ast_verbose/ast_log/etc. prior to daemon being called. Developers should send error messages directly to stderr prior to daemon, as calls to ast_log may access recursive mutexes that store thread related information. d) It reorganizes when thread local storage is created for storing lock information during the creation of threads. Prior to this patch, the read/write lock protecting the list of threads in ast_register_thread would utilize the lock in the thread local storage prior to it being initialized; this patch prevents that. On a very related note, this patch will *greatly* improve the stability of the Asterisk Test Suite. Review: https://reviewboard.asterisk.org/r/2197 (closes issue ASTERISK-19463) Reported by: mjordan Tested by: mjordan ........ Merged revisions 376428 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376431 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/confbridge/conf_state.c, /: Add a test event that reports changes in ConfBridge state This patch adds a test event to ConfBridge that reports transitions between states in ConfBridge. This is used by tests in the Asterisk Test Suite that verify state changes based on the entering/leaving of conference participants. ........ Merged revisions 376414 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-16 19:59 +0000 [r376391] Jonathan Rose * res/res_monitor.c, /: monitor: prevent attempts to move/remove recordings skipped with 'i' and 'o'. The i and o options for monitor skip the input and output sides of a recording respectively. This patch addresses a problem in those options when monitor is called without specifying a specific filename where monitor will try to move the recording that was skipped. Since this usually doesn't exist when these options are used, it would produce a warning when it does this in most cases, but it is conceivable that there are use cases where this could result in moving/removing a file unintentionally. (closes issue ASTERISK-20641) Reported by: Jonathan Rose Review: https://reviewboard.asterisk.org/r/2190/ ........ Merged revisions 376389 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376390 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-16 00:09 +0000 [r376339-376343] David M. Lee * /, utils/extconf.c: Fixed extconf.c breakage introduced in r376306. To quote wdoekes: > Note that I'm not confirming legitimacy of having that file in tree at > all. Is anyone using aelparse/conf2ael? ........ Merged revisions 376340 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376342 from http://svn.asterisk.org/svn/asterisk/branches/10 * utils/Makefile, tests/test_astobj2_thrash.c (added), utils/utils.xml, /, utils/hashtest.c (removed), tests/test_hashtab_thrash.c (added), utils/hashtest2.c (removed), include/asterisk/hashtab.h: Migrate hashtest/hashtest2 to be unit tests. Both hashtest and hashtest2 are manual testing apps that thrash hash tables (hashtab and ao2 containers, respectively), by spinning up several threads that randomly insert, delete, lookup and iterate over the hash table. If the app doesn't crash, the hash table probably passes the test. Those utils are not a part of the typical Asterisk build, so they do not usually get compiled. This all makes them less that useful. This patch removes those manual test programs and replaces them with Asterisk unit test modules (test_{hashtab,astobj2}_thrash.so). It also attempts to make the tests more deterministic. * Rather than spinning up some number of threads that operate on the hash table randomly, spin up four threads that concurrenly add, remove, lookup and iterate over the hash table. * Each thread checks the state of the hash table both during and after execution, and indicates a test failure if things are not as expected. * Each thread times out after 60 seconds to prevent deadlocking the unit test run. (closes issue ASTERISK-20505) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/2189/ ........ Merged revisions 376306 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376315 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-15 23:03 +0000 [r376310] Jonathan Rose * /, apps/app_meetme.c: app_meetme: Fix channels lingering when hung up under certain conditions Channels would get stuck and MeetMe would repeatedly display an Unable to write frame to channel error in the conf_run function if hung up during certain sound prompts such as during user count announcements. This patch fixes that by reintroducing a hangup check in the meetme's main loop (also in conf_run). (closes issue ASTERISK-20486) Reported by: Michael Cargile Review: https://reviewboard.asterisk.org/r/2187/ Patches: meetme_hangup_patch_ASTERISK-20486_v3.diff uploaded by Jonathan Rose (license 6182) ........ Merged revisions 376307 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376308 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-15 02:08 +0000 [r376264] Rusty Newton * apps/app_voicemail.c, /: Patch to play correct sound file when a voicemail's urgent status is removed We were attempting to play "vm-urgent-removed", which didn't exist. Now we play "vm-marked-nonurgent" which exists and is the correct sound file. Previous behavior was silence and a warning on the CLI. (issue ASTERISK-20280) (closes issue ASTERISK-20280) Reported by: Tomo Takebe Tested by: Rusty Newton Patches: asterisk20280.patch uploaded by Rusty Newton (license 5829) ........ Merged revisions 376262 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376263 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-14 19:53 +0000 [r376234] Richard Mudgett * pbx/pbx_spool.c, /: Fix call files when astspooldir is relative. Future dated call files are ignored when astspooldir is relative to the current directory. The queue_file() assumed that the qdir needed to be prepended if the given filename did not start with a '/'. If astspooldir is relative it is not going to start from the root directory obviously so it will not start with a '/'. The filename used in queue_file() ultimately results in qdir prepended multiple times. * Made queue_file() not prepend qdir if the filename contains a '/'. (closes issue ASTERISK-20593) Reported by: James Le Cuirot Patches: 0004-Fix-future-call-files-from-relative-directories.patch (license #6439) patch uploaded by James Le Cuirot ........ Merged revisions 376232 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376233 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-13 18:48 +0000 [r376217] Brent Eagles * main/channel.c, /: Patch to prevent stopping the active generator when it is not the silence generator. This patch introduces an internal helper function to safely check whether the current generator is the one that is expected before deactivating it. The current externally accessible ast_channel_stop_generator() function has been modified to be implemented in terms of the new function. (closes issue ASTERISK-19918) Reported by: Eduardo Abad ........ Merged revisions 376199 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376208 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-12 20:45 +0000 [r376168] Joshua Colp * main/pbx.c, /: Properly check if the "Context" and "Extension" headers are empty in a ShowDialPlan action. The code which handles the ShowDialPlan action wrongly assumed that a non-NULL return value from the function which retrieves headers from an action indicates that the header has a value. This is incorrect and the contents must be checked to see if they are blank. (closes issue ASTERISK-20628) Reported by: jkroon Patches: asterisk-showdialplan-incorrect-error.patch uploaded by jkroon ........ Merged revisions 376166 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376167 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-12 20:16 +0000 [r376144] Michael L. Young * main/pbx.c, /: Fix Dynamic Hints Variable Substition - Underscore Problem When adding a dynamic hint, if an extension contains an underscore no variable subsitution is being performed. This patch changes from checking if the extension contains an underscore to checking if the extension begins with an underscore. (closes issue ASTERISK-20639) Reported by: Steven T. Wheeler Tested by: Steven T. Wheeler, Michael L. Young Patches: asterisk-20639-dynamic-hint-underscore.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2188/ ........ Merged revisions 376142 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376143 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-11 17:08 +0000 [r376130] Joshua Colp * res/res_rtp_asterisk.c, channels/chan_sip.c, configs/sip.conf.sample: Remove a fixed size limitation for producing SDP and change how ICE support is disabled by default. With ICE support enabled in chan_sip and a large number of interfaces on the system it was possible for the produced SDP to be truncated due to some fixed size buffers. These buffers have now been changed so they will dynamically grow as needed. ICE support is now also enabled by default in res_rtp_asterisk to provide a smoother experience for chan_motif users where it is required. To maintain the previous behavior in chan_sip it is no longer enabled by default there. (closes issue ASTERISK-20643) Reported by: coopvr 2012-11-08 22:08 +0000 [r376089] Mark Michelson * /, res/res_fax.c: Fix a "set but not used" warning on newer gccs. Turns out the "helpful" setting of ms and res in this macro is completely useless after the timeout antipattern fix. If you're a new guy looking to write code, don't write a macro like this one. ........ Merged revisions 376087 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376088 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-08 21:10 +0000 [r376048-376060] Richard Mudgett * channels/sig_ss7.c, /: chan_dahdi/SS7: Made reject incoming call for an in-alarm or blocked channel. If a SS7 call comes in requesting a CIC that is in-alarm, the call is accepted and connects if the extension exists in the dialplan. The call does not have any audio. * Made release the call immediately with circuit congestion cause. (closes issue ASTERISK-20204) Reported by: Tuan Le Patches: jira_asterisk_20204_v1.8.patch (license #5621) patch uploaded by rmudgett ........ Merged revisions 376058 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376059 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/asterisk.c, include/asterisk/utils.h, include/asterisk/astmm.h, /, main/utils.c, main/astmm.c: Add MALLOC_DEBUG enhancements. * Makes malloc() behave like calloc(). It will return a memory block filled with 0x55. A nonzero value. * Makes free() fill the released memory block and boundary fence's with 0xdeaddead. Any pointer use after free is going to have a pointer pointing to 0xdeaddead. The 0xdeaddead pointer is usually an invalid memory address so a crash is expected. * Puts the freed memory block into a circular array so it is not reused immediately. * When the circular array rotates out a memory block to the heap it checks that the memory has not been altered from 0xdeaddead. * Made the astmm_log message wording better. * Made crash if the DO_CRASH menuselect option is enabled and something is found. * Fixed a potential alignment issue on 64 bit systems. struct ast_region.data[] should now be aligned correctly for all platforms. * Extracted region_check_fences() from __ast_free_region() and handle_memory_show(). * Updated handle_memory_show() CLI usage help. Review: https://reviewboard.asterisk.org/r/2182/ ........ Merged revisions 376029 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 376030 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-07 19:03 +0000 [r376014] Mark Michelson * include/asterisk/time.h, apps/app_jack.c, apps/app_dial.c, main/pbx.c, main/rtp_engine.c, /, apps/app_meetme.c, res/res_fax.c, apps/app_record.c, channels/chan_agent.c, main/utils.c, include/asterisk/channel.h, apps/app_queue.c, channels/sig_pri.c, channels/chan_iax2.c, main/channel.c, channels/chan_dahdi.c, apps/app_waitforring.c, channels/sig_analog.c: Multiple revisions 375993-375994 ........ r375993 | mmichelson | 2012-11-07 11:01:13 -0600 (Wed, 07 Nov 2012) | 30 lines Fix misuses of timeouts throughout the code. Prior to this change, a common method for determining if a timeout was reached was to call a function such as ast_waitfor_n() and inspect the out parameter that told how many milliseconds were left, then use that as the input to ast_waitfor_n() on the next go-around. The problem with this is that in some cases, submillisecond timeouts can occur, resulting in the out parameter not decreasing any. When this happens thousands of times, the result is that the timeout takes much longer than intended to be reached. As an example, I had a situation where a 3 second timeout took multiple days to finally end since most wakeups from ast_waitfor_n() were under a millisecond. This patch seeks to fix this pattern throughout the code. Now we log the time when an operation began and find the difference in wall clock time between now and when the event started. This means that sub-millisecond timeouts now cannot play havoc when trying to determine if something has timed out. Part of this fix also includes changing the function ast_waitfor() so that it is possible for it to return less than zero when a negative timeout is given to it. This makes it actually possible to detect errors in ast_waitfor() when there is no timeout. (closes issue ASTERISK-20414) reported by David M. Lee Review: https://reviewboard.asterisk.org/r/2135/ ........ r375994 | mmichelson | 2012-11-07 11:08:44 -0600 (Wed, 07 Nov 2012) | 3 lines Remove some debugging that accidentally made it in the last commit. ........ Merged revisions 375993-375994 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375995 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-06 18:59 +0000 [r375966] Richard Mudgett * include/asterisk/features.h, main/channel.c, /, main/channel_internal_api.c, main/features.c, include/asterisk/channel.h: Fix stuck DTMF when bridge is broken. When a bridge is broken by an AMI Redirect action or the ChannelRedirect application, an in progress DTMF digit could be stuck sending forever. * Made simulate a DTMF end event when a bridge is broken and a DTMF digit was in progress. (closes issue ASTERISK-20492) Reported by: Jeremiah Gowdy Patches: bridge_end_dtmf-v3.patch.txt (license #6358) patch uploaded by Jeremiah Gowdy Modified to jira_asterisk_20492_v1.8.patch jira_asterisk_20492_v1.8.patch (license #5621) patch uploaded by rmudgett Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/2169/ ........ Merged revisions 375964 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375965 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-12-10 Asterisk Development Team * Asterisk 11.1.0 Released. 2012-12-06 Asterisk Development Team * Asterisk 11.1.0-rc3 Released. * chan_local: Fix local_pvt ref leak in local_devicestate(). Regression introduced by ASTERISK-20390 fix. (closes issue ASTERISK-20769) Reported by: rmudgett 2012-12-05 Asterisk Development Team * Asterisk 11.1.0-rc2 Released. * Fix a SIP request memory leak with TLS connections. During the TLS re-work in chan_sip some TLS specific code was moved into a separate function. This function operates on a copy of the incoming SIP request. This copy was never deinitialized causing a memory leak for each request processed. This function is now given a SIP request structure which it can use to copy the incoming request into. This reduces the amount of memory allocations done since the internal allocated components are reused between packets and also ensures the SIP request structure is deinitialized when the TLS connection is torn down. (closes issue ASTERISK-20763) Reported by: deti 2012-11-06 Asterisk Development Team * Asterisk 11.1.0-rc1 Released. 2012-11-06 12:09 +0000 [r375925] Joshua Colp * channels/chan_motif.c: Fix a bug where our Motif ICE candidates were not quite proper, and make us more forgiving. An issue was reported on the mailing list where calling would result in an "Incomplete ICE-UDP candidate received on session" error message. This is the result of the ICE-UDP candidate code not placing a "network" attribute within the candidates. This is now done. To increase compatibility though I have removed the requirement for the "network" attribute to exist within ICE-UDP candidates that are received since we don't actually require the value. Reported on the mailing list by Jean-Denis Girard. 2012-11-05 23:09 +0000 [r375895] Matthew Jordan * main/timing.c, main/channel.c, /, res/res_timing_pthread.c, res/res_timing_dahdi.c, res/res_timing_timerfd.c, bridges/bridge_softmix.c, funcs/func_jitterbuffer.c, include/asterisk/timing.h, res/res_musiconhold.c, channels/chan_iax2.c, res/res_fax_spandsp.c, res/res_timing_kqueue.c: Refactor ast_timer_ack to return an error and handle the error in timer users Currently, if an acknowledgement of a timer fails Asterisk will not realize that a serious error occurred and will continue attempting to use the timer's file descriptor. This can lead to situations where errors stream to the CLI/log file. This consumes significant resources, masks the actual problem that occurred (whatever caused the timer to fail in the first place), and can leave channels in odd states. This patch propagates the errors in the timing resource modules up through the timer core, and makes users of these timers handle acknowledgement failures. It also adds some defensive coding around the use of timers to prevent using bad file descriptors in off nominal code paths. Note that the patch created by the issue reporter was modified slightly for this commit and backported to 1.8, as it was originally written for Asterisk 10. Review: https://reviewboard.asterisk.org/r/2178/ (issue ASTERISK-20032) Reported by: Jeremiah Gowdy patches: jgowdy-timerfd-6-22-2012.diff uploaded by Jeremiah Gowdy (license 6358) ........ Merged revisions 375893 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375894 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-05 21:41 +0000 [r375864] Richard Mudgett * main/loader.c, /: Add safety NULL pointer check in module user references. Made __ast_module_user_remove() check for NULL pointers. ........ Merged revision 375860 from C.3 ........ Merged revisions 375862 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375863 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-05 17:59 +0000 [r375847] Jonathan Rose * /, UPGRADE.txt: chan_sip: Document a change to user-field encoding introduced with r303509 The change in question was added to improve compliance with RFC3261, but at the time of commit, it wasn't adequately documented in the UPGRADE notes. (closes issue ASTERISK-20561) Reported by: Deniz Review: https://reviewboard.asterisk.org/r/2177/ ........ Merged revisions 375846 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-04 03:09 +0000 [r375729-375802] Matthew Jordan * main/manager.c, /: Don't attempt to purge sessions when no sessions exist Manager's tcp/tls objects have a periodic function that purge old manager sessions periodically. During shutdown, the underlying container holding those sessions can be disposed of and set to NULL before the tcp/tls periodic function is stopped. If the periodic function fires, it will attempt to iterate over a NULL container. This patch checks for whether or not the sessions container exists before attempting to purge sessions out of it. If the sessions container is NULL, we simply return. Note that this error was also caught by the Asterisk Test Suite. ........ Merged revisions 375800 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375801 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, res/res_fax.c: Only deref a reserved gateway session if we actually reserved one Its perfectly acceptable to have a gateway session unreserved when we go to first allocate one. Unreffing the reserved gateway session - when its NULL - will result in an assertion error. This problem was caught by the Asterisk Test Suite (once we had enough of the debugging flags enabled) ........ Merged revisions 375797 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/manager.c, /: Properly clean up manager resources on exit This patch does two things: 1) It properly unregisters the manager CLI commands 2) It cleans up AMI users on exit. Prior to this patch, the AMI users were not being disposed of properly, resulting in a memory leak. (closes issue ASTERISK-20646) Reported by: Corey Farrell patches: manager_shutdown.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 375793 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375794 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/db.c, /: Properly finalize prepared SQLite3 statements to prevent memory leak The AstDB uses prepared SQLite3 statements to retrieve data from the SQLite3 database. These statements should be finalized during Asterisk shutdown so that the SQLite3 database can be properly closed. Failure to finalize the statements results in a memory leak and a failure when closing the database. This patch fixes those issues by ensuring that all prepared statements are properly finalized at shutdown. (closes issue ASTERISK-20647) Reported by: Corey Farrell patches: astdb-sqlite3_close.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 375761 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/xmldoc.c: Fix memory leaks in XML documentation This patch fixes two memory leaks: 1) When building XML documentation items, the 'name' attribute was extracted from XML elements but not properly freed after being copied into the item being built. 2) When unloading XML documentation, the doctree container objects were not properly freed. This patch corrects these memory leaks. Note that this patch was modified slightly for this commmit, as the case where the 'name' attribute doesn't exist also wasn't handled in the item construction. This patch also checks for that attribute not existing. (closes issue ASTERISK-20648) Reported by: Corey Farrell Tested by: mjordan patches: xmldoc-memory_leak.patch uploaded by Corey Farrell (license 5909) * main/cdr.c, /: Prevent multiple CDR batches from conflicting when scheduling the CDR write The Asterisk Test Suite caught an error condition where a scheduled CDR batch write can be deleted twice if two channels attempt to post their CDRs at the same time. The batch CDR mutex is locked while the CDRs are appended to the current batch list; however, it is unlocked prior to actually scheduling the CDR write. As such, two threads can attempt to remove the currently scheduled batch write at the same time, resulting in an assertion error. This patch extends the time that the mutex is locked to encompass actually scheduling the write. This prevents two threads from unscheduling the currently scheduled write at the same time. ........ Merged revisions 375727 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375728 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-03 03:17 +0000 [r375702] Andrew Latham * README, include/asterisk/doxyref.h: Doxygen Updates Replace links to missing text files removed in the 1.6.x series with links to the wiki. Doxygen can handle URLs fine, don't atempt to quote them. Also update the wiki link in the Readme to get everyone on the same page. (issue ASTERISK-20259) ........ Merged revisions 375698 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375699 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-02 20:59 +0000 [r375661] Richard Mudgett * main/channel.c, channels/chan_misdn.c, /, main/ccss.c, main/format_pref.c: Things don't need to be that const. ........ Merged revisions 375658 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375659 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-02 20:56 +0000 [r375660] Damien Wedhorn * channels/chan_skinny.c: Fix for chan_skinny leaving RTP ports open Skinny wasn't closing RTP sockets. This patch includes ast_rtp_instance_stop before ast_rtp_instance_destroy which fixes the problem. Also add destroy for VRTP (which I believe is unused, but exists). Review: https://reviewboard.asterisk.org/r/2176/ 2012-11-02 18:44 +0000 [r375627] Richard Mudgett * channels/misdn/isdn_lib.h, /, channels/misdn/isdn_lib.c: Multiple revisions 375519-375524 ........ r375519 | rmudgett | 2012-10-30 16:06:15 -0500 (Tue, 30 Oct 2012) | 11 lines chan_misdn: Timer primitives must be handled first. The frm->addr is a different "address space" than the stack/instance address of other Lx primitives. The test for B channel instance address could fail. Patches: patch01_timers.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2888 ........ r375520 | rmudgett | 2012-10-30 16:14:58 -0500 (Tue, 30 Oct 2012) | 10 lines chan_misdn: Free memory in error paths and other memory leaks. The one line commented with BUG is not easily fixable because there is no de-init function one can call. Patches: patch02_memory.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2888 ........ r375521 | rmudgett | 2012-10-30 16:38:41 -0500 (Tue, 30 Oct 2012) | 14 lines chan_misdn: ISDN NT L2 de-establish/establish * An NT-PTMP cannot de/establish L2 since it doesn't know the TEIs. * On NT-PTP L2 is started when L1 is finally active in handle_l1. * L2 deactivation logging cleanup. * L2 aggregate link status is unknown for NT-PTMP, show as "UNKN". * Removed unused functions and code for L2 handling. Patches: patch03_L2estab.diff (license #6372) patch uploaded by Guenther Kelleter Modified JIRA ABE-2888 ........ r375522 | rmudgett | 2012-10-30 16:56:14 -0500 (Tue, 30 Oct 2012) | 22 lines chan_misdn: Fix broken upper_id/lower_id usage. Sending PH prim via lower_id layer (3 or 1) simply does not work. For TE (3) it returns an error (len=-6) which is not evaluated by handle_l1(), so the L1 layer status ends up wrong. Instead PH must be sent via L4, only then does it reach L1 without an error message. And NT PH prims only reach L1 when they are sent to layer 2 id. --> use upper_id to send PH primitives. * Check for errors in PH_(DE)ACTIVATE | CONFIRM. * Debug messages are improved. * The lower_id is now not used for anything, except: Why is lower_id layer deleted when it wasn't created? I removed this code since it looks very wrong. Patches: patch04_l1activation.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2888 ........ r375523 | rmudgett | 2012-10-30 17:29:15 -0500 (Tue, 30 Oct 2012) | 31 lines chan_misdn: Fix loss of B channels if L1 is down. If you make 2 calls out an NT PTMP port which is not connected to any phone, the B channel associated with that call becomes unusable until Asterisk is restarted. The problem is the EVENT_SETUP is queued when L1 is not up in misdn_lib_send_event(). If L1 cannot be activated the event won't be dequeued. It gets even worse when the call is hung up. The queued EVENT_SETUP will be overwritten by an EVENT_DISCONNECT. The reserved B channel then will never be freed. If later someone connects a phone to the port, L1 will eventually activate and the queued EVENT_DISCONNECT is sent down the stack. However, it is ignored because it is the wrong call state. The real fix would be that activation and queueing for a new SETUP is done by the NT stack. But since it doesn't, the workaround must be removed because it doesn't always work. Fix: The event is no longer queued but immediately sent to the stack. If L1 cannot be activated, the L3 state machine that was started by the EVENT_SETUP will do its work, i.e. a timeout will release the B channel properly. The SETUP possibly cannot be sent the first time but is resent by T303 in case L1 could be activated. Patches: patch05_bchan-loss.diff (license #6372) patch uploaded by Guenther Kelleter Modified JIRA ABE-2888 ........ r375524 | rmudgett | 2012-10-30 18:26:05 -0500 (Tue, 30 Oct 2012) | 13 lines chan_misdn: Remove some calls to exit(). Try proper cleanup when something goes wrong in misdn_lib_init(). Especially do not call exit()! * Fix memory leak because stack_destroy() does not free the stack struct. Patches: patch06_cleanup-init.diff (license #6372) patch uploaded by Guenther Kelleter Modified JIRA ABE-2888 ........ Merged revisions 375519-375524 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier ........ Merged revisions 375625 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375626 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-02 17:24 +0000 [r375613] Michael L. Young * /, channels/chan_sip.c: Fix Wrong Result In Debug Message For SDP Origin Processing While looking at some debug logs, I noticed that it was being reported that the SDP origin line was unsupported or failed. Upon looking into this on my local machine, I found that I too was getting this debug message yet everything seemed to be getting processed properly. What was discovered is, that, the variable to determine what is displayed in the debug message for the SDP line that was processed, was not being set for the origin line when the result was successful. This patch fixes this and was tested on local machine. ........ Merged revisions 375594 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375601 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-11-01 14:52 +0000 [r375575] Jonathan Rose * channels/chan_sip.c, configs/sip.conf.sample: chan_sip: Fix a bug causing SIP reloads to remove all entries from the registry A regression was introduced in chan_sip by changes to sip reload introduced by r349097. That patch moved peer purging from the beginning of the reload to after the general configuration was finished. This patch fixes that by undoing the repositioning of the original peer purging code and using a similar function after performing general configuration that purges only autocreated peers that were created when persist mode isn't enabled. (closes issue ASTERISK-20611) Reported by: Alisher Review: https://reviewboard.asterisk.org/r/2171/ 2012-10-31 18:00 +0000 [r375559] Joshua Colp * res/res_http_websocket.exports.in: Fix an issue with res_http_websocket where the chan_sip WebSocket handler could not be registered. On some systems the optional API support uses the GCC compiler attribute "weakref" to provide its functionality. This code changes the function names and prefixes "__" to the front. The res_http_websocket exports file did not take this into account, thereby not allowing those functions to be global and ultimately found. (closes issue ASTERISK-20631) Reported by: danjenkins 2012-10-31 14:49 +0000 [r375532] Matthew Jordan * res/res_calendar_ews.c, /: Properly extract the Body information of an EWS calendar item Unlike all other calendar modules, res_calendar_ews fails to extract the Body information for a calendar item. This is due, in part, to a quirk in the schema in the XML - not only does a CalendarItem contain a Body element, but the CalendarItem exists as a descendant of a different Body element. The neon parser was erroneously skipping all Body elements. This patch fixes that by bypassing Body elements that are not a child of CalendarItem, and parsing the Body element out if it is a child. Note that the original patch by Terry Wilson only needed slight modifications to make it properly pull the Body information out; as such, while I've linked to the patch that I uploaded for Dmitry, I've attributed the patch to Terry. (closes issue ASTERISK-19738) Reported by: Dmitry Burilov Tested by: Dmitry Burilov patches: calendar_ews_body_2012_10_29.diff uploaded by Terry Wilson (license 6283) ........ Merged revisions 375528 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375531 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-30 19:23 +0000 [r375506] Richard Mudgett * /, bridges/bridge_softmix.c: Fix ConfBridge crash if no timing module loaded. (closes issue ASTERISK-19448) Reported by: feyfre Patches: smfix.patch (license #6099) patch uploaded by feyfre Modified for coding guidelines. ........ Merged revisions 375496 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-30 19:09 +0000 [r375471-375486] Jonathan Rose * /, apps/app_mixmonitor.c: mixmonitor: Add a test event This test event is being used to fix the mixmonitor_audiohook_inherit test. ........ Merged revisions 375484 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375485 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_confbridge.c: confbridge: Fix a bug which made conferences not record with AMI/CLI commands When confbridge was changed to handle conference status with a state machine in r374658. The function responsible for starting recording for a conference was refactored with the function actually responsible for launching the recording thread being split into a function with another name. The old function name was still used for manually started recordings through AMI or CLI. This patch fixes that by switching which function is used to start recording the conference. (closes issue ASTERISK-20601) Reported by: Vilius Patches: confbridge_mixmonitor.diff uploaded by Jonathan Rose (license 6182) ........ Merged revisions 375470 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-30 02:22 +0000 [r375469] Matthew Jordan * /, apps/app_queue.c: Ensure that the Queue application tracks busy members in off nominal situations There are a few code paths where the Queue application fails to count a paused or in use queue member as being 'busy'. This can cause callers to get stuck in the Queue until a paused agent unpauses themselves. (closes issue ASTERISK-20623) Reported by: Bryan Walters patches: app_queue.patch uploaded by Bryan Walters (license 5851) ........ Merged revisions 375450 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375451 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-29 21:23 +0000 [r375437] Mark Michelson * /, channels/chan_sip.c: Prevent resetting of NATted realtime peer address on reload. If a "sip reload" is issued for a SIP peer, then his IP address will be cleared, thus resulting in forgetting the public IP address. Asterisk will then attempt to route SIP traffic to the private IP address. The fix here is to make "sip reload" ignore realtime peers when "host = dynamic" is spotted. Realtime peers can now only have their IP address reset if they have gone from being not dynamic to being dynamic. (closes issue ASTERISK-18203) reported by daren ferreira (closes issue ASTERISK-20572) reported by JoshE Patches: fix_nat_realtime.diff uploaded by JoshE (license #6075) ........ Merged revisions 375415 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375417 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-29 19:29 +0000 [r375363-375390] Richard Mudgett * /, main/features.c: Fix the Park 'r' option when a channel parks itself. When a channel uses the Park appliation to park itself with the 'r' option, the channel hears music-on-hold instead of the requested ringing. * Added a missing check for the 'r' option when a channel parks itself. (closes issue ASTERISK-19382) Reported by: James Stocks Patches by: dsessions Review: https://reviewboard.asterisk.org/r/2148/ ........ Merged revisions 375388 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375389 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_dahdi.c, /: chan_dahdi: Fix segfault dereferencing a NULL tech_pvt. The tech support customer was using the AMI Redirect action shortly after a call was placed. While the channel tried to do an ast_read(), the masquerade resulting from the channel redirect took place. The masquerade in the middle of the ast_read() resulted in the segfault. (closes issue AST-1025) Reported by: Trey Blancher Patches: jira_ast_1025_v1.8_v2.patch (license #5621) patch uploaded by rmudgett ........ Merged revisions 375361 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375362 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-23 16:22 +0000 [r375288-375327] Jonathan Rose * contrib/scripts/ast_tls_cert, /: ast_tls_cert script: Better response for various exit conditions to openssl (closes issue ASTERISK-20260) Reported by: Daniel O'Connor Patches: ast_tls_cert-update.diff uploaded by Daniel O'Connor (license 6419) ........ Merged revisions 375325 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375326 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/app.c: core: Fix a memory leak in app.c from an early return ast_app_group_match_get_count allocates memory with the regcomp function and we previously forgot to free it when bailing out due to a regex compilation failure against category. (closes issue AST-1018) Reported by: Guenther Kelleter Patches: regcomp_memleak.diff uploaded by Guenther Kelleter (license 6372) ........ Merged revisions 375299 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375300 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, codecs/gsm/src/code.c: GSM: Fix encoding problems with GSM (closes issue ASTERISK-20457) Reported by: Richard Miller Patches: code.patch uploaded by Richard Miller (license 5685) ........ Merged revisions 375272 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375273 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-18 21:44 +0000 [r375219-375247] Jonathan Rose * UPGRADE.txt: app_queue: add upgrade notes for 375216 Adds UPGRADE notes describing behavioral changes to rrmemory strategy caused by 375216 (issue AST-989) Reported by: Thomas Arimont * /, apps/app_queue.c: app_queue: Make ordering of rrmemory/rrordered persist over add/remove members Prior to this patch, adding, removing or reloading members to rrmemory would cause the order to become completely jumbled. Now it behaves more or less like rrordered other than the fact that it stores the members on a hash table rather than a linked list. This patch also prevents removal of members and member reloads from jumbling rrordered queues. (issue AST-989) Reported by: Thomas Arimont Review: https://reviewboard.asterisk.org/r/2164/ ........ Merged revisions 375216 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375217 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-18 20:02 +0000 [r375191] Richard Mudgett * Makefile, /, build_tools/make_version, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: build_tools: Allow Asterisk to report git SHAs in version string. Make git more attractive for managing work-in-progress. Especially convenient when a potential patch set needs to be tested on multiple platforms since one can use git to keep all the test environments in sync independent of a subversion server. Now the Asterisk version will show the exact git SHA5 that was used when building (still appended by "M" if there are local modifications) from a git clone of the Asterisk repository so the developer can more easily know what is actually under test. You will now get this: $ asterisk -V Asterisk GIT-1698298 Instead of this: $ asterisk -V Asterisk UNKNOWN__and_probably_unsupported This has zero impact for those not using git with the exception of an extra test in the configure script to gather git's path. This is necessary to prevent "sudo make install" from failing since git may not be in the path in make's shell environment. (closes issue ASTERISK-20483) Reported by: Shaun Ruffell Patches: 0001-build_tools-Allow-Asterisk-to-report-git-SHAs-in-ver.patch (license #5417) patch uploaded by Shaun Ruffell Modified ........ Merged revisions 375189 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375190 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-17 19:00 +0000 [r375148] Kinsey Moore * main/tcptls.c, /: Ensure Asterisk fails TCP/TLS SIP calls when certificate checking fails When placing a call to a TCP/TLS SIP endpoint whose certificate is not signed by a configured CA certificate, Asterisk would issue a warning and continue to process the call as if there was not an issue with the certificate. Asterisk now properly fails the call if the certificate fails verification or if the certificate does not exist when certificate checking is enabled (the default behavior). (closes issue ASTERISK-20559) Reported by: kmoore Review: https://reviewboard.asterisk.org/r/2163/ ........ Merged revisions 375146 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375147 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-16 21:44 +0000 [r375079-375113] Walter Doekes * /, channels/chan_sip.c: Fixes to the fd-oriented SIP TCP reads. Don't crash on large user input. Allow SIP headers without space. Optimize code a bit. Review: https://reviewboard.asterisk.org/r/2162 ........ Merged revisions 375111 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375112 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Update sip_request_call SIP dial string documentation. This was missed when merging review r1859. ........ Merged revisions 375074 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375078 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-16 14:08 +0000 [r375051] Joshua Colp * channels/chan_iax2.c: Remove a log message that was left in accidentally from call-id logging development. 2012-10-15 21:15 +0000 [r375027] Mark Michelson * apps/app_dial.c, /, main/ccss.c, include/asterisk/strings.h, channels/chan_iax2.c: Fix some potential misuses of ast_str in the code. Passing an ast_str pointer by value that then calls ast_str_set(), ast_str_set_va(), ast_str_append(), or ast_str_append_va() can result in the pointer originally passed by value being invalidated if the ast_str had to be reallocated. This fixes places in the code that do this. Only the example in ccss.c could result in pointer invalidation though since the other cases use a stack-allocated ast_str and cannot be reallocated. I've also updated the doxygen in strings.h to include notes about potential misuse of the functions mentioned previously. Review: https://reviewboard.asterisk.org/r/2161 ........ Merged revisions 375025 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 375026 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-15 08:11 +0000 [r375016] Igor Goncharovskiy * channels/chan_unistim.c: Fix underscreen buttons warnings apeared while transfer process 2012-10-14 11:57 +0000 [r374995] Tzafrir Cohen * config.guess, config.sub, /: Update config.guess and config.sub: 2012-10-10 Update config.guess and config.sub to revision fb456b34ef4aa02b95dc6be69aaa66fa94a844fb from the savannah.gnu.org git repo. Adds support for e.g. aarch64 (ARM 64bit). config.guess:timestamp='2012-09-25' config.sub:timestamp='2012-10-10' ........ Merged revisions 374977 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374991 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-12 21:57 +0000 [r374932] Kinsey Moore * apps/app_voicemail.c: Avoid a segfault on invalid format names If a format name was not found by ast_getformatbyname, a NULL pointer would be passed into ast_format_rate and immediately dereferenced. This ensures that a valid pointer is used since the structure is already allocated on the stack. (closes issue DPH-523) Reported-by: Steve Pitts 2012-10-12 16:20 +0000 [r374914] Mark Michelson * main/tcptls.c, /, channels/chan_sip.c, include/asterisk/tcptls.h: Do not use a FILE handle when doing SIP TCP reads. This is used to solve an issue where a poll on a file descriptor does not necessarily correspond to the readiness of a FILE handle to be read. This change makes it so that for TCP connections, we do a recv() on the file descriptor instead. Because TCP does not guarantee that an entire message or even just one single message will arrive during a read, a loop has been introduced to ensure that we only attempt to handle a single message at a time. The tcptls_session_instance structure has also had an overflow buffer added to it so that if more than one TCP message arrives in one go, there is a place to throw the excess. Huge thanks goes out to Walter Doekes for doing extensive review on this change and finding edge cases where code could fail. (closes issue ASTERISK-20212) reported by Phil Ciccone Review: https://reviewboard.asterisk.org/r/2123 ........ Merged revisions 374905 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374906 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-11 21:18 +0000 [r374850-374877] Joshua Colp * channels/chan_motif.c: Fix a bug where audio on Google Voice would not work due to ignoring candidates. Instead of ignoring parts of the message that are not known just ignore the ones we know may be present and that would cause a problem. * res/res_rtp_asterisk.c: Remove code that should not have gotten in. (issue ASTERISK-20554) * res/res_rtp_asterisk.c, channels/chan_motif.c: Fix an issue where outgoing calls would fail to establish audio due to ICE negotiation failures. This change removes the requirement for ufrag and pwd in the transport stanza and also makes us the controlling agent. (closes issue ASTERISK-20554) Reported by: mmichelson 2012-10-11 15:44 +0000 [r374845] Matthew Jordan * main/cdr.c, /: Fix incorrect billing duration reported when batch mode is enabled Similar to r369351, the billing duration can be skewed when batch mode is enabled. This happened much more rarely than the duration, as it only occured when the call was answered (thereby indicating an actual answer time) and immediately hung up on (indicating a billsec of 0). Since a billing time of '0' can either mean that the call immediately ended or that the CDR was improperly answered, we have to use additional information to know whether or not we can trust the CDR billsec value. Prior to this patch, we looked to see if we had a valid answer time. If we did, and billsec was zero, we used the current time to calculate what billsec value we could from the CDR being written. If batch mode is enabled, this will incorrectly report a billsec value being much greater than the actual duration of the call. Instead of relying on the presence of an answer time to know whether or not we can re-calculate the billsec for the CDR, we now also use the presence of the CDR's end time to know if we need to re-calculate or whether we can trust the billsec value that we have. This prevents erroneous jumps in the billsec value, while still making sure that in the worst case, some billing time will be calculated. (closes issue AST-1016) Reported by: Thomas Arimont Tested by: Thomas Arimont ........ Merged revisions 374843 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374844 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-11 15:31 +0000 [r374842] Mark Michelson * channels/chan_sip.c, include/asterisk/sip_api.h, channels/chan_sip.exports.in (removed), main/sip_api.c (added): Don't make chan_sip export global symbols. During testing, it was discovered that having chan_sip export global symbols was problematic. The biggest problem was that load order was affected. Trying to use realtime could be problematic since in all likelihood the necessary realtime driver(s) would not be loaded before chan_sip. In addition, it was found that it was impossible to use the Digium Phone Module for Asterisk since it must be loaded before chan_sip since it must hook into chan_sip's configuration parsing. The solution is to use a virtual table in the same manner that other modules in Asterisk do, like app_voicemail. (closes issue ASTERISK-20545) Reported by: kmoore 2012-10-11 13:33 +0000 [r374833] Joshua Colp * channels/chan_motif.c: Consider the Google Talk content stanza name (jin:content) valid. 2012-10-10 21:03 +0000 [r374804] Richard Mudgett * /, apps/app_queue.c: app_queue: Made pass connected line updates from the caller to ringing queue members. Party A calls Party B Party B puts Party A on hold. Party B calls a queue. Ringing queue member D sees Party B identification. Party B transfers Party A to the queue. Queue member D does not get a connected line update for Party A. Queue member D answers the call and still sees Party B information. However, if Party A later transfers the call to Party C then queue member D gets a connected line update for Party C. * Made pass connected line updates from the caller to queue members while the queue members are ringing. (closes issue AST-1017) Reported by: Thomas Arimont (closes issue ABE-2886) Reported by: Thomas Arimont Tested by: rmudgett ........ Merged revisions 374801 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier ........ Merged revisions 374802 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374803 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-10 13:35 +0000 [r374792] Kinsey Moore * main/manager.c: Fix segfault regression from r370681 Due to usage of ast_hook_send_action, AMI action handling code should be able to handle a NULL mansession->session. This would cause a crash on NULL dereference if action_originate was called from ast_hook_send_action. (closes issue ASTERISK-20544) 2012-10-09 22:21 +0000 [r374771] Richard Mudgett * main/pbx.c, /: Fix execution of 'i' extension due to uninitialized variable. The fix for ASTERISK-18243 added code that could potentially use dst_exten[] uninitialized. As a result the 'i' exten may not be executed when it should. (closes issue ASTERISK-20455) Reported by: Richard Miller Patches: pbx-1.8.16.0.diff (license #5685) patch uploaded by Richard Miller Made some cosmetic modifications. ........ Merged revisions 374758 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374763 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-09 21:34 +0000 [r374755-374756] Joshua Colp * channels/chan_sip.c: Improve logging for DTLS-SRTP failure situations. (closes issue ASTERISK-20487) Reported by: mjordan * channels/chan_sip.c: Add a log message for when DTLS-SRTP is requested and the underlying engine does not support it. (closes issue ASTERISK-20487) Reported by: mjordan 2012-10-08 22:30 +0000 [r374708-374729] Richard Mudgett * configs/chan_dahdi.conf.sample, /: dahdi.conf.sample: Add description for "buffers" setting. This contains an edited version of the patch originally created by John Bigelow. (closes issue ASTERISK-14435) Reported by: John Bigelow Patches: buffers.patch (license #5091) patch uploaded by John Bigelow 0001-dahdi.conf.sample-Add-description-for-buffers-settin.patch (license #5417) patch uploaded by Shaun Ruffell Modified ........ Merged revisions 374727 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374728 from http://svn.asterisk.org/svn/asterisk/branches/10 * pbx/pbx_spool.c, /: Fix deletion of unopenable spool files. If scan_service() cannot open the spool file, it logs a message saying that it will delete the file and calls remove_from_queue() to do it. However, remove_from_queue() fails to delete the spool file because struct outgoing has not yet been fully initialized. * Merged allocating a new struct outgoing and init_outgoing() into new_outgoing(). Allocation is initialization. * Made apply_outgoing() not initialize the spool filename in struct outgoing. * Made apply_outgoing() call ast_trim_blanks() and ast_skip_blanks() rather than manually inlining them. * Reduced indentation levels in apply_outgoing(). * Fixed a garbled comment in remove_from_queue(). * Reworked scan_service() to simplify it. (closes issue ASTERISK-17231) Reported by: David Chappell Patches: spool_open_failure.diff (license #4997) patch uploaded by David Chappell Started with this patch. ........ Merged revisions 374686 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * Fixed some memory leaks on off nominal paths in init_outgoing() when merging into the new_outgoing() function dealing with o->capabilities. ........ Merged revisions 374695 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-25 Asterisk Development Team * Asterisk 11.0.0 Released. 2012-10-17 Asterisk Development Team * Asterisk 11.0.0-rc2 Released. * [r374792] Fix segfault regression from r370681 Due to usage of ast_hook_send_action, AMI action handling code should be able to handle a NULL mansession->session. This would cause a crash on NULL dereference if action_originate was called from ast_hook_send_action. (closes issue ASTERISK-20544) * [r374842] Don't make chan_sip export global symbols. During testing, it was discovered that having chan_sip export global symbols was problematic. The biggest problem was that load order was affected. Trying to use realtime could be problematic since in all likelihood the necessary realtime driver(s) would not be loaded before chan_sip. In addition, it was found that it was impossible to use the Digium Phone Module for Asterisk since it must be loaded before chan_sip since it must hook into chan_sip's configuration parsing. The solution is to use a virtual table in the same manner that other modules in Asterisk do, like app_voicemail. (closes issue ASTERISK-20545) Reported by: kmoore * [r374850] Fix an issue where outgoing calls would fail to establish audio due to ICE negotiation failures. This change removes the requirement for ufrag and pwd in the transport stanza and also makes us the controlling agent. (closes issue ASTERISK-20554) Reported by: mmichelson * [r374851] Remove code that should not have gotten in (r374850) (issue ASTERISK-20554) * [r374877] Fix a bug where audio on Google Voice would not work due to ignoring candidates. Instead of ignoring parts of the message that are not known just ignore the ones we know may be present and that would cause a problem. * [r375148] Ensure Asterisk fails TCP/TLS SIP calls when certificate checking fails When placing a call to a TCP/TLS SIP endpoint whose certificate is not signed by a configured CA certificate, Asterisk would issue a warning and continue to process the call as if there was not an issue with the certificate. Asterisk now properly fails the call if the certificate fails verification or if the certificate does not exist when certificate checking is enabled (the default behavior). (closes issue ASTERISK-20559) Review: https://reviewboard.asterisk.org/r/2163/ * [r375051] Remove a log message that was left in accidentally from call-id logging development. 2012-10-08 Asterisk Development Team * Asterisk 11.0.0-rc1 Released. 2012-10-08 20:38 +0000 [r374632-374676] Matthew Jordan * res/res_rtp_asterisk.c, configs/rtp.conf.sample: Disable ICE support by default Since there are a number of legacy devices out there that fail to handle ICE candidates properly (which is a nice way of saying something much uglier), disable it by default. Support for ICE candidates can be enabled in rtp.conf using the icesupport setting. * apps/confbridge/conf_state.c (added), apps/confbridge/conf_state_single.c (added), apps/confbridge/conf_state_inactive.c (added), apps/confbridge/conf_state_single_marked.c (added), /, apps/confbridge/include/confbridge.h, apps/confbridge/include/conf_state.h (added), apps/confbridge/conf_state_multi.c (added), apps/app_confbridge.c, apps/confbridge/conf_state_multi_marked.c (added), apps/confbridge/conf_state_empty.c (added): Resolve issues in ConfBridge regarding marked, waitmarked, and unmarked users Thank's to Neil Tallim (flan)'s tireless testing, issue reporting, and patches it became clear that app_confbridge had some complex logic in how it handled interactions between marked, waitmarked, and unmarked users. In particular, there were some areas in which the interactions between the users resulted in inconsistent behavior, and app_confbridge was missing logic in how to handle some corner cases. Some areas included: * Poor handling of mixing unmarked and waitmarked users * Inconsistencies in how MOH and muting was applied to various users * Handling of various announcements for different user profile options flan's patches seem to fix the various issues, but highlighted how hard the code could be to maintain. In an attempt to make things easier to maintain and to more fully enumerate the various cases that exist, this patch breaks up the logic into a state machine-like setup. Please note that the various state transitioned are documented on the Asterisk wiki: https://wiki.asterisk.org/wiki/display/AST/Confbridge+state+changes Review: //https://reviewboard.asterisk.org/r/2072/ Note that for the following issues, mjordan uploaded the patch, although it was written by twilson. Any contributor license discrepency is due to that. (closes issue ASTERISK-19562) Reported by: flan Tested by: flan, mjordan, jrose patches: bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by twilson (license 6283) (closes issue ASTERISK-19726) Reported by: flan Tested by: flan patches: bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by twilson (license 6283) (closes issue ASTERISK-20181) Reported by: Jonathan White Tested by: Jonathan White patches: bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by twilson (license 6283) ........ Merged revisions 374652 from http://svn.asterisk.org/svn/asterisk/branches/10 * res/pjproject/pjlib/include/pj/sock.h, res/pjproject/pjlib/src/pj/sock_symbian.cpp, res/pjproject/pjlib/src/pj/sock_bsd.c, res/pjproject/pjlib/src/pj/sock_linux_kernel.c: pjproject: Fix for Solaris builds. Do not undef s_addr. pjproject, in order to solve build problems on Windows [1], undefines s_addr in one of it's headers that is included in res_rtp_asterisk.c. On Solaris s_addr is not a structure member, but defined to map to the real strucuture member, therefore when building on Solaris it's possible to get build errors like: [CC] res_rtp_asterisk.c -> res_rtp_asterisk.o In file included from /export/home/admin/asterisk-11-svn/include/asterisk/stun.h:29, from res_rtp_asterisk.c:51: /export/home/admin/asterisk-11-svn/include/asterisk/network.h: In function `inaddrcmp': /export/home/admin/asterisk-11-svn/include/asterisk/network.h:92: error: structure has no member named `s_addr' /export/home/admin/asterisk-11-svn/include/asterisk/network.h:92: error: structure has no member named `s_addr' res_rtp_asterisk.c: In function `ast_rtp_on_ice_tx_pkt': res_rtp_asterisk.c:706: warning: dereferencing type-punned pointer will break strict-aliasing rules res_rtp_asterisk.c:710: warning: dereferencing type-punned pointer will break strict-aliasing rules res_rtp_asterisk.c: In function `rtp_add_candidates_to_ice': res_rtp_asterisk.c:1085: error: structure has no member named `s_addr' make[2]: *** [res_rtp_asterisk.o] Error 1 make[1]: *** [res] Error 2 make[1]: Leaving directory `/export/home/admin/asterisk-11-svn' gmake: *** [_cleantest_all] Error 2 Unfortunately, in order to make this work, I also had to make sure pjproject only used the typdef pj_in_addr and not the struct pj_in_addr so that when building Asterisk I could "typedef struct in_addr pj_in_addr". It's possible then that the library and users of those interfaces in Asterisk have a different idea about the type of the argument, while on the surface it looks like they are all 32 bit big endian values. [1] http://trac.pjsip.org/repos/changeset/484 (issues ASTERISK-20366) Reported by: Ben Klang Tested by: Ben Klang, mjordan patches: 0001-pjproject-Fix-for-Solaris-builds.-Do-not-undef-s.patch uploaded by Shaun Ruffell (license 5417) * main/acl.c: Trivial patch to make 'best_score' defined for all architectures. Fixes trivial build error on Solaris: acl.c: In function `get_local_address': acl.c:196: error: `best_score' undeclared (first use in this function) acl.c:196: error: (Each undeclared identifier is reported only once acl.c:196: error: for each function it appears in.) make[2]: *** [acl.o] Error 1 (issue ASTERISK-20366) Reported by: Ben Klang Tested by: Ben Klang patches: 0002-main-acl.c-Trivial.-best_score-should-be-defined-for.patch by Shaun Ruffell (license 5417) 2012-10-06 03:20 +0000 [r374611-374622] Matthew Jordan * res/res_xmpp.c: Handle capability stanzas that fail to provide node or version information While XEP-0115 states that the node and ver attributes are both required, some devices fail to provide either field. Prior to this patch, failure to provide the node or ver attribute would cause a crash in res_xmpp. While failing to provide the node or ver attribute is technically invalid, since this information is not utilized by Asterisk except for reporting purposes, for interoperability reasons, we continue to process the capability stanza anyways. (closes issue ASTERISK-20495) Reported by: Martin W Tested by: Martin W patches: 20495.patch uploaded by Martin W (license #6434) * res/res_xmpp.c, main/message.c: Update documentation for MessageSend application/command's From field for XMPP When using the channel technology agnostic application/AMI command MessageSend, the "From" field is technically optional for the SIP channel driver. However, if being sent by the XMPP resource module (either res_xmpp or res_jabber), the "From" field is necessary, and must correspond to a defined account. This patch updates the documentation for this application/AMI command to reflect this. (closes issue ASTERISK-20405) Reported by: Leif Madsen 2012-10-05 20:32 +0000 [r374587] dlee : * main/manager.c, /: Multiple revisions 374570,374581 ........ r374570 | dlee | 2012-10-05 15:14:41 -0500 (Fri, 05 Oct 2012) | 22 lines Improve AMI long line error handling In AMI's parser, when it receives a long line (> 1024 characters), it discards that line, but continues to process the message normally. Typically, this is not a problem because a) who has lines that long and b) usually a discarded line results in an invalid message. But if that line is specifying an optional field, then the message will be processed, you get a 'Response: Success', but things don't work the way you expected them to. This patch changes the behavior when a line-too-long parse error occurs. * Changes the log message to avoid way-too-long (and truncated anyways) log messages * Adds a 'parsing' status flag to Response: Success * Sets parsing = MESSAGE_LINE_TOO_LONG if, well, a line is too long * Responds with an appropriate error if parsing != MESSAGE_OKAY (closes issue AST-961) Reported by: John Bigelow Review: https://reviewboard.asterisk.org/r/2142/ ........ r374581 | dlee | 2012-10-05 15:20:28 -0500 (Fri, 05 Oct 2012) | 1 line I've committed too much. Reverting part of r374570. ........ Merged revisions 374570,374581 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374586 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-05 18:34 +0000 [r374538] Richard Mudgett * channels/misdn/isdn_lib.h, channels/chan_misdn.c, /, channels/misdn/isdn_msg_parser.c, channels/misdn/isdn_lib.c: Merged revisions 374515-374535 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier ................ r374515 | rmudgett | 2012-10-04 17:52:36 -0500 (Thu, 04 Oct 2012) | 10 lines chan_misdn: Remove some deadcode * Made setup_bc() static. Patches: patch1_unused-code.diff (license #6372) patch uploaded by Guenther Kelleter Modified JIRA ABE-2882 ................ r374516 | rmudgett | 2012-10-04 18:01:01 -0500 (Thu, 04 Oct 2012) | 7 lines chan_misdn: Remove unused bchan states Patches: patch2_unused-states.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2882 ................ r374517 | rmudgett | 2012-10-04 18:17:51 -0500 (Thu, 04 Oct 2012) | 16 lines chan_misdn: Remove unnecessary null pointer checks and checks for stack->nt * cleanup_bc() is always called with valid bc (or it would've crashed before). * Value of stack->nt is known in advance at some places. * Rename handle_event() to handle_event_te(), handle_frm() to handle_frm_te(). Patches: patch3_checks.diff (license #6372) patch uploaded by Guenther Kelleter Modified JIRA ABE-2882 ................ r374518 | rmudgett | 2012-10-04 18:21:59 -0500 (Thu, 04 Oct 2012) | 7 lines chan_misdn: Fix spelling in log messages Patches: patch4_spelling.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2882 ................ r374519 | rmudgett | 2012-10-04 18:31:59 -0500 (Thu, 04 Oct 2012) | 15 lines chan_misdn: Don't cleanup a bc twice. In handle_frm_te() after calling misdn_lib_send_event(bc, EVENT_RELEASE_COMPLETE) bc is emptied, cleaned and set not in use, although misdn_lib_send_event() already did the same. This is bad. When it's not in use we are not allowed to touch it. * Moved log message in front of the resulting actions and fixed it to match the case. Patches: patch5_bccleanup.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2882 ................ r374520 | rmudgett | 2012-10-04 18:43:56 -0500 (Thu, 04 Oct 2012) | 12 lines chan_misdn: Fix memory leaks, bc, chan not cleaned up etc., really bad stuff. * Fix return codes of cb_events() for EVENT_SETUP to use caller's cleanup mechanisms. * Move cl_queue_chan() call after bearer check. Patches: patch6_leaks.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2882 ................ r374521 | rmudgett | 2012-10-04 18:48:38 -0500 (Thu, 04 Oct 2012) | 11 lines chan_misdn: We must initialize cause on sending a DISCONNECT. We must initialize cause on sending a DISCONNECT, so it is later correctly indicated to ast_channel in case the answer (RELEASE/RELEASE_COMPLETE) does not include one. Patches: patch7_hangupcause.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2882 ................ r374522 | rmudgett | 2012-10-04 19:03:56 -0500 (Thu, 04 Oct 2012) | 7 lines chan_misdn: Remove unused code for upqueue Patches: patch8_unused-upqueue.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2882 ................ r374523 | rmudgett | 2012-10-04 19:11:50 -0500 (Thu, 04 Oct 2012) | 7 lines chan_misdn: Improve debugging (port number, messages fixed, dups removed) Patches: patch9_debug.diff (license #6372) patch uploaded by Guenther Kelleter JIRA ABE-2882 ................ r374533 | rmudgett | 2012-10-05 12:17:18 -0500 (Fri, 05 Oct 2012) | 8 lines chan_misdn: Better debug: we can print_bc_info even if there's no ast leg. Patches: patch10_debug-bc-2.diff (license #6372) patch uploaded by Guenther Kelleter Modified. JIRA ABE-2882 ................ r374534 | rmudgett | 2012-10-05 12:34:10 -0500 (Fri, 05 Oct 2012) | 16 lines chan_misdn: setup_bc() is called too early for an incoming SETUP on TE. This prevents the B channel from being setup for HDLC mode when requested by the bearer capability and config option hdlc=yes. It violates ETS300102 Ch.5.2.3.2: "The user, in any case, must not connect to the channel until a CONNECT ACKNOWLEDGE message has been received." * Call setup_bc() on receipt of CONNECT_ACKNOWLEGDE for PTMP, and on first response to SETUP for PTP. Patches: abe-2881-2.diff (license #6372) patch uploaded by Guenther Kelleter Modified. JIRA ABE-2881 ................ r374535 | rmudgett | 2012-10-05 12:41:05 -0500 (Fri, 05 Oct 2012) | 2 lines chan_misdn: Remove some more deadcode. ................ ........ Merged revisions 374536 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374537 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-04 20:18 +0000 [r374477-374485] Alec L Davis * main/dsp.c, /, configs/dsp.conf.sample, CHANGES: dsp.c User Configurable DTMF_HITS_TO_BEGIN and DTMF_MISSES_TO_END Instead of a recompile, allow values to be adjusted in dsp.conf For binary distributions allows easy adjustment for wobbly GSM calls, and other reasons. Defaults to DTMF_HITS_TO_BEGIN=2 and DTMF_MISSES_TO_END=3 (closes issue ASTERISK-17493) Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2144/ ........ Merged revisions 374479 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374481 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/dsp.c, /: dsp.c fix incorrect DTMF Digit_Duration. it's always short by 'hits_to_begin*DTMF_GSIZE', or 25.5ms if hitstobegin=2 (issue ASTERISK-16003) Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2145/ ........ Merged revisions 374475 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374476 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-04 15:42 +0000 [r374428] dlee : * main/db.c, /, res/res_agi.c: Fix DBDelTree error codes for AMI, CLI and AGI The AMI DBDelTree command will return Success/Key tree deleted successfully even if the given key does not exist. The CLI command 'database deltree' had a similar problem, but was saved because it actually responded with '0 database entries removed'. AGI had a slightly different error, where it would return success if the database was unavailable. This came from confusion about the ast_db_deltree retval, which is -1 in the event of a database error, or number of entries deleted (including 0 for deleting nothing). * Changed some poorly named res variables to num_deleted * Specified specific errors when calling ast_db_deltree (database unavailable vs. entry not found vs. success) * Fixed similar bug in AGI database deltree, where 'Database unavailable' results in successful result (closes issue AST-967) Reported by: John Bigelow Review: https://reviewboard.asterisk.org/r/2138/ ........ Merged revisions 374426 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374427 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-04 04:43 +0000 [r374379-374386] Alec L Davis * main/dsp.c, /, configs/dsp.conf.sample, CHANGES: dsp.c User configuration of DTMF_NORMAL_TWIST and DTMF_REVERSE_TWIST values Asterisk's DTMF Specifications are based on AT&T specs, which may not be compatible in other countries. Various countries have different specifications for the maximum power level differences between the DTMF low group and high group of frequencies. Power level difference between frequencies for different Administrations/RPOAs NTT = Max. 5 dB AT&T = 4dB(reverse) to 8dB(normal) Danish = Max. 6 dB Australian = Max. 10 dB Brazilian = Max. 9 dB ETSI = Max. 6 dB from ETSI ES 201 235-3 V1.3.1 (2006-03) Now allow 4 variables to be individually configured in dsp.conf, with reasonable min/max of 2dB to 20dB. Default is AT&T specifications Add's the following variables to dsp.conf ;dtmf_normal_twist=6.31 ;dtmf_reverse_twist=2.51 ;relax_dtmf_normal_twist=6.31 ;relax_dtmf_reverse_twist=3.98 (closes issue ASTERISK-20442) Reported by: tbsky Tested by: tbsky,alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2141/ ........ Merged revisions 374384 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374385 from http://svn.asterisk.org/svn/asterisk/branches/10 * /: _dsp_init: bring inline with trunk preparation for clean merge of DTMF TWIST patch No functional changes, just style. alecdavis (license 585) Reported by: Alec Davis Tested by: alecdavis related https://reviewboard.asterisk.org/r/2141 ........ Merged revisions 374365 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374370 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-04 02:15 +0000 [r374196-374337] Matthew Jordan * /, res/res_jabber.c: Check for presence of buddy in info/dinfo handlers The res_jabber resource module uses the ASTOBJ library for managing its ref counted objects. After calling ASTOBJ_CONTAINER_FIND to locate a buddy object, the pointer to the object has to be checked to see if the buddy existed. Prior to this patch, the buddy object was not checked for NULL; with this patch in both aji_client_info_handler and aji_dinfo_handler the pointer is checked before used and, if no buddy object was found, the handlers return an error code. This patch does not take the approach that our JID can be used to log in from another resource. If that approach is desired, an improvement could be made to this patch to create the buddy on the fly. This patch seeks only to prevent Asterisk from crashing. FYI: In Asterisk 11+, you really should be using res_xmpp. It does not have this problem, as it moved to the astobj2 library. Note that multiple people have proposed patches for this issue; the patch being committed here is based on those. (closes issue ASTERISK-19532) Reported by: Karsten Wemheuer Tested by: Byron Clark patches: fix-jabber uploaded by Karsten Wemheuer (license #5930) xmpp_no_crash_with_ejabberd.patch uploaded by Byron Clark (license #6157) (closes issue ASTERISK-19557) Reported by: ulugutz ........ Merged revisions 374335 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374336 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/ccss.c: Destroy the generic_monitors container after the core_instances in ccss For each item in core_instances disposed of in the shutdown of ccss, any generic monitor instances referenced by the objects will be removed from generic_monitors during their destruction. Hilarity ensues if generic_monitors no longer exists. Thanks to the Asterisk Test Suite's generic_ccss test for complaining loudly when it ran into this. ........ Merged revisions 374300 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/asterisk.c, /: Ensure Shutdown AMI event is still fired during Asterisk shutdown Richard pointed out that having the manager dispose of itself gracefully during shutdown meant that the Shutdown event will no longer get fired. This patch moves the AMI event just prior to running the atexit callbacks. ........ Merged revisions 374230 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374231 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/message.c: Fix findings from check-in on r374177 Richard pointed out two problems with the check-in from r374177: * The ast_msg_shutdown function declaration doesn't match the prototype in main/message.c. * The ref/alloc function usage in astobj2 (in trunk) can use the ao2_t_* variants of the functions to allow the REF_DEBUG flag to enable/disable their debug counterparts. ........ Merged revisions 374210 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/db.c, main/asterisk.c, main/xmldoc.c, main/format.c, main/udptl.c, main/pbx.c, /, main/ccss.c, include/asterisk/astobj2.h, channels/chan_agent.c, main/taskprocessor.c, res/res_musiconhold.c, res/res_xmpp.c, main/cel.c, main/named_acl.c, main/indications.c, main/format_pref.c, main/astobj2.c, main/channel.c, main/data.c, main/manager.c, main/features.c, main/config_options.c, main/event.c, main/message.c: Fix a variety of ref counting issues This patch resolves a number of ref leaks that occur primarily on Asterisk shutdown. It adds a variety of shutdown routines to core portions of Asterisk such that they can reclaim resources allocate duringd initialization. Review: https://reviewboard.asterisk.org/r/2137 ........ Merged revisions 374177 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374178 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-01 20:26 +0000 [r374133-374150] Sean Bright * main/db.c, include/asterisk/astdb.h, /, tests/test_db.c, apps/app_queue.c: app_queue: Support persisting and loading of long member lists. Greenlight in #asterisk brought up that he was receiving an error message "Could not create persistent member string, out of space" when running app_queue in Asterisk 10. dump_queue_members() made an assumption that 8K would be enough to store the generated string, but with queues that have large member lists this is not always the case. This patch removes the limitation and uses ast_str instead of a fixed sized buffer. The complicating factor comes from the fact that ast_db_get requires a buffer and buffer size argument, which doesn't let us pull back more than what we pass in, so I introduced a new ast_db_get_allocated() which returns an ast_strdup()'d copy of the value from astdb. As an aside, I did some testing on the maximum size of data that we can store in the BDB library we distribute and was able to store a 10MB string and retrieve it with no problems, so I feel this is a safe patch. Review: https://reviewboard.asterisk.org/r/2136/ ........ Merged revisions 374108 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374135 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/db.c, /: Use ast_copy_string instead of strncpy to guarantee a NUL terminated string. ........ Merged revisions 374132 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-10-01 16:12 +0000 [r374106] Mark Michelson * apps/confbridge/conf_config_parser.c: Don't destroy confbridge config when error is encountered during a reload. Not panicking means that the old config is kept. (closes issue ASTERISK-20458) Reported by: Leif Madsen Patches: ASTERISK-20458.patch uploaded by Mark Michelson(license #5049) Tested by Leif Madsen 2012-09-29 03:54 +0000 [r374085] Matthew Jordan * channels/chan_sip.c: Fix ref leak when adding ICE candidates to an SDP There was a missing decrement to the reference count for the current ICE candidate when local candidates are being added to an outbound SDP. This patch corrects that. 2012-09-28 19:29 +0000 [r374059] Jonathan Rose * /, res/res_jabber.c: res_jabber: Remove CLI command 'jabber test' The opinion of development was that it is both improper to have Matt's personal email address used in the source and that the command wouldn't be useful without it. (closes issue AST-467) Reported by: Malcolm Davenport ........ Merged revisions 374032 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 374045 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-28 13:02 +0000 [r374019] beagles : * res/res_xmpp.c, main/message.c: Reset hangup flags on channels created through messages and cleanup globals in res_xmpp on unload. This patch fixes an issue where hangup flags were not being reset on a channel, affecting subsequent use of that channel. The patch also adds some additional cleanup to res_xmpp to fix an issue with reloading the module. (closes ASTERISK-20360) Reported by: Noah Engelberth Tested by: beagles Review: https://reviewboard.asterisk.org/r/2134/ 2012-09-28 12:16 +0000 [r373991] Joshua Colp * /, res/res_agi.c: Update documentation to make it explicit that "stream file" will not restart musiconhold. (issue ASTERISK-17367) Reported by: oej ........ Merged revisions 373989 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373990 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-27 22:19 +0000 [r373954] Richard Mudgett * /, apps/app_senddtmf.c: Fix SendDTMF crash and channel reference leak using channel name parameter. The SendDTMF channel name parameter has two issues. 1) Crashes if the channel name does not exist. 2) Leaks a channel reference if the channel is the current channel. Problem introduced by ASTERISK-15956. * Updated SendDTMF documentation. * Renamed app to senddtmf_name and tweaked the type. ........ Merged revisions 373945 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373946 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-27 17:05 +0000 [r373880-373914] Joshua Colp * channels/chan_sip.c, include/asterisk/http_websocket.h, res/res_http_websocket.c: Make res_http_websocket an optional dependency on supported platforms for chan_sip. (closes issue ASTERISK-20439) Reported by: sruffell Patches: 0001-chan_sip-websocket-support-is-an-optional-API.patch uploaded by sruffell (license 5417) * main/loader.c, /: loader: Ensure dependent modules are properly initialized. If an Asterisk module specifies a dependency in ast_module_info.nonoptreq, it is possible for Asterisk to skip calling the modules's .load function. Asterisk was loading and linking the module via load_dynamic_module() but was not adding the module to the resource_heap. Therefore the module was not initialized based on it's priority along with the other modules in the heap. Now use load_resource() instead of load_dynamic_module() for non-optional requirement. This will add the module to the resource_heap so the module can be properly initialized in the correct order. This is required if there are any module global data structures initialized in the .load() callback for the module on platforms which do not support weak references. (issue ASTERISK-20439) Reported by: sruffell Patches: 0001-loader-Ensure-dependent-modules-are-properly-initial.patch uploaded by sruffell (license 5417) ........ Merged revisions 373909 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373910 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_local.c, /: Fix an issue where Local channels dialed by app_queue are considered in use immediately. The chan_local channel driver returns a device state of in use even if a created Local channel has not yet been dialed. This fix changes the logic to return a state of not in use until the channel itself has been dialed. (closes issue ASTERISK-20390) Reported by: tim_ringenbach Review: https://reviewboard.asterisk.org/r/2116/ ........ Merged revisions 373878 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373879 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-26 21:16 +0000 [r373850] Mark Michelson * /, channels/chan_sip.c: Move handling of 408 response so there is no misleading warning message. (closes issue ASTERISK-20060) Reported by: Walter Doekes ........ Merged revisions 373848 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373849 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-26 18:18 +0000 [r373818] Richard Mudgett * /, apps/app_meetme.c: Fixed meetme tab completion and command documentation. * Removed unnecessary case sensitivity in meetme list, lock, unlock, mute, unmute, and kick commands. * Separated meetme lock/unlock, mute/unmute, and kick commands into their own registered commands to simplify tab completion and parameter checking. meetme_lock_cmd(), meetme_mute_cmd(), and meetme_kick_cmd() * Simplified meetme_show_cmd() (closes issue AST-1006) Reported by: John Bigelow Tested by: rmudgett ........ Merged revisions 373815 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373816 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-26 08:29 +0000 [r373804] Alec L Davis * apps/app_queue.c: app_queue: 'agent available' hint, cleanup restart, and initial state Fix previously untested senarios; 1). On queue initialisation set queue_avail devstate to INUSE. Previously was unavailable, which indicated an agent was available. 2). When removing members, if there are no other members available, set queue_avail to INUSE. Previously, if a member interface had become 'unavailable', they were never going to be removed, particularly when persistant queues is enabled. 3). When adding a member, check that they are available, if they are set queue_avail to NOT_INUSE. Previously on reloaded, members may have been 'unavailable'. 4). When pausing or unpausing a member, set appropriate queue availability. alecdavis (license 585) Reported by: Alec Davis Tested by: alecdavis Review: https://reviewboard.asterisk.org/r/2129/ 2012-09-25 23:09 +0000 [r373738-373775] Mark Michelson * /, main/say.c: Fix saying of date in Dutch. The Dutch say the date before the month. (closes issue ASTERISK-20353) Reported by: Teun Ouwehand ........ Merged revisions 373773 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373774 from http://svn.asterisk.org/svn/asterisk/branches/10 * configs/agents.conf.sample, /, channels/chan_agent.c: Remove dead code and documentation for nonexistent feature. multiplelogin was removed from chan_agent back in 1.6.0 when AgentCallbackLogin() was removed. (closes issue AST-948) reported by Steve Pitts ........ Merged revisions 373768 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373769 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_voicemail.c, /: Fix error where improper IMAP greetings would be deleted. (closes issue ASTERISK-20435) Reported by: fhackenberger Patches: asterisk-20435-imap-del-greeting.diff uploaded by Michael L. Young (License #5026) (with suggested modification made by me) ........ Merged revisions 373735 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373737 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-25 20:13 +0000 [r373707] Joshua Colp * channels/chan_local.c, /: Fix T.38 support when used with chan_local in between. Users of the T.38 API can indicate AST_T38_REQUEST_PARMS on a channel to request that the channel indicate a T.38 negotiation with the parameters present on the channel. The return value of this indication is expected to be AST_T38_REQUEST_PARMS upon success but with chan_local involved this could never occur. This fix changes chan_local to always return AST_T38_REQUEST_PARMS for this situation. If the underlying channel technology on the other side does not support T.38 this would have been determined ahead of time using ast_channel_get_t38_state and an indication would not occur. (closes issue ASTERISK-20229) Reported by: wdoekes Patches: ASTERISK-20229.patch uploaded by wdoekes (license 5674) Review: https://reviewboard.asterisk.org/r/2070/ ........ Merged revisions 373705 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373706 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-25 19:35 +0000 [r373704] Kinsey Moore * /: Recorded merge of revisions 373703 from http://svn.asterisk.org/svn/asterisk/branches/10 ........ Fix an issue where media would not flow for situations where the legacy STUN code is in use. The STUN packets should *not* be blocked by strict RTP. (closes issue ASTERISK-20415) Reported-by: Michele Cicciotti Patch-by: Josh Colp (trunk r369817) ........ Merged revisions 373702 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2012-09-25 18:52 +0000 [r373690] Terry Wilson * channels/sip/include/sip.h, /, channels/chan_sip.c, configs/sip.conf.sample: Properly handle UAC/UAS roles for SIP session timers The SIP session timer mechanism contains a mandatory 'refresher' parameter (included in the Session-Expires header) which is used in the session timer offer/answer signaling within a SIP Invite dialog. It looks like asterisk is interpreting the uac resp. uas role only as the initial role of client and server (caller is uac, callee is uas). The standard rfc 4028 however assigns the client role to the ((RE)-Invite) requester, the server role to the ((RE)-Invite) responder. This patch has Asterisk track the actual refresher as "us" or "them" as opposed to relying on just the configured "uas" or "uac" properties. (closes issue AST-922) Reported by: Thomas Airmont Review: https://reviewboard.asterisk.org/r/2118/ ........ Merged revisions 373652 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373665 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-25 18:24 +0000 [r373688] Kinsey Moore * /, apps/app_queue.c: "show" completion option for "queue" shouldn't appear twice When tab-completing CLI commands starting with "queue", "show" appeared twice in the list due to the way that Asterisk's tab completion functions and the order in which the commands were registered. The registration order has been altered to resolve this issue. (closes issue AST-940) Reported-by: Steve Pitts ........ Merged revisions 373666 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373675 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-25 17:21 +0000 [r373635-373650] Richard Mudgett * /, codecs/ilbc/iLBC_encode.c, codecs/ilbc/iLBC_decode.c: Fix valgrind found memcpy issues in codec_ilbc. Valgrind found codec_ilbc using memcpy instead of memmove for overlapping memory blocks. (issue ASTERISK-19890) (closes issue ASTERISK-20231) Reported by: Walter Doekes Patches: ASTERISK-20231.patch (license #5674) patch uploaded by Walter Doekes ........ Merged revisions 373640 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373645 from http://svn.asterisk.org/svn/asterisk/branches/10 * codecs/Makefile, /: Make rebuild GSM, ilbc, or lpc10 codecs if the respective sources change. ........ Merged revisions 373618 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373633 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-25 16:31 +0000 [r373632] Jonathan Rose * /, channels/chan_sip.c: chan_sip: Set Quality of Service for video rtp instance (closes issue ASTERISK-20201) Reported by: ddkprog Patches: chan_sip.c.diff uploaded by ddkprog (license 6008) ........ Merged revisions 373617 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373631 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-25 14:12 +0000 [r373582] Mark Michelson * funcs/func_presencestate.c: "He who go through turnstile sideways is going to Bangkok" 2012-09-25 13:29 +0000 [r373580] Kinsey Moore * configs/res_odbc.conf.sample, /: Fix documentation for default username in res_odbc This was previously stated to be "root", but is actually the name of the context if unspecified. (closes issue ASTERISK-20258) Reported by: Stefan x ........ Merged revisions 373578 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373579 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-25 12:07 +0000 [r373552] Joshua Colp * res/res_rtp_multicast.c, /: Fix an issue where a caller to ast_write on a MulticastRTP channel would determine it failed when in reality it did not. When sending RTP packets via multicast the amount of data sent is stored in a variable and returned from the write function. This is incorrect as any non-zero value returned is considered a failure while a return value of 0 is success. For callers (such as ast_streamfile) that checked the return value they would have considered it a failure when in reality nothing went wrong and it was actually a success. The write function for the multicast RTP engine now returns -1 on failure and 0 on success, as it should. (closes issue ASTERISK-17254) Reported by: wybecom ........ Merged revisions 373550 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373551 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-24 22:17 +0000 [r373508] Matthew Jordan * res/res_rtp_asterisk.c, /: Revert change to res_rtp_asterisk committed in r373236 (1.8) The change committed in r373236 attempted to account for endpoints that increased their RTP timestamp in DTMF end of event re-transmissions. This change attempted to make Asterisk continue to work with endpoints that failed to follow the RFC while maintaining the fix that allowed for out of order DTMF to be handled. Unfortunately, there is no free lunch, and this patch broke any system that sent DTMF immediately after an RTP session was established or when an SSRC is updated. As such, that patch is being reverted for the previous behavior. Endpoints that erroneously increase the RTP timestamp in DTMF end of event packets will not work properly with Asterisk. (issue ASTERISK-20424) ........ Merged revisions 373504 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373505 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-24 22:12 +0000 [r373502] Richard Mudgett * /, channels/chan_sip.c: Be consistent, send From: "Anonymous" When setting CALLERID(pres)=unavailable in the dialplan, the From header in the SIP message contains "Anonymous" . For consistency, Asterisk should use a lowercase a in the userpart of the URI. * Make the From header use a lowercase A in the userpart of the anonymous URI. (closes issue ASTERISK-19838) Reported by: Antti Yrjola Patches: chan_sip_patch_ASTERISK-19838.patch (license #6383) patch uploaded by Antti Yrjola ........ Merged revisions 373500 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373501 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-24 21:12 +0000 [r373470] Jonathan Rose * funcs/func_audiohookinherit.c, /, apps/app_mixmonitor.c: func_audiohookinherit: Document some missed sources. This patch also mentions that AUDIOHOOK_INHERIT can be used to transfer MixMonitor audiohooks. There is also wiki that addresses audiohooks and the use of AUDIOHOOK_INHERIT at the following link: https://wiki.asterisk.org/wiki/display/AST/Audiohooks (closes issue ASTERISK-18220) Reported by: Ishfaq Malik ........ Merged revisions 373467 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373468 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-24 21:08 +0000 [r373469] Richard Mudgett * /, channels/chan_sip.c: Fix potential reentrancy problems in chan_sip. Asterisk v1.8 and later was not as vulnerable to this issue. * Made find_call() lock each private as it processes the found dialogs. (Primary cause of ABE-2876) * Made the other functions that traverse the dialogs container lock each private as it examines them. * Fix race condition in sip_call() if the thread that sent the INVITE is held up long enough for a response to be processed. The p->initid for the INVITE retransmission could be added after it was canceled by the response processing. * Made __sip_destroy() clean up resource pointers after freeing. This is primarily defensive in case someone has a stale private pointer. * Removed redundant memset() in reqprep(). The call to init_req() already does the memset() and is the first reference to req in reqprep(). * Removed useless set of req.method in transmit_invite(). The calls to initreqprep() and reqprep() have to do this because they memset() the req. JIRA ABE-2876 .......... Merged -r373423 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier ........ Merged revisions 373424 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373466 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-24 19:21 +0000 [r373413-373454] Joshua Colp * /, channels/chan_sip.c: Fix a deadlock caused by a race condition between removing a hint and reloading the dialplan and subscribing to the removed hint. If conditions were right it was possible for both the PBX core and chan_sip to deadlock by both having a lock that the other wants. In the case of the PBX core it had the contexts lock and wanted a SIP dialog lock, while in the case of chan_sip it had the SIP dialog lock and wanted the contexts lock. This fix unlocks the SIP dialog before getting the extension state so that the other thread will not block on trying to lock it. Once the extension state is retrieved the SIP dialog is locked again and life carries on. As the SIP dialog is reference counted it is not possible for it to go away after unlocking. (closes issue ASTERISK-20437) Reported by: jhutchins ........ Merged revisions 373438 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373440 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_sip.c, res/res_format_attr_h264.c: Fix an issue with H.264 format attribute comparison and fix an issue with improper SDP being produced. The H.264 format attribute module compares two format attribute structures to determine if they are compatible or not. In some instances it was possible for this check to determine that both structures were incompatible when they actually should be considered compatible. This check has now been made even more permissive by assuming that if no attribute information is available the two structures are compatible. If both structures contain attribute information a base level comparison of the H.264 IDC value is done to see if they are compatible or not. The above issue uncovered a secondary issue in chan_sip where the SDP being produced would be incorrect if the formats were considered incompatible. This has now been fixed by checking that all information required to produce the SDP is available instead of assuming it is. (closes issue ASTERISK-20464) Reported by: Leif Madsen 2012-09-24 12:33 +0000 [r373403] beagles : * res/res_rtp_asterisk.c, configs/rtp.conf.sample: res_rtp_asterisk: Make TURN and STUN server configurations consistent. This patch removes the turnport configuration property and changes the turnaddr property to be a combined host[:port] configuration string. The patch also modifies the documentation in the example configuration to reflect the property changes and adds some additional text indicating how the STUN port is configured. (closes issue ASTERISK-20344) Reported by: beagles Tested by: beagles Review: https://reviewboard.asterisk.org/r/2111/ 2012-09-21 19:29 +0000 [r373318-373368] Jonathan Rose * /, channels/iax2-provision.c: iax2-provision: Fix improper return on failed cache retrieval (closes issue ASTERISK-20337) reported by: John Covert Patches: iax2-provision.c.patch uploaded by John Covert (license 5512) ........ Merged revisions 373342 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373343 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_queue.c: app_queue: Make queue reload members and variants of that work Prior to this patch, 'queue reload members' cli command did not work at all. This also affects the manager function 'QueueReload' when supplied with the 'members: yes' field. (closes issue AST-956) Reported by: John Bigelow ........ Merged revisions 373298 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373300 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-20 19:16 +0000 [r373246] Joshua Colp * /, apps/app_meetme.c: Fix incorrect MeetME conference bridge reference count decrementing and sometimes premature destruction. When using the 'e' or 'E' option to MeetMe the configured conference bridges are loaded and examined to see if any are empty. If no conference bridges are empty the caller is prompted to enter the number of one. This operation left around a pointer to the last created conference bridge still containing participants. When the caller that was not able to find any empty conference bridge hung up this pointer was disposed of and the reference count of the conference bridge decremented. If there was only a single participant in the conference bridge it was ultimately destroyed prematurely. (closes issue AST-994) Reported by: John Bigelow ........ Merged revisions 373242 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373245 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-20 18:59 +0000 [r373235-373240] Matthew Jordan * configs/extensions.conf.sample, CHANGES, apps/app_queue.c: app_queue: Support an 'agent available' hint Sets INUSE when no free agents, NOT_INUSE when an agent is free. modifes handle_statechange() scan members loop to scan for a free agent and updates the Queue:queuename_avial devstate. Previously exited early if the member was found in the queue. Now Exits later when both a member was found, and a free agent was found. alecdavis (license 585) Reported by: Alec Davis Tested by: alecdavis Review: https://reviewboard.asterisk.org/r/2121/ ~~~~ Support all ways a member can be available for 'agent available' hints Alec's patch in r373188 added the ability to subscribe to a hint for when Queue members are available. This patch modifies the check that determines when a Queue member is available by refactoring the availability checks in num_available_members into a shared function is_member_available. This should now handle the ringinuse option, as well as device state values other than AST_DEVICE_NOT_INUSE. * res/res_rtp_asterisk.c, /: When processing RFC 2833 DTMF, accomodate increasing timestamps in End events While endpoints should not be changing the source timestamp between DTMF event packets, the fact is there exists those endpoints that do exactly that. To work around this, we absorb timestamps within the expected re-transmit period. Note that this period only affects End of Event packets, so it should not prevent the detection of new DTMF digits that happen to arrive right on top of each other. (closes issue ASTERISK-20424) Reported by: Vladimir Mikhelson Tested by: mjordan, Vladimir Mikhelson Review: https://reviewboard.asterisk.org/r/2124 ........ Merged revisions 373236 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373237 from http://svn.asterisk.org/svn/asterisk/branches/10 * configs/extensions.conf.sample, CHANGES, apps/app_queue.c: Add queue monitoring hints This patch adds support for hints on a queue. Hints can be added using the nomenclature 'Queue:name', where name is the name of the queue being monitored. This nifty feature was done by Alec Davis. Review: https://reviewboard.asterisk.org/r/1619 Reported by: Alec Davis Tested by: alecdavis patches: review1619.diff2 by alecdavis (license 585) 2012-09-20 18:18 +0000 [r373229] Joshua Colp * channels/sip/include/sip.h, res/res_rtp_asterisk.c, main/rtp_engine.c, channels/chan_sip.c, configure, include/asterisk/autoconfig.h.in, configure.ac, configs/sip.conf.sample, include/asterisk/rtp_engine.h: Add support for DTLS-SRTP to res_rtp_asterisk and chan_sip. As mentioned on the review for this, WebRTC has moved towards choosing DTLS-SRTP as the mechanism for key exchange for SRTP. This commit adds support for this but makes it available for normal SIP clients as well. Testing has been done to ensure that this introduces no regressions with existing behavior and also that it functions as expected. Review: https://reviewboard.asterisk.org/r/2113/ 2012-09-20 17:15 +0000 [r373220] Richard Mudgett * include/asterisk/features.h, main/channel.c, apps/app_directed_pickup.c, funcs/func_channel.c, main/features.c, include/asterisk/channel.h: Named call pickup groups. Fixes, missing functionality, and improvements. * ASTERISK-20383 Missing named call pickup group features: CHANNEL(callgroup) - Need CHANNEL(namedcallgroup) CHANNEL(pickupgroup) - Need CHANNEL(namedpickupgroup) Pickup() - Needs to also select from named pickup groups. * ASTERISK-20384 Using the pickupexten, the pickup channel selection could fail even though there was a call it could have picked up. In a call pickup race when there are multiple calls to pickup and two extensions try to pickup a call, it is conceivable that the loser will not pick up any call even though it could have picked up the next oldest matching call. Regression because of the named call pickup group feature. * See ASTERISK-20386 for the implementation improvements. These are the changes in channel.c and channel.h. * Fixed some locking issues in CHANNEL(). (closes issue ASTERISK-20383) Reported by: rmudgett (closes issue ASTERISK-20384) Reported by: rmudgett (closes issue ASTERISK-20386) Reported by: rmudgett Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/2112/ 2012-09-20 13:00 +0000 [r373211] Kinsey Moore * channels/chan_sip.c: Correct handling of unknown SDP stream types When the patch to handle arbitrary SDP stream arrangements went into Asterisk, it also included an ability to transparently decline unknown stream types. The scanf calls used were not checked properly causing this part of the functionality to be broken. (closes issue ASTERISK-20203) 2012-09-18 20:14 +0000 [r373133] Sean Bright * main/manager.c, /: Don't crash when passing a NULL message to __astman_get_header. Before this commit, __astman_get_header would blindly dereference the passed in 'struct message *' to traverse the header list. There are cases, however, such as '*CLI> sip qualify peer foo' where the message pointer is NULL, so we need to check for that. ........ Merged revisions 373131 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373132 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-18 15:47 +0000 [r373119] dlee : * Makefile, include/asterisk/utils.h, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Add -fnested-functions compile flag, if needed. In order to use nested functions on some versions of GCC (e.g. GCC on OS X), the -fnested-functions flag must be passed to the compiler. This patch adds detection logic to ./configure to add the flag if necessary. It also adds a comment to utils.h as to why the nested function needs a prototype. (closes issue ASTERISK-20399) Reported by: David M. Lee Review: https://reviewboard.asterisk.org/r/2102/ 2012-09-15 00:27 +0000 [r373107] Richard Mudgett * channels/sig_ss7.c, /: Made companding law for SS7 calls only determined by SS7 signaling type. For SS7, the companding law for a call was chosen inconsistently depending upon ss7type (ITU vs ANSI) and the DAHDI companding default (T1 vs E1). For incoming calls, the companding law was determined by ss7type. For outgoing calls, the companding law was determined by the DAHDI default. With the wrong combination you would get A-law/u-law conflicts. An A-law/u-law conflict sounds like bad static on the line. SS7 ITU signaling with E1 line: ok SS7 ITU signaling with T1 line: noise SS7 ANSI signaling with E1 line: noise SS7 ANSI signaling with T1 line: ok * Fix the companding law used to be determined by the SS7 signaling type only. ........ Merged revisions 373090 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373101 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-14 19:50 +0000 [r373079] Matthew Jordan * main/tcptls.c, /, channels/chan_sip.c, main/libasteriskssl.c: Resolve memory leaks in TLS initialization and TLS client connections This patch resolves two sources of memory leaks when using TLS in Asterisk: 1) It removes improper initialization (and multiple re-initializations) of portions of the SSL library. Asterisk calls SSL_library_init and SSL_load_error_strings during SSL initialization; collectively this obviates the need for calling any of the following during initialization or client connection handling: * ERR_load_crypto_strings (handled by SSL_load_error_strings) * OpenSSL_add_all_algorithms (synonym for SSL_library_init) * SSLeay_add_ssl_algorithms (synonym for SSL_library_init) 2) Failure to completely clean up all memory allocated by Asterisk and by the SSL library for TLS clients. This included not freeing the SSL_CTX object in the SIP channel driver, as well as not clearing the error stack when the TLS client exited. Note that these memory leaks were found by Thomas Arimont, and this patch was essentially written by him with some minor tweaks. (closes issue AST-889) Reported by: Thomas Arimont Tested by: Thomas Arimont patches: (bugAST-889.patch) by Thomas Arimont (license 5525) Review: https://reviewboard.asterisk.org/r/2105 ........ Merged revisions 373061 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373062 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-13 20:04 +0000 [r373029-373047] dlee : * main/Makefile: Fixed make clean when configured --disable-asteriskssl * main/channel.c, /, include/asterisk/channel.h: Fix timeouts for ast_waitfordigit[_full]. ast_waitfordigit_full would simply pass its timeout to ast_waitfor_nandfds, expecting it to decrement the timeout by however many milliseconds were waited. This is a problem if it consistently waits less than 1ms. The timeout will never be decremented, and we wait... FOREVER! This patch makes ast_waitfordigit_full manage the timeout itself. It maintains the previously undocumented behavior that negative timeouts wait forever. (closes issue ASTERISK-20375) Reported by: Mark Michelson Tested by: Mark Michelson Review: https://reviewboard.asterisk.org/r/2109/ ........ Merged revisions 373024 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373025 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-12 20:53 +0000 [r372995] Joshua Colp * channels/chan_motif.c: Skip any non-content information when looking for and handling content. This fixes a bug with Jitsi and conference calling. Jitsi implements XEP-0298 which places some conference-info information in the session-initiate request which chan_motif did not expect to occur. 2012-09-12 18:23 +0000 [r372984] Jonathan Rose * res/res_xmpp.c: res_xmpp: Fix a segfault caused by bodyless messages (closes issue ASTERISK-20361) Reported by: Noah Engelberth Review: https://reviewboard.asterisk.org/r/2108/ 2012-09-12 15:19 +0000 [r372937] Mark Michelson * /, channels/chan_sip.c: Add channel name to a warning to make debugging easier. The "autodestruct with owner in place" message is typically indicative of a channel reference leak. Printing out the name of the channel in the message may be helpful when trying to debug the issue. ........ Merged revisions 372932 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372933 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-12 14:18 +0000 [r372930] dlee : * main/Makefile: Fixed r372696 when configured --disable-asteriskssl; properly install libasteriskssl.dylib on OS X. I didn't realize that libasteriskssl.c was still compiled, even when you disable asteriskssl; it simple gets statically linked into asterisk. 2012-09-11 22:32 +0000 [r372917] Jonathan Rose * channels/chan_local.c, /: chan_local: Switch from using a random 4 digit hex identifier to unique id Changes chan_local channels to use an 8 digit hex identifier generated atomically and sequentially in order to eliminate the chance of having multiple channels with the same name during high call volume situations. (issue ASTERISK-20318) Reported by: Dan Cropp Review: https://reviewboard.asterisk.org/r/2104/ ........ Merged revisions 372902 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372916 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-11 21:15 +0000 [r372886-372888] Mark Michelson * main/asterisk.c, /, include/asterisk/_private.h, main/message.c: Fix inability to shutdown gracefully due to an unending channel reference. message.c makes use of a special message queue channel that exists in thread storage. This channel never goes away due to the fact that the taskprocessor used by message.c does not get shut down, meaning that it never ends the thread that stores the channel. This patch fixes the problem by shutting down the taskprocessor when Asterisk is shut down. In addition, the thread storage has a destructor that will release the channel reference when the taskprocessor is destroyed. (closes issue AST-937) Reported by Jason Parker Patches: AST-937.patch uploaded by Mark Michelson (License #5049) Tested by Jason Parker ........ Merged revisions 372885 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/features.c: Fix bad channel application data reference. When channels get bridged due to an AMI bridge action or a DTMF attended transfer, the two channels that get bridged have their application data pointing to the other channel's name. This means that if one channel is hung up but the other moves on, it means that the channel that moves on will have its application data pointing at freed memory. (issue ASTERISK-20335) Reported by: aragon ........ Merged revisions 372840 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372841 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-11 17:16 +0000 [r372864] dlee : * Makefile, /: Corrects the astsbindir setting when installing the sample asterisk.conf. (closes issue ASTERISK-20406) ........ Merged revisions 372863 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-10 20:59 +0000 [r372795-372806] Kinsey Moore * /, channels/chan_iax2.c: Ensure iax2 debug output is displayed when expected When IAX2 debug was changed from iax_showframe to iax_outputframe, some instances were missed (or added afterward). This was causing debug output to not be displayed when expected. (closes issue ASTERISK-20338) Reported-by: John Covert Patch-by: John Covert ........ Merged revisions 372804 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372805 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_jingle.c, include/asterisk/doxygen/architecture.h, main/devicestate.c, channels/chan_gtalk.c, res/res_jabber.c: Deprecate chan_gtalk, chan_jingle, and res_jabber chan_gtalk, chan_jingle, and res_jabber are now deprecated in favor of using chan_motif and res_xmpp. They are a feature-equivalent replacement and are written to be more easily maintainable. (closes issue ASTERISK-20298) Review: https://reviewboard.asterisk.org/r/2082/ Reported-by: Leif Madsen 2012-09-10 19:19 +0000 [r372777] dlee : * res/res_rtp_asterisk.c: res_rtp_asterisk: Eliminate "type-punned pointer" build warning. Removes "res_rtp_asterisk.c:706: warning: dereferencing type-punned pointer will break strict-aliasing rules" warning from the build on 32-bit platforms. The problem is that 'size' was referenced aliased to both (pj_size_t *) and (pj_ssize_t *). Now just make a copy of size that is the right type so there isn't any pointer aliasing happening. It also adds comments and asserts regarding what looks like an inappropriate use of pj_sock_sendto, but is actually totally fine. (closes issue ASTERISK-20368) Reported by: Shaun Ruffel Tested by: Michael L. Young Patches: 0001-res_rtp_asterisk-Eliminate-type-punned-pointer-build.patch uploaded by Shaun Ruffel (license 5417) slightly modified by David M. Lee. 2012-09-10 18:50 +0000 [r372768] Jonathan Rose * /, apps/app_meetme.c: app_meetme: Document that 'p' option will continue in dialplan. (closes issue AST-991) Reported by John Bigelow ........ Merged revisions 372765 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372767 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-10 18:37 +0000 [r372766] Kinsey Moore * /: Recorded merge of revisions 372764 from http://svn.asterisk.org/svn/asterisk/branches/10 ........ Warn on CLI when UDPTL init fails This adds a CLI warning when a SDP offer is rejected due to UDPTL initialization failure. Previously, there was no indication of the reason for offer rejection in this case. (closes issue ASTERISK-20357) Reported-by: Francesco Usseglio Gaudi ........ Merged revisions 372763 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2012-09-10 17:33 +0000 [r372754] Jonathan Rose * main/channel.c, /: Masquerade: Retain parkinglot settings made by CHANNEL function. Prior to this patch, the user would have a parkinglot set on a channel that was parked and when the channel was retrieved, any attempt by that channel to park would simply use the default. This patch makes parkinglot values set in this way be retained through the masquerade. (closes issue AST-990) Reported by: Nick Huskinson Patches: masquerade_parkinglot_patch.diff Uploaded by Jonathan Rose (license 6182) ........ Merged revisions 372736 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372737 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-09 01:25 +0000 [r372711] Matthew Jordan * channels/sip/sdp_crypto.c, /: Only re-create an SRTP session when needed In r356604, SRTP handling was fixed to accomodate multiple crypto keys in an SDP offer and the ability to re-create an SRTP session when the crypto keys changed. In certain circumstances - most notably when a phone is put on hold after having been bridged for a significant amount of time - the act of re-creating the SRTP session causes problems for certain models of phones. The patch committed in r356604 always re-created the SRTP session regardless of whether or not the cryptographic keys changed. Since this is technically not necessary, this patch modifies the behavior to only re-create the SRTP session if Asterisk detects that the remote key has changed. This allows models of phones that do not handle the SRTP session changing to continue to work, while also providing the behavior needed for those phones that do re-negotiate cryptographic keys. (issue ASTERISK-20194) Reported by: Nicolo Mazzon Tested by: Nicolo Mazzon Review: https://reviewboard.asterisk.org/r/2099 ........ Merged revisions 372709 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372710 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-08 05:51 +0000 [r372696] dlee : * /, main/Makefile: Recorded merge of revisions 372695 from http://svn.asterisk.org/svn/asterisk/branches/10 ........ Add OPENSSL_INCLUDE to the CFLAGS for ssl.c and tcptls.c. Without this flag, those files will compile with the system installed OpenSSL headers (if they exist). This is a real bummer if a different path was specified using --with-ssl= (closes issue ASTERISK-20392) ........ Merged revisions 372682 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2012-09-07 23:07 +0000 [r372622-372657] Richard Mudgett * /, main/astmm.c: Fix MALLOC_DEBUG version of ast_strndup(). (closes issue ASTERISK-20349) Reported by: Brent Eagles ........ Merged revisions 372655 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372656 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, funcs/func_math.c: Remove annoying unconditional debug message from INC/DEC functions. (closes issue AST-1001) Reported by: Guenther Kelleter ........ Merged revisions 372628 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372629 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_queue.c: Fix exception path typo in app_queue.c try_calling(). (closes issue ASTERISK-20380) Reported by: Jeremy Pepper Patches: fix-local-channel-locking.patch (license #6350) patch uploaded by Jeremy Pepper ........ Merged revisions 372624 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372625 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_voicemail.c, /: Fix VoicemailUserEntry event headers ServerEmail and MailCommand reported values. The AMI action VoicemailUsersList VoicemailUserEntry event headers ServerEmail and MailCommand did not report the global values if they were not overridden. The VoicemailUserEntry event header ServerEmail was not populated with the global value if the voicemail user did not override it. The VoicemailUserEntry event header MailCommand was never populated with a value. * Removed unused struct ast_vm_user member mailcmd[]. (closes issue AST-973) Reported by: John Bigelow Tested by: rmudgett ........ Merged revisions 372620 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372621 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-07 21:04 +0000 [r372609-372611] dlee : * res/pjproject/pjlib-util/lib, res/pjproject/pjmedia/bin, res/pjproject/third_party/bin, res/pjproject/third_party/gsm/lib, res/pjproject/lib, res/pjproject/pjlib/lib, res/pjproject/third_party/gsm/bin, res/pjproject/pjnath/lib, res/pjproject/pjsip/lib, res/pjproject/pjsip-apps/lib, res/pjproject/pjsip/bin, res/pjproject/pjsip-apps/bin, res/pjproject/pjmedia/lib, res/pjproject/third_party/lib, codecs/ilbc: svn:ignore cleanup. * pjproject bin and lib directories should pretty much ignore everything * Ignore *.o in codecs/ilbc * res/Makefile: Fix parallel make for res_asterisk_rtp. Fixes a build regression introduced in r369517 "Add support for ICE/STUN/TURN in res_rtp_asterisk and chan_sip." [1]. [1] http://svnview.digium.com/svn/asterisk?view=revision&revision=369517 When compiling asterisk in parallel like: $ make -j 10 It's possible to get errors like the following: .pjlib-util-test-x86_64-unknown-linux-gnu.depend:120: *** missing separator. Stop. make[4]: *** [depend] Error 2 make[3]: *** [dep] Error 1 make[2]: *** [/home/sruffell/asterisk-working/res/pjproject/pjnath/lib/libpjnath-x86_64-unknown-linux-gnu.a] Error 2 make[3]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. This is because the build system is trying to build each of the libraries in pjproject in parallel. Now the build will build pjproject in a single job and link the results into res_asterisk_rtp. Parallel builds, on one test system, saves ~1.5 minutes from a default Asterisk build: Single job: $ git clean -fdx >/dev/null && time ( ./configure >/dev/null 2>&1 && make >/dev/null 2>&1 ) real 2m34.529s user 1m41.810s sys 0m15.970s Parallel make: $ git clean -fdx >/dev/null && time ( ./configure >/dev/null 2>&1 && make -j10 >/dev/null 2>&1 ) real 1m2.353s user 2m39.120s sys 0m18.850s (closes issue ASTERISK-20362) Reported by: Shaun Ruffel Patches: 0001-res_asterisk_rtp-Fix-build-error-when-using-parallel.patch uploaded by Shaun Ruffel (License #5417) 2012-09-07 02:26 +0000 [r372531-372583] Matthew Jordan * /, apps/app_minivm.c: Free ast_str objects when temp file fails to be created in MiniVM The previous commit (r372554) was from a patch that was written before r366880, which ensured that ast_str objects allocated in the sendmail routine were free'd in off nominal paths. This commit frees the string objects in the off nominal path introduced in r372554. (issue ASTERISK-17133) Reported by: Tzafrir Cohen ........ Merged revisions 372581 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372582 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_minivm.c: Fix file descriptor leak and pointer scope issue in MiniVM when sending mail When MiniVM sends an e-mail and it has the volgain option set, it will spawn sox in a separate process to handle the manipulation of the sound file. In doing so, it creates a temporary file. There are two problems here: 1) The file descriptor returned from mkstemp is leaked 2) The finalfilename character pointer points to a buffer that loses scope once volgain processing is finished. Note that in r316265, Russell fixed some gcc warnings by using the return value of the mkstemp call. A warning was placed in minivm that the file descriptor was going to be leaked. This patch reverts that change, as it handles the leak and 'uses' the file descriptor returned from mkstemp. (closes issue ASTERISK-17133) Reported by: Tzafrir Cohen patches: minivm_18501_demo.diff uploaded by Tzafrir Cohen (license #5035) ........ Merged revisions 372554 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372555 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_queue.c: Update QueueMemberStatus event documentation to include member status values The Status: header in a QueueMemberStatus event (and other QueueMember* events) is the numeric value of the device state corresponding to that Queue Member. As those values are not exactly obvious, listing them in the documentation is useful. Matt Riddell reported this indirectly through the wiki page. (closes issue ASTERISK-20243) Reported by: Matt Riddell 2012-09-06 22:12 +0000 [r372523] Richard Mudgett * /, channels/sig_pri.c: Fix loss of MOH on an ISDN channel when parking a call for the second time. Using the AMI redirect action to take an ISDN call out of a parking lot causes the MOH state to get confused. The redirect action does not take the call off of hold. When the call is subsequently parked again, the call no longer hears MOH. * Make chan_dahdi/sig_pri restart MOH on repeated AST_CONTROL_HOLD frames if it is already in a state where it is supposed to be sending MOH. The MOH may have been stopped by other means. (Such as killing the generator.) This simple fix is done rather than making the AMI redirect action post an AST_CONTROL_UNHOLD unconditionally when it redirects a channel and thus potentially breaking something with an unexpected AST_CONTROL_UNHOLD. (closes issue ABE-2873) Patches: jira_abe_2873_c.3_bier.patch (license #5621) patch uploaded by rmudgett ........ Merged revisions 372521 from https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier ........ Merged revisions 372522 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-06 21:42 +0000 [r372519] Kinsey Moore * /, apps/app_queue.c: Ensure listed queues are not offered for completion When using tab-completion for the list of queues on "queue reset stats" or "queue reload {all|members|parameters|rules}", the tab-completion listing for further queues erroneously listed queues that had already been added to the list. The tab-completion listing now only displays queues that are not already in the list. (closes issue AST-963) Reported-by: John Bigelow ........ Merged revisions 372517 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372518 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-06 18:55 +0000 [r372500] dsessions : * channels/chan_sip.c, configs/res_ldap.conf.sample: LDAP Realtime Peers Cannot Register Prior to 1.8, it was not necessary for an explicit "type" to be set for an asterisk LDAP realtime peer. Now the routine find_peer actually checks the type field during registration and fails to find the peer if it is not set. The attached patches make the realtime type equal whatever type is being searched for if the type is 0 upon return from routine build_peer. (closes issue ASTERISK-17222) Reported by: John Covert Patch by: David Vossel Tested by: Darren Sessions Review: https://reviewboard.asterisk.org/r/2095/ 2012-09-06 15:56 +0000 [r372473] Jonathan Rose * /, UPGRADE-1.8.txt: chan_sip: Note change in behavior to how directmediapermit/deny ACL works r366547 introduced a change to the directmedia ACL for chan_sip which modified the behavior significantly. Prior to the patch, this option would bridge peers with directmedia if a peer's IP address matched its own directmedia ACL. After that patch, the peer would check the bridged peer's ACL instead. This change has been present since 1.8.14.0. That patched failed to document the change in Upgrade.txt, so this patch adds mention of that change to UPGRADE.txt (UPGRADE-1.8.txt in newer branches) (issue AST-876) ........ Merged revisions 372471 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372472 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-06 14:30 +0000 [r372446] Kinsey Moore * /, apps/app_queue.c: Ensure "rules" is tab-completable for "queue show" Previously, tabbing at the end of "queue show" produced a list of available queues about which information could be shown, but did not include an alternative command, "rules", to access information about queue rules. The "rules" item should now be shown in the list of tab-completable items. (closes issue AST-958) Reported-by: John Bigelow ........ Merged revisions 372444 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372445 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-06 02:50 +0000 [r372392-372419] Matthew Jordan * /, pbx/pbx_dundi.c: Fix DUNDi message routing bug when neighboring peer is unreachable Consider a scenario where DUNDi peer PBX1 has two peers that are its neighbors, PBX2 and PBX3, and where PBX2 and PBX3 are also neighbors. If the connection is temporarily broken between PBX1 and PBX3, PBX1 should not include PBX3 in the list of peers it sends to PBX2 in a DPDISCOVER message, as it cannot send messages to PBX3. If it does, PBX2 will assume that PBX3 already received the message and fail to forward the message on to PBX3 itself. This patch fixes this by only including peers in a DPDISCOVER message that are reachable by the sending node. This includes all peers with an empty address (00:00:00:00:00:00) and that are have been reached by a qualify message. This patch also prevents attempting to qualify a dynamic peer with an empty address until that peer registers. (closes issue ASTERISK-19309) Reported by: Peter Racz patches: dundi_routing.patch uploaded by Peter Racz (license 6290) The patch uploaded by Peter was modified slightly for this commit. ........ Merged revisions 372417 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372418 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_followme.c: Allow configured numbers for FollowMe to be greater than 90 characters When parsing a 'number' defined in followme.conf, FollowMe previously parsed the number in the configuration file into a buffer with a length of 90 characters. This can artificially limit some parallel dial scenarios. This patch allows for numbers of any length to be defined in the configuration file. Note that Clod Patry originally wrote a patch to fix this problem and received a Ship It! on the JIRA issue. The patch originally expanded the buffer to 256 characters. Instead, the patch being committed duplicates the string in the config file on the stack before parsing it for consumption by the application. (closes issue ASTERISK-16879) Reported by: Clod Patry Tested by: mjordan patches: followme_no_limit.diff uploaded by Clod Patry (license #5138) Slightly modified for this commit. ........ Merged revisions 372390 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372391 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-05 19:43 +0000 [r372373] Richard Mudgett * main/dsp.c, /: Fix compile error. ........ Merged revisions 372372 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-05 19:24 +0000 [r372365] Kinsey Moore * main/manager.c, /: Correct documentation for ModuleLoad AMI action The documentation incorrectly listed 'rtp' as a reloadable subsystem and left out many other reloadable subsystems. It is now also documented that subsystems may only be reloaded, not loaded or unloaded. (closes issue AST-977) Reported-by: John Bigelow ........ Merged revisions 372354 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372358 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-05 18:46 +0000 [r372342] Alec L Davis * main/dsp.c, /: dsp.c: in ast_mf_detect_init incorrectly sets goertzel samples to 160, should be MF_GSIZE Related https://reviewboard.asterisk.org/r/2097/ ........ Merged revisions 372339 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372341 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-05 18:36 +0000 [r372340] Kinsey Moore * main/pbx.c, /: Ensure counts generated in manager_show_dialplan_helper are correct When manager_show_dialplan_helper was written, the counter increment for the total number of contexts was placed with the extensions increment instead of in the enclosing loop. This function should now generate correct context counts. (closes issue AST-970) Reported-by: John Bigelow ........ Merged revisions 372337 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372338 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-05 17:35 +0000 [r372327-372328] Richard Mudgett * res/res_rtp_asterisk.c: Fix coding guidelines issue with a recent commit. * res/res_rtp_asterisk.c: Fix RTP/RTCP read error message confusion. The RTP/RTCP read error message can report "fail: success" when the read failure is because of an ICE failure. * Changed __rtp_recvfrom() to generate a PJ ICE message when ICE fails. * Changed RTP/RTCP read error message to indicate an unspecified error when errno is zero. (closes issue ASTERISK-20288) Reported by: Joern Krebs Patches: jira_asterisk_20288_err_msg.patch (license #5621) patch uploaded by rmudgett (modified) 2012-09-05 16:04 +0000 [r372311] Mark Michelson * res/res_rtp_asterisk.c, main/rtp_engine.c, include/asterisk/rtp_engine.h: Re-fix sending unnegotiated payloads during a P2P RTP bridge. The previous fix still would look in the static_RTP_PT table, which is inappropriate since we specifically want to find a codec that has been negotiated. (closes issue ASTERISK-20296) reported by NITESH BANSAL Patches: codec_negotiation.patch Uploaded by NITESH BANSAL (License #6418) 2012-09-05 13:47 +0000 [r372289] Matthew Jordan * apps/app_voicemail.c, /: Fix memory leaks in app_voicemail when using IMAP storage or realtime config This patch fixes two memory leaks: 1. When find_user is called with NULL as its first parameter, the voicemail user returned is allocated on the heap. The inboxcount2 function uses find_user in such a fashion when counting new messages, and fails to free the resulting voicemail user object. 2. When populate_defaults is called on a voicemail user, it wipes whatever flags have been set on the object by copying over the global flags object. If the VM_ALLOCED flag was ste on the voicemail user prior to doing so, that flag is removed. This leaks the voicemail user when free_user is later called. (closes issue ASTERISK-19155) Reported by: Filip Jenicek patches: asterisk.patch2 uploaded by Filip Jenicek (license 6277) Patch slightly modified for this commit. Review: https://reviewboard.asterisk.org/r/2096 ........ Merged revisions 372268 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372288 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-05 12:17 +0000 [r372266] Michael L. Young * res/res_rtp_asterisk.c: Fix breakage caused by last merge. Missing a variable for 11 and trunk. 2012-09-05 07:41 +0000 [r372214-372241] Alec L Davis * main/dsp.c, /: dsp.c: Fix multiple issues when no-interdigit delay is present, and fast DTMF 50ms/50ms Revert DTMF hit/miss detector to original -r349249 method with some changes, remove unnecessary; 1. reseting of hits=0, when no signal, only need to set it once. 2. incrementing of hits, when the hit is the same as the current hit. 3. setting of lasthit, when it's the same as before. Change HITS_TO_BEGIN to 2, MISSES_TO_END to 3 & 3 spelling mistakes (closes issue ASTERISK-19610) alecdavis (license 585) Reported by: Jean-Philippe Lord Tested by: alecdavis Review: https://reviewboard.asterisk.org/r/2085/ ........ Merged revisions 372239 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372240 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/dsp.c, /: dsp.c: optimize goerztzel sample loops, in dtmf_detect, mf_detect and tone_detect use a temporary short int when repeatedly used to call goertzel_sample. alecdavis (license 585) Reported by: alecdavis Tested by: alecdavis Review: https://reviewboard.asterisk.org/r/2093/ ........ Merged revisions 372212 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372213 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-05 04:52 +0000 [r372199] Michael L. Young * res/res_rtp_asterisk.c, /: Fix Incrementing Sequence Number For Retransmitted DTMF End Packets In Asterisk 1.4+, a fix was put in place to increment the sequence number for retransmitted DTMF end packets. With the introduction of the RTP engine API in 1.8, the sequence number was no longer being incremented. This patch fixes this regression as well as cleans up a few lines that were not doing anything. (closes issue ASTERISK-20295) Reported by: Nitesh Bansal Tested by: Michael L. Young Patches: 01_rtp_event_seq_num.patch uploaded by Nitesh Bansal (license 6418) asterisk-20295-dtmf-fix-cleanup.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2083/ ........ Merged revisions 372185 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372198 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-05 02:25 +0000 [r372175] Matthew Jordan * cel/cel_pgsql.c, /: Fix memory leak when CEL is successfully written to PostgreSQL database PQClear is not called when the result object of a call to PQExec has a status of PGRES_COMMAND_OK. Interestingly enough, the off nominal case was handled properly, so this memory leak only occurred when CEL records were successfully written. This patch properly clears the result in the nominal code path. (closes issue ASTERISK-19991) Reported by: Etienne Lessard Tested by: Etienne Lessard patches: mem_leak_cel_pgsql.patch uploaded by Etienne Lessard (license #6394) ........ Merged revisions 372158 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372165 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-09-04 15:48 +0000 [r372135-372137] Mark Michelson * channels/chan_sip.c: Fix issue where SIP devices were not notified when custom devices changed to "ringing". The problem had to do with logic used when checking for what the oldest ringing channel was. The problem was that if no channel was found, then no notification would be sent. For custom device states, there is no associated channel, so no notification would get sent. This fixes the issue by still sending the notification even if no associated channel can be found for a ringing device state change. (closes issue ASTERISK-20297) Reported by Noah Engelberth * main/config_options.c, apps/app_confbridge.c: Prevent crash from using app_page with no confbridge.conf file provided. Also prevents other potential crashes when using aco API with uninitialized aco_info structs. (closes issue ASTERISK-20305) reported by Noah Engelberth Tested by Noah Engelberth Review: https://reviewboard.asterisk.org/r/2086 2012-08-31 21:14 +0000 [r372118] Mark Michelson * res/res_rtp_asterisk.c: Prevent local RTP bridges from sending inappropriate formats to participants. A change for Asterisk 11 caused a check for failure to incorrectly check the return value. This resulted in the possibility of transmitting media that a party had not negotiated. If this media happened to be G.729, then this could potentially result in one-way audio if no G.729 translators are installed. (closes issue ASTERISK-20296) reported by NITESH BANSAL 2012-08-30 20:54 +0000 [r372050-372091] Mark Michelson * /, apps/app_queue.c: Prevent crash on shutdown due to refcount error on queues container. When app_queue is unloaded, the queues container has its refcount decremented, potentially to 0. Then the taskprocessor responsible for handling device state changes is unreferenced. If the taskprocessor happens to be just about to run its task, then it will create and destroy an iterator on the queues container. This can cause the refcount on the queues container to increase to 1 and then back to 0. Going back to 0 a second time results in double frees. This failure was seen periodically in the testsuite when Asterisk would shut down. ........ Merged revisions 372089 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372090 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_queue.c: Help prevent ringing queue members from being rung when ringinuse set to no. Queue member status would not always get updated properly when the member was called, thus resulting in the member getting multiple calls. With this change, we update the member's status at the time of calling, and we also check to make sure the member is still available to take the call before placing an outbound call. (closes issue ASTERISK-16115) reported by nik600 Patches: app_queue.c-svn-r370418.patch uploaded by Italo Rossi (license #6409) ........ Merged revisions 372048 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 372049 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-30 16:24 +0000 [r371963-372028] Matthew Jordan * channels/chan_iax2.c: AST-2012-013: Resolve ACL rules being ignored during calls by some IAX2 peers When an IAX2 call is made using the credentials of a peer defined in a dynamic Asterisk Realtime Architecture (ARA) backend, the ACL rules for that peer are not applied to the call attempt. This allows for a remote attacker who is aware of a peer's credentials to bypass the ACL rules set for that peer. This patch ensures that the ACLs are applied for all peers, regardless of their storage mechanism. (closes issue ASTERISK-20186) Reported by: Alan Frisch Tested by: mjordan, Alan Frisch * /: Block r372020 * main/manager.c, /, README-SERIOUSLY.bestpractices.txt: AST-2012-012: Resolve AMI User Unauthorized Shell Access through ExternalIVR The AMI Originate action can allow a remote user to specify information that can be used to execute shell commands on the system hosting Asterisk. This can result in an unwanted escalation of permissions, as the Originate action, which requires the "originate" class authorization, can be used to perform actions that would typically require the "system" class authorization. Previous attempts to prevent this permission escalation (AST-2011-006, AST-2012-004) have sought to do so by inspecting the names of applications and functions passed in with the Originate action and, if those applications/functions matched a predefined set of values, rejecting the command if the user lacked the "system" class authorization. As noted by IBM X-Force Research, the "ExternalIVR" application is not listed in the predefined set of values. The solution for this particular vulnerability is to include the "ExternalIVR" application in the set of defined applications/functions that require "system" class authorization. Unfortunately, the approach of inspecting fields in the Originate action against known applications/functions has a significant flaw. The predefined set of values can be bypassed by creative use of the Originate action or by certain dialplan configurations, which is beyond the ability of Asterisk to analyze at run-time. Attempting to work around these scenarios would result in severely restricting the applications or functions and prevent their usage for legitimate means. As such, any additional security vulnerabilities, where an application/function that would normally require the "system" class authorization can be executed by users with the "originate" class authorization, will not be addressed. Instead, the README-SERIOUSLY.bestpractices.txt file has been updated to reflect that the AMI Originate action can result in commands requiring the "system" class authorization to be executed. Proper system configuration can limit the impact of such scenarios. (closes issue ASTERISK-20132) Reported by: Zubair Ashraf of IBM X-Force Research ........ Merged revisions 371998 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371999 from http://svn.asterisk.org/svn/asterisk/branches/10 * doc/CODING-GUIDELINES (added), /: Restore CODING-GUIDELINES to doc folder In r294740, the CODING-GUIDELINES was removed from the doc folder in favor of the content on the Asterisk wiki. Some folks still look in the doc folder initially for coding guideline suggestions; as such, this patch adds a CODING-GUIDELINES file back into the doc folder. The content of the file merely points to the correct page on the Asterisk wiki where the coding guidelines currently live. (closes issue ASTERISK-20279) Reported by: Andrew Latham Patches: CODING-GUIDELINES.diff uploaded by Andrew Latham (license 5985) ........ Merged revisions 371961 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371962 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-29 22:38 +0000 [r371950] Richard Mudgett * apps/app_meetme.c: Fix compile errors. 2012-08-29 21:07 +0000 [r371921] Jonathan Rose * /, apps/app_meetme.c: app_meetme: Adding test events for following activity in MeetMe. ........ Merged revisions 371919 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371920 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-29 19:56 +0000 [r371862-371893] Richard Mudgett * main/channel.c: Fix theoretical compile error with HAVE_EPOLL. Really shows how much epoll is used since it had not been reported yet. * main/channel.c, /: Initialize file descriptors for dummy channels to -1. Dummy channels usually aren't read from, but functions like SHELL and CURL use autoservice on the channel. (closes issue ASTERISK-20283) Reported by: Gareth Palmer Patches: svn-371580.patch (license #5169) patch uploaded by Gareth Palmer (modified) ........ Merged revisions 371888 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371890 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_dial.c, /: Fix hangup cause passthrough regression. The v1.8 -r369258 change to fix the F and F(x) action logic introduced a regression in passing the hangup cause from the called channel to the caller channel. (closes issue ASTERISK-20287) Reported by: Konstantin Suvorov Patches: app_dial_hangupcause.patch (license #6421) patch uploaded by Konstantin Suvorov (modified) Tested by: rmudgett ........ Merged revisions 371860 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371861 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-29 17:25 +0000 [r371845] Jonathan Rose * /, channels/chan_sip.c: chan_sip: Send 408 on retransmit timeout instead of 603 (closes issue ASTERISK-20124) Reported by: Walter Doekes ........ Merged revisions 371824 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371825 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-27 21:50 +0000 [r371784-371790] Mark Michelson * configs/agents.conf.sample, /: Fix misleading documentation in agents.conf.sample regarding ackcall usage. The documentation made it sound as if the DTMF acknowledgment was needed at the time the agent logs in, rather than when the agent is called. This is likely a relic from the days when there were multiple ways of logging in agents. (closes issue AST-962) reported by Steve Pitts ........ Merged revisions 371787 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371789 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/manager.c, /: Fix incorrect documentation of the MailboxStatus manager command. The "Waiting" field was misdocumented as reporting the number of messages waiting. In reality, it simply indicated the presence or absence of waiting messages. ........ Merged revisions 371782 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371783 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-27 18:14 +0000 [r371753] dlee : * res/pjproject/pjlib-util/bin, res/pjproject/pjnath/build/output, res/pjproject/pjlib/bin, res/pjproject/pjlib-util/build/output, res/pjproject/pjnath/bin, res/pjproject/pjlib/build/output: svn:ignore pjproject bin & output for all platforms. 2012-08-27 17:51 +0000 [r371749-371750] Mark Michelson * /, configs/queues.conf.sample: Fix incorrectly documented option in queues.conf sharedlastcall defaults to "no" not "yes" (closes issue AST-979) reported by Steve Pitts ........ Merged revisions 371747 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371748 from http://svn.asterisk.org/svn/asterisk/branches/10 * /: Re-add merge and block properties. 2012-08-27 16:55 +0000 [r371720] dlee : * main/lock.c, /: Fixes ast_rwlock_timed[rd|wr]lock for BSD and variants. The original implementations simply wrap pthread functions, which take absolute time as an argument. The spinlock version for systems without those functions treated the argument as a delta. This patch fixes the spinlock version to be consistent with the pthread version. (closes issue ASTERISK-20240) Reported by: Egor Gorlin Patches: lock.c.patch uploaded by Egor Gorlin (license 6416) ........ Merged revisions 371718 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2012-08-27 14:07 +0000 [r371692] Kinsey Moore * /, main/utils.c: Implement workaround for BETTER_BACKTRACES crash When compiling with BETTER_BACKTRACES enabled, Asterisk will sometimes crash when "core show locks" is run. This happens regularly in the testsuite since several tests run "core show locks" to help with debugging. This seems to be a fault with libraries on certain operating systems (notably CentOS 6.2/6.3) running on virtual machines and utilizing gcc 4.4.6. (closes issue ASTERISK-20090) ........ Merged revisions 371690 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371691 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-26 23:07 +0000 [r371664] Alec L Davis * main/dsp.c, /: mf_detect: incorrectly used DTMF_GSIZE instead of MF_GSIZE ........ Merged revisions 371662 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371663 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-22 15:54 +0000 [r371619] Joshua Colp * channels/chan_motif.c: Add support for call-id logging to chan_motif. Review: https://reviewboard.asterisk.org/r/2077/ 2012-08-21 20:54 +0000 [r371592] Mark Michelson * cdr/cdr_tds.c, main/xmldoc.c, apps/app_dial.c, channels/chan_dahdi.c, /, channels/chan_sip.c, funcs/func_odbc.c, main/file.c, main/utils.c, apps/app_queue.c, pbx/pbx_config.c, res/res_jabber.c, apps/app_stack.c, channels/chan_oss.c, res/res_config_sqlite.c: Fix misuses of asprintf throughout the code. This fixes three main issues * Change asprintf() uses to ast_asprintf() so that it pairs properly with ast_free() and no longer causes MALLOC_DEBUG to freak out. * When ast_asprintf() fails, set the pointer NULL if it will be referenced later. * Fix some memory leaks that were spotted while taking care of the first two points. (Closes issue ASTERISK-20135) reported by Richard Mudgett Review: https://reviewboard.asterisk.org/r/2071 ........ Merged revisions 371590 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371591 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-20 20:09 +0000 [r371571] Mark Michelson * res/res_rtp_asterisk.c: Use thread-local storage to store pj_thread_descs. pj_thread_register() takes a parameter of type pj_thread_desc. It was assumed that pj_thread_register either used this item temporarily or made a copy of it. Unfortunately, all it does is keep a pointer to the structure in thread-local storage. This means that if our pj_thread_desc goes out of scope, then pjlib will be referencing bogus data quite often, most commonly on operations involving a pj_mutex_t. In our case, our pj_thread_desc was on the stack and went out of scope very shortly after registering our thread with pjlib. With this change, the pj_thread_desc is stored in thread-local storage so the pointer that pjlib keeps in thread-local storage will reference legitimate memory. (closes issue ASTERISK-20237) reported by Jeremy Pepper Patches: ASTERISK-20237.patch uploaded by Mark Michelson (license #5049) Tested by Jeremy Pepper 2012-08-20 15:34 +0000 [r371546] Kinsey Moore * main/udptl.c, /: Ignore recovered zero-length secondary UDPTL packets In some cases, recovering lost packets using the secondary packet recovery mechanism with UDPTL/T.38 can result in the recovery of zero-length packets. These must be ignored or the frame generated from them can cause segfaults and allocation failures. (closes issue ASTERISK-19762) (closes issue ASTERISK-19373) Reported-by: Benjamin (bulkorok) Reported-by: Rob Gagnon (rgagnon) ........ Merged revisions 371544 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371545 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-18 02:35 +0000 [r371492-371530] Matthew Jordan * /: Recorded merge of revisions 371529 from http://svn.asterisk.org/svn/asterisk/branches/10 ........ Remove old debug code from http configuration loading (closes issue ASTERISK-20254) Reported by: Andrew Latham Patches: http.diff uploaded by Andrew Latham (license #5985) * main/http.c: Remove old debug code from http configuration loading (closes issue ASTERISK-20254) Reported by: Andrew Latham Patches: http.diff uploaded by Andrew Latham (license #5985) * res/res_xmpp.c: Fix typo in JabberSend that looked for '2' instead of '@' in recipient argument The summary says about all there is to say. (closes issue ASTERISK-20239) Reported by: Gregory Porras * funcs/func_hangupcause.c: Make the name of the "HangupCauseClear" application consistent The name of the "HangupCauseClear" application is "HangupCauseClear", not "HangupcauseClear". The incorrect case of 'cause' caused the XML documentation to not register properly. As an aside, this commit message felt very awkward, but I'm not sure how else to note that "X", which has to be "X", was referred to as "x". (closes issue ASTERISK-20253) Reported by: Andrew Latham Patches: hangupcause.diff uploaded by Andrew Latham (license #5985) * build_tools/cflags.xml, utils/utils.xml, res/res_fax.c, sounds/sounds.xml, res/res_curl.c: Update module support level on a variety of modules and compiler options Some core support modules and compiler options were no longer tagged with a module support level. This patch adds 'core' back to those options. Note that this patch modifies a few of the patches provided by Andrew Latham slightly. res_curl and res_fax are both 'core' supported modules. (closes issue ASTERISK-20215) Reported by: Andrew Latham Tested by: mjordan Patches: astcanary.diff (license #5985) uploaded by Andrew Latham cflagsxml.diff (license #5985) uploaded by Andrew Latham curl_fax.diff (license #5985) uploaded by Andrew Latham soundsxml.diff (license #5985) uploaded by Andrew Latham * main/xmldoc.c, /: Fix memory leak in XML documentation When formatting documentation fields, the XML documentation parser calls xmldoc_get_formatted. This function allocates a string buffer at the beginning of its routine. Unfortunately, on certain code paths, it also calls xmldoc_string_cleanup, which assumes that it will create the string buffer. The previously allocated string buffer is then leaked by the xmldoc_string_cleanup routine. Now: we don't do that. (closes issue AST-932) Reported by: Alexander Homig ........ Merged revisions 371469 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371491 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-17 19:49 +0000 [r371482] Joshua Colp * channels/chan_sip.c: When a peer registers using WebSocket do not resolve the Contact provided. (closes issue ASTERISK-20238) Reported by: james.mortensen 2012-08-17 15:58 +0000 [r371438] Kinsey Moore * main/loader.c, /: Add instrumentation to subsystem reloads When Asterisk is built with TEST_FRAMEWORK defined, Asterisk will now generate TestEvent AMI events on subsystem reloads such as cdr, dnsmgr, extconfig, etc. (issue PQ-1126) ........ Merged revisions 371436 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371437 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-17 12:24 +0000 [r371426] Joshua Colp * res/res_format_attr_h264.c: Add some additional H.264 attributes, "max-smbps" and "max-fps", for passthrough. (closes issue ASTERISK-20206) Reported by: ddkprog Patches: res_format_attr_h264.c.diff uploaded by ddkprog (license 6008) 2012-08-17 12:23 +0000 [r371425] Russell Bryant * res/res_rtp_asterisk.c: rtp: Ensure defaults are set without rtp.conf. While building up a new install to test chan_motif, I ran into a failure due to icesupport being disabled. This was due to me not having an rtp.conf. It was intended in the code for it to be enabled by default, but it was only applied if rtp.conf existed. This patch updates res_rtp_asterisk to be consistent in how it handles defaults. A few options didn't have their default values set globally, including icesupport. They are now set and icesupport is enabled by default, even if you do not have an rtp.conf. 2012-08-16 23:02 +0000 [r371399] Terry Wilson * main/config.c, /: Handle integer over/under-flow in ast_parse_args The strtol family of functions will return *_MIN/*_MAX on overflow. To detect when an overflow has happened, errno must be set to 0 before calling the function, then checked afterward. (closes issue ASTERISK-20120) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/2073/ ........ Merged revisions 371392 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371398 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-16 22:44 +0000 [r371395] Kinsey Moore * main/loader.c, /: Add module reload instrumentation for TEST_FRAMEWORK This adds AMI events for module reloads when Asterisk is built with TEST_FRAMEWORK enabled and corrects generation of the module load AMI event. (issue PQ-1126) ........ Merged revisions 371393 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371394 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-16 19:43 +0000 [r371355-371382] Jonathan Rose * /, channels/chan_sip.c: chan_sip: Use pvt outgoing_call variable to set Remote-Party-ID Header Previously the pvt SIP_OUTGOING flag was used instead, which will frequently flip during reinvites. (closes issue AST-897) Reported by: Thomas Arimont ........ Merged revisions 371357 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371358 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: chan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK Under certain conditions, a SIP transaction involving directmedia wouldn't trigger a re-invite because the SDP answer was included in an ACK instead of in a message that we would have triggered the invite with. This patch just queues a source change control frame if the dialog is using directmedia when we find sdp for an ACK. (closes issue AST-913) Reported by: Thomas Arimont ........ Merged revisions 371337 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371338 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-15 23:28 +0000 [r371324] Mark Michelson * /, apps/app_queue.c: Fix bug where final queue member would not be removed from memory. If a static queue had realtime members, then there could be a potential for those realtime members not to be properly deleted from memory. If the queue's members were loaded from realtime and then all the members were deleted from the backend, then the queue would still think these members existed. The reason was that there was a short- circuit in code such that if there were no members found in the backend, then the queue would not be updated to reflect this. Note that this only affected static queues with realtime members. Realtime queues with realtime members were unaffected by this issue. (closes issue ASTERISK-19793) reported by Marcus Haas ........ Merged revisions 371306 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371313 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-15 20:40 +0000 [r371295] Michael L. Young * channels/chan_sip.c: Fix Segfault When Registering SIP Over WebSockets The helper function, get_address_family_filter, in chan_sip for dns resolution by address family was not recognizing the websockets transport and resulting in a null pointer being sent to functions in netsock2, in an attempt to determine if we are bound to ANY address ([::]) or not. This patch fixes this issue by handling the transport types SIP_TRANSPORT_WS and SIP_TRANSPORT_WSS which results in a sock address being set properly for use in determining the address family. (closes issue ASTERISK-20221) Reported by: Sven Beisiegel Tested by: Sven Beisiegel, James Mortensen Patches: asterisk-20221-ws-family-filter.diff uploaded by Michael L. Young (license 5026) 2012-08-15 20:17 +0000 [r371258-371272] Kinsey Moore * /, channels/chan_sip.c: Avoid unconditional NULLing of mwipvt on relatedpeer on SIP dialog destruction The other instance of this bug was fixed by jcolp/file in r121496. If we are destroying a dialog only set the MWI dialog pointer on the related peer to NULL if it is the dialog currently being destroyed. (closes issue ASTERISK-20119) Patch-by: Misha Vodsedalek ........ Merged revisions 371270 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371271 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/sig_ss7.c, channels/chan_dahdi.c, channels/sig_analog.c, channels/chan_sip.c, channels/chan_iax2.c, channels/sig_pri.c: Add HANGUPCAUSE information to callee channels This adds HANGUPCAUSE information to called channels so that hangup handlers can, in conjunction with predial dialplan execution, access the hangupcause information when the dialed channel hangs up on a one-to-one basis instead of a many-to-one basis as with HANGUPCAUSE usage on the caller channel. Review: https://reviewboard.asterisk.org/r/2069/ (closes issue ASTERISK-20198) 2012-08-13 20:28 +0000 [r371227] Kinsey Moore * main/loader.c, /, apps/app_meetme.c: Add test instrumentation This adds test instrumentation for loading and unloading of modules and for certain actions in MeetMe to be used in the testsuite or any other consumer of AMI events. These will only be generated when Asterisk is built with TEST_FRAMEWORK enabled. (issue PQ-1131) (issue PQ-1133) ........ Merged revisions 371201 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371203 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-13 19:52 +0000 [r371200] Mark Michelson * /, channels/chan_sip.c: Fix problem where incorrect pointer was checked for nullity. ........ Merged revisions 371198 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371199 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-10 22:03 +0000 [r371146] Richard Mudgett * CHANGES: Update CHANGES for private party ID. 2012-08-10 21:32 +0000 [r371143] Mark Michelson * /, apps/app_queue.c: Fix a couple of documentation problems in app_queue.c * The RemoveQueueMember app made mention of options that could be passed in, but no options are supported. I have removed the listing of options from the documentation. * The RQMSTATUS variable did not list "NOTDYNAMIC" as a possible value that could be set. (closes issue AST-949) reported by Steve Pitts (closes issue AST-954) reported by Steve Pitts ........ Merged revisions 371141 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371142 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-10 20:08 +0000 [r371121] Matthew Jordan * / (added): _ _ _ _ _ _ / \ ___| |_ ___ _ __(_)___| | __ / | / | / _ \ / __| __/ _ \ '__| / __| |/ / | | | | / ___ \__ \| | __/ | | \__ \ < | | | | /_/ \_\___/\__\___|_| |_|___/_|\_\ |_| |_| Because it's one greater than 10. 2012-08-10 19:54 +0000 [r371120] Richard Mudgett * main/channel.c, channels/chan_misdn.c, channels/chan_sip.c, main/channel_internal_api.c, main/features.c, include/asterisk/channel.h, channels/sig_pri.c, funcs/func_callerid.c, main/cli.c: Add private representation of caller, connected and redirecting party ids. This patch adds the feature "Private representation of caller, connected and redirecting party ids", as previously discussed with us (DATUS) and Digium. 1. Feature motivation Until now it is quite difficult to modify a party number or name which can only be seen by exactly one particular instantiated technology channel subscriber. One example where a modified party number or name on one channel is spread over several channels are supplementary services like call transfer or pickup. To implement these features Asterisk internally copies caller and connected ids from one channel to another. Another example are extension subscriptions. The monitoring entities (watchers) are notified of state changes and - if desired - of party numbers or names which represent the involving call parties. One major feature where a private representation of party names is essentially needed, i.e. where a party name shall be exclusively signaled to only one particular user, is a private user-specific name resolution for party numbers. A lookup in a private destination-dependent telephone book shall provide party names which cannot be seen by any other user at any time. 2. Feature Description This feature comes along with the implementation of additional private party id elements for caller id, connected id and redirecting ids inside Asterisk channels. The private party id elements can be read or set by the user using Asterisk dialplan functions. When a technology channel is initiating a call, receives an internal connected-line update event, or receives an internal redirecting update event, it merges the corresponding public id with the private id to create an effective party id. The effective party id is then used for protocol signaling. The channel technologies which initially support the private id representation with this patch are SIP (chan_sip), mISDN (chan_misdn) and PRI (chan_dahdi). Once a private name or number on a channel is set and (implicitly) made valid, it is generally used for any further protocol signaling until it is rewritten or invalidated. To simplify the invalidation of private ids all internally generated connected/redirecting update events and also all connected/redirecting update events which are generated by technology channels -- receiving regarding protocol information - automatically trigger the invalidation of private ids. If not using the private party id representation feature at all, i.e. if using only the 'regular' caller-id, connected and redirecting related functions, the current characteristic of Asterisk is not affected by the new extended functionality. 3. User interface Description To grant access to the private name and number representation from the Asterisk dialplan, the CALLERID, CONNECTEDLINE and REDIRECTING dialplan functions are extended by the following data types. The formats of these data types are equal to the corresponding regular 'non-private' already existing data types: CALLERID: priv-all priv-name priv-name-valid priv-name-charset priv-name-pres priv-num priv-num-valid priv-num-plan priv-num-pres priv-subaddr priv-subaddr-valid priv-subaddr-type priv-subaddr-odd priv-tag CONNECTEDLINE: priv-name priv-name-valid priv-name-pres priv-name-charset priv-num priv-num-valid priv-num-pres priv-num-plan priv-subaddr priv-subaddr-valid priv-subaddr-type priv-subaddr-odd priv-tag REDIRECTING: priv-orig-name priv-orig-name-valid priv-orig-name-pres priv-orig-name-charset priv-orig-num priv-orig-num-valid priv-orig-num-pres priv-orig-num-plan priv-orig-subaddr priv-orig-subaddr-valid priv-orig-subaddr-type priv-orig-subaddr-odd priv-orig-tag priv-from-name priv-from-name-valid priv-from-name-pres priv-from-name-charset priv-from-num priv-from-num-valid priv-from-num-pres priv-from-num-plan priv-from-subaddr priv-from-subaddr-valid priv-from-subaddr-type priv-from-subaddr-odd priv-from-tag priv-to-name priv-to-name-valid priv-to-name-pres priv-to-name-charset priv-to-num priv-to-num-valid priv-to-num-pres priv-to-num-plan priv-to-subaddr priv-to-subaddr-valid priv-to-subaddr-type priv-to-subaddr-odd priv-to-tag Reported by: Thomas Arimont Review: https://reviewboard.asterisk.org/r/2030/ 2012-08-10 17:56 +0000 [r371113] Mark Michelson * channels/chan_sip.c: Fix a comparison that was causing presence tests to fail. A recent change made it so that device state changes that were not actual "changes" would not get reported to subscribers. The problem was that this inadvertently blocked presence updates as well. 2012-08-10 16:49 +0000 [r371059-371091] Alexandr Anikin * addons/chan_ooh323.c, /: remove ALREADYGONE flag on ooh323 call data by ooh323_indicate (CONGESTION/BUSY) due to call hasn't gone there really. This indication arrive from asterisk core not h.323 stack (closes issue ASTERISK-19308) Reported by: Dmitry Melekhov Patches: ASTERISK-19308.patch ........ Merged revisions 371089 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371090 from http://svn.asterisk.org/svn/asterisk/branches/10 * addons/ooh323c/src/ooGkClient.c, /: Send re-register packets by GRQ (gatekeeper request) interval (close issue ASTERISK-20094) Patches: ASTERISK-20094-2.patch ........ Merged revisions 371060 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371061 from http://svn.asterisk.org/svn/asterisk/branches/10 * addons/ooh323c/src/ooTimer.c: restore calling cb functions by timer expire this was broken in rev 369602 2012-08-10 02:07 +0000 [r371052] Richard Mudgett * main/features.c: Fix pickup extension channel reference error. You cannot unref a pointer and then expect to ref it again later. * Fix potential NULL pointer deref if the call pickup search fails. 2012-08-09 21:35 +0000 [r371036-371043] Alexandr Anikin * addons/chan_ooh323.c: Introdue 'ooh323 show gk' cli command that show status of connection to H.323 Gatekeeper (GkClient state) * addons/ooh323c/src/ooGkClient.c, /: Fix to resend GRQ/RRQ if RRJ (registration reject) is received (close issue ASTERISK-20094) Patches: ASTERISK-20094.patch ........ Merged revisions 371011 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371022 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-09 19:22 +0000 [r371030] Richard Mudgett * channels/chan_dahdi.c, /, configure, include/asterisk/autoconfig.h.in, configure.ac, channels/sig_pri.c, channels/sig_ss7.c: Use better libss7 detection test and move libpri compile test. ........ Merged revisions 371012 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 371013 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-09 18:28 +0000 [r371010] Alexandr Anikin * /, addons/ooh323c/src/ooh323ep.c: change opening h323 logfile with append mode instead of overwrite ........ Merged revisions 370988 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370989 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-09 17:40 +0000 [r370987] Kinsey Moore * /, apps/app_meetme.c: Correct documentation for the MeetMe x flag The documentation for the x flag for MeetMe incorrectly described its function as closing down the conference when the last marked user left. It actually causes the users with that flag to leave the conference when the last marked user exits. The functionality of this flag is not changing. ........ Merged revisions 370985 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370986 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-09 14:52 +0000 [r370979] Mark Michelson * main/pbx.c, channels/chan_sip.c, include/asterisk/pbx.h, channels/sip/include/sip.h: Extend extension state callbacks to have more information. Quote from review board: This patch extends the extension state callbacks so that monitoring channels (as chan_sip) get more information of the devices which are responsible for an extension state change. The additional information is needed by chan_sip to present names/numbers of the caller and callee in an early-state SIP notification. Users of extenstion state callback not interested in the additional information are not affected by the changes. Motivation: to present the involved party's name/number in an early-state nofification (used by the notified device as a pickup offer) one after another so that a user can see which call he will pick up in an undirected pickup. Such a pickup offer to a user shall indicate the same call (number/name-A calls number/name-B) as the call which would be picked up when an undirected pickup is executed. Users interested in additional state info must use the new functions ast_extension_state_add_extended() resp. ast_extension_state_add_destroy_extended() to register an extended state callback. When the callback is registered this way, an extra member device_state_info of struct ast_state_cb_info is passed to the callback in addition to the aggregated extension state. This container holds an object for every device of the monitored extension hint consisting of the device name, the device state and a channel reference to the channel which (presumably) caused the device state. The information is used by chan_sip for early-state notifications. When the state of a device changes and the new state contains AST_EVENT_RINGING, an early-state notification is sent to the subscribed devices with the caller/callee names/numbers of the oldest ringing channel of the monitored extension. The notified user may then invoke a direct pickup, which will pickup exactly this channel. Users of the old non-extended callbacks will only be called when the aggregated state did change (same behavior as before). Users of the extended callback will also be called when the state is unchanged but does contain AST_EVENT_RINGING. That could be the case if two channels are ringing at one device and one of them hangs up, so the aggregated state does not change. This way the monitoring channel can create a new early-state notification with the now ringing party-ids. Review: https://reviewboard.asterisk.org/r/2048 This contribution comes from Guenther Kelleter 2012-08-09 14:36 +0000 [r370978] Jonathan Rose * pbx/pbx_dundi.c, CHANGES: DUNDi: Add CLI commands DUNDi show cache and DUNDi show hints (closes issue ASTERISK-18390) Reported by: Peter Racz Patches: dundi_cli_cache.patch.v2 uploaded by Peter Racz (license #6290) ASTERISK-18390_dundi_cli_cache_jrose_mods_v2.diff uploaded by Jonathan Rose (license #6182) 2012-08-08 22:45 +0000 [r370955] Michael L. Young * /, apps/app_chanspy.c: Fix Not Unreferencing A Spied Channel When a channel hangs up while being spied upon and the option to exit the ChanSpy application when the spied on channel hangs up is set, ast_autochan_destroy is not being called and therefore a reference to the spied upon channel is not removed. The symptom being reported was that when using func_group in the dialplan and calling "group show channels" at the cli, the spied upon channel was still being shown while "core show channels" showed that the channel was not up. This patch calls ast_autochan_destroy when a spied upon channel hangs up and the option to exit the ChanSpy application is set, removing the reference to the channel allowing the count for the group that the spied channel was part of to be decremented. (closes issue ASTERISK-17515) Reported by: Arkadiusz Malka Tested by: Alexandr Gordeev, Michael L. Young Patches: asterisk-17515-destroy-autochan.diff uploaded by Michael L. Young (license 5026) ........ Merged revisions 370952 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370954 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-08 22:41 +0000 [r370951-370953] Mark Michelson * CHANGES: Move a SIP change up to the other SIP changes in the CHANGES file. * main/channel.c, main/pbx.c, main/manager.c, pbx/pbx_spool.c, apps/app_originate.c, include/asterisk/channel.h, include/asterisk/pbx.h, CHANGES, res/res_clioriginate.c: Allow support for early media on AMI originates and call files. This is based on the work done by Olle Johansson on review board. The idea is that the channel specified in an AMI originate or call file is typically not connected to the outgoing extension until the channel has been answered. With this change, an EarlyMedia header can be specified for AMI originates and an early_media option can be specified in call files. With this option set, once early media is received on a channel, it will be connected with the outgoing extension. (closes issue ASTERISK-18644) Reported by Olle Johansson Review: https://reviewboard.asterisk.org/r/1472 2012-08-08 21:22 +0000 [r370943] Terry Wilson * main/manager.c, CHANGES: Add AMI_CLIENT dialplan function Implementation of a dialplan function for checking manager accounts. Right now it only returns the number of logged in sessions for a manager account, but other attributes can be added later. Patch by: Olle Johansson Review: https://reviewboard.asterisk.org/r/421/ 2012-08-08 20:47 +0000 [r370927] Joshua Colp * main/rtp_engine.c: Create the payload type if it does not exist when setting information based on the 'm' line. An rtpmap attribute is not required for defined payload numbers. 2012-08-08 20:32 +0000 [r370926] Richard Mudgett * channels/chan_dahdi.c, channels/sig_analog.c, channels/sig_analog.h: Convert sig_analog to use a global callback table. 2012-08-08 20:30 +0000 [r370925] Kinsey Moore * main/channel.c, /: Do not define a cause that doesn't actually exist AST_CAUSE_NOTDEFINED is a placeholder for usage when there is no cause information. As such, it should not be defined and translatable as a cause. ........ Merged revisions 370923 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370924 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-08 20:17 +0000 [r370887-370902] Richard Mudgett * channels/chan_dahdi.c, channels/sig_analog.c, /, channels/sig_analog.h: Fix the analog dial *0 flash-hook of bridged peer feature. The flash-hook the bridged peer feature now correctly determines if the bridged peer is another chan_dahdi channel, that it is an analog channel, and that it has the correct signaling for an FXO port. It now also flash-hooks the correct channel. ........ Merged revisions 370900 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370901 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/sig_pri.h, channels/chan_dahdi.c, channels/sig_pri.c: Convert sig_pri to use a global callback table. * channels/chan_dahdi.c, channels/sig_ss7.h, channels/sig_ss7.c: Convert sig_ss7 to use a global callback table. 2012-08-07 21:58 +0000 [r370881] Damien Wedhorn * build_tools/cflags-devmode.xml, channels/chan_skinny.c: Rewrite of skinny debugging. Debugging messages and associated controls only compiled in if configured with --enable-dev-mode. Debug messages provide more detail (including thread id) and are grouped so the user/dev can limit the type of messages displayed. Functionally no real change to chan_skinny. Review: https://reviewboard.asterisk.org/r/2040/ 2012-08-07 19:59 +0000 [r370860] Joshua Colp * main/rtp_engine.c, include/asterisk/rtp_engine.h: Payload and RTP code are must remain separate since in non-Asterisk format cases they differ. 2012-08-07 19:26 +0000 [r370851-370859] Kinsey Moore * /: Recorded merge of revisions 370858 from http://svn.asterisk.org/svn/asterisk/branches/10 ........ Add missing AST_CAUSE_* -> text translations ........ Merged revisions 370856 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * main/channel.c: Add missing AST_CAUSE_* -> text translations A few of these were missing from the list and are necessary for the Who Hung Up? functionality. 2012-08-07 17:47 +0000 [r370832-370845] Joshua Colp * main/rtp_engine.c: Fix a bug uncovered by the test suite where the RTP payload number was not getting set. * res/res_rtp_asterisk.c, main/rtp_engine.c, channels/chan_sip.c, channels/chan_motif.c, include/asterisk/rtp_engine.h: Reduce memory consumption significantly for users of the RTP engine API by storing only the payloads present and in use instead of every possible one. Review: https://reviewboard.asterisk.org/r/2052/ 2012-08-07 12:46 +0000 [r370820-370831] Matthew Jordan * main/channel.c, channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, channels/chan_misdn.c, channels/chan_sip.c, main/channel_internal_api.c, channels/misdn/chan_misdn_config.h, main/features.c, configs/misdn.conf.sample, include/asterisk/channel.h, configs/sip.conf.sample, CHANGES, channels/sip/include/sip.h, channels/misdn_config.c: Add named callgroups/pickupgroups This patch adds named calledgroups/pickupgroups to Asterisk. Named groups are implemented in parallel to the existing numbered callgroup/pickupgroup implementation. However, unlike the existing implementation, which is limited to a maximum of 64 defined groups, the number of defined groups allowed for named callgroups/pickupgroups is effectively unlimited. Named groups are configured with the keywords "namedcallgroup" and "namedpickupgroup". This corresponds to the numbered group definitions of "callgroup" and "pickupgroup". Note that as the implementation of named groups coexists with the existing numbered implementation, a defined named group of "4" does not equate to numbered group 4. Support for the named groups has been added to the SIP, DAHDI, and mISDN channel drivers. Review: https://reviewboard.asterisk.org/r/2043 Uploaded by: Guenther Kelleter(license #6372) * contrib/realtime/mysql/voicemail_data.sql: Revert r370820 That change is wrong, wrong, wrong. * contrib/realtime/mysql/voicemail_data.sql: Update the MySQL voicemail_data contrib script to reflect Asterisk 11 changes All voicemails now have a 'msg_id' included in their metadata. The ODBC message storage backend now requires this column; as such, the MySQL contrib script that creates the voicemail_data table has been updated with the appropriate column information. 2012-08-06 15:18 +0000 [r370801] Mark Michelson * /, channels/chan_sip.c: Improve debug message for temporary outbound proxies. Thanks to Paul Belanger for pointing this out. ........ Merged revisions 370797 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370798 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-03 21:52 +0000 [r370773] Mark Michelson * /, channels/chan_sip.c, channels/sip/config_parser.c, channels/sip/include/sip.h: Multiple revisions 370769-370771 ........ r370769 | mmichelson | 2012-08-03 16:35:00 -0500 (Fri, 03 Aug 2012) | 24 lines Fix error in the "IPorHost" section of a SIP dialstring. This is based on the review request posted by Walter Doekes (referenced lower in the commit message) The main fix here is to treat the IPorHost portion of the dial string as a temporary outbound proxy. This ensures requests get sent to the proper location. Due to the age of the request, some parts were no longer relevant. For instance, the request moved outbound proxy parsing code into a single method. This is done in a previous commit, so it was not necessary to do again. Also, the review request fixed some errors with regards to request routing for CANCEL and ACK requests. This has also been fixed in more recent commits. (closes issue ASTERISK-19677) reported by Walter Doekes Review https://reviewboard.asterisk.org/r/1859 ........ r370770 | mmichelson | 2012-08-03 16:39:35 -0500 (Fri, 03 Aug 2012) | 3 lines Remove unused variable. ........ r370771 | mmichelson | 2012-08-03 16:43:52 -0500 (Fri, 03 Aug 2012) | 5 lines Seriously? Another compilation error fixed. Somebody beat me. ........ Merged revisions 370769-370771 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370772 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-08-02 15:51 +0000 [r370740] Kinsey Moore * channels/chan_sip.c: Fix regression from r370636 When the chan_sip cleanup went in, a typo was included that caused some subscriptions of non-Polycom phones to be limited to the same capabilities as Polycom phones. This resolves the failures in the test suite resulting from this regression. 2012-08-01 19:37 +0000 [r370726] Mark Michelson * main/manager.c: Fix a possible crash due to passing NULL to ast_variables_dup() 2012-08-01 18:52 +0000 [r370720] Richard Mudgett * include/asterisk/astobj2.h, main/astobj2.c: Make astobj2.h not include linkedlists.h. Using astobj2 does not require linkedlists.h be included even though astob2 uses linked lists internally. 2012-08-01 02:26 +0000 [r370699] Kinsey Moore * /, utils/extconf.c: Revert alloca changes for utils These changes were a tad overzealous in the utils directory. Unfortunately, these don't compile with a "make". ........ Merged revisions 370697 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370698 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-31 22:28 +0000 [r370681-370691] Mark Michelson * channels/chan_sip.c, configs/sip.conf.sample, CHANGES, channels/sip/include/sip.h: Add headers from SIPAddHeader to outbound REFER requests. This is a patch from kkm from review board. This is useful for adding headers to REFER requests that emanate from a Transfer() dialplan application call. This also fixes some uses of the Referred-by header, removing an extra set of angle brackets. I've modified the reporter's original patch to not require any additions to the sip_refer header and to just remove the referred_by_name from sip_refer since it is no longer needed or used. (closes Issue ASTERISK-17639) reported by Kirill Katsnelson Patches: 019059-sip-refer-addheaders-trunk-353549.diff uploaded by Kirill Katsnelson (license #5845) Review: https://reviewboard.asterisk.org/r/1159 * main/manager.c, configs/manager.conf.sample, CHANGES: Add "setvar" option to manager.conf. With this option set, channel variables can be set on every manager originate. The Variable header can still be used to set additional channel variables for individual calls if desired. This work was completed by Olle Johansson on review board. I have applied the review feedback and am committing it in order to get this into trunk before Asterisk 11 is branched. Review: https://reviewboard.asterisk.org/r/1412 2012-07-31 21:20 +0000 [r370677] Matthew Jordan * /, channels/chan_sip.c: Schedule pokes of registered SIP peers within a given timespan after SIP reload With a large number of SIP peers registered, performing a SIP reload causes a flood of SIP OPTIONS request packets. These are immediately sent out, and, as responses come back, can cause peers to be flagged as 'lagged' due to handling of the many response messages. This fix prevents this "packet storm" and schedules the pokes for a random time. That time varies between 1 ms and the peer's qualify time, or, if the qualify time is unknown, the global qualifyfreq setting. The committed patch has some very small modifications to the patch schmidts wrote for the review. (closes issue ASTERISK-19154) Reported by: Nicolo Mazzon patches: issue19154.patch license #6034 uploaded by schmidts Review: https://reviewboard.asterisk.org/r/1652 ........ Merged revisions 370666 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370672 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-31 20:33 +0000 [r370664] Russell Bryant * main/event.c: Move event cache updates into event processing thread. Prior to this patch, updating the device state cache was done by the thread that originated the event. It would update the cache and then queue the event up for another thread to dispatch. This thread moves the cache updating part to be in the same thread as event dispatching. I was working with someone on a heavily loaded Asterisk system and while reviewing backtraces of the system while it was having problems, I noticed that there were a lot of threads contending for the lock on the event cache. By simply moving this into a single thread, this helped performance *a lot* and alleviated some deadlock-like symptoms. Review: https://reviewboard.asterisk.org/r/2066/ 2012-07-31 20:21 +0000 [r370655] Kinsey Moore * /, main/say.c, main/threadstorage.c, funcs/func_strings.c, channels/chan_iax2.c, main/config.c, channels/chan_dahdi.c, pbx/pbx_spool.c, channels/sig_analog.c, main/strcompat.c, main/features.c, pbx/pbx_ael.c, main/http.c, pbx/pbx_realtime.c, channels/chan_alsa.c, channels/sig_ss7.c, main/db.c, include/asterisk/utils.h, main/pbx.c, funcs/func_cut.c, tests/test_linkedlists.c, funcs/func_channel.c, apps/app_macro.c, apps/app_mixmonitor.c, main/asterisk.c, apps/app_voicemail.c, addons/app_mysql.c, apps/app_meetme.c, apps/app_dictate.c, main/utils.c, funcs/func_logic.c, cdr/cdr_pgsql.c, channels/chan_gtalk.c, res/res_jabber.c, res/res_http_websocket.c, res/ael/pval.c, main/channel.c, main/manager.c, apps/app_osplookup.c, res/res_agi.c, apps/app_minivm.c, main/logger.c, main/app.c, addons/chan_mobile.c, apps/app_while.c, res/res_config_pgsql.c, channels/chan_sip.c, apps/app_festival.c, pbx/pbx_lua.c, channels/sig_pri.c, apps/app_getcpeid.c, funcs/func_global.c, channels/chan_jingle.c, main/tcptls.c, apps/app_directed_pickup.c, main/file.c, main/callerid.c, apps/app_sms.c, main/astmm.c, main/event.c, pbx/pbx_dundi.c, include/asterisk/strings.h, utils/extconf.c, main/dsp.c, addons/res_config_mysql.c: Clean up and ensure proper usage of alloca() This replaces all calls to alloca() with ast_alloca() which calls gcc's __builtin_alloca() to avoid BSD semantics and removes all NULL checks on memory allocated via ast_alloca() and ast_strdupa(). (closes issue ASTERISK-20125) Review: https://reviewboard.asterisk.org/r/2032/ Patch-by: Walter Doekes (wdoekes) ........ Merged revisions 370642 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370643 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-31 19:57 +0000 [r370644] Mark Michelson * CHANGES, pbx/pbx_config.c: Add "dialplan remove context" and modify "dialplan add include" From corruptor's review board posting: "I've noticed that we can remove particular extension from context with dialplan remove extension command but in order to remove all extensions in the context we should delete them on by one. I've created dialplan remove context command which uses ast_context_destroy to destroy the whole context with all extensions. I've created to functions for in pbx_config.c: handle_cli_dialplan_remove_context which actually removes context and complete_dialplan_remove_context which completes input. They are based on other similar functions and pretty trivial but I can be mistaken somewhere. "I've also modified dialplan add include into . I've made it similar dialplan add extension ... command. It creates if it doesn't exist and I've also modified complete_dialplan_add_include and removed check for existance of because we can include non-existent context into another one. (I usually include empty (non-existent) contexts in advance). Should we raise warning in this case as it's raised while reading extensions.conf? "I use those functions with AMI. I think manager commands should be created in addition to those CLI commands." I've addressed the latest comments on review board and have made some other coding guidelines-related cleanup. I also have modified the CHANGES file to mention these new commands. (closes issue ASTERISK-19292) reported by Andrey Solovyev Patches: dialplan_add_include.patch uploaded by Andrey Solovyev (license #5214) dialplan_remove_context.patch uploaded by Andrey Solovyev (license #5214) Review: https://reviewboard.asterisk.org/r/2042 2012-07-31 19:10 +0000 [r370636] Kinsey Moore * channels/chan_sip.c, channels/sip/security_events.c, channels/sip/include/sip.h: Clean up chan_sip This clean up was broken out from https://reviewboard.asterisk.org/r/1976/ and addresses the following: - struct sip_refer converted to use the stringfields API. - sip_{refer|notify}_allocate -> sip_{notify|refer}_alloc to match other *alloc functions. - Replace get_msg_text, get_msg_text2 and get_pidf_body -> No, not get_pidf_msg_text_body3 but get_content, to match add_content. - get_body doesn't get the request body, renamed to get_content_line. - get_body_by_line doesn't get the body line, and is just a simple if test. Moved code inline and removed function. - Remove camelCase in struct sip_peer peer state variables, onHold -> onhold, inUse -> inuse, inRinging -> ringing. - Remove camelCase in struct sip_request rlPart1 -> rlpart1, rlPart2 -> rlpart2. - Rename instances of pvt->randdata to pvt->nonce because that is what it is, no need to update struct sip_pvt because _it already has a nonce field_. - Removed struct sip_pvt randdata stringfield. - Remove useless (and inconsistent) 'header' suffix on variables in handle_request_subscribe. - Use ast_strdupa on Event header in handle_request_subscribe to avoid overly complicated strncmp calls to find the event package. - Move get_destination check in handle_request_subscribe to avoid duplicate checking for packages that don't need it. - Move extension state callback management in handle_request_subscribe to avoid duplicate checking for packages that don't need it. - Remove duplicate append_date prototype. - Rename append_date -> add_date to match other add_xxx functions. - Added add_expires helper function, removed code that manually added expires header. - Remove _header suffix on add_diversion_header (no other header adding functions have this). - Don't pass req->debug to request handle_request_XXXXX handlers if req is also being passed. - Don't pass req->ignore to check_auth as req is already being passed. - Don't create a subscription in handle_request_subscribe if p->expiry == 0. - Don't walk of the back of referred_by_name when splitting string in get_refer_info - Remove duplicate check for no dialog in handle_incoming when sipmethod == SIP_REFER, handle_request_refer checks for that. Review: https://reviewboard.asterisk.org/r/1993/ Patch-by: gareth 2012-07-30 23:26 +0000 [r370565-370598] Richard Mudgett * main/test.c: Tweak unit test warning message. * funcs/func_presencestate.c, main/test.c: Fix some presence-state unit test typos. * apps/app_confbridge.c: DECLINE to load confbridge if the config fails to load. * channels/chan_misdn.c, /: Release B channel allocation on error path in chan_misdn. ........ Merged revisions 370563 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370564 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-30 14:52 +0000 [r370548] Jonathan Rose * /, apps/app_meetme.c: app_meetme: Change app_meetme support level to extended from deprecated (closes issue ASTERISK-20134) Reported by: Leif Madsen ........ Merged revisions 370547 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-30 13:45 +0000 [r370534-370541] Russell Bryant * tests/test_event.c: Fix ast_event_new unit test. One of my recent commits broke this test. The error was: [test_event.c:event_new_test:214]: Events expected to be identical have different size: 69 != 59 The difference in size occurred because the first event had the EID IE added to the event twice. ast_event_new() now always adds it automatically. Previously it only added it if there were no IEs specified, which was kind of weird. * include/asterisk/event_defs.h, res/res_corosync.c, main/event.c: Add a "corosync ping" CLI command. This patch adds a new CLI command to the res_corosync module. It is primarily used as a debugging tool. It lets you fire off an event which will cause res_corosync on other nodes in the cluster to place messages into the logger if everything is working ok. It verifies that the corosync communication is working as expected. I didn't put anything in the CHANGES file for this, because this module is new in Asterisk 11. There is already a generic "res_corosync new module" entry in there so I figure that covers it just fine. * addons/app_mysql.c, CHANGES: Allow specifying a port number for the MySQL server. This patch allows you to specify a port number for the MySQL server. It's useful if a MySQL server is running on a non-standard port. Even though this module is deprecated in favor of func_odbc, someone asked for this feature and it seems pretty harmless to add. It has been tested using a number of combinations of with/without a port number specified in the dialplan and changing the port number for mysqld. 2012-07-26 15:31 +0000 [r370510-370518] Jonathan Rose * channels/chan_sip.c, CHANGES: chan_sip: Add SIPpeerstatus command to AMI This patch was submitted by mnicholson a while back. It adds a new AMI action which allows users to request SIP peer status on demand similar to existing PeerStatus events and to the output you would see from CLI with sip show peer Review: https://reviewboard.asterisk.org/r/1098/ * /, res/res_agi.c: res_agi: Add message indicating need for \n character in verbose message The while loop responsible for reading AGI messages from a fastAGI service can end up looping indefinitely when an AGI script fails to indicate the end of a message with a \n character. This patch adds an indication that we are expecting a \n character to end the message to make it more clear to users that this is necessary if they are receiving this warning over and over. (issue ASTERISK-20061) Reported by: Eike Kuiper ........ Merged revisions 370494 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370495 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-25 14:27 +0000 [r370481-370488] Kevin P. Fleming * main/Makefile: Repair editline builds using in-tree editline sources. The previous change to the build system for using a system-provided editline library was missing a crucial include directory for building against the copy of the library in the Asterisk source tree. * main/Makefile: Use an absolute path when referring to the embedded editline directory. This patch changes the build system to refer to the embedded editline directory using an absolute path, which will resolve a problem seen on the CentOS automated build agents. * build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, main/Makefile, main/editline/configure, configure.ac, main/editline/readline (removed), main/editline/readline.c, main/editline/configure.in, CHANGES, makeopts.in, main/editline/readline.h (added), main/asterisk.c, contrib/scripts/install_prereq, main/cli.c: Enable usage of system-provided NetBSD editline library if available. This patch changes the Asterisk configure script and build system to detect the presence of the NetBSD editline library (libedit) on the system. If it is found, it will be used in preference to the version included in the Asterisk source tree. (closes issue ASTERISK-18725) Reported by: Jeffrey C. Ollie Review: https://reviewboard.asterisk.org/r/1528/ Patches: 0001-Allow-linking-building-against-an-external-editline.patch uploaded by jcollie (license #5373) (heavily modified by kpfleming) 2012-07-25 03:51 +0000 [r370474] Terry Wilson * main/pbx.c, /: Revert a change that broke compilation 1) There is no such function as ast_ref() 2) The patch was originally credited as the one uploaded by Guenther Kelleter (license 6372) via issue AST-921, but the patch committed was not the patch referenced on the issue. 3) Guenther Kelleter's patch was actually correct. It moved the ast_free above the presencechange_cleanup label. I am not committing his change as it is not technically necesary--calling ast_free(NULL) is perfectly safe and I worry that moving the ast_free outside of the label could lead to future bugs if someone ever adds another failure conditional and expects 'goto presencechange_cleanup;' to clean up after everything. 2012-07-24 21:30 +0000 [r370466] Jonathan Rose * main/pbx.c, /: Don't attempt free of NULL ptr in pbx.c handle_presencechange (closes issue AST-921) Reported by: Guenther Kelleter Patches: nullptr.patch uploaded by Guenther Kelleter (license 6372) 2012-07-24 19:12 +0000 [r370453] Kevin P. Fleming * tests/test_acl.c: Silence a warning message from older versions of GCC. Revision 370426 introduced the use of a nested function in tests/test_acl.c, but the lack of the 'auto' scope specifier on the function and a forward declaration resulted in compilation errors on the automated test systems. 2012-07-24 17:16 +0000 [r370433] Tzafrir Cohen * /, channels/chan_oss.c: chan_oss: fix "sample rate" error message Merged revisions 370428 from http://svn.asterisk.org/svn/asterisk/branches/1.8 Merged revisions 370432 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-24 16:54 +0000 [r370426-370431] Kevin P. Fleming * main/frame.c, /: Rewrite a comment that didn't adequately explain the code it was documenting. ........ Merged revisions 370429 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370430 from http://svn.asterisk.org/svn/asterisk/branches/10 * CHANGES: Update CHANGES for list/negation ACL feature. * tests/test_acl.c, main/acl.c: Allow permit/deny ACL lines to contain multiple items and negated entries. Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple items (separated by commas), and items in the rule can be negated by prefixing them with '!'. This simplifies Asterisk Realtime configurations, since it is no longer necessray to control the order that the 'permit' and 'deny' columns are returned from queries. Review: https://reviewboard.asterisk.org/r/1592/ Initial patch contributed by Tilghman Lesher Unit tests written by Kevin P. Fleming 2012-07-24 16:15 +0000 [r370419-370420] Joshua Colp * res/res_rtp_asterisk.c: Build is underway so logging can go away. * res/res_rtp_asterisk.c: Temporarily enable pj logging to console for debugging pjnath issue exposed by build slave. 2012-07-24 08:53 +0000 [r370413] Igor Goncharovskiy * channels/chan_unistim.c: Remove code, that operate with cdr in attempt_transfer(). That was removed somewhere between 1.2 and 1.4 and acidentaly put back in chan_unistim. (closes issue ASTERISK-19628) Reported by: Igor Olhovskiy 2012-07-23 21:27 +0000 [r370407] Kevin P. Fleming * codecs/Makefile, build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, codecs/codec_ilbc.c, CHANGES, makeopts.in: Enable usage of system-provided iLBC library. The WebRTC version of the iLBC codec is now package as a library and is available on some platforms. This patch allows codec_ilbc to be built against that library if it is present. Review: https://reviewboard.asterisk.org/r/1964/ 2012-07-23 21:15 +0000 [r370387] Matthew Jordan * tests/test_abstract_jb.c (added), main/abstract_jb.c, funcs/func_jitterbuffer.c, include/asterisk/abstract_jb.h: Unit tests for the Jitter Buffer API; remove unnecessary resync This patch includes the following: * Unit tests for the abstract Jitter Buffer API. This includes both fixed and adaptive flavors, testing nominal creation, frame input, frame retrieval, resyncing; off nominal frame input overflow, out of order, and others. * Tweaks to the abstract_jb API to remove the unnecessary resync_threshold parameter from the create function (resync_threshold is already in the struct passed into the create function) * Ensure the fixed jitter buffer is empty before destroying it, to avoid an ASSERT * Don't "resync" the adaptive jitter buffer. The mechanism that was being used actually causes the jitter buffer to think its being overflowed by going around the jitterbuf API and attempting to 'resynch' it improperly. If a resync is needed, the jitter buffer will do it properly by itself. Note that this is only an optimization needed for trunk, as the worst that happens is the loss of three voice packets before the adaptive jitter buffer will resync anyway. Review: https://reviewboard.asterisk.org/r/2035 2012-07-23 21:10 +0000 [r370386] Mark Michelson * channels/chan_sip.c, configs/sip.conf.sample, CHANGES: Add separate configuration options for subscription and registration minexpiry and maxexpiry. This offers more fine-grained control over how long subscriptions last without negatively affecting the expiration range for registrations. Uploaded by: Guenther Kelleter(license #6372) Review: https://reviewboard.asterisk.org/r/2051 2012-07-23 21:10 +0000 [r370385] Kevin P. Fleming * /, funcs/func_shell.c: Improve documentation for the SHELL() dialplan function. ........ Merged revisions 370383 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370384 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-23 21:02 +0000 [r370382] Mark Michelson * UPGRADE.txt: Add notes to UPGRADE.txt about addition of msg_id to VoiceMails. 2012-07-23 00:15 +0000 [r370354] Joshua Colp * UPGRADE.txt: Update UPGRADE.txt with notes about ICE support and res_xmpp. 2012-07-22 23:37 +0000 [r370353] Matthew Jordan * CHANGES: Update CHANGES for Asterisk 11 This updates the CHANGES file with things that were committed for Asterisk 11, but were not noted in that file. 2012-07-22 17:03 +0000 [r370347] Joshua Colp * res/res_rtp_asterisk.c, channels/chan_sip.c, configs/sip.conf.sample, channels/sip/include/sip.h: Prevent multiple local candidates from being added with the same information and add support for disabling ICE on a per-peer basis. (closes issue ASTERISK-20088) Reported by: wimpy Review: https://reviewboard.asterisk.org/r/2044/ 2012-07-21 13:25 +0000 [r370341] Terry Wilson * main/config_options.c, apps/app_confbridge.c, apps/confbridge/conf_config_parser.c: Fix segfault introduced by conversion to ACO API The value "none" is specified in the config file as a valid value for the "video_mode" option. The code prior to the ACO conversion did not check for "none", but just ignored it and relied on the default zero value. The parsing with ACO is more strict, so without handling "none" specifically, parsing would fail. When parsing failed, but the module loaded anyway, the config info would never be stored, and one place in the code did not check for this case and would segfault. It was also possible that the aco_info struct's internals would be destroyed and used as well. This patch keeps the module from loading after parse failures, adds the "none" option to "video_mode", registers CLI functions only after parsing has completed, checks the config data for NULL before accessing it, and returns -1 on some allocation failures when initializing. (closes issue ASTERISK-20159) Reported by: Birger "WIMPy" Harzenetter Tested by: Birger "WIMPy" Harzenetter Patches: confbridge_fix3.txt uploaded by Terry Wilson 2012-07-20 19:36 +0000 [r370335] Jonathan Rose * channels/chan_iax2.c: chan_iax2: Fix a segfault introduced by call ID logging Didn't previously check that a non NULL IAX channel was stored in the array at the requested position before attempting iax_pvt_callid_get (closes issue ASTERISK-20145) Reported by: Birger "WIMPy" Harzenetter 2012-07-20 19:08 +0000 [r370329] Matthew Jordan * apps/app_dial.c: Clean up ManagerEvent Dial documentation The paragraph describing the SubEvent belongs with the SubEvent parameter itself, and not with its enum values. The order of parsing was placing the description after the last enum, which isn't correct. 2012-07-20 18:37 +0000 [r370328] Kinsey Moore * channels/chan_misdn.c: Fix build error in chan_misdn from commit 370316 chan_misdn was not updated properly to account for a change in parameters for HANGUPCAUSE functionality. It now builds properly. 2012-07-20 16:25 +0000 [r370322] Joshua Colp * res/res_http_websocket.exports.in: Export the ast_websocket_set_nonblock function for use by other modules. 2012-07-20 15:48 +0000 [r370316] Kinsey Moore * funcs/func_hangupcause.c (added), main/channel.c, channels/chan_dahdi.c, channels/sig_analog.c, main/rtp_engine.c, channels/chan_sip.c, main/channel_internal_api.c, UPGRADE.txt, include/asterisk/channel.h, channels/chan_iax2.c, channels/sig_pri.c, include/asterisk/frame.h, channels/sig_ss7.c: Add hangupcause translation support The HANGUPCAUSE hash (trunk only) meant to replace SIP_CAUSE has now been replaced with the HANGUPCAUSE and HANGUPCAUSE_KEYS dialplan functions to better facilitate access to the AST_CAUSE translations for technology-specific cause codes. The HangupCauseClear application has also been added to remove this data from the channel. (closes issue SWP-4738) Review: https://reviewboard.asterisk.org/r/2025/ 2012-07-20 15:40 +0000 [r370309-370315] Richard Mudgett * CHANGES: Update CHANGES about adding the AccountCode header to the AMI Hangup event. (issue ASTERISK-19963) * main/channel.c: Add the AccountCode header to the AMI Hangup event. It's harder to correlate the Newchannel and Hangup AMI events without specifying "AccountCode" in both. (closes issue ASTERISK-19963) Reported by: Oleg A. Arkhangelsky Patches: hangup_acctcode.diff (license #6397) patch uploaded by Oleg A. Arkhangelsky 2012-07-19 23:21 +0000 [r370303] Terry Wilson * include/asterisk/config_options.h, apps/confbridge/include/confbridge.h, main/config_options.c, apps/confbridge/conf_config_parser.c: Convert app_confbridge to use the config options framework Review: https://reviewboard.asterisk.org/r/2024/ 2012-07-19 22:25 +0000 [r370298] Richard Mudgett * /, main/cel.c: Fix compiler warnings. gcc (GCC) 4.2.4 has problems casting away constness. ........ Merged revisions 370275 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370277 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-19 22:17 +0000 [r370272-370278] Matthew Jordan * channels/chan_sip.c, res/res_xmpp.c, doc/appdocsxml.dtd, main/message.c, main/xmldoc.c: Add the ability to specify technology specific documentation A number of applications/AMI commands in Asterisk have specific behavioral differences depending on the resource or channel technology those applications are executed on. For example, the MessageSend application/ command is technology agnostic, but how the channel drivers that support that functionality behave is dependant on the protocols and channel driver implementation. Prior to this patch, those details were either documented in the application/command documentation itself, or were left undocumented. This patch adds a new element to the documentation schema, . An info node is essentially a piece of technology specific reference information that can be included by any top level XML documentation node. For example, the MessageSend application can now include XMPP/SIP specific information, where that technology specific information can be defined in chan_motif/res_xmpp/ chan_sip. Likewise, that information can also be included in the MessageSend AMI command. Review: https://reviewboard.asterisk.org/r/2049 * /, main/cel.c: Fix compilation error when MALLOC_DEBUG is enabled To fix a memory leak in CEL, a channel datastore was introduced whose destruction function pointer was pointed to the ast_free macro. Without MALLOC_DEBUG enabled this compiles as fine, as ast_free is defined as free. With MALLOC_DEBUG enabled, however, ast_free takes on a definition from a different place then utils.h, and became undefined. This patch resolves this by using a reference to ast_free_ptr. When MALLOC_DEBUG is enabled, this calls ast_free; when MALLOC_DEBUG is not enabled, this is defined to be ast_free, which is defined to be free. (issue AST-916) Reported by: Thomas Arimont ........ Merged revisions 370273 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370274 from http://svn.asterisk.org/svn/asterisk/branches/10 * res/res_rtp_asterisk.c, /: Handle extremely out of order RFC 2833 DTMF The current implementation of RFC 2833 DTMF handling in res_rtp_asterisk will, if a packet arrives out of order, drop the packet. This is to prevent duplicate ton generation in the Asterisk core. Since the RTP layer does not buffer data itself, this is the only option the RTP layer currently has for handling packets that arrive out of order. For the most part, this doesn't matter. For a particular digit, so long as a BEGIN packet arrives before the first END packet, the digit will be produced. If subsequent BEGIN packets arrive interleaved with the ENDs, they will be dropped; likewise, if the BEGIN or END packets themselves are out of order, those packets are dropped but sufficient information is conveyed to the Asterisk core to produce the appropriate digit. For certain sequences of DTMF packets - most notably when, for a particular digit, an END packet arrives before any BEGIN packet for that digit - this is a real problem. When an END arrives before any BEGINs, the END packet is dropped - but at the same time, it causes subsequent BEGIN packets for that digit to be ignored. When the next in order END packet arrives, it too is dropped - Asterisk believes that there was no initial BEGIN. The solution this patch provides is to trust the END packet to convey the information needed for the Asterisk core to produce the DTMF digit. If we receive an END packet, and it: * Has a timestamp greater then the last timestamp received from an END packet * Does not have the same sequence number as the last received sequence number (and is thus not an END packet retransmission) Then we send the END frame up to the Asterisk core. It contains enough DTMF information for Asterisk to produce the digit. On the other hand, if we receive a BEGIN or continuation packet that occurs with a timestamp equal to or less then the last END timestamp, then we've received something out of order - but we already have received enough information to produce the digit. These packets are dropped. Much thanks goes to Olle Johansson (oej) for providing the idea for this solution. Review: https://reviewboard.asterisk.org/r/2033/ (closes issue ASTERISK-18404) Reported by: Stephane Chazelas Tested by: Matt Jordan ........ Merged revisions 370252 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370271 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-19 20:37 +0000 [r370246-370265] Jonathan Rose * main/named_acl.c, configs/acl.conf.sample: named_acl: Remove systemname option from acl.conf, use asterisk.conf value Review: https://reviewboard.asterisk.org/r/2057/ * main/channel_internal_api.c: CallID Logging: Remove new line/carriage return from callID change test event 2012-07-19 12:14 +0000 [r370234-370240] Joshua Colp * res/Makefile, res/pjproject/build/os-auto.mak.in: Use the bruteforce method to get debugging enabled for pjproject. * res/Makefile: Turn on debugging for pjproject so we can get a better idea of what is causing the generic CCSS test crash. 2012-07-18 19:48 +0000 [r370225] Jonathan Rose * main/channel_internal_api.c: callid logging: Issue test events when the callid is changed for a channel Review: https://reviewboard.asterisk.org/r/2054/ 2012-07-18 19:18 +0000 [r370187-370211] Kevin P. Fleming * /, main/cel.c: Resolve severe memory leak in CEL logging modules. A customer reported a significant memory leak using Asterisk 1.8. They have tracked it down to ast_cel_fabricate_channel_from_event() in main/cel.c, which is called by both in-tree CEL logging modules (cel_custom.c and cel_sqlite3_custom.c) for each and every CEL event that they log. The cause was an incorrect assumption about how data attached to an ast_channel would be handled when the channel is destroyed; the data is now stored in a datastore attached to the channel, which is destroyed along with the channel at the proper time. (closes issue AST-916) Reported by: Thomas Arimont Review: https://reviewboard.asterisk.org/r/2053/ ........ Merged revisions 370205 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370206 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/channel.c, addons/app_mysql.c, main/pbx.c, funcs/func_curl.c, /, main/ccss.c, funcs/func_odbc.c, funcs/func_lock.c, apps/app_macro.c, channels/chan_iax2.c, apps/app_mixmonitor.c, apps/app_stack.c, funcs/func_global.c, res/res_odbc.c: Ensure that all ast_datastore_info structures are 'const'. While addressing a bug, I came across a instance of 'struct ast_datastore_info' that was not declared 'const'. Since the API already expects them to be 'const', this patch changes the declarations of all existing instances that were not already declared that way. ........ Merged revisions 370183 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370184 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-18 15:15 +0000 [r370171-370177] Joshua Colp * res/res_rtp_asterisk.c: Fix a crash in pjnath when starting an ICE connectivity check and immediately destroying the ICE session. The initial ICE connectivity check is scheduled as a timer item that is to be executed immediately. It is possible for this timer item to start executing while the ICE session it is working on is destroyed. To reduce the chance of this any timer items that need to be immediately executed will be executed within the thread that has started the initial ICE connectivity check. * channels/chan_sip.c, include/asterisk/rtp_engine.h: Fix a crash occurring as a result of excess stack usage. This fix involves moving the allocation of some temporary codec structures to the heap and also reduces the number of maximum payloads to something more sane for both regular and low memory builds. (closes issue ASTERISK-20140) Reported by: jonnt 2012-07-18 07:17 +0000 [r370165] Igor Goncharovskiy * channels/chan_unistim.c, configs/unistim.conf.sample, CHANGES: Added option 'interdigit_timer' to unistim.conf to make able controll hardcoded dial timeout constant. 2012-07-17 19:05 +0000 [r370152-370157] Joshua Colp * res/res_xmpp.c: Add pubsub unsubscription support so subscriptions do not linger for MWI and device state progatation. The pubsub code did not attempt to remove subscriptions at all. This has now changed so that if a client is being disconnected it will unsubscribe. It will also unsubscribe at connection time so if it unexpectedly disconnected duplicate subscriptions will not occur. (closes issue ASTERISK-19882) Reported by: mattvryan * include/asterisk/xmpp.h, res/res_xmpp.c: Fix a crash as a result of propagating MWI or device state over XMPP when the client is disconnected. The MWI and device state propagation code wrongly assumes that an XMPP client connection will remain established at all times. This fix corrects that by making the lifetime of the subscription the same as the lifetime of the connection itself. As the connection is established and disconnected the subscription itself is created and destroyed. (closes issue ASTERISK-18078) Reported by: elguero 2012-07-16 19:58 +0000 [r370133] Walter Doekes * /, channels/chan_sip.c: Code cleanup and bugfix in chan_sip outboundproxy parsing. The bug was clearing the global outboundproxy when a peer-specific outboundproxy was bad. The cleanup reduces duplicate code. Review: https://reviewboard.asterisk.org/r/2034/ Reviewed by: Mark Michelson ........ Merged revisions 370131 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370132 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-16 19:14 +0000 [r370111-370126] Joshua Colp * res/res_xmpp.c: Fix an issue where a service discovery request could crash Asterisk. A server sending a service discovery request to us may or may not put a from attribute in the message. If the from attribute is present use it in the to attribute for the result. If the from attribute is not present do not add a to attribute. (issue ASTERISK-16203) Reported by: wubbla * res/res_xmpp.c: Fix a bug where some XMPP servers would reject authentication. We need to use the user portion of the JID and not the full configured username. * res/res_xmpp.c: Add missing namespace for old non-SASL based authentication. * channels/chan_sip.c: Fix a bug exposed by the testsuite where text streams would no longer be parsed correctly. 2012-07-16 14:02 +0000 [r370083] Kinsey Moore * /, UPGRADE-10.txt, CHANGES, UPGRADE-1.8.txt: Add comments about the BUILD_NATIVE change This is a significant change and mention of it should have gone into UPGRADE.txt and CHANGES. ........ Merged revisions 370081 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370082 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-16 12:58 +0000 [r370072-370073] Joshua Colp * res/res_xmpp.c: Fix an issue where specifying the resource in the username would cause authentication to fail. * channels/sip/sdp_crypto.c, channels/chan_sip.c, channels/sip/security_events.c, include/asterisk/http_websocket.h, configs/sip.conf.sample, CHANGES, res/res_http_websocket.c, channels/sip/include/sip.h: Add support for SIP over WebSocket. This allows SIP traffic to be exchanged over a WebSocket connection which is useful for rtcweb. Review: https://reviewboard.asterisk.org/r/2008 2012-07-16 07:38 +0000 [r370066-370067] Igor Goncharovskiy * channels/chan_unistim.c: Deactivate timer for dialing entered number on hook switch hang up. (closes issue ASTERISK-19554) Reported by: Stefano Villani * channels/chan_unistim.c, contrib/unistimLang/fr.po (added), CHANGES: Add French translation for chan_unistim phones on-screen menus. 2012-07-13 18:41 +0000 [r370055-370060] Joshua Colp * include/asterisk/format.h, res/res_format_attr_h263.c (added), res/res_format_attr_h264.c (added): Reduce memory consumption and add the H.264 and H.263 modules I shamefully neglected to add. * main/format.c, channels/chan_sip.c, main/translate.c, include/asterisk/format.h, res/res_format_attr_silk.c, res/res_format_attr_celt.c: Add support for parsing SDP attributes, generating SDP attributes, and passing it through. This support includes codecs such as H.263, H.264, SILK, and CELT. You are able to set up a call and have attribute information pass. This should help considerably with video calls. Review: https://reviewboard.asterisk.org/r/2005/ 2012-07-13 00:05 +0000 [r370048] Tzafrir Cohen * contrib/scripts/live_ast: live_ast: don't set working directory contrib/scripts/live_ast currently assumes that it is being run from the top-level directory of the source tree. It creates a script that will also set the working directory. This fix avoids the need to set the working directory if the caller sets LIVE_AST_BASE_DIR instead. It relies on realpath for that. If realpath is not available, it will fall back to the original behaviour. Review: https://reviewboard.asterisk.org/r/2027/ 2012-07-12 21:43 +0000 [r370043] Terry Wilson * include/asterisk/config_options.h, configs/config_test.conf.sample, main/config_options.c, tests/test_config.c: Handle deprecated (aliased) option names with the config options api Add a simple way to register "deprecated" option names that alias to a different "current" name. Review: https://reviewboard.asterisk.org/r/2026/ 2012-07-12 20:28 +0000 [r370037] Richard Mudgett * channels/chan_dahdi.c, channels/sig_analog.c, /: Add missing ast_hangup() calls on some analog exception paths. Make starting analog_ss_thread() or __analog_ss_thread() failure paths hangup the channel. ........ Merged revisions 370017 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370025 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-12 20:06 +0000 [r369995-370016] Kinsey Moore * /, channels/chan_sip.c: Include Expires header for SIP PUBLISH requests RFC3903 requres SIP PUBLISH requests to have Expires headers, so add them. Review: https://reviewboard.asterisk.org/r/2003/ Patch-by: gareth ........ Merged revisions 370014 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 370015 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Prevent double uri_escaping in chan_sip when pedantic is enabled If pedantic mode is enabled, outbound invites will have double-escaped contacts. This avoids setting an already-escaped string into a field where it is expected to be unescaped. (closes issue ASTERISK-20023) Reported by: Walter Doekes ........ Merged revisions 369993 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369994 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-12 14:38 +0000 [r369972-369974] Michael L. Young * /, funcs/func_math.c: Correct Documentation For DEC Function The documentation for DEC in func_math.c was incorrect. Looks like a copy and paste error. (Closes issue ASTERISK-20095) Reported by: Billy Chia Tested by: Michael L. Young Patches: func_math.patch uploaded by Billy Chia (license 6381) ........ Merged revisions 369970 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369971 from http://svn.asterisk.org/svn/asterisk/branches/10 * funcs/func_math.c: Reverting last merge since it wasn't completed properly. * funcs/func_math.c: Correct Documentation For DEC Function The documentation for DEC in func_math.c was incorrect. Looks like a copy and paste error. (Closes issue ASTERISK-20095) Reported by: Billy Chia Tested by: Michael L. Young Patches: func_math.patch uploaded by Billy Chia (license 6381) ........ Merged revisions 369970 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2012-07-11 18:33 +0000 [r369959] Jonathan Rose * include/asterisk/acl.h, channels/chan_sip.c, include/asterisk/config.h, main/acl.c, include/asterisk/channel.h, configs/manager.conf.sample, channels/chan_iax2.c, CHANGES, main/named_acl.c (added), main/config.c, main/loader.c, configs/iax.conf.sample, main/manager.c, include/asterisk/event_defs.h, configs/extconfig.conf.sample, configs/sip.conf.sample, channels/sip/include/sip.h, main/asterisk.c, configs/acl.conf.sample (added): Named ACLs: Introduces a system for creating and sharing ACLs This patch adds Named ACL functionality to Asterisk. This allows system administrators to define an ACL and refer to it by a unique name. Configurable items can then refer to that name when specifying access control lists. It also includes updates to all core supported consumers of ACLs. That includes manager, chan_sip, and chan_iax2. This feature is based on the deluxepine-trunk by Olle E. Johansson and provides a subset of the Named ACL functionality implemented in that branch. For more information on this feature, see acl.conf and/or the Asterisk wiki. Review: https://reviewboard.asterisk.org/r/1978/ 2012-07-11 17:16 +0000 [r369940] Tilghman Lesher * /, main/ast_expr2.h, main/ast_expr2f.c, res/ael/ael_lex.c, funcs/func_realtime.c, main/ast_expr2.c: Allow the REALTIME() function to report errors back to the caller. Also, do more error checking on the arguments specified to the REALTIME() function and clarify the documentation. While I was editing the file, a few coding guidelines fixups, as well. Review: https://reviewboard.asterisk.org/r/2031/ ........ Merged revisions 369937 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369938 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-11 17:14 +0000 [r369939] Matthew Jordan * main/features.c: Don't perform an XInclude to a document node that may not always be present Because some of the manager events are defined in the top of the source, due to the macro calls not containing all necessary information to have the documentation colocated with the call itself, several include statements were failing when built with 'make'. While this did not cause any problems in compilation or validation, it did result in a number of warnings being dumped to stderr. This patch changes those references such that they always resolve, regardless of the documentation build options. 2012-07-11 16:42 +0000 [r369936] Joshua Colp * channels/chan_motif.c: Do not consider failure to read the configuration file in chan_motif to be a show stopper for loading Asterisk by returning decline instead of failure. (closes issue ASTERISK-20103) Reported by: Terry Wilson 2012-07-11 02:06 +0000 [r369905-369910] Matthew Jordan * main/cdr.c, main/channel.c, channels/sig_analog.c, main/logger.c, channels/sig_pri.c, main/asterisk.c, main/loader.c: Fix validation errors when producing documentation using default build script The awk script parses out the first instance of the DOCUMENTATION tag that it finds within a file. If a file did not previously have a DOCUMENTATION tag but received one due to it having an AMI event, then the XML fragment associated with the AMI event was erroneously placed in the resulting XML file. Without the python scripts, these XML fragments will not validate. This patch adds DOCUMENTATION tags at the top of those files that did not previously have them to prevent the awk script from pulling AMI event documentation. * main/cdr.c, main/channel.c, channels/chan_dahdi.c, main/pbx.c, channels/chan_local.c, channels/sig_analog.c, main/manager.c, channels/chan_agent.c, main/features.c, main/logger.c, channels/sig_pri.c, doc/appdocsxml.dtd, main/asterisk.c, main/loader.c: Add some additional documentation for core AMI events This patch adds some basic documentation for a number of modules. This includes core source files in Asterisk (those in main), as well as chan_agent, chan_dahdi, chan_local, sig_analog, and sig_pri. The DTD has also been updated to allow referencing of AMI commands. 2012-07-10 15:36 +0000 [r369900] Kinsey Moore * channels/chan_sip.c: Fix failing SDP_offer_answer test Asterisk now generates image stream declinations with the same transport case that it used to before the stream declination improvements. (udptl vs UDPTL) (closes issue SWP-4736) 2012-07-10 15:25 +0000 [r369873-369898] Joshua Colp * channels/chan_motif.c: Add additional description stanza names from the old Google Talk protocol which is used with Google Voice. (closes issue ASTERISK-20114) Reported by: Malcolm Davenport * channels/chan_motif.c: Respect codec preference order when adding codecs to a media description. This change allows an endpoint in motif.conf to be configured with a preference of G.722 and fallback of ulaw. With Google this allows communication with Google Talk clients to use G.722 while when using Google Voice ulaw will be used. (closes issue ASTERISK-20114) Reported by: Malcolm Davenport 2012-07-10 13:40 +0000 [r369872] Kinsey Moore * main/pbx.c, /, apps/app_stack.c: Improve Goto and GotoIf related documentation Correct documentation on labeliftrue and labeliffalse parameters of GotoIf() and update several other locations that use the same syntax. (closes issue ASTERISK-20007) Patch-by: Leif Madsen Reported-by: WIMPy ........ Merged revisions 369869 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369871 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-10 13:34 +0000 [r369870] Matthew Jordan * main/libasteriskssl.c: Fix initial loading problem with res_curl When the OpenSSL duplicate initialization issues were resolved in r351447, res_curl could fail to load if it checked SSL_library_init after SSL initialization completed. This is due to the SSL_library_init stub returning a value of 0 for success, as opposed to a value of 1. OpenSSL uses a value of 1 to indicate success - in fact, SSL_library_init is documented to always return 1. Interestingly, the CURL libraries actually checked the return value - the fact that nothing else that depends on OpenSSL was having problems loading probably means they don't check the return value. (closes issue AST-924) Reported by: Guenther Kelleter patches: (AST-924.patch license #6372 uploaded by Guenther Kelleter) 2012-07-10 11:49 +0000 [r369837-369864] Joshua Colp * res/res_rtp_asterisk.c, channels/chan_motif.c: Add required items for Google video support. This adds legacy STUN support for RTCP sockets, adds RTCP candidates to the Google transport information, and adds required codec parameters. (closes issue ASTERISK-20106) Reported by: Malcolm Davenport * main/stun.c: When receiving a STUN binding request send one out as the Google Talk client uses this as a method to determine if the remote party is still reachable or not. Failure to do this results in the Google Talk client ignoring RTP packets after a specific period of time. This is also done as a result of receiving a STUN binding request so that the username information can be used from the inbound request, thus not requiring it to be stored on a per candidate basis. (closes issue ASTERISK-20107) Reported by: Malcolm Davenport * channels/chan_sip.c: Add support for exposing the received contact URI and also for setting the request URI in messages. (closes issue AST-911) * channels/chan_motif.c: Force the clock rate of G.722 to be 16000 when using the Google transports as it is 8000 elsewhere. (closes issue ASTERISK-20105) Reported by: Malcolm Davenport * configs/motif.conf.sample: Document that multiple endpoints using the same connection is not supported. (closes issue ASTERISK-20104) Reported by: Malcolm Davenport 2012-07-09 17:07 +0000 [r369820] Jason Parker * configs/sip_notify.conf.sample, /: Add Digium phones context to sip_notify sample config. This makes it so that they can be reconfigured remotely. (closes issue ASTERISK-19910) ........ Merged revisions 369818 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369819 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-09 16:44 +0000 [r369811-369817] Joshua Colp * res/res_rtp_asterisk.c: Fix an issue where media would not flow for situations where the legacy STUN code is in use. The STUN packets should *not* be blocked by strict RTP. (closes issue ASTERISK-20102) Reported by: Malcolm Davenport * res/res_xmpp.c: Add additional namespaces for Google Talk which are used for the gmail client. (closes issue ASTERISK-20101) Reported by: Malcolm Davenport * channels/chan_motif.c: Fix dependency to be on res_xmpp. Long ago in a galaxy far far away it used to use res_jabber. 2012-07-09 14:54 +0000 [r369794] Jonathan Rose * /, channels/chan_sip.c: chan_sip: Fix small behavioral change accidentally introduced in r369750 When removing the warning for AST_CONTROL_FLASH from sip_indicate, I also inadvertently changed the return value, which would likely make the indication not be sent in audio. This fixes that while still removing the warning message. ........ Merged revisions 369792 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369793 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-07 17:06 +0000 [r369769] Joshua Colp * res/res_xmpp.exports.in (added), include/asterisk/xmpp.h, channels/chan_motif.c (added), UPGRADE.txt, channels/chan_gtalk.c, res/res_xmpp.c, CHANGES, res/res_jabber.c, configs/motif.conf.sample (added): Add a new unified Jingle, Google Jingle, and Google Talk channel driver written from scratch called chan_motif. This channel driver is a replacement for both chan_gtalk and chan_jingle but adds additional features not found in either. These features include full configuration reload, video, full codec support, bidirectional cause code mapping, hold, unhold, and ringing indication. It is also compliant with the current published Jingle and Google Jingle specifications. The original Google Talk protocol is also supported for Google Voice interoperability. You may ask yourself though where the name motif comes from... and I would say to you... music! motif: a perceivable or salient recurring fragment or succession of notes Sorta like a jingle! Review: https://reviewboard.asterisk.org/r/1917/ 2012-07-06 22:03 +0000 [r369765] Kinsey Moore * channels/chan_dahdi.c, channels/sig_analog.c, channels/chan_iax2.c, channels/sig_pri.c, channels/sig_ss7.c: Remove unnecessary generation of informational cause frames It is not necessary to generate information cause code frames on every protocol event that occurs. This removes all the instances where the frame was not conveying a cause code and was instead just conveying a protocol-specific message. This also corrects the generation of the message associated with disconnects for MFC/R2 to use the MFC/R2 specific text for the disconnect cause. 2012-07-06 21:28 +0000 [r369764] Jonathan Rose * /, channels/chan_sip.c: chan_sip: Add case for FLASH control frames so that we don't display a warning. chan_sip channels can receive flash control frames when connected to analog phones and possibly for other reasons. There really isn't a reason to warn when these frames are received, we can safely ignore them. Patches: dahdi_sip_flash.diff uploaded by Jonathan Rose (license 6182) ........ Merged revisions 369750 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369751 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-06 18:49 +0000 [r369710-369733] Mark Michelson * main/tcptls.c, /: Remove a superfluous and dangerous freeing of an SSL_CTX. The problem here is that multiple server sessions share a SSL_CTX. When one session ended, the SSL_CTX would be freed and set NULL, leaving the other sessions unable to function. The code being removed is superfluous because the SSL_CTX structures for servers will be properly freed when ast_ssl_teardown is called. (closes issue ASTERISK-20074) Reported by Trevor Helmsley Patches: ASTERISK-20074.diff uploaded by Mark Michelson (license #5049) Testers: Trevor Helmsley ........ Merged revisions 369731 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369732 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/bridging.c: Fix bridging thread leak. The bridge thread was exiting but was never being reaped using pthread_join(). This has been fixed now by calling pthread_join() in ast_bridge_destroy(). (closes issue ASTERISK-19834) Reported by Marcus Hunger Review: https://reviewboard.asterisk.org/r/2012 ........ Merged revisions 369708 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369709 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-06 14:32 +0000 [r369703] Joshua Colp * res/pjproject/pjnath/include/pjnath/ice_session.h, res/pjproject/pjnath/src/pjnath/ice_session.c: Import revision 4196 from pjproject trunk. Fix a crash issue when starting ICE connectivity checks and immediately destroying the ICE session. This was exposed by the SIP CCSS test. Full fix for this issue will be worked on as a medium to long term roadmap item. pjroject issue viewable at https://trac.pjsip.org/repos/ticket/1548 2012-07-05 21:36 +0000 [r369681] Matthew Jordan * res/res_stun_monitor.c, CHANGES: Add 'stun show status' command This patch adds a new CLI command, 'stun show status'. This command will show a table describing all known STUN servers and statuses. (closes issue ASTERISK-18046) Reported by: Jeremy Kister Tested by: Jeremy Kister patches: (stun-show-status-v4-trunk.patch license #6232 uploaded by Jeremy Kister) Review: https://reviewboard.asterisk.org/r/2001 2012-07-05 19:36 +0000 [r369677] Richard Mudgett * res/pjproject/pjmedia/include/pjmedia, res/pjproject/pjsip/include/pjsip, res/pjproject/pjlib/include/pj/compat, res/pjproject/pjmedia/include/pjmedia-codec: Make res/pjproject ignore more files. 2012-07-05 19:36 +0000 [r369676] Kinsey Moore * /, apps/app_voicemail.c: AST-2012-011: Resolve heap corruption issue with voicemail The heard and deleted arrays in the voicemail state structure were not handled properly following the memory leak fix in r354890 and a fix for an invalid free in r356797. This could result in accessing and writing into freed memory. The allocation for these arrays has been reworked to avoid the possibility of invalid frees, access of freed memory, and crashes that were occurring as a result of this. Locking around accesses and modifications of the voicemail state structure members dh_arraysize, heard, and deleted has been added to prevent simultaneous modification and access when IMAP storage is in use. If IMAP storage is not in use, this locking is not compiled in. Review: https://reviewboard.asterisk.org/r/1994/ (closes issue ASTERISK-19923) Reported by: Dan Delaney Tested by: Dan Delaney, Julian Yap Patches: vm_alloc_fix.diff uploaded by kmoore (license 6273) ........ Merged revisions 369652 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369653 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-05 19:32 +0000 [r369666-369673] Richard Mudgett * res/pjproject/pjsip/src/pjsip-ua, res/pjproject/pjsip-apps/src/ipjsystest/ipjsystest.xcodeproj, res/pjproject/pjnath/src/pjnath-test, res/pjproject/third_party/build/speex, res/pjproject/third_party/build/gsm/output, res/pjproject/pjmedia/include/pjmedia-codec, res/pjproject/third_party/build/baseclasses, res/pjproject/third_party/build/srtp, res/pjproject/pjsip-apps/src/samples, res/pjproject/pjlib-util/lib, res/pjproject/pjmedia/bin, res/pjproject/pjlib/include/pj++, res/pjproject/tests/pjsua/scripts-call, res/pjproject/third_party/srtp/doc, res/pjproject/pjsip-apps/src/pocketpj/output, res/pjproject/pjnath/bin, res/pjproject/third_party/srtp/crypto/replay, res/pjproject/pjsip/include/pjsip, res/pjproject/third_party/build/speex/speex, res/pjproject/build.symbian, res/pjproject/third_party/bin, res/pjproject/pjsip/src/pjsua-lib, res/pjproject/third_party/srtp/include, res/pjproject/third_party/portaudio/doc, res/pjproject/lib, res/pjproject/pjmedia/include/pjmedia-videodev, res/pjproject/pjlib/bin, res/pjproject/third_party/srtp/crypto/cipher, res/pjproject/third_party/build/speex/output, res/pjproject/pjlib-util/src/pjlib-util, res/pjproject/third_party/portaudio/test, res/pjproject/third_party/build/gsm, res/pjproject/third_party/portaudio/include, res/pjproject/pjsip-apps/src/pjsua_wince, res/pjproject/pjsip/include/pjsip-simple, res/pjproject/pjmedia/src/pjmedia-codec, res/pjproject/tests/pjsua, res/pjproject/pjsip-apps/src/pocketpj/res, res/pjproject/pjsip-apps/src/3rdparty_media_sample, res/pjproject/third_party/gsm/inc, res/pjproject/pjsip-apps/build/wince-evc4, res/pjproject/pjsip-apps/src/ipjsua/Resources-iPad, res/pjproject/third_party/portaudio/src/hostapi, res/pjproject/third_party/portaudio/build, res/pjproject/build, res/pjproject/third_party/build/resample, res/pjproject/third_party/speex/include, res/pjproject/pjsip/src/pjsip, res/pjproject/pjlib/build/wince-evc4, res/pjproject/pjsip-apps/src/symbian_ua_gui/group, res/pjproject/pjsip-apps/src/symbian_ua, res/pjproject/tests/pjsua/wavs, res/pjproject/third_party/portaudio/src/os/win, res/pjproject/pjsip-apps/src/ipjsua/Classes, res/pjproject/pjmedia/include/pjmedia, res/pjproject/tests/pjsua/scripts-sendto, res/pjproject/third_party/gsm/src, res/pjproject/third_party/portaudio/build/msvc, res/pjproject/pjsip-apps/src/confbot, res/pjproject/pjnath/src/pjturn-client, res/pjproject/pjlib-util/build/output, res/pjproject/third_party/BaseClasses, res/pjproject/third_party/portaudio/src/hostapi/wasapi, res/pjproject/third_party/portaudio/src/hostapi/wdmks, res/pjproject/pjlib/src/pj/compat, res/pjproject/third_party/srtp/crypto/include, res/pjproject/third_party/speex/include/speex, res/pjproject/third_party/gsm/add-test, res/pjproject/pjsip/build, res/pjproject/pjsip-apps/src/pjsua_wince/output, res/pjproject/third_party/gsm/lib, res/pjproject/pjsip, res/pjproject/pjsip-apps/src/pjsystest, res/pjproject/third_party/portaudio/src, res/pjproject/third_party/speex/libspeex, res/pjproject/pjsip/build/wince-evc4/output, res/pjproject/pjlib-util/src/pjlib-util-test, res/pjproject/pjsip-apps/src/symsndtest, res/pjproject/third_party/srtp/tables, res/pjproject/third_party/g7221, res/pjproject/pjmedia/include, res/pjproject/pjlib/include/pj, res/pjproject/third_party/build/portaudio/output, res/pjproject/pjsip-apps/bin, res/pjproject/pjsip-apps/src/ipjsua/ipjsua.xcodeproj, res/pjproject/pjsip-apps/src/pjsua, res/pjproject/third_party/srtp/test, res/pjproject/pjsip/include/pjsip-ua, res/pjproject/third_party/resample, res/pjproject/third_party/build/ilbc, res/pjproject/pjmedia/src/pjmedia-audiodev, res/pjproject/pjsip-apps/src/ipjsua, res/pjproject/third_party/srtp/srtp, res/pjproject/third_party/build/milenage, res/pjproject/pjmedia/src/pjmedia, res/pjproject/pjlib-util, res/pjproject/third_party/portaudio/src/common, res/pjproject/third_party/portaudio/bindings/cpp, res/pjproject/pjlib-util/build/wince-evc4/output, res/pjproject/third_party/srtp/crypto/kernel, res/pjproject/tests/pjsua/scripts-pres, res/pjproject/pjnath, res/pjproject/pjsip/build/output, res/pjproject/pjsip-apps/build/output, res/pjproject/pjsip-apps/build, res/pjproject/tests/automated, res/pjproject/pjnath/build/wince-evc4/output, res/pjproject/third_party/portaudio/src/hostapi/asio, res/pjproject/pjnath/include/pjnath, res/pjproject/pjsip/src/test, res/pjproject/pjsip-apps/src/symbian_ua_gui/gfx, res/pjproject/pjsip/bin, res/pjproject/third_party/build/portaudio, res/pjproject/pjlib/build/output, res/pjproject/pjmedia/src, res/pjproject/pjlib/src/pj, res/pjproject/pjlib, res/pjproject/pjlib/build/wince-evc4/output, res/pjproject/pjmedia/src/test/vectors, res/pjproject/third_party/portaudio/src/hostapi/jack, res/pjproject/pjmedia/src/pjmedia-codec/g722, res/pjproject/third_party/portaudio/src/hostapi/coreaudio, res/pjproject/pjmedia/build/output, res/pjproject/pjlib-util/include/pjlib-util, res/pjproject/third_party/portaudio/src/hostapi/asihpi, res/pjproject/third_party/milenage, res/pjproject/pjnath/src, res/pjproject/tests/pjsua/scripts-run, res/pjproject/pjlib-util/build/wince-evc4, res/pjproject/pjmedia/lib, res/pjproject/pjmedia/src/test, res/pjproject/third_party/speex/symbian, res/pjproject/third_party/speex/win32, res/pjproject/third_party/srtp/crypto/test, res/pjproject/pjlib-util/bin, res/pjproject/third_party/portaudio/build/scons, res/pjproject/tests/cdash, res/pjproject/tests/pjsua/scripts-media-playrec, res/pjproject/third_party/build/portaudio/src, res/pjproject/pjlib/src, res/pjproject/third_party/mp3, res/pjproject/pjnath/lib, res/pjproject/third_party/build/g7221, res/pjproject/third_party/gsm/man, res/pjproject/third_party/portaudio/src/os/unix, res/pjproject/third_party/portaudio/bindings, res/pjproject/pjsip-apps/src/python, res/pjproject/pjnath/src/pjnath, res/pjproject/third_party/lib, res/pjproject/third_party/portaudio/src/os/mac_osx, res/pjproject/third_party/srtp/crypto/ae_xfm, res/pjproject/pjsip-apps/bin/samples, res/pjproject/pjnath/src/pjturn-srv, res/pjproject/third_party/portaudio/pablio, res/pjproject/pjlib/lib, res/pjproject/third_party/g7221/decode, res/pjproject/pjlib/include/pj/compat, res/pjproject/third_party/gsm, res/pjproject/third_party/build/baseclasses/output, res/pjproject/third_party/build/srtp/output, res/pjproject/third_party/srtp, res/pjproject/pjnath/build, res/pjproject/tests/pjsua/scripts-sipp, res/pjproject/pjsip-apps, res/pjproject/pjnath/build/wince-evc4, res/pjproject/third_party/srtp/crypto/rng, res/pjproject/pjsip/build/wince-evc4, res/pjproject/pjsip-apps/build/wince-evc4/output, res/pjproject/third_party/gsm/tst, res/pjproject/third_party/portaudio/src/hostapi/dsound, res/pjproject/third_party/portaudio/testcvs, res/pjproject/pjsip-apps/src/ipjsystest/Classes, res/pjproject/pjlib/build, res/pjproject/third_party/portaudio, res/pjproject/third_party/portaudio/src/hostapi/wmme, res/pjproject/pjlib-util/docs, res/pjproject/pjmedia/include/pjmedia-audiodev, res/pjproject/pjsip-apps/src/vidgui, res/pjproject/pjlib/src/pjlib-test, res/pjproject/pjsip-apps/src/py_pjsua, res/pjproject/third_party/portaudio/src/os, res/pjproject/pjsip/include, res/pjproject/pjmedia/build/wince-evc4, res/pjproject/pjmedia/src/pjmedia-videodev, res/pjproject/pjsip-apps/src, res/pjproject/third_party/speex, res/pjproject/third_party/gsm/tls, res/pjproject/third_party/g7221/common, res/pjproject/tests/pjsua/tools, res/pjproject/third_party/resample/include, res/pjproject/third_party/build/samplerate/output, res/pjproject/third_party/build/samplerate, res/pjproject/third_party/gsm/bin, res/pjproject/pjsip/src/pjsip-simple, res/pjproject/third_party/g7221/encode, res/pjproject/pjlib/src/pjlib-samples, res/pjproject/pjsip-apps/lib, res/pjproject/pjsip-apps/src/ipjsystest, res/pjproject/pjlib-util/include, res/pjproject/third_party/build/resample/output, res/pjproject/third_party/build/ilbc/output, res/pjproject/third_party/srtp/crypto, res/pjproject/pjsip-apps/src/python/samples, res/pjproject/tests, res/pjproject/pjsip-apps/src/symbian_ua_gui/sis, res/pjproject/pjnath/include, res/pjproject/pjsip-apps/src/symbian_ua_gui, res/pjproject/pjmedia/build, res/pjproject/pjmedia, res/pjproject/third_party/build/milenage/output, res/pjproject/pjlib-util/build, res/pjproject/pjsip/src, res/pjproject/pjmedia/build/wince-evc4/output, res/pjproject/third_party/portaudio/src/hostapi/alsa, res/pjproject/pjsip-apps/docs, res/pjproject/pjsip-apps/src/symbian_ua_gui/inc, res/pjproject/pjsip-apps/src/symbian_ua_gui/data, res/pjproject/tests/pjsua/scripts-pesq, res/pjproject/third_party/srtp/pjlib, res/pjproject/pjlib/include, res/pjproject/pjnath/build/output, res/pjproject/third_party/srtp/crypto/hash, res/pjproject/build/vs, res/pjproject/pjlib/docs, res/pjproject/third_party/build, res/pjproject/third_party/resample/src, res/pjproject/third_party, res/pjproject/pjlib/src/pjlib++-test, res/pjproject/third_party/build/g7221/output, res/pjproject/third_party/srtp/crypto/math, res/pjproject/pjsip/lib, res/pjproject/pjsip-apps/src/pocketpj, res/pjproject/tests/pjsua/scripts-recvfrom, res/pjproject/third_party/portaudio/build/dev-cpp, res/pjproject/pjsip/include/pjsua-lib, res/pjproject/pjsip-apps/src/symbian_ua_gui/src, res/pjproject, res/pjproject/third_party/portaudio/src/hostapi/oss, res/pjproject/pjlib-util/src, res/pjproject/third_party/ilbc: Make res/pjproject ignore some generated files. * include/asterisk/utils.h: Tweak some comments and whitespace in utils.h 2012-07-05 18:11 +0000 [r369644] Jonathan Rose * apps/app_mixmonitor.c: app_mixmonitor: Fix a reference leak in manager_mixmonitor function Manager_mixmonitor included an early return on failed executions of mixmonitor that would result in a leaked channel reference. (closes issue ASTERISK-19943) Reported by: Mark Murawski Patches: mixmonitor-trunk-368394.patch uploaded by Mark Murawski (license 5791) 2012-07-05 17:03 +0000 [r369628] Matthew Jordan * /, channels/chan_sip.c: Do not send a BYE when a provisional response arrives during a re-INVITE Commits r369557 and r369579 were done to improve handling of re-INVITEs when the UA that was supposed to receive the re-INVITE fails to respond. A limitation of those patches occurred when a UA sent a provisional response to the re-INVITE. This triggered a sending of a BYE in check_pending. This patch tweaks the handling of the re-INVITE such that a BYE is not sent in response to those messages. (issue ASTERISK-19992) Reported by: Steve Davies Tested by: Steve Davies patches: (reinvite_tweak.diff license #5012 by Steve Davies) ........ Merged revisions 369626 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369627 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-05 11:42 +0000 [r369602-369620] Alexandr Anikin * addons/ooh323c/src/ooCmdChannel.c, addons/ooh323c/src/ooStackCmds.c, addons/ooh323c/src/ooq931.c: Fix dev mode ooh323 warnings * addons/chan_ooh323.c, addons/ooh323c/src/ooq931.h, addons/ooh323c/src/ooCalls.h, configs/chan_ooh323.conf.sample (removed), addons/ooh323c/src/ooh323ep.c, CHANGES, configs/ooh323.conf.sample (added), addons/ooh323c/src/ooLogChan.c, addons/ooh323c/src/ooStackCmds.c, addons/ooh323c/src/ooh323.c, addons/ooh323c/src/ooLogChan.h, addons/ooh323c/src/ooStackCmds.h, addons/ooh323c/src/ooh245.c, addons/ooh323cDriver.c, addons/ooh323c/src/ooh245.h, addons/ooh323c/src/ooCmdChannel.c, addons/ooh323c/src/ooq931.c: Added direct media support to ooh323 channel driver options are documented in config sample sample config rename to proper name - ooh323.conf To change media address ooh323 send empty TCS if there was completed TCS exchange or send facility forwardedelements with new fast start proposal if not. Then close transmit logical channels and renew TCS exchange. If new fast start proposal is received then ooh323 stack call back channel driver routine to change rtp address in the rtp instance. If empty TCS is received then close transmit logical channels and renew TCS exchange Review: https://reviewboard.asterisk.org/r/1607/ * addons/ooh323cDriver.c: fix small mistake in the previous * addons/ooh323c/src/ooTimer.c, addons/ooh323c/src/ooCapability.c, addons/ooh323c/src/decode.c, addons/ooh323c/src/perutil.c, addons/ooh323cDriver.c, addons/ooh323c/src/ooSocket.c, addons/ooh323c/src/ooq931.c: Fix modern gcc warning Review: https://reviewboard.asterisk.org/r/1767 2012-07-03 17:07 +0000 [r369559-369581] Terry Wilson * /, channels/chan_sip.c: More improvements to re-INVITEs timing out after a provisional response There is no need to call check_pendings() on a final response to an INVITE when destroying the scheduler entry as it will be done later during normal processing. (issue ASTERISK-19992) ........ Merged revisions 369579 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369580 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c, channels/sip/include/sip.h: Better handle re-INVITEs with provisional but no final repsonses A previous attempt at fixing this issue had negative side effects related to attended transfers which this patch should resolve. Many thanks to Steve Davies for all of the good suggestions and testing. (closes issue ASTERISK-19992) Reported by: Steve Davies Tested by: Steve Davies, Terry Wilson Review: https://reviewboard.asterisk.org/r/2009/ ........ Merged revisions 369557 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369558 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-07-02 14:06 +0000 [r369517-369527] Joshua Colp * configs/xmpp.conf.sample (added), include/asterisk/xmpp.h (added), configs/cli_aliases.conf.sample, res/res_xmpp.c (added): Add a cleaned up drop-in replacement for res_jabber called res_xmpp. This provides the same externally facing functionality but is implemented differently internally. This is currently not built by default but this will be changed once chan_jingle2 (insert actual name in your head when reading this after it has been merged) is in the tree. Review: https://reviewboard.asterisk.org/r/1983/ * res/res_rtp_asterisk.c: Ensure the timer heap is protected by a lock. * res/pjproject/pjlib/include/pj/config_site.h: Enable IPv6 support in pjproject. * res/res_rtp_asterisk.c: Don't try to send connectivity checks on RTCP if RTCP is no longer present and don't do multiple ICE connectivity checks at once. * res/pjproject/pjlib/src/pj/sock_qos_common.c (added), res/pjproject/pjlib-util/src/pjlib-util/crc32.c (added), res/pjproject/pjsip/src/pjsip-simple/xpidf.c (added), res/pjproject/third_party/gsm/src/gsm_implode.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-cancel-no-final.xml (added), res/pjproject/build.symbian/pjmedia.mmp (added), res/pjproject/third_party/build/portaudio/src/pa_hostapi.h (added), res/pjproject/pjlib/src/pjlib-test/fifobuf.c (added), res/pjproject/pjlib/src/pj/file_access_unistd.c (added), res/pjproject/third_party/gsm/src/toast_ulaw.c (added), res/pjproject/pjsip/include/pjsip/sip_transport_tls.h (added), res/pjproject/pjsip/include/pjsip/sip_multipart.h (added), res/pjproject/pjmedia/src/pjmedia/errno.c (added), res/pjproject/pjsip-apps/src/pjsua_wince/pjsua_wince.vcp (added), res/pjproject/third_party/speex/COPYING (added), res/pjproject/pjlib/src/pj/os_core_darwin.m (added), res/pjproject/third_party/ilbc/packing.c (added), res/pjproject/third_party/build/portaudio/src/pa_mac_core_internal.h (added), res/pjproject/tests/pjsua/scripts-sendto/300_srtp_receive_crypto_tag_zero.py (added), res/pjproject/third_party/ilbc/packing.h (added), res/pjproject/pjlib/src/pj/pool_caching.c (added), res/pjproject/pjnath/include/pjnath/errno.h (added), res/pjproject/pjmedia/include/pjmedia-codec/h264_packetizer.h (added), res/pjproject/pjmedia/include/pjmedia/sdp_neg.h (added), res/pjproject/third_party/speex/libspeex/lsp_bfin.h (added), res/pjproject/third_party/portaudio/aclocal.m4 (added), res/pjproject/third_party/mp3/mp3_port.h (added), res/pjproject/third_party/BaseClasses/ctlutil.cpp (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJDlg.cpp (added), res/pjproject/tests/pjsua/scripts-recvfrom/240_publish_scenarios.py (added), res/pjproject/README-RTEMS (added), res/pjproject/third_party/build/portaudio/output (added), res/pjproject/pjsip-apps/build/Makefile (added), res/pjproject/tests/pjsua/scripts-sipp/prack_fork.xml (added), res/pjproject/pjlib-util/src/pjlib-util-test/stun.c (added), res/pjproject/pjlib-util/src/pjlib-util/dns_dump.c (added), res/pjproject/pjmedia/include/pjmedia/circbuf.h (added), res/pjproject/pjlib/build/os-darwinos.mak (added), res/pjproject/third_party/srtp/test/rtpw.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-answer-180-multiple-fmts.xml (added), res/pjproject/third_party/srtp/crypto/include/cryptoalg.h (added), res/pjproject/third_party/portaudio/bindings/cpp (added), res/pjproject/tests/pjsua/scripts-sipp/uas-answer-200-reinvite-without-sdp.xml (added), res/pjproject/third_party/portaudio/configure.in (added), res/pjproject/pjmedia/include/pjmedia-codec/g722.h (added), res/pjproject/pjsip-apps/src/vidgui/pj-pkgconfig.mak (added), res/pjproject/pjmedia/include/pjmedia-codec/speex.h (added), res/pjproject/config.guess (added), res/pjproject/tests/cdash/cfg_site_sample.py (added), res/pjproject/third_party/portaudio/src/common/pa_skeleton.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.hrh (added), res/pjproject/third_party/srtp/test/getopt_s.c (added), res/pjproject/pjmedia/src/pjmedia-codec/g722 (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_g722.py (added), res/pjproject/pjnath/src/pjturn-client/client_main.c (added), res/pjproject/third_party/gsm/src/short_term.c (added), res/pjproject/build.symbian/libg7221codec.mmp (added), res/pjproject/pjmedia/src/pjmedia/wsola.c (added), res/pjproject/pjlib-util/include/pjlib-util/hmac_sha1.h (added), res/pjproject/pjlib/include/pj++/list.hpp (added), res/pjproject/third_party/ilbc/anaFilter.c (added), res/pjproject/third_party/mp3 (added), res/pjproject/pjmedia/src/pjmedia/tonegen.c (added), res/pjproject/pjsip-apps/src/samples/stateful_proxy.c (added), res/pjproject/third_party/ilbc/anaFilter.h (added), res/pjproject/pjsip-apps/src/symsndtest/app_main.cpp (added), res/pjproject/pjsip-apps/src/pocketpj/SettingsDlg.cpp (added), res/pjproject/tests/pjsua/scripts-sipp/uas-invite.xml (added), res/pjproject/third_party/g7221/encode/sam2coef.c (added), res/pjproject/pjlib/src/pj/compat/string.c (added), res/pjproject/pjlib/include/pj/compat/cc_gcce.h (added), res/pjproject/pjlib/include/pj/config_site_sample.h (added), res/pjproject/third_party/build/srtp/output (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_speex_8000.py (added), res/pjproject/tests/pjsua/scripts-sipp/uac-options.xml (added), res/pjproject/third_party/ilbc/iCBConstruct.c (added), res/pjproject/tests/pjsua/scripts-sendto/153_err_sdp_unsupported_codec.py (added), res/pjproject/pjsip/build/wince-evc4 (added), res/pjproject/third_party/ilbc/iCBConstruct.h (added), res/pjproject/pjsip-apps/src/py_pjsua/py_pjsua.def (added), res/pjproject/pjnath/build/pjstun_srv_test.vcproj (added), res/pjproject/pjlib/src/pjlib-test/util.c (added), res/pjproject/pjmedia/include/pjmedia-audiodev (added), res/pjproject/pjlib/src/pj/ctype.c (added), res/pjproject/third_party/ilbc/enhancer.c (added), res/pjproject/pjsip-apps/src/py_pjsua (added), res/pjproject/third_party/speex/libspeex/modes_wb.c (added), res/pjproject/third_party/gsm/tst/gsm2cod.c (added), res/pjproject/third_party/ilbc/enhancer.h (added), res/pjproject/pjsip-apps/src (added), res/pjproject/build/m-arm.mak (added), res/pjproject/third_party/gsm/src/add.c (added), res/pjproject/pjsip/src/pjsip/sip_parser_wrap.cpp (added), res/pjproject/pjlib/src/pj/timer_symbian.cpp (added), res/pjproject/pjsip-apps/src/vidgui/vidwin.cpp (added), res/pjproject/pjlib/include/pj/pool_buf.h (added), res/pjproject/third_party/g7221/encode (added), res/pjproject/pjmedia/src/pjmedia-audiodev/wmme_dev.c (added), res/pjproject/tests/pjsua/scripts-call/300_ice_1_0.py (added), res/pjproject/tests/pjsua/config_site.py (added), res/pjproject/pjsip-apps/src/pjsua/main.c (added), res/pjproject/pjlib/src/pj/os_timestamp_posix.c (added), res/pjproject/pjmedia/include/pjmedia-videodev/videodev_imp.h (added), res/pjproject/tests/pjsua/scripts-recvfrom/230_reg_bad_fail_stale_true.py (added), res/pjproject/third_party/srtp/config.h_win32vc7 (added), res/pjproject/tests/pjsua/scripts-pesq (added), res/pjproject/tests/pjsua/scripts-sipp/uas-reinv-glare.xml (added), res/pjproject/pjmedia/src/pjmedia/dummy.c (added), res/pjproject/tests/pjsua/scripts-recvfrom/209c_reg_handle_423_bad_min_expires2.py (added), res/pjproject/pjlib/include/pj++/hash.hpp (added), res/pjproject/pjmedia/include/pjmedia-audiodev/audiodev_imp.h (added), res/pjproject/tests/pjsua/scripts-sendto/401_fmtp_g7221_with_bitrate_24000.py (added), res/pjproject/pjsip-apps/src/pjsua/pjsua_app.c (added), res/pjproject/pjsip-apps/src/samples/stereotest.c (added), res/pjproject/build.symbian/pjstun_client.mmp (added), res/pjproject/pjsip-apps/src/pjsua_wince/pjsua_wince.cpp (added), res/pjproject/pjsip-apps/src/ipjsua/Classes/FirstViewController.h (added), res/pjproject/pjlib-util/lib (added), res/pjproject/pjsip-apps/src/samples (added), res/pjproject/pjsip-apps/src/ipjsua/Classes/FirstViewController.m (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_1_1.py (added), res/pjproject/pjmedia/include/pjmedia/vid_stream.h (added), res/pjproject/pjsip/src/pjsip/sip_dialog.c (added), res/pjproject/pjlib/include/pj/compat/cc_armcc.h (added), res/pjproject/third_party/build/speex/speex (added), res/pjproject/third_party/bin (added), res/pjproject/pjsip/build/Makefile (added), res/pjproject/pjlib-util/include/pjlib-util/stun_simple.h (added), res/pjproject/pjsip/src/pjsip/sip_util_proxy_wrap.cpp (added), res/pjproject/pjlib/include/pj/compat/m_m68k.h (added), res/pjproject/third_party/srtp/srtp.def (added), res/pjproject/pjlib/src/pjlib-test/rand.c (added), res/pjproject/third_party/build/gsm/config.h (added), res/pjproject/pjmedia/include/pjmedia/avi.h (added), res/pjproject/tests/pjsua/scripts-sipp/uac-bad-ack.xml (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_gsm.py (added), res/pjproject/pjsip/src/pjsip-ua/sip_reg.c (added), res/pjproject/pjsip/build/wince-evc4/pjsip_ua_wince.vcp (added), res/pjproject/pjsip/include/pjsip-ua/sip_regc.h (added), res/pjproject/tests/pjsua/mod_pesq.py (added), res/pjproject/pjnath/src/pjnath/ice_session.c (added), res/pjproject/pjlib-util/src/pjlib-util/scanner.c (added), res/pjproject/pjmedia/src/pjmedia-audiodev/audiodev.c (added), res/pjproject/pjsip-apps/src/confbot/confbot.py (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_0_3.py (added), res/pjproject/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_vid.c (added), res/pjproject/tests/pjsua/tools/cmp_wav.c (added), res/pjproject/tests/pjsua/scripts-sendto/320_srtp_with_unknown_media_2.py (added), res/pjproject/pjsip-apps/src/symbian_ua (added), res/pjproject/pjmedia/src/pjmedia-audiodev/alsa_dev.c (added), res/pjproject/third_party/portaudio/build/msvc (added), res/pjproject/pjmedia/src/pjmedia/sound_legacy.c (added), res/pjproject/third_party/ilbc/lsf.c (added), res/pjproject/pjsip/src/test/inv_offer_answer_test.c (added), res/pjproject/pjsip-apps/src/confbot (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c (added), res/pjproject/third_party/speex/libspeex/ltp_bfin.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/group/ABLD.BAT (added), res/pjproject/pjlib/src/pj/ioqueue_winnt.c (added), res/pjproject/third_party/ilbc/lsf.h (added), res/pjproject/third_party/speex/libspeex/lsp_tables_nb.c (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.h (added), res/pjproject/third_party/portaudio/build/scons/SConscript_common (added), res/pjproject/pjmedia/include/pjmedia/frame.h (added), res/pjproject/pjmedia/src/pjmedia-codec/audio_codecs.c (added), res/pjproject/pjlib-util/src/pjlib-util/xml_wrap.cpp (added), res/pjproject/pjsip-apps/src/pocketpj/res/PocketPJ.rc2 (added), res/pjproject/third_party/build/portaudio/src/pa_mac_core_utilities.c (added), res/pjproject/pjmedia/include/pjmedia-audiodev/audiotest.h (added), res/pjproject/pjlib/src/pj/guid_win32.c (added), res/pjproject/pjlib/build/os-sunos.mak (added), res/pjproject/third_party/build/srtp/Makefile (added), res/pjproject/third_party/speex/libspeex/gain_table.c (added), res/pjproject/third_party/build/portaudio/src/pa_mac_core_utilities.h (added), res/pjproject/third_party/BaseClasses/wxlist.h (added), res/pjproject/tests/pjsua/scripts-sendto/122_sdp_with_unknown_dynamic_1.py (added), res/pjproject/tests/pjsua/scripts-sendto/001_torture_4475_3_1_1_5.py (added), res/pjproject/pjsip-apps/src/pjsua/gui.h (added), res/pjproject/third_party/srtp/crypto/test/auth_driver.c (added), res/pjproject/pjlib/include/pj/activesock.h (added), res/pjproject/pjlib/src/pjlib-test/exception.c (added), res/pjproject/pjlib/src/pjlib-test/main_rtems.c (added), res/pjproject/third_party/build/portaudio/src/pa_linux_alsa.c (added), res/pjproject/pjlib-util/src/pjlib-util/symbols.c (added), res/pjproject/pjlib/include/pj/types.h (added), res/pjproject/pjnath/src/pjnath/turn_sock.c (added), res/pjproject/pjlib-util/src/pjlib-util/resolver_wrap.cpp (added), res/pjproject/third_party/build/portaudio/src/pa_linux_alsa.h (added), res/pjproject/pjlib/include/pj/compat/errno.h (added), res/pjproject/tests/pjsua/scripts-recvfrom/100_simple.py (added), res/pjproject/pjsip-apps/src/ipjsystest/RootViewController.xib (added), res/pjproject/pjlib/build/wince-evc4/output (added), res/pjproject/pjlib/src/pjlib-test/echo_clt.c (added), res/pjproject/third_party/portaudio/src/os/unix/pa_unix_util.c (added), res/pjproject/pjsip/build/wince-evc4/pjsua_lib_wince.vcp (added), res/pjproject/svn_add (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio/pa_mac_core_old.c (added), res/pjproject/pjlib-util/build/wince-evc4 (added), res/pjproject/pjmedia/src/test (added), res/pjproject/third_party/srtp/crypto/test (added), res/pjproject/third_party/portaudio/src/os/unix/pa_unix_util.h (added), res/pjproject/tests/pjsua/scripts-media-playrec (added), res/pjproject/pjsip-apps/src/samples/vid_streamutil.c (added), res/pjproject/pkgconfig.py (added), res/pjproject/third_party/srtp/crypto/hash/sha1.c (added), res/pjproject/pjlib/src/pj/addr_resolv_sock.c (added), res/pjproject/pjnath/src/pjturn-srv (added), res/pjproject/pjmedia/include/pjmedia/wav_playlist.h (added), res/pjproject/pjsip/include/pjsip/sip_resolve.h (added), res/pjproject/pjmedia/src/pjmedia-codec/ilbc.c (added), res/pjproject/pjmedia/src/pjmedia/format.c (added), res/pjproject/pjsip/src/pjsip/sip_dialog_wrap.cpp (added), res/pjproject/third_party/speex/include/speex/speex_buffer.h (added), res/pjproject/pjmedia/src/pjmedia/transport_adapter_sample.c (added), res/pjproject/pjsip-apps/src/vidgui/vidwin.h (added), res/pjproject/pjlib/src/pjlib-test/main_symbian.cpp (added), res/pjproject/pjlib/docs/doxygen.css (added), res/pjproject/third_party/gsm/src/gsm_explode.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.hrh (added), res/pjproject/third_party/speex/libspeex/kiss_fftr.c (added), res/pjproject/pjlib/src/pj/addr_resolv_linux_kernel.c (added), res/pjproject/third_party/gsm/tst/lin2cod.c (added), res/pjproject/pjmedia/src/pjmedia-codec/l16.c (added), res/pjproject/third_party/speex/libspeex/kiss_fftr.h (added), res/pjproject/pjsip-apps/src/pocketpj/SettingsDlg.h (added), res/pjproject/third_party/resample/src/stddefs.h (added), res/pjproject/pjmedia/src/pjmedia/rtcp_xr.c (added), res/pjproject/pjsip-apps/src/vidgui/vidgui.cpp (added), res/pjproject/pjsip/src/pjsip/sip_resolve.c (added), res/pjproject/pjsip/src/test/transport_tcp_test.c (added), res/pjproject/tests/pjsua/scripts-sendto/121_sdp_with_video_static_2.py (added), res/pjproject/build.symbian/libpassthroughcodec.mmp (added), res/pjproject/third_party/srtp/crypto/rng/ctr_prng.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-subscribe-notify-terminate.xml (added), res/pjproject/third_party/portaudio/fixfile.bat (added), res/pjproject/pjsip/src/test/multipart_test.c (added), res/pjproject/pjsip-apps/lib (added), res/pjproject/third_party/portaudio/pablio/pablio.c (added), res/pjproject/pjmedia/src/pjmedia/rtp.c (added), res/pjproject/pjmedia/src/pjmedia/stereo_port.c (added), res/pjproject/pjsip/src/test/tsx_uas_test.c (added), res/pjproject/third_party/portaudio/pablio/pablio.h (added), res/pjproject/third_party/speex/libspeex/vq_bfin.h (added), res/pjproject/pjmedia/include/pjmedia/bidirectional.h (added), res/pjproject/third_party/BaseClasses/arithutil.cpp (added), res/pjproject/third_party/build/milenage/output (added), res/pjproject/pjlib-util/src/pjlib-util/http_client.c (added), res/pjproject/third_party/srtp/crypto/hash/hmac.c (added), res/pjproject/third_party/speex/libspeex/quant_lsp.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-forked-200.xml (added), res/pjproject/pjmedia/src/pjmedia/mem_player.c (added), res/pjproject/third_party/speex/libspeex/quant_lsp.h (added), res/pjproject/third_party/speex/libspeex/filters_bfin.h (added), res/pjproject/pjsip-apps/src/samples/confbench.c (added), res/pjproject/pjmedia/src/pjmedia/resample_resample.c (added), res/pjproject/third_party/build/g7221/output (added), res/pjproject/pjsip/src/test/regc_test.c (added), res/pjproject (added), res/pjproject/pjmedia/include/pjmedia-videodev/videodev.h (added), res/pjproject/pjsip-apps/build/Samples-vc.mak (added), res/pjproject/pjlib/include/pj++/tree.hpp (added), res/pjproject/pjmedia/src/pjmedia/g711.c (added), res/pjproject/pjlib/include/pj/guid.h (added), res/pjproject/pjlib/include/pj/compat/cc_codew.h (added), res/pjproject/pjmedia/src/pjmedia/echo_port.c (added), res/pjproject/pjlib/src/pj/activesock.c (added), res/pjproject/third_party/BaseClasses/msgthrd.h (added), res/pjproject/pjmedia/bin (added), res/pjproject/third_party/portaudio/build/dev-cpp/Makefile-dll (added), res/pjproject/pjmedia/src/test/main.c (added), res/pjproject/pjsip-apps/src/samples/invtester.c (added), res/pjproject/pjmedia/include/pjmedia/avi_stream.h (added), res/pjproject/pjsip/src/test/tsx_bench.c (added), res/pjproject/third_party/speex/libspeex/testdenoise.c (added), res/pjproject/third_party/portaudio/src/hostapi/dsound/pa_win_ds_dynlink.c (added), res/pjproject/third_party/portaudio/src/hostapi/dsound/pa_win_ds_dynlink.h (added), res/pjproject/pjsip-apps/src/samples/recfile.c (added), res/pjproject/pjsip/include/pjsip/sip_endpoint.h (added), res/pjproject/pjmedia/include/pjmedia_videodev.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.rss (added), res/pjproject/pjmedia/src/pjmedia/splitcomb.c (added), res/pjproject/third_party/ilbc/iLBC_test.c (added), res/pjproject/pjmedia/src/pjmedia-codec/gsm.c (added), res/pjproject/third_party/srtp/srtp7.sln (added), res/pjproject/pjlib/src/pjlib-test/string.c (added), res/pjproject/pjlib/include/pj/compat/high_precision.h (added), res/pjproject/pjlib-util/src/pjlib-util/getopt.c (added), res/pjproject/pjlib/src/pjlib-samples/except.c (added), res/pjproject/pjmedia/build/pjmedia_audiodev.vcproj (added), res/pjproject/pjsip-apps/src/pocketpj/resource.h (added), res/pjproject/third_party/speex/libspeex/bits.c (added), res/pjproject/pjmedia/src/pjmedia-codec/passthrough.c (added), res/pjproject/third_party/portaudio/configure (added), res/pjproject/pjsip-apps/src/py_pjsua/pjsua_app.py (added), res/pjproject/pjlib-util/src/pjlib-util/pcap.c (added), res/pjproject/third_party/gsm/add-test (added), res/pjproject/tests/automated/symbian-vas.xml.template (added), res/pjproject/pjsip-apps/src/symsndtest (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_3_1.py (added), res/pjproject/pjlib/include/pj/ioqueue.h (added), res/pjproject/tests/pjsua/scripts-pesq/100_defaults.py (added), res/pjproject/pjnath/build/Makefile (added), res/pjproject/pjnath/src/pjnath/errno.c (added), res/pjproject/pjlib/include/pj/list_i.h (added), channels/chan_sip.c, res/pjproject/pjmedia/include/pjmedia/vid_codec_util.h (added), res/pjproject/pjmedia/src/pjmedia/echo_internal.h (added), res/pjproject/pjmedia/src/pjmedia/sdp_wrap.cpp (added), res/pjproject/pjmedia/include/pjmedia/g711.h (added), res/pjproject/build/vs/pjproject-vs8-common-defaults.vsprops (added), res/pjproject/self-test.mak (added), res/pjproject/third_party/portaudio/pablio/test_rw.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-reinv-and-ack-without-sdp.xml (added), res/pjproject/pjlib-util/build/wince-evc4/output (added), res/pjproject/pjnath/src/pjnath/stun_transaction.c (added), res/pjproject/build/vs/pjproject-vs8-wm5-common-defaults.vsprops (added), res/pjproject/tests/pjsua/scripts-recvfrom/201_reg_good_ok.py (added), res/pjproject/pjsip/src/pjsip/sip_msg.c (added), res/pjproject/pjlib/src/pj/unicode_symbian.cpp (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_2_3.py (added), res/pjproject/third_party/resample/src/smallfilter.h (added), res/pjproject/tests/pjsua/scripts-call/301_ice_public_a.py (added), res/pjproject/third_party/portaudio/src/common/pa_dither.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/group/Icons_aif_scalable_dc.mk (added), res/pjproject/third_party/srtp/Makefile.in (added), res/pjproject/third_party/portaudio/src/common/pa_dither.h (added), res/pjproject/pjmedia/src/pjmedia-codec/amr_sdp_match.c (added), res/pjproject/pjlib/src/pj/pool_dbg.c (added), res/pjproject/third_party/speex/libspeex/misc_bfin.h (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio (added), res/pjproject/pjlib/src/pj/file_io_win32.c (added), res/pjproject/pjlib-util/include/pjlib-util (added), res/pjproject/third_party/portaudio/build/msvc/portaudio.def (added), res/pjproject/third_party/speex/libspeex/smallft.c (added), res/pjproject/pjlib/include/pj/compat/string.h (added), res/pjproject/tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_1.py (added), res/pjproject/third_party/speex/libspeex/smallft.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/application.uidesign (added), res/pjproject/tests/pjsua/scripts-sendto/320_srtp2_no_crypto.py (added), res/pjproject/pjlib/src (added), res/pjproject/pjsip/src/pjsip/sip_uri.c (added), res/pjproject/tests/pjsua/scripts-sendto/410_fmtp_amrnb_offer_octet_align.py (added), res/pjproject/pjsip/include/pjsua-lib/pjsua_internal.h (added), res/pjproject/pjlib/include/pj/os.h (added), res/pjproject/pjlib-util/include/pjlib-util/types.h (added), res/pjproject/third_party/build/samplerate/libsamplerate_static.dsp (added), res/pjproject/pjlib-util/include/pjlib-util/string.h (added), res/pjproject/pjlib/src/pj/sock_qos_wm.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp (added), res/pjproject/build/m-sparc.mak (added), res/pjproject/pjlib/src/pjlib-test/main.c (added), res/pjproject/third_party/gsm/man/gsm_option.3 (added), res/pjproject/tests/pjsua/scripts-recvfrom/205_reg_good_no_realm.py (added), res/pjproject/pjmedia/build/wince-evc4/pjmedia_test.vcp (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_l16_8000_stereo.py (added), res/pjproject/third_party/srtp/srtp/srtp.c (added), res/pjproject/third_party/srtp/crypto/Makefile.in (added), res/pjproject/pjsip/build/pjsip_core.vcproj (added), res/pjproject/pjlib/src/pj/config.c (added), res/pjproject/pjmedia/include/pjmedia-codec/audio_codecs.h (added), res/pjproject/pjlib/include/pj/compat/rand.h (added), res/pjproject/third_party/portaudio/src/os/win/pa_win_util.c (added), res/pjproject/third_party/portaudio (added), res/pjproject/pjmedia/include/pjmedia/transport_srtp.h (added), res/pjproject/pjsip-apps/src/ipjsystest/Classes/TestViewController.h (added), res/pjproject/third_party/srtp/crypto/math/math.c (added), res/pjproject/third_party/build/portaudio/src/pa_process.c (added), res/pjproject/pjsip-apps/src/ipjsystest/Classes/TestViewController.m (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_g722.py (added), res/pjproject/pjmedia/src/pjmedia-codec/h263_packetizer.c (added), res/pjproject/third_party/build/portaudio/src/pa_process.h (added), res/pjproject/third_party/portaudio/src/hostapi/alsa/pa_linux_alsa.c (added), res/pjproject/pjmedia/include/pjmedia-codec/ipp_codecs.h (added), res/pjproject/build.symbian/pjlib_util.mmp (added), res/pjproject/tests/pjsua/scripts-sipp/uas-subscribe-terminated-retry.xml (added), res/pjproject/pjlib-util/build/wince-evc4/pjlib_util_wince.vcp (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c (added), res/pjproject/pjlib/src/pj/sock_common.c (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.h (added), res/pjproject/pjlib-util/build/wince-evc4/pjlib_util_wince.vcw (added), include/asterisk/rtp_engine.h, res/pjproject/tests/pjsua/scripts-sipp/uac-inv-two-media-but-one-disabled-no-rtpmap.xml (added), res/pjproject/pjsip/src/test/msg_test.c (added), res/pjproject/pjnath/src/pjnath/stun_msg_dump.c (added), res/pjproject/third_party/portaudio/build/dev-cpp/readme.txt (added), res/pjproject/pjmedia (added), res/pjproject/pjsip/src (added), res/pjproject/third_party/portaudio/testcvs/changeme.txt (added), res/pjproject/build/os-rtems.mak (added), res/pjproject/third_party/gsm/inc/unproto.h (added), res/pjproject/third_party/build/speex/libspeex.vcproj (added), res/pjproject/pjlib/include/pj/compat/ctype.h (added), res/pjproject/pjlib-util/src/pjlib-util/xml.c (added), res/pjproject/tests/automated/README.txt (added), res/pjproject/tests/pjsua/inc_cfg.py (added), res/pjproject/pjlib/src/pj/hash.c (added), res/pjproject/pjlib/src/pjlib-test/timer.c (added), res/pjproject/third_party/gsm/inc/toast.h (added), res/pjproject/pjnath/build/pjnath_test.vcproj (added), res/pjproject/pjsip-apps/build/get-footprint.py (added), res/pjproject/pjsip-apps/src/symsndtest/main_symbian.cpp (added), res/pjproject/pjlib-util/src/pjlib-util/dns.c (added), res/pjproject/tests/pjsua/mod_pres.py (added), res/pjproject/pjsip-apps/src/ipjsua/ipjsua-Info.plist (added), res/pjproject/pjnath/include/pjnath/config.h (added), res/pjproject/pjsip/include/pjsip/sip_ua_layer.h (added), res/pjproject/pjmedia/src/pjmedia-audiodev/null_dev.c (added), res/pjproject/third_party/srtp/include (added), res/pjproject/third_party/speex/libspeex/exc_20_32_table.c (added), res/pjproject/build/host-unix.mak (added), res/pjproject/pjmedia/src/pjmedia/alaw_ulaw.c (added), res/pjproject/tests/pjsua/scripts-sendto/323_srtp2_receive_too_long_key.py (added), res/pjproject/third_party/g7221/encode/dct4_a.c (added), res/pjproject/pjlib/src/pj/addr_resolv_symbian.cpp (added), res/pjproject/pjmedia/include/pjmedia-codec/types.h (added), res/pjproject/pjnath/include/pjnath/ice_strans.h (added), res/pjproject/pjlib/src/pj/ioqueue_linux_kernel.c (added), res/pjproject/third_party/g7221/encode/dct4_a.h (added), res/pjproject/third_party/speex/libspeex/vq_sse.h (added), res/pjproject/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_aud.c (added), res/pjproject/pjlib-util/src/pjlib-util/hmac_sha1.c (added), res/pjproject/third_party/portaudio/src/hostapi/wasapi/pa_win_wasapi.cpp (added), res/pjproject/third_party/srtp/test/srtp_driver.c (added), res/pjproject/third_party/portaudio/src/hostapi/wmme/pa_win_wmme.c (added), res/pjproject/build.symbian/01.bat (added), res/pjproject/pjsip-apps/src/pocketpj/res (added), res/pjproject/third_party/srtp/crypto/VERSION (added), res/pjproject/pjsip-apps/src/symbian_ua/main_symbian.cpp (added), res/pjproject/third_party/portaudio/src/hostapi (added), res/pjproject/pjsip/src/pjsip/sip_util_statefull.c (added), res/pjproject/tests/cdash/main.py (added), res/pjproject/tests/pjsua/scripts-sendto/155_err_sdp_bad_syntax.py (added), res/pjproject/pjsip/src/pjsip-simple/iscomposing.c (added), res/pjproject/third_party/gsm/tst/cod2lin.c (added), res/pjproject/pjsip-apps/src/3rdparty_media_sample/config_site.h (added), res/pjproject/third_party/gsm/src (added), res/pjproject/pjmedia/src/pjmedia/codec.c (added), res/pjproject/third_party/portaudio/build/msvc/portaudio.sln (added), res/pjproject/third_party/build/portaudio/src/pa_win_wmme.c (added), res/pjproject/pjlib/src/pj/sock_bsd.c (added), res/pjproject/pjlib/src/pj/lock.c (added), res/pjproject/third_party/speex/libspeex/stereo.c (added), res/pjproject/pjsip-apps/src/symsndtest/symsndtest_reg.rss (added), res/pjproject/third_party/srtp/crypto/ae_xfm/xfm.c (added), res/pjproject/third_party/build/portaudio/src/pa_win_wmme.h (added), res/pjproject/pjsip-apps/src/pjsua_wince/newres.h (added), res/pjproject/pjlib-util/docs/doxygen.cfg (added), res/pjproject/build/m-powerpc.mak (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_8_32.py (added), res/pjproject/pjnath/src/pjturn-srv/turn.h (added), res/pjproject/pjsip/include/pjsip/sip_transaction.h (added), res/pjproject/third_party/g7221 (added), res/pjproject/pjnath/include/pjnath/nat_detect.h (added), res/pjproject/third_party/g7221/common/common.c (added), res/pjproject/pjsip/include/pjsip-simple/evsub.h (added), res/pjproject/pjlib/include/pjlib++.hpp (added), res/pjproject/pjsip-apps/src/ipjsua/ipjsua.xcodeproj (added), res/pjproject/pjlib/src/pjlib-test/list.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainerView.h (added), res/pjproject/third_party/portaudio/build/dev-cpp/portaudio-static.dev (added), res/pjproject/pjlib/src/pj/os_time_bsd.c (added), res/pjproject/third_party/speex/libspeex/hexc_10_32_table.c (added), res/pjproject/third_party/srtp/crypto/include/crypto_types.h (added), res/pjproject/pjnath/src/pjnath/stun_msg.c (added), res/pjproject/third_party/speex/libspeex/sb_celp.c (added), res/pjproject/third_party/srtp/crypto/include/rdb.h (added), res/pjproject/pjsip-apps/src/samples/simpleua.c (added), res/pjproject/pjsip-apps/build (added), res/pjproject/third_party/speex/libspeex/sb_celp.h (added), res/pjproject/third_party/srtp/crypto/include/aes_cbc.h (added), res/pjproject/pjmedia/include/pjmedia/tonegen.h (added), res/pjproject/third_party/speex/libspeex/testenc_uwb.c (added), res/pjproject/pjsip-apps/src/ipjsua/Resources-iPad/SecondView-iPad.xib (added), res/pjproject/pjlib/src/pj/sock_symbian.cpp (added), res/pjproject/build/vs/pjproject-vs8-debug-defaults.vsprops (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiAppUi.cpp (added), res/pjproject/third_party/ilbc/FrameClassify.c (added), res/pjproject/third_party/build/speex/libspeex.vcp (added), res/pjproject/third_party/ilbc/FrameClassify.h (added), res/pjproject/pjsip-apps/src/py_pjsua/py_pjsua.c (added), res/pjproject/pjsip/include/pjsip/sip_errno.h (added), res/pjproject/third_party/gsm/src/toast_alaw.c (added), res/pjproject/third_party/resample/src/resample.h (added), res/pjproject/pjsip-apps/src/py_pjsua/py_pjsua.h (added), res/pjproject/pjsip/build/os-auto.mak.in (added), res/pjproject/third_party/portaudio/config.sub (added), res/pjproject/pjlib/src/pjlib-test/sleep.c (added), res/pjproject/pjmedia/src/pjmedia-videodev/ffmpeg_dev.c (added), res/pjproject/third_party/portaudio/include/pa_jack.h (added), res/pjproject/pjmedia/build/wince-evc4/pjmedia_wince.vcp (added), res/pjproject/pjlib/src/pjlib-test/atomic.c (added), res/pjproject/pjsip/include/pjsip-simple/iscomposing.h (added), res/pjproject/pjlib/src/pj/os_timestamp_linux_kernel.c (added), res/pjproject/build.symbian/pjnathU.def (added), res/pjproject/pjlib/lib (added), res/pjproject/pjmedia/src/pjmedia-codec/g7221.c (added), res/pjproject/pjmedia/build/wince-evc4/pjmedia_wince.vcw (added), res/pjproject/tests/pjsua/scripts-sendto/361_non_sip_uri.py (added), res/pjproject/pjmedia/src/pjmedia/vid_codec.c (added), res/pjproject/pjlib/include/pj/compat/m_i386.h (added), res/pjproject/third_party/gsm/src/debug.c (added), res/pjproject/tests/pjsua/scripts-sendto/160_err_duplicate_replaces.py (added), res/pjproject/third_party/milenage/rijndael.c (added), res/pjproject/third_party/milenage/rijndael.h (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_11_22.py (added), res/pjproject/tests/pjsua/scripts-recvfrom/220_reg_good_ims_ok.py (added), res/pjproject/build/common.mak (added), res/pjproject/pjsip-apps/build/pjsystest.vcproj (added), res/pjproject/pjsip/build/pjsip_ua.vcproj (added), res/pjproject/pjlib/src/pj/timer.c (added), res/pjproject/third_party/speex/libspeex/vbr.c (added), res/pjproject/third_party/speex/libspeex/vbr.h (added), res/pjproject/third_party/portaudio/src/os (added), res/pjproject/third_party/resample/COPYING (added), res/pjproject/pjnath/include/pjnath/turn_session.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/gfx/qgn_menu_symbian_ua_gui.svg (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.l01 (added), res/pjproject/pjnath/include/pjnath/stun_msg.h (added), res/pjproject/pjsip/src/test/tsx_uac_test.c (added), res/pjproject/third_party/portaudio/Doxyfile (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_8_16.py (added), res/pjproject/pjsip/src/pjsip-ua/sip_inv.c (added), res/pjproject/third_party/gsm/add-test/add_test.c (added), res/pjproject/pjsip-apps/src/samples/mix.c (added), res/pjproject/pjlib/src/pjlib-test/sock_perf.c (added), res/pjproject/third_party/build/ilbc/output (added), res/pjproject/third_party/speex/libspeex/pseudofloat.h (added), res/pjproject/pjmedia/include/pjmedia-codec/config_auto.h.in (added), res/pjproject/tests/pjsua/scripts-run/200_register.py (added), res/pjproject/pjlib-util/build (added), res/pjproject/third_party/srtp/tables/aes_tables.c (added), res/pjproject/pjsip-apps/docs (added), res/pjproject/install-sh (added), res/pjproject/third_party/srtp/test/roc_driver.c (added), res/pjproject/pjsip/src/test/transport_udp_test.c (added), res/pjproject/third_party/portaudio/include/pa_win_waveformat.h (added), res/pjproject/third_party/speex/libspeex/resample.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc (added), res/pjproject/third_party/srtp/pjlib (added), res/pjproject/third_party/portaudio/build/msvc/readme.txt (added), res/pjproject/third_party/srtp/crypto/kernel/crypto_kernel.c (added), res/pjproject/build.symbian/null_audio.mmp (added), res/pjproject/third_party/srtp/crypto/replay/rdb.c (added), res/pjproject/pjlib-util/include/pjlib-util/scanner_cis_uint.h (added), res/pjproject/pjsip/lib (added), res/pjproject/third_party/srtp/crypto/cipher/aes_icm.c (added), res/pjproject/third_party/speex/libspeex/exc_5_64_table.c (added), res/pjproject/pjlib/src/pj/os_error_win32.c (added), res/pjproject/pjmedia/include/pjmedia-codec/opencore_amrnb.h (added), res/pjproject/tests/pjsua/scripts-sendto/301_srtp0_recv_savp.py (added), res/pjproject/pjsip/include/pjsip/sip_transport_tcp.h (added), res/pjproject/pjsip/src/pjsip/sip_transport_udp.c (added), res/pjproject/pjsip-apps/build/dummy.c (added), res/pjproject/pjlib/include/pj++/proactor.hpp (added), res/pjproject/tests/pjsua/scripts-sendto/999_message_no_body.py (added), res/pjproject/third_party/portaudio/src/common/pa_cpuload.c (added), res/pjproject/tests/pjsua/scripts-sendto/174_timer_se_too_small.py (added), res/pjproject/pjlib/src/pj/ip_helper_symbian.cpp (added), res/pjproject/third_party/portaudio/src/common/pa_cpuload.h (added), res/pjproject/pjlib/include/pj/compat/malloc.h (added), res/pjproject/third_party/build/portaudio/src/pa_ringbuffer.c (added), res/pjproject/third_party/portaudio/build/scons/SConscript_opts (added), res/pjproject/pjlib/include/pj/file_access.h (added), res/pjproject/pjmedia/build/pjmedia.vcproj (added), res/pjproject/third_party/build/portaudio/src/pa_ringbuffer.h (added), res/pjproject/pjnath/include/pjnath/ice_session.h (added), res/pjproject/pjsip-apps/src/samples/sipstateless.c (added), res/pjproject/tests/pjsua/scripts-sendto/201_ice_mismatch_3.py (added), res/pjproject/pjsip-apps/src/pocketpj/newres.h (added), res/pjproject/pjsip-apps/src/samples/playsine.c (added), res/pjproject/pjlib/include/pj/config.h (added), res/pjproject/pjlib/include/pj/compat/m_sparc.h (added), res/pjproject/third_party/BaseClasses/wxutil.cpp (added), res/pjproject/third_party/speex/AUTHORS (added), res/pjproject/third_party/ilbc/iCBSearch.c (added), res/pjproject/third_party/ilbc/iCBSearch.h (added), res/pjproject/pjmedia/src/pjmedia/session.c (added), res/pjproject/third_party/build/portaudio/src/pa_front.c (added), res/pjproject/third_party/speex/libspeex/exc_8_128_table.c (added), res/pjproject/third_party/gsm/man/toast.1 (added), res/pjproject/pjmedia/src/test/wsola_test.c (added), res/pjproject/pjmedia/src/pjmedia-audiodev/pa_dev.c (added), res/pjproject/tests/pjsua/scripts-recvfrom/209b_reg_handle_423_bad_min_expires1.py (added), res/pjproject/pjsip-apps/build/wince-evc4 (added), res/pjproject/build.symbian/pjsip_uaU.def (added), res/pjproject/third_party/build/portaudio/src/pa_unix_oss.c (added), res/pjproject/pjsip-apps/src/symbian_ua/ua.h (added), res/pjproject/build/rules.mak (added), res/pjproject/third_party/speex/libspeex/speex_header.c (added), res/pjproject/tests/pjsua/scripts-sendto (added), res/pjproject/build.symbian/libsrtp.mmp (added), res/pjproject/tests/pjsua/scripts-sendto/363_non_sip_uri_subscribe.py (added), res/pjproject/third_party/srtp/config.sub (added), res/pjproject/pjmedia/src/pjmedia/sdp.c (added), res/pjproject/pjsip/include/pjsip/sip_msg.h (added), res/pjproject/pjsip-apps/src/pjsystest (added), res/pjproject/pjsip (added), res/pjproject/third_party/gsm/lib (added), res/pjproject/pjmedia/src/test/jbuf_test.c (added), res/pjproject/pjmedia/src/pjmedia/sound_port.c (added), res/pjproject/pjlib/src/pjlib-test/ioq_perf.c (added), res/pjproject/pjsip/build/pjsua_lib.vcproj (added), res/pjproject/third_party/portaudio/build/msvc/portaudio.dsp (added), res/pjproject/pjsip/src/pjsip-simple/evsub_msg.c (added), res/pjproject/pjsip/src/pjsip-simple/mwi.c (added), res/pjproject/pjsip/src/test/transport_test.c (added), res/pjproject/build.symbian/pjsdp.mmp (added), res/pjproject/third_party/portaudio/build/msvc/portaudio.dsw (added), res/pjproject/pjsip-apps/src/python/helper.mak (added), res/pjproject/pjlib-util/include/pjlib-util/md5.h (added), res/pjproject/pjlib-util/build/Makefile (added), res/pjproject/pjlib/include/pj/pool_alt.h (added), res/pjproject/pjnath/src/pjnath-test/ice_test.c (added), res/pjproject/third_party/gsm/tst/run (added), res/pjproject/pjsip/include/pjsip/sip_uri.h (added), res/pjproject/pjlib/src/pj (added), res/pjproject/build/cc-vc.mak (added), res/pjproject/pjsip-apps/src/ipjsystest/ipjsystest.xcodeproj/project.pbxproj (added), res/pjproject/pjnath/src/pjnath-test/stun_sock_test.c (added), res/pjproject/pjsip/include/pjsip-ua/sip_100rel.h (added), res/pjproject/pjsip-apps/src/ipjsystest/ipjsystest_Prefix.pch (added), res/pjproject/pjsip/include/pjsip-ua/sip_xfer.h (added), res/pjproject/build.symbian/makedef.sh (added), res/pjproject/pjmedia/include/pjmedia-codec/g7221.h (added), res/pjproject/third_party/portaudio/src/hostapi/asihpi (added), res/pjproject/third_party/build/portaudio/Makefile (added), res/pjproject/pjmedia/src/test/vid_dev_test.c (added), res/pjproject/pjlib/include/pj/sock_select.h (added), res/pjproject/pjlib/src/pj/pool_signature.h (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_8_44.py (added), res/pjproject/third_party/ilbc/helpfun.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-answer-200-inv-without-sdp.xml (added), res/pjproject/third_party/ilbc/helpfun.h (added), res/pjproject/tests/pjsua/scripts-sendto/200_ice_no_ice.py (added), res/pjproject/tests/pjsua/scripts-sipp/inv_401_retry_after_100.xml (added), res/pjproject/pjsip/src/pjsip/sip_tel_uri_wrap.cpp (added), res/pjproject/pjmedia/src/pjmedia/wave.c (added), res/pjproject/third_party/portaudio/ltmain.sh (added), res/pjproject/tests/pjsua/scripts-call/300_ice_0_1.py (added), res/pjproject/tests/pjsua/scripts-sendto/159_no_rport.py (added), res/pjproject/third_party/ilbc/iLBC_decode.c (added), res/pjproject/pjlib/include/pj/compat/os_rtems.h (added), res/pjproject/pjsip/src/test/txdata_test.c (added), res/pjproject/pjmedia/src/pjmedia/conference.c (added), res/pjproject/third_party/srtp/srtp7.vcproj (added), res/pjproject/third_party/ilbc/iLBC_decode.h (added), res/pjproject/pjsip/src/pjsip-ua/sip_xfer.c (added), res/pjproject/pjsip-apps/src/samples/jbsim.c (added), res/pjproject/tests/pjsua/scripts-sipp/uac-ticket-1148.xml (added), res/pjproject/third_party/speex/win32/config.h (added), res/pjproject/pjsip/src/test/uri_test.c (added), res/pjproject/pjlib/include/pj/config_site.h (added), res/pjproject/pjmedia/include/pjmedia/rtcp_xr.h (added), res/pjproject/pjmedia/src/pjmedia/clock_thread.c (added), res/pjproject/pjsip-apps/src/pocketpj/res/online.ico (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_1_0.py (added), res/pjproject/third_party/portaudio/testcvs (added), res/pjproject/pjmedia/include/pjmedia/config_auto.h.in (added), res/pjproject/third_party/srtp/configure (added), res/pjproject/pjsip/src/pjsip/sip_util_wrap.cpp (added), res/pjproject/pjlib/include/pj/rand.h (added), res/pjproject/third_party/srtp/crypto/include/rdbx.h (added), res/pjproject/pjproject-vs8.sln (added), res/pjproject/pjmedia/src/pjmedia-videodev/avi_dev.c (added), res/pjproject/third_party/srtp/crypto/rng/rand_linux_kernel.c (added), res/pjproject/third_party/srtp/config.guess (added), res/pjproject/pjmedia/src/pjmedia-videodev (added), res/pjproject/third_party/srtp/crypto/rng/prng.c (added), res/pjproject/third_party/build/ilbc/Makefile (added), res/pjproject/pjmedia/src/pjmedia/jbuf.c (added), res/pjproject/third_party/speex/libspeex/modes.c (added), res/pjproject/third_party/speex/libspeex/modes.h (added), res/pjproject/third_party/build/samplerate/output (added), res/pjproject/pjnath/src/pjnath-test/stun.c (added), res/pjproject/third_party/build/milenage/Makefile (added), res/pjproject/third_party/build/speex/Makefile (added), res/pjproject/libpjproject.pc.in (added), res/pjproject/pjlib-util/include (added), res/pjproject/third_party/speex/libspeex/resample_sse.h (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_l16_8000.py (added), res/pjproject/tests/pjsua/scripts-sendto/320_srtp_with_unknown_media_1.py (added), res/pjproject/third_party/BaseClasses/reftime.h (added), res/pjproject/tests/automated/msvc.xml.template (added), res/pjproject/third_party/portaudio/src/common/pa_ringbuffer.c (added), res/pjproject/pjmedia/include/pjmedia/null_port.h (added), res/pjproject/third_party/speex/libspeex/cb_search_arm4.h (added), res/pjproject/pjlib/include/pj/math.h (added), res/pjproject/third_party/portaudio/src/common/pa_ringbuffer.h (added), res/pjproject/pjnath/build/output (added), res/pjproject/tests/pjsua/scripts-sendto/200_ice_success_4.py (added), res/pjproject/third_party/speex/libspeex/arch.h (added), res/pjproject/pjmedia/include/pjmedia/wave.h (added), res/pjproject/third_party/portaudio/src/hostapi/oss (added), res/pjproject/third_party/srtp/crypto/include/sha1.h (added), res/pjproject/pjlib/src/pjlib-test/os.c (added), res/pjproject/pjlib-util/docs/doxygen.css (added), res/pjproject/third_party/speex/libspeex/ltp.c (added), res/pjproject/tests/pjsua/scripts-sendto/001_torture_4475_3_1_1_4.py (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.l01 (added), res/pjproject/pjlib/src/pjlib-test/pool_perf.c (added), res/pjproject/third_party/speex/libspeex/ltp.h (added), res/pjproject/tests/pjsua/mod_run.py (added), res/pjproject/tests/pjsua/scripts-call/100_simplecall.py (added), res/pjproject/build/m-alpha.mak (added), res/pjproject/pjmedia/src/pjmedia/master_port.c (added), res/pjproject/pjsip/include/pjsip (added), res/pjproject/build/os-linux-kernel.mak (added), res/pjproject/tests/pjsua/scripts-sendto/173_timer_offer_refresher_uas.py (added), res/pjproject/third_party/BaseClasses/mtype.h (added), res/pjproject/pjsip-apps/src/ipjsua/Resources-iPad/MainWindow-iPad.xib (added), res/pjproject/third_party/portaudio/SConstruct (added), res/pjproject/pjlib/include/pj/errno.h (added), res/pjproject/pjsip/src/test/msg_err_test.c (added), res/pjproject/c++-build.mak (added), res/pjproject/third_party/build/speex/output (added), res/pjproject/third_party/gsm/src/preprocess.c (added), res/pjproject/pjmedia/include/pjmedia/jbuf.h (added), res/pjproject/tests/automated/symbian-aps.xml.template (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/symbian_ua_guiSettingItemList.uidesign (added), res/pjproject/third_party/portaudio/include (added), res/pjproject/third_party/build/samplerate/Static.msvc (added), res/pjproject/pjmedia/build/Makefile (added), res/pjproject/pjsip-apps/src/3rdparty_media_sample (added), res/pjproject/pjlib/src/pj/os_error_linux_kernel.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua.h (added), res/pjproject/pjmedia/src/pjmedia/transport_ice.c (added), res/pjproject/third_party/speex/libspeex/fixed_arm5e.h (added), res/pjproject/pjmedia/src/pjmedia/wav_playlist.c (added), res/pjproject/pjmedia/src/test/wince_main.c (added), res/pjproject/pjlib-util/build/output (added), res/pjproject/pjsip/include/pjsip/sip_util.h (added), res/pjproject/pjmedia/include/pjmedia/event.h (added), res/pjproject/third_party/portaudio/src/os/win/pa_win_hostapis.c (added), res/pjproject/pjmedia/src/pjmedia-videodev/sdl_dev.c (added), res/pjproject/pjsip/include/pjsip-simple/types.h (added), res/pjproject/third_party/gsm/src/table.c (added), res/pjproject/third_party/srtp/crypto/include/hmac.h (added), res/pjproject/third_party/speex/include/speex (added), res/pjproject/build/vs/pjproject-vs8-release-dynamic-defaults.vsprops (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_g711u.py (added), res/pjproject/build.symbian/symsndtest.pkg (added), res/pjproject/pjlib/src/pjlib-test/pool.c (added), res/pjproject/pjlib/src/pj/log_writer_stdout.c (added), res/pjproject/pjlib/include/pj/compat/os_palmos.h (added), res/pjproject/pjlib/include/pj/ssl_sock.h (added), res/pjproject/pjmedia/include/pjmedia-codec.h (added), res/pjproject/third_party/build/milenage (added), res/pjproject/pjnath/src/pjnath/turn_session.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/symbian_ua_guiContainer.uidesign (added), res/pjproject/tests/pjsua/scripts-sendto/121_sdp_with_video_static_1.py (added), res/pjproject/build.symbian/pjlib_utilU.def (added), res/pjproject/build.symbian/pjlib_test.pkg (added), res/pjproject/tests/pjsua/scripts-call/305_ice_comp_2_1.py (added), res/pjproject/build/vs/pjproject-vs8-wm6-common-defaults.vsprops (added), res/pjproject/pjsip/src/pjsip/sip_transaction.c (added), res/pjproject/build/host-win32.mak (added), res/pjproject/third_party/gsm/inc/config.h (added), res/pjproject/third_party/srtp/test/lfsr.c (added), res/pjproject/third_party/gsm/src/gsm_print.c (added), res/pjproject/pjsip/include/pjsip/sip_dialog.h (added), res/pjproject/pjmedia/src/pjmedia-videodev/colorbar_dev.c (added), res/pjproject/build/m-x86_64.mak (added), res/pjproject/third_party/srtp/config.hw (added), res/pjproject/pjmedia/include/pjmedia/endpoint.h (added), res/pjproject/pjlib-util/src/pjlib-util/hmac_md5.c (added), res/pjproject/pjnath/src (added), res/pjproject/tests/pjsua/scripts-sipp/uas-answer-200-update-without-sdp.xml (added), res/pjproject/pjsip-apps/src/python/_pjsua.def (added), res/pjproject/third_party/speex/win32 (added), res/pjproject/tests/pjsua/scripts-sipp/uas-subscribe-late-notify.xml (added), res/pjproject/third_party/srtp/configure.in (added), res/pjproject/pjlib/src/pj/os_timestamp_win32.c (added), res/pjproject/pjsip/include/pjsip/sip_private.h (added), res/pjproject/pjlib/include/pj/compat/m_x86_64.h (added), res/pjproject/pjmedia/build/pjmedia_codec.vcproj (added), res/pjproject/aconfigure (added), res/pjproject/pjsip/include/pjsip.h (added), res/pjproject/tests/pjsua/scripts-sendto/173_timer_offer_no_refresher.py (added), res/pjproject/pjmedia/include/pjmedia-codec/ffmpeg_vid_codecs.h (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_l16_16000_stereo.py (added), res/pjproject/pjlib/src/pjlib-test/ssl_sock.c (added), res/pjproject/third_party/ilbc/LPCdecode.c (added), res/pjproject/pjlib/src/pj/except.c (added), res/pjproject/third_party/ilbc/LPCdecode.h (added), res/pjproject/tests/automated/testvars.template (added), res/pjproject/pjmedia/include/pjmedia/mem_port.h (added), res/pjproject/third_party/srtp/include/getopt_s.h (added), res/pjproject/third_party/gsm/tst/lin2txt.c (added), res/pjproject/third_party/g7221/common/tables.c (added), res/pjproject/pjmedia/src/test/test.c (added), res/pjproject/pjmedia/src/pjmedia-codec/g722/g722_dec.c (added), res/pjproject/pjlib-util/include/pjlib-util/base64.h (added), res/pjproject/pjsip-apps/build/wince-evc4/wince_demos.vcw (added), res/pjproject/third_party/g7221/common/tables.h (added), res/pjproject/pjmedia/src/test/test.h (added), res/pjproject/pjsip/src/pjsip/sip_auth_server.c (added), res/pjproject/third_party/BaseClasses/renbase.h (added), res/pjproject/pjmedia/src/pjmedia-codec/g722/g722_dec.h (added), res/pjproject/pjlib-util/src/pjlib-util-test/http_client.c (added), res/pjproject/pjlib/src/pj/ioqueue_epoll.c (added), res/pjproject/pjsip-apps/src/vidgui/INSTALL.TXT (added), res/pjproject/third_party/build/portaudio/src/pa_debugprint.c (added), res/pjproject/third_party/gsm/Makefile (added), res/pjproject/third_party/build/portaudio/src/pa_debugprint.h (added), res/pjproject/pjlib/src/pj/array.c (added), res/pjproject/pjsip/src/test/transport_loop_test.c (added), res/pjproject/pjlib/src/pj/file_io_ansi.c (added), res/pjproject/pjlib/src/pj/rbtree.c (added), res/pjproject/pjmedia/build/Jbtest.dat (added), res/pjproject/tests/pjsua/scripts-sendto/158_err_sdp_bad_transport_type.py (added), res/pjproject/build/vs/pjproject-vs8-win32-common-defaults.vsprops (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_8_11.py (added), res/pjproject/third_party/srtp/crypto/include/null_cipher.h (added), res/pjproject/third_party/gsm/src/gsm_decode.c (added), res/pjproject/third_party/srtp/crypto/test/cipher_driver.c (added), res/pjproject/pjsip-apps/src/samples/proxy.h (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_3_0.py (added), res/pjproject/pjmedia/include/pjmedia/master_port.h (added), res/pjproject/pjlib/src/pjlib-test/test_wrap.cpp (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.rssi (added), res/pjproject/tests/pjsua/inc_sip.py (added), res/pjproject/third_party/g7221/common/count.h (added), res/pjproject/pjmedia/include/pjmedia/converter.h (added), res/pjproject/pjlib/include/pj/compat/cc_mwcc.h (added), res/pjproject/pjmedia/src/test/rtp_test.c (added), res/pjproject/third_party/gsm/src/gsm_option.c (added), res/pjproject/tests/pjsua/scripts-sendto/120_sdp_with_video_dynamic_2.py (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_acc.c (added), res/pjproject/third_party/build/srtp (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio/pa_mac_core.c (added), res/pjproject/pjmedia/src/pjmedia/wav_writer.c (added), res/pjproject/pjlib-util/src/pjlib-util/scanner_cis_uint.c (added), res/pjproject/third_party/gsm/src/gsm_destroy.c (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_8_48.py (added), res/pjproject/third_party/portaudio/build/dev-cpp/portaudio-dll.dev (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_2_2.py (added), res/pjproject/third_party/srtp/crypto/include/key.h (added), res/pjproject/tests/automated/run_scenario.py (added), res/pjproject/tests/pjsua/scripts-sipp/uas-422-then-200-bad-se.xml (added), res/pjproject/third_party/portaudio/doc (added), res/pjproject/tests/pjsua/scripts-sipp/uac-reinvite-port-0-bad-sdp.xml (added), res/pjproject/third_party/build/portaudio/src/pa_dither.c (added), res/pjproject/pjlib/src/pjlib-test/hash_test.c (added), res/pjproject/pjmedia/include/pjmedia/symbian_sound_aps.h (added), res/pjproject/third_party/build/portaudio/src/pa_dither.h (added), res/pjproject/build.symbian/pjnath.mmp (added), res/pjproject/tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_0.py (added), res/pjproject/tests/pjsua/scripts-sendto/412_fmtp_amrnb_offer_band_eff2.py (added), res/pjproject/third_party/srtp/crypto/replay/ut_sim.c (added), res/pjproject/third_party/speex/libspeex/cb_search.c (added), res/pjproject/pjlib-util/include/pjlib-util/pcap.h (added), res/pjproject/pjmedia/src/pjmedia/avi_player.c (added), res/pjproject/third_party/speex/libspeex/cb_search.h (added), res/pjproject/pjsip-apps/src/python/setup-vc.py (added), res/pjproject/third_party/BaseClasses/wxlist.cpp (added), res/pjproject/pjlib-util/src/pjlib-util/resolver.c (added), res/pjproject/pjsip/src/pjsip (added), res/pjproject/third_party/srtp/crypto/include/err.h (added), res/pjproject/tests/pjsua/scripts-call/350_prack_b.py (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/group (added), res/pjproject/third_party/gsm/inc/gsm.h (added), res/pjproject/pjsip/src/pjsip/sip_endpoint_wrap.cpp (added), res/pjproject/third_party/milenage/milenage.c (added), res/pjproject/pjlib-util/include/pjlib-util/http_client.h (added), res/pjproject/third_party/speex/libspeex/testenc.c (added), res/pjproject/third_party/milenage/milenage.h (added), res/pjproject/pjsip-apps/src/pjsystest/systest.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-forked-100rel.xml (added), res/pjproject/pjlib-util/include/pjlib-util/errno.h (added), res/pjproject/third_party/portaudio/src (added), res/pjproject/pjlib/src/pjlib-test/mutex.c (added), res/pjproject/pjsip-apps/src/pjsystest/systest.h (added), res/pjproject/third_party/BaseClasses/refclock.h (added), res/pjproject/tests/cdash/README.TXT (added), res/pjproject/pjlib/src/pjlib-test/test.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.h (added), res/pjproject/pjmedia/src/test/mips_test.c (added), res/pjproject/pjlib/src/pjlib-test/test.h (added), res/pjproject/third_party/srtp/srtp (added), res/pjproject/third_party/portaudio/src/common/pa_stream.c (added), res/pjproject/pjlib-util (added), res/pjproject/third_party/srtp/crypto/replay/rdbx.c (added), res/pjproject/third_party/g7221/common/huff_def.h (added), res/pjproject/third_party/portaudio/src/common/pa_stream.h (added), res/pjproject/tests/pjsua/scripts-pres (added), res/pjproject/pjlib/src/pjlib-test/sock.c (added), res/pjproject/pjmedia/include/pjmedia/stream.h (added), res/pjproject/pjlib/include/pj/compat/stdfileio.h (added), res/pjproject/pjnath/build/wince-evc4/output (added), res/pjproject/third_party/portaudio/src/hostapi/asio (added), res/pjproject/pjlib/src/pj/os_timestamp_common.c (added), res/pjproject/pjmedia/src/pjmedia/transport_udp.c (added), res/pjproject/pjmedia/include/pjmedia/stream_common.h (added), res/pjproject/pjlib-util/src/pjlib-util-test/main.c (added), res/pjproject/pjlib/include/pj++/lock.hpp (added), res/pjproject/third_party/speex/libspeex/fixed_arm4.h (added), res/pjproject/pjlib (added), res/pjproject/build/vs/pjproject-vs8-wm2003-common-defaults.vsprops (added), res/pjproject/tests/pjsua/scripts-sendto/312_srtp1_recv_savp.py (added), res/pjproject/tests/pjsua/scripts-sendto/126_sdp_with_port_0_and_no_rtpmap_for_dynamic_pt.py (added), res/pjproject/third_party/srtp/crypto/include/datatypes.h (added), res/pjproject/pjsip-apps/build/pjsua.vcproj (added), res/pjproject/third_party/milenage (added), res/Makefile, res/pjproject/tests/pjsua/scripts-sendto/260_multipart_err_no_sdp.py (added), res/pjproject/tests/pjsua/scripts-sendto/320_srtp_with_unknown_transport_2.py (added), res/pjproject/third_party/speex/libspeex/quant_lsp_bfin.h (added), res/pjproject/pjlib-util/bin (added), res/pjproject/pjsip-apps/src/py_pjsua/DEPRECATED.txt (added), res/pjproject/pjnath/lib (added), res/pjproject/third_party/build/g7221 (added), res/pjproject/pjlib/include/pj/ctype.h (added), res/pjproject/pjmedia/include/pjmedia-codec/h263_packetizer.h (added), res/pjproject/third_party/ilbc/gainquant.c (added), res/pjproject/pjlib/src/pj/pool_policy_kmalloc.c (added), res/pjproject/pjmedia/build/os-auto.mak.in (added), res/pjproject/pjsip-apps/src/ipjsua/config.cfg (added), res/pjproject/third_party/ilbc/gainquant.h (added), res/pjproject/pjmedia/src/pjmedia/plc_common.c (added), res/pjproject/third_party/portaudio/src/common/pa_debugprint.c (added), res/pjproject/pjlib/include/pj/assert.h (added), res/pjproject/pjsip/include/pjsip/sip_module.h (added), res/pjproject/tests/pjsua/scripts-sipp (added), res/pjproject/third_party/portaudio/src/common/pa_debugprint.h (added), res/pjproject/pjmedia/src/pjmedia-audiodev/s60_g729_bitstream.h (added), res/pjproject/third_party/srtp/crypto/rng (added), res/pjproject/pjsip-apps/build/wince-evc4/output (added), res/pjproject/pjlib/docs/footer.html (added), res/pjproject/pjlib/src/pj/os_symbian.h (added), res/pjproject/pjsip-apps/src/ipjsystest/Classes (added), res/pjproject/pjmedia/include/pjmedia/rtp.h (added), res/pjproject/pjmedia/include/pjmedia/resample.h (added), res/pjproject/pjsip-apps/src/python/samples/call.py (added), res/pjproject/third_party/speex/include/speex/speex_header.h (added), res/pjproject/tests/pjsua/scripts-sendto/159_no_rport_nit.py (added), res/pjproject/tests/automated/run_continuous.py (added), res/pjproject/pjlib/src/pjlib-test/main_mod.c (added), res/pjproject/pjlib/include/pjlib.h (added), res/pjproject/third_party/srtp/test/dtls_srtp_driver.c (added), res/pjproject/pjnath/src/pjturn-srv/allocation.c (added), res/pjproject/build.symbian/symbian_audio.mmp (added), res/pjproject/pjsip/src/pjsip/sip_endpoint.c (added), res/pjproject/third_party/build/portaudio/src/pa_win_waveformat.c (added), res/pjproject/third_party/srtp/crypto/include/prng.h (added), res/pjproject/configure (added), res/pjproject/third_party/gsm/tls (added), res/pjproject/third_party/build/portaudio/src/pa_win_waveformat.h (added), res/pjproject/pjlib/src/pjlib-samples/list.c (added), res/pjproject/pjsip/src/pjsip/sip_parser.c (added), res/pjproject/third_party/srtp/crypto/include/crypto_kernel.h (added), res/pjproject/third_party/gsm/tls/bitter.c (added), res/pjproject/pjmedia/include/pjmedia.h (added), res/pjproject/pjlib/src/pj/ioqueue_select.c (added), res/pjproject/pjsip-apps/src/samples/resampleplay.c (added), res/pjproject/third_party/srtp/crypto (added), res/pjproject/build/host-mingw.mak (added), res/pjproject/pjlib/include/pj/compat/size_t.h (added), res/pjproject/pjlib-util/build/pjlib_util.dsw (added), res/pjproject/third_party/srtp/LICENSE (added), res/pjproject/pjlib/include/pj/log.h (added), res/pjproject/pjlib/include/pj/compat/setjmp.h (added), res/pjproject/pjnath/include (added), res/pjproject/pjlib/src/pj/ioqueue_dummy.c (added), res/pjproject/pjmedia/build (added), res/pjproject/pjsip-apps/build/py_pjsua.vcproj (added), res/pjproject/third_party/gsm/man/gsm.3 (added), res/pjproject/pjsip-apps/src/samples/pcaputil.c (added), res/pjproject/pjlib-util/src/pjlib-util/errno.c (added), res/pjproject/build.symbian/libresample.mmp (added), res/pjproject/pjsip-apps/src/pocketpj/PopUpWnd.cpp (added), res/pjproject/third_party/portaudio/src/os/win/pa_win_waveformat.c (added), res/pjproject/pjlib/include/pj/list.h (added), res/pjproject/third_party/ilbc (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainerView.cpp (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiDocument.cpp (added), res/pjproject/pjsip-apps/src/ipjsystest/ipjsystest.xcodeproj (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJ.rc (added), res/pjproject/pjmedia/include/pjmedia/session.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.rss (added), res/pjproject/pjmedia/include/pjmedia-codec/ilbc.h (added), res/pjproject/pjmedia/include/pjmedia/signatures.h (added), res/pjproject/third_party/build/portaudio/src/pa_endianness.h (added), res/pjproject/pjmedia/include/pjmedia-audiodev/audiodev.h (added), res/pjproject/tests/pjsua/scripts-recvfrom/203_reg_good_empty_realm.py (added), res/pjproject/third_party/speex/libspeex/os_support.h (added), res/pjproject/third_party/srtp/crypto/include/kernel_compat.h (added), res/pjproject/pjmedia/build/wince-evc4/pjmedia_codec_wince.vcp (added), res/pjproject/tests/pjsua/scripts-sendto/300_srtp_receive_no_key_3.py (added), res/pjproject/third_party/gsm/src/gsm_create.c (added), res/pjproject/third_party/build/ilbc/libilbccodec.vcproj (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_vid.c (added), res/pjproject/pjlib/include/pj/except.h (added), res/pjproject/pjmedia/src/pjmedia/endpoint.c (added), res/pjproject/pjmedia/src/pjmedia-codec (added), res/pjproject/pjlib/include/pj/compat/stdarg.h (added), res/pjproject/pjsip-apps/src/ipjsystest/TestViewController.xib (added), res/pjproject/build.symbian/symbian_ua_urel.pkg (added), res/pjproject/third_party/speex/libspeex/math_approx.h (added), res/pjproject/pjsip-apps/src/samples/tonegen.c (added), res/pjproject/build/vs/pjproject-vs8-release-defaults.vsprops (added), res/pjproject/pjlib/include/pj/rbtree.h (added), res/pjproject/pjlib/include/pj/compat/m_alpha.h (added), res/pjproject/third_party/speex/libspeex/vorbis_psy.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-timer-update.xml (added), res/pjproject/third_party/ilbc/iLBC_define.h (added), res/pjproject/third_party/speex/libspeex/vorbis_psy.h (added), res/pjproject/third_party/portaudio/src/hostapi/wasapi (added), res/pjproject/third_party/portaudio/src/hostapi/wdmks (added), res/pjproject/third_party/srtp/include/srtp_priv.h (added), res/pjproject/pjmedia/src/test/sdptest.c (added), res/pjproject/pjlib/include/pj++/file.hpp (added), res/pjproject/pjsip/src/test/tsx_basic_test.c (added), res/pjproject/pjnath/include/pjnath/stun_auth.h (added), res/pjproject/pjsip-apps/bin (added), res/pjproject/pjsip-apps/src/ipjsua/Classes/ConfigViewController.h (added), res/pjproject/pjmedia/include/pjmedia-videodev/config.h (added), res/pjproject/pjsip-apps/src/ipjsua/Classes/ConfigViewController.m (added), res/pjproject/pjsip-apps/src/ipjsua (added), res/pjproject/third_party/BaseClasses/combase.cpp (added), res/pjproject/pjlib-util/include/pjlib-util/hmac_md5.h (added), res/pjproject/tests/pjsua/scripts-sendto/364_non_sip_uri_subscribe.py (added), res/pjproject/third_party/portaudio/src/common (added), res/pjproject/pjlib/build/os-rtems.mak (added), res/pjproject/third_party/gsm/tls/taste.c (added), res/pjproject/pjlib/src/pjlib-test/ioq_tcp.c (added), res/pjproject/third_party/portaudio/src/os/win/pa_win_wdmks_utils.c (added), res/pjproject/third_party/gsm/tls/taste.h (added), res/pjproject/third_party/portaudio/src/hostapi/asio/iasiothiscallresolver.h (added), res/pjproject/third_party/BaseClasses/fourcc.h (added), res/pjproject/third_party/portaudio/src/os/win/pa_win_wdmks_utils.h (added), res/pjproject/tests/automated/symbian.xml.template (added), res/pjproject/pjmedia/src/test/vectors (added), res/pjproject/third_party/portaudio/src/hostapi/dsound/pa_win_ds.c (added), res/pjproject/third_party/speex/include/speex/speex_bits.h (added), res/pjproject/third_party/resample/include/resamplesubs.h (added), res/pjproject/pjsip/src/pjsip-simple/publishc.c (added), res/pjproject/third_party/srtp/crypto/include/aes.h (added), res/pjproject/third_party/srtp/undos.sh (added), res/pjproject/pjlib-util/include/pjlib-util/scanner.h (added), res/pjproject/third_party/gsm/tls/sweet.c (added), res/pjproject/third_party/gsm/man (added), res/pjproject/build/vs/pjproject-vs8-debug-dynamic-defaults.vsprops (added), res/pjproject/third_party/portaudio/src/common/pa_hostapi.h (added), res/pjproject/third_party/ilbc/createCB.c (added), res/pjproject/third_party/gsm/man/gsm_print.3 (added), res/pjproject/third_party/srtp/crypto/ae_xfm (added), res/pjproject/pjmedia/src/pjmedia-audiodev/coreaudio_dev.c (added), res/pjproject/third_party/ilbc/createCB.h (added), res/pjproject/third_party/gsm/ChangeLog (added), res/pjproject/pjlib/src/pj/guid.c (added), res/pjproject/pjsip-apps/src/python/Makefile (added), res/pjproject/third_party/gsm (added), res/pjproject/pjlib/include/pj/compat (added), res/pjproject/pjmedia/src/pjmedia/echo_common.c (added), res/pjproject/pjsip-apps/build/Footprint.mak (added), res/pjproject/tests/automated/iphone.xml.template (added), res/pjproject/tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_4.py (added), res/pjproject/third_party/speex/include/speex/speex_types.h (added), res/pjproject/tests/pjsua/scripts-sendto/201_ice_mismatch_2.py (added), res/pjproject/third_party/build/portaudio/src/pa_trace.c (added), res/pjproject/pjsip-apps/src/samples/httpdemo.c (added), res/pjproject/pjlib/src/pj/ssl_sock_dump.c (added), res/pjproject/pjlib/src/pjlib-test/pool_wrap.cpp (added), res/pjproject/pjnath/build/wince-evc4/pjnath_wince.vcp (added), res/pjproject/tests/pjsua/scripts-sipp/uac-inv-multiple-require.xml (added), res/pjproject/third_party/gsm/tst (added), res/pjproject/pjmedia/src/pjmedia-codec/g7221_sdp_match.c (added), res/pjproject/third_party/build/portaudio/src/pa_trace.h (added), res/pjproject/third_party/build/os-auto.mak.in (added), res/pjproject/third_party/speex/libspeex/speex.c (added), res/pjproject/pjnath/build/wince-evc4/pjnath_wince.vcw (added), res/pjproject/pjsip/src/pjsip/sip_ua_layer.c (added), res/pjproject/pjlib-util/src/pjlib-util/string.c (added), res/pjproject/third_party/speex/libspeex/echo_diagnostic.m (added), res/pjproject/tests/pjsua/scripts-sipp/uac-reinvite-bad-via-branch.xml (added), res/pjproject/pjsip-apps/build/os-win32.mak (added), res/pjproject/third_party/build/portaudio/src/pa_converters.c (added), res/pjproject/tests/pjsua/scripts-sendto/321_srtp2_recv_avp.py (added), res/pjproject/tests/pjsua/tools (added), res/pjproject/third_party/build/portaudio/src/pa_converters.h (added), res/pjproject/build/os-win32.mak (added), res/pjproject/pjlib/src/pj/compat/sigjmp.c (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_call.c (added), res/pjproject/pjsip-apps/src/samples/main_rtems.c (added), res/pjproject/tests/pjsua/scripts-sendto/156_err_sdp_bad_net_type.py (added), res/pjproject/third_party/srtp/crypto/include/crypto_math.h (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_g711a.py (added), res/pjproject/tests/pjsua/scripts-sipp/uas-answer-200-multiple-fmts.xml (added), res/pjproject/pjmedia/include/pjmedia/echo.h (added), res/pjproject/pjsip/src/pjsip/sip_util.c (added), res/pjproject/third_party/portaudio/src/common/pa_endianness.h (added), res/pjproject/third_party/srtp/update.sh (added), res/pjproject/pjsip/include/pjsip-simple/presence.h (added), res/pjproject/tests/pjsua/scripts-recvfrom/231_reg_bad_fail_stale_false_nonce_changed.py (added), res/pjproject/pjlib/include/pj/addr_resolv.h (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_dump.c (added), res/pjproject/pjsip/src/pjsip-simple/evsub.c (added), res/pjproject/third_party/portaudio/build/dev-cpp/Makefile-static (added), res/pjproject/pjsip/include/pjsua-lib (added), res/pjproject/tests/pjsua/README.TXT (added), res/pjproject/pjsip-apps/src/pjsua_wince/README.TXT (added), res/pjproject/third_party/build/portaudio/src/pa_types.h (added), res/pjproject/third_party/portaudio/include/pa_mac_core.h (added), res/pjproject/pjsip/build/wince-evc4/pjsip_wince.vcw (added), res/pjproject/tests/pjsua/scripts-recvfrom/208_reg_good_retry_nonce_ok.py (added), res/pjproject/pjlib/src/pj/log.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-mwi-0.xml (added), res/pjproject/pjsip/src/pjsip-ua (added), res/pjproject/build/vs/pjproject-vs8-wm5-release-defaults.vsprops (added), res/pjproject/pjmedia/src/pjmedia/silencedet.c (added), res/pjproject/tests/pjsua/scripts-sendto/301_srtp0_recv_avp.py (added), res/pjproject/pjmedia/include/pjmedia/vid_port.h (added), res/pjproject/third_party/gsm/inc/proto.h (added), res/pjproject/third_party/speex/libspeex/filters.c (added), res/pjproject/third_party/build/milenage/libmilenage.vcproj (added), res/pjproject/third_party/srtp/crypto/include/stat.h (added), res/pjproject/third_party/speex/libspeex/filters.h (added), res/pjproject/third_party/build/resample/libresample.vcp (added), res/pjproject/third_party/gsm/COPYRIGHT (added), res/pjproject/third_party/portaudio/include/pa_linux_alsa.h (added), res/pjproject/pjmedia/include/pjmedia/transport_adapter_sample.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.loc (added), res/pjproject/third_party/srtp/include/ut_sim.h (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_im.c (added), res/pjproject/pjsip-apps/src/pocketpj/output (added), res/pjproject/third_party/build/portaudio/libportaudio.vcproj (added), res/pjproject/pjlib-util/include/pjlib-util/resolver.h (added), res/pjproject/pjmedia/include/pjmedia/config.h (added), res/pjproject/pjlib/src/pjlib-test/udp_echo_srv_sync.c (added), res/pjproject/build.symbian/symbian_audioU.def (added), res/pjproject/pjlib-util/src/pjlib-util-test/resolver_test.c (added), res/pjproject/pjmedia/include/pjmedia-codec/passthrough.h (added), res/pjproject/third_party/portaudio/test (added), res/pjproject/third_party/srtp/crypto/include/gf2_8.h (added), res/pjproject/pjsip-apps/src/pjsua_wince/pjsua_wince.h (added), res/pjproject/pjmedia/src/test/vid_port_test.c (added), res/pjproject/pjsip-apps/src/pocketpj/res/online.bmp (added), res/pjproject/third_party/gsm/inc (added), res/pjproject/pjlib/include/pj++/os.hpp (added), res/pjproject/third_party/speex/libspeex/speex_callbacks.c (added), res/pjproject/pjsip/include/pjsip-ua/sip_inv.h (added), res/pjproject/config.sub (added), res/pjproject/pjlib/src/pj/sock_linux_kernel.c (added), res/pjproject/pjlib/src/pj/sock_select_symbian.cpp (added), res/pjproject/pjsip/build/wince-evc4/pjsip_core_wince.vcp (added), res/pjproject/build.symbian/libspeexcodec.mmp (added), res/pjproject/third_party/portaudio/src/hostapi/asihpi/pa_linux_asihpi.c (added), res/pjproject/pjnath/src/pjturn-client (added), res/pjproject/pjlib-util/include/pjlib-util/dns_server.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainer.cpp (added), res/pjproject/third_party/BaseClasses (added), res/pjproject/pjlib/src/pj/guid_simple.c (added), res/pjproject/pjmedia/src/pjmedia-codec/speex_codec.c (added), res/pjproject/third_party/BaseClasses/amvideo.cpp (added), res/pjproject/pjlib-util/src/pjlib-util-test (added), res/pjproject/pjsip/include/pjsip/sip_auth.h (added), res/pjproject/pjmedia/include/pjmedia/types.h (added), res/pjproject/third_party/build/samplerate/README.txt (added), res/pjproject/third_party/gsm/tls/sour2.dta (added), res/pjproject/tests/pjsua/scripts-sipp/uac-inv-and-ack-without-sdp.xml (added), res/pjproject/pjmedia/src/pjmedia-codec/ipp_codecs.c (added), res/pjproject/third_party/g7221/common/config.h (added), res/pjproject/tests/automated (added), res/pjproject/pjlib/src/pj/pool_buf.c (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_0_1.py (added), res/pjproject/pjmedia/src/pjmedia-videodev/qt_dev.m (added), res/pjproject/pjlib/include/pj++/scanner.hpp (added), res/pjproject/third_party/srtp/pjlib/srtp_err.c (added), res/pjproject/third_party/portaudio/src/hostapi/jack (added), res/pjproject/pjlib-util/build/pjlib_util_test.vcproj (added), res/pjproject/pjsip/include/pjsip/sip_auth_parser.h (added), res/pjproject/third_party/speex/include/speex/speex_stereo.h (added), res/pjproject/third_party/build/portaudio/src (added), res/pjproject/tests/pjsua/scripts-sendto/200_ice_success_3.py (added), res/pjproject/pjsip-apps/src/symbian_ua/ua.cpp (added), res/pjproject/tests/pjsua/scripts-recvfrom/301_timer_good_retry_after_422.py (added), res/pjproject/pjsip-apps/src/pjsystest/main_wm.c (added), res/pjproject/pjnath/src/pjnath (added), res/pjproject/third_party/portaudio/src/os/mac_osx (added), res/pjproject/third_party/build/srtp/libsrtp.vcproj (added), res/pjproject/pjsip-apps/bin/samples (added), res/pjproject/pjlib/include/pj++/sock.hpp (added), res/pjproject/tests/pjsua/scripts-sendto/001_torture_4475_3_1_1_3.py (added), res/pjproject/third_party/speex/libspeex/lsp.c (added), res/pjproject/third_party/portaudio/src/common/pa_converters.c (added), res/pjproject/pjsip-apps/src/samples/stateless_proxy.c (added), res/pjproject/pjsip/include/pjsip/sip_auth_aka.h (added), res/pjproject/third_party/speex/libspeex/lsp.h (added), res/pjproject/third_party/portaudio/src/common/pa_converters.h (added), res/pjproject/pjlib-util/src/pjlib-util-test/main_win32.c (added), res/pjproject/third_party/speex/libspeex/fftwrap.c (added), res/pjproject/third_party/build/ilbc/libilbccodec.vcp (added), res/pjproject/third_party/speex/libspeex/fftwrap.h (added), res/pjproject/version.mak (added), res/pjproject/pjlib/build/pjlib_test.vcproj (added), res/pjproject/pjsip/include/pjsip-simple/mwi.h (added), res/pjproject/third_party/BaseClasses/amfilter.h (added), res/pjproject/pjnath/include/pjnath/stun_session.h (added), res/pjproject/pjsip/include/pjsip-ua/sip_timer.h (added), res/pjproject/pjmedia/src/test/codec_vectors.c (added), res/pjproject/third_party/srtp/crypto/test/stat_driver.c (added), res/pjproject/pjsip-apps/src/ipjsua/ipjsua.xcodeproj/project.pbxproj (added), res/pjproject/pjlib/src/pj/os_core_linux_kernel.c (added), res/pjproject/pjmedia/build/wince-evc4/pjmedia_auddev_wince.vcp (added), res/pjproject/third_party/srtp/test/rdbx_driver.c (added), res/pjproject/third_party/speex/include/speex/speex_echo.h (added), res/pjproject/third_party/srtp/include/rtp.h (added), res/pjproject/pjlib/src/pj/pool_policy_malloc.c (added), res/pjproject/third_party/gsm/man/gsm_explode.3 (added), res/pjproject/pjsip/include/pjsip/sip_transport_udp.h (added), res/pjproject/pjlib/src/pj/file_access_win32.c (added), res/pjproject/pjsip-apps/src/pjsua_wince/pjsua_wince.ico (added), res/pjproject/build.symbian/symsndtest.mmp (added), res/pjproject/pjmedia/build/wince-evc4/output (added), res/pjproject/tests/pjsua/scripts-recvfrom/235_reg_good_tel_uri_enocredential.py (added), res/pjproject/pjsip-apps/src/vidgui/vidgui.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/Symbian_ua_guiSettingItemListSets.cpp (added), res/pjproject/pjmedia/include/pjmedia/delaybuf.h (added), res/pjproject/tests/pjsua/scripts-sendto/157_err_sdp_bad_addr_type.py (added), res/pjproject/build.symbian/pjlib_test.mmp (added), res/pjproject/pjsip/src/pjsip/sip_transport.c (added), res/pjproject/third_party/srtp/crypto/test/env.c (added), res/pjproject/third_party/speex/libspeex/scal.c (added), res/pjproject/pjlib/include/pj/pool.h (added), res/pjproject/pjmedia/include/pjmedia/wav_port.h (added), res/pjproject/pjsip/include/pjsip-simple/errno.h (added), res/pjproject/third_party/speex/libspeex/filters_sse.h (added), res/pjproject/tests/pjsua/scripts-sipp/uas-answer-200-multiple-fmts-support-update.xml (added), res/pjproject/pjsip-apps/src/samples/latency.c (added), res/pjproject/tests/pjsua/scripts-call/400_tel_uri.py (added), res/pjproject/third_party/portaudio/pablio/test_w_saw.c (added), res/pjproject/third_party/build/portaudio/src/pa_allocation.c (added), res/pjproject/pjnath/src/pjnath-test (added), res/pjproject/tests/pjsua/scripts-sendto/400_fmtp_g7221_with_bitrate.py (added), res/pjproject/third_party/build/portaudio/src/pa_allocation.h (added), res/pjproject/pjmedia/include/pjmedia/format.h (added), res/pjproject/third_party/gsm/inc/private.h (added), res/pjproject/third_party/srtp/crypto/replay (added), res/pjproject/third_party/speex/libspeex/stack_alloc.h (added), res/pjproject/tests/pjsua/scripts-recvfrom/300_timer_good.py (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_aud.c (added), res/pjproject/pjlib/src/pjlib-test/file.c (added), res/pjproject/third_party/build/portaudio/src/pa_mac_core_blocking.c (added), res/pjproject/build.symbian/pjsipU.def (added), res/pjproject/pjlib/bin (added), res/pjproject/third_party/ilbc/hpInput.c (added), res/pjproject/pjsip-apps/build/python_pjsua.vcproj (added), res/pjproject/build.mak.in (added), res/pjproject/third_party/srtp/crypto/cipher (added), res/pjproject/third_party/build/portaudio/src/pa_mac_core_blocking.h (added), res/pjproject/third_party/srtp/crypto/rng/rand_source.c (added), res/pjproject/pjsip-apps/build/sample_debug.vcproj (added), res/pjproject/third_party/ilbc/hpInput.h (added), res/pjproject/pjmedia/src/pjmedia/sdp_cmp.c (added), res/pjproject/tests/pjsua/scripts-call/305_ice_comp_1_2.py (added), res/pjproject/pjmedia/include/pjmedia/sdp.h (added), res/pjproject/pjsip-apps/src/pjsystest/pjsystest_wince.rc (added), res/pjproject/tests/pjsua/scripts-sipp/strict-route.xml (added), res/pjproject/pjmedia/build/os-rtems.mak (added), res/pjproject/pjsip/build/wince-evc4/test_pjsip_wince.vcp (added), res/pjproject/third_party/speex/include/speex/speex_callbacks.h (added), res/pjproject/pjsip-apps/src/pjsua_wince/StdAfx.cpp (added), res/pjproject/third_party/srtp/include/rtp_priv.h (added), res/pjproject/third_party/build/resample (added), res/pjproject/tests/pjsua/scripts-sipp/uas-early-bye.xml (added), res/pjproject/tests/pjsua/scripts-sendto/323_srtp2_unsupported_crypto.py (added), res/pjproject/build.symbian/symbian_ua.pkg (added), res/pjproject/tests/pjsua/mod_media_playrec.py (added), res/pjproject/pjnath/build/pjnath.vcproj (added), res/pjproject/third_party/speex/libspeex/fixed_generic.h (added), res/pjproject/pjsip/src/pjsip/sip_multipart.c (added), res/pjproject/tests/pjsua/scripts-call/200_tcp.py (added), res/pjproject/pjsip/build (added), res/pjproject/pjsip-apps/src/pjsua_wince/output (added), res/pjproject/third_party/g7221/encode/encoder.c (added), res/pjproject/pjsip-apps/src/vidgui/vidgui.pro (added), res/pjproject/third_party/srtp/tables (added), res/pjproject/tests/pjsua/mod_recvfrom.py (added), res/pjproject/tests/pjsua/scripts-sendto/171_timer_initiated_by_uas.py (added), res/pjproject/pjsip/include/pjsip-ua (added), res/pjproject/build.symbian/pjsdpU.def (added), res/pjproject/pjmedia/src/pjmedia-audiodev (added), res/pjproject/third_party/portaudio/src/common/pa_front.c (added), res/pjproject/pjmedia/src/pjmedia/event.c (added), res/pjproject/build/m-mpc860.mak (added), res/pjproject/pjlib/src/pj/os_error_unix.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.pkg (added), res/pjproject/pjnath/src/pjturn-srv/listener_tcp.c (added), res/pjproject/pjsip/src/pjsip/sip_transport_loop.c (added), res/pjproject/pjmedia/src/pjmedia-videodev/v4l2_dev.c (added), res/pjproject/pjsip-apps/src/samples/util.h (added), res/pjproject/third_party/speex/libspeex/ltp_sse.h (added), res/pjproject/third_party/gsm/tls/sour.c (added), res/pjproject/pjlib/build/pjlib_samples.mak (added), res/pjproject/pjlib-util/build/os-rtems.mak (added), res/pjproject/pjsip/bin (added), res/pjproject/pjlib/src/pj/os_rwmutex.c (added), res/pjproject/pjlib/src/pj/guid_uuid.c (added), res/pjproject/third_party/speex/libspeex/ltp_arm4.h (added), res/pjproject/pjlib/include/pj/sock_qos.h (added), res/pjproject/third_party/speex/libspeex/testenc_wb.c (added), res/pjproject/third_party/portaudio/pablio/pablio.def (added), res/pjproject/tests/pjsua/scripts-sendto/362_non_sip_uri.py (added), res/pjproject/pjmedia/include/pjmedia_audiodev.h (added), res/pjproject/pjsip-apps/build/libpjproject.vcproj (added), res/pjproject/pjsip-apps/src/pocketpj/res/action.bmp (added), res/pjproject/pjsip/include/pjsip-simple/publish.h (added), res/pjproject/pjlib/src/pj/pool_policy_new.cpp (added), res/pjproject/third_party/gsm/man/bitter.1 (added), res/pjproject/tests/cdash (added), res/pjproject/pjmedia/build/os-darwinos.mak (added), res/pjproject/build/os-linux.mak (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemList.cpp (added), res/pjproject/pjmedia/src/pjmedia/conf_switch.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiAppUi.h (added), res/pjproject/pjlib/include/pj/timer.h (added), res/pjproject/pjlib/build/os-linux-kernel.mak (added), res/pjproject/third_party/speex/libspeex/exc_10_32_table.c (added), res/pjproject/third_party/srtp/crypto/include/alloc.h (added), res/pjproject/third_party/speex/libspeex/hexc_table.c (added), res/pjproject/third_party/speex/include/speex/speex_resampler.h (added), res/pjproject/tests/pjsua/scripts-sendto/120_sdp_with_video_dynamic_1.py (added), res/pjproject/pjlib/src/pj/sock_select.c (added), res/pjproject/pjmedia/src/pjmedia/vid_port.c (added), res/pjproject/third_party/build/baseclasses/output (added), res/pjproject/pjsip-apps/src/pocketpj/res/offline.ico (added), res/pjproject/pjsip-apps/src/samples/siprtp.c (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJ.vcc (added), res/pjproject/pjsip-apps (added), res/pjproject/pjmedia/include/pjmedia/sound_port.h (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJDlg.h (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_2_1.py (added), res/pjproject/third_party/srtp/crypto/include/integers.h (added), res/pjproject/third_party/srtp/crypto/kernel/alloc.c (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJ.vcp (added), res/pjproject/pjlib-util/docs (added), res/pjproject/third_party/srtp/crypto/include/null_auth.h (added), res/pjproject/third_party/build/speex/config.h (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJ.vcw (added), res/pjproject/third_party/portaudio/index.html (added), res/pjproject/pjmedia/build/wince-evc4 (added), res/pjproject/third_party/build/portaudio/src/pa_win_util.c (added), res/pjproject/pjsip/include/pjsip/sip_transport_loop.h (added), res/pjproject/pjlib/docs/header.html (added), res/pjproject/third_party/build/samplerate (added), res/pjproject/third_party/gsm/bin (added), res/pjproject/pjsip-apps/src/ipjsua/main.m (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_1_3.py (added), res/pjproject/pjsip-apps/src/samples/sipecho.c (added), res/pjproject/tests (added), res/pjproject/tests/pjsua/scripts-call/350_prack_a.py (added), res/pjproject/third_party/portaudio/src/common/pa_allocation.c (added), res/pjproject/third_party/srtp/timing (added), res/pjproject/third_party/portaudio/src/common/pa_allocation.h (added), res/pjproject/third_party/build/portaudio/src/pa_skeleton.c (added), res/pjproject/pjlib-util/src/pjlib-util-test/xml.c (added), res/pjproject/third_party/portaudio/src/hostapi/alsa (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio/pa_mac_core_internal.h (added), res/pjproject/pjlib/include (added), res/pjproject/tests/cdash/cfg_gnu.py (added), res/pjproject/pjsip-apps/src/py_pjsua/Makefile (added), res/pjproject/third_party/build (added), res/pjproject/third_party (added), res/pjproject/pjnath/include/pjnath/stun_sock.h (added), res/pjproject/third_party/srtp/crypto/math (added), res/pjproject/third_party/srtp/crypto/test/kernel_driver.c (added), res/pjproject/pjlib/include/pj/string_i.h (added), res/pjproject/pjmedia/src/pjmedia/bidirectional.c (added), res/pjproject/pjmedia/include/pjmedia/conference.h (added), res/pjproject/tests/pjsua/scripts-recvfrom/206_reg_good_efailedcredential.py (added), res/pjproject/pjlib-util/docs/footer.html (added), res/pjproject/third_party/README.txt (added), res/pjproject/third_party/srtp/crypto/hash/auth.c (added), res/pjproject/pjsip-apps/src/python/pjsua.py (added), res/pjproject/pjmedia/build/pjmedia_videodev.vcproj (added), res/pjproject/third_party/portaudio/missing (added), res/pjproject/third_party/srtp/crypto/cipher/aes_cbc.c (added), res/pjproject/pjsip/src/pjsip-simple/presence.c (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_l16_16000.py (added), res/pjproject/pjlib/include/pj/sock.h (added), res/pjproject/pjlib/include/pj++/pool.hpp (added), res/pjproject/third_party/build/portaudio/src/pa_stream.c (added), res/pjproject/pjlib/include/pj++ (added), res/pjproject/pjlib/src/pj/ssl_sock_symbian.cpp (added), res/pjproject/third_party/build/portaudio/src/pa_stream.h (added), res/pjproject/third_party/speex/libspeex/vq_arm4.h (added), res/pjproject/third_party/portaudio/src/os/unix/pa_unix_hostapis.c (added), res/pjproject/pjlib/include/pj/ip_helper.h (added), res/pjproject/tests/pjsua/inc_const.py (added), res/pjproject/third_party/speex/libspeex/gain_table_lbr.c (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_ilbc.py (added), res/pjproject/build/os-auto.mak.in (added), res/pjproject/pjsip-apps/src/3rdparty_media_sample/Makefile (added), res/pjproject/pjnath/build/pjturn_client.vcproj (added), res/pjproject/third_party/speex/libspeex/filters_arm4.h (added), res/pjproject/tests/pjsua/scripts-sipp/uas-timer-reinvite.xml (added), res/pjproject/pjlib/src/pjlib-test/exception_wrap.cpp (added), res/pjproject/third_party/gsm/src/rpe.c (added), res/pjproject/third_party/portaudio/build/msvc/portaudio.vcproj (added), res/pjproject/tests/pjsua/scripts-sendto/320_srtp_with_unknown_transport_1.py (added), res/pjproject/third_party/build/portaudio/os-linux.mak (added), res/pjproject/pjsip/include/pjsip-simple (added), res/pjproject/pjmedia/include/pjmedia-codec/amr_helper.h (added), res/pjproject/third_party/build/srtp/libsrtp.vcp (added), res/pjproject/third_party/speex/libspeex/_kiss_fft_guts.h (added), res/pjproject/pjlib-util/src/pjlib-util-test/test.c (added), res/pjproject/third_party/portaudio/src/common/pa_process.c (added), res/pjproject/pjlib/include/pj/compat/socket.h (added), res/pjproject/pjmedia/src/pjmedia-videodev/ios_dev.m (added), res/pjproject/pjlib-util/src/pjlib-util-test/test.h (added), res/pjproject/third_party/portaudio/src/common/pa_process.h (added), res/pjproject/tests/pjsua/wavs (added), res/pjproject/pjsip-apps/src/ipjsua/Classes (added), res/pjproject/third_party/build/Makefile (added), res/pjproject/pjmedia/src/pjmedia/vid_tee.c (added), res/pjproject/third_party/speex/libspeex/jitter.c (added), res/pjproject/build.symbian/null_audioU.def (added), res/pjproject/pjlib/src/pj/sock_qos_dummy.c (added), res/pjproject/pjlib/build/wince-evc4/pjlib_test_wince.vcp (added), res/pjproject/third_party/portaudio/include/pa_asio.h (added), res/pjproject/third_party/srtp/CHANGES (added), res/pjproject/pjsip-apps/src/ipjsystest/MainWindow.xib (added), res/pjproject/pjlib/src/pj/os_core_symbian.cpp (added), res/pjproject/pjlib/src/pj/os_error_symbian.cpp (added), res/pjproject/pjmedia/include/pjmedia-audiodev/config.h (added), res/pjproject/pjsip-apps/src/pjsua (added), res/pjproject/pjlib/include/pj/doxygen.h (added), res/pjproject/third_party/srtp/crypto/hash/null_auth.c (added), res/pjproject/third_party/resample (added), res/pjproject/pjlib/src/pj/rand.c (added), res/pjproject/pjmedia/src/pjmedia/resample_libsamplerate.c (added), res/pjproject/pjmedia/src/pjmedia/resample_speex.c (added), res/pjproject/third_party/portaudio/portaudio-2.0.pc.in (added), res/pjproject/COPYING (added), res/pjproject/tests/pjsua/scripts-sendto/123_sdp_with_unknown_static_2.py (added), res/pjproject/pjmedia/src/pjmedia-audiodev/symb_vas_dev.cpp (added), res/pjproject/pjnath/src/pjnath/stun_session.c (added), res/pjproject/third_party/portaudio/src/SConscript (added), res/pjproject/pjsip/include/pjsua.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/group/bld.inf (added), res/pjproject/pjsip/src/test/main_win32.c (added), res/pjproject/pjlib/include/pj/compat/os_auto.h.in (added), res/pjproject/pjsip-apps/build/output (added), res/pjproject/pjsip-apps/src/samples/footprint.c (added), res/pjproject/pjlib/src/pj/string.c (added), res/pjproject/pjnath/include/pjnath (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/gfx (added), res/pjproject/third_party/portaudio/src/hostapi/wdmks/readme.txt (added), res/pjproject/third_party/speex/libspeex/preprocess.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiApplication.cpp (added), res/pjproject/third_party/build/resample/libresample.vcproj (added), res/pjproject/third_party/gsm/tst/cod2txt.c (added), res/pjproject/pjlib/src/pj/symbols.c (added), res/pjproject/third_party/portaudio/include/pa_win_ds.h (added), res/pjproject/third_party/portaudio/src/hostapi/oss/low_latency_tip.txt (added), res/pjproject/third_party/build/resample/Makefile (added), res/pjproject/pjmedia/src/test/vid_codec_test.c (added), res/pjproject/pjsip-apps/src/python/samples/simplecall.py (added), res/pjproject/pjnath/include/pjnath.h (added), res/pjproject/third_party/portaudio/build/scons (added), res/pjproject/pjmedia/src/pjmedia/delaybuf.c (added), res/pjproject/third_party/portaudio/bindings (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJ.cpp (added), res/pjproject/tests/pjsua/scripts-recvfrom/200_reg_good_enocredentiall.py (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_speex_16000.py (added), res/pjproject/pjnath/src/pjnath-test/main_win32.c (added), res/pjproject/tests/pjsua/scripts-sendto/322_srtp2_recv_savp.py (added), res/pjproject/third_party/srtp/crypto/cipher/aes.c (added), res/pjproject/svn_pset.bat (added), res/pjproject/tests/pjsua/scripts-sipp/uas-answer-180-multiple-fmts-support-update.xml (added), res/pjproject/pjsip/src/pjsip/sip_auth_parser.c (added), res/pjproject/third_party/portaudio/src/hostapi/jack/pa_jack.c (added), res/pjproject/pjsip/src/pjsip/sip_errno.c (added), res/pjproject/build.symbian/00.bat (added), res/pjproject/tests/cdash/starttest_sample.bat (added), res/pjproject/pjlib-util/src/pjlib-util/sha1.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/Symbian_ua_guiSettingItemListSettings.h (added), res/pjproject/pjsip/src/pjsip/sip_auth_client.c (added), res/pjproject/tests/pjsua/scripts-sendto/300_srtp_receive_no_key_2.py (added), res/pjproject/pjlib/src/pj/os_time_win32.c (added), res/pjproject/build/vs/pjproject-vs8-win32-release-defaults.vsprops (added), res/pjproject/third_party/resample/src/libresample_dll.c (added), res/pjproject/third_party/g7221/decode/decoder.c (added), res/pjproject/third_party/srtp/crypto/cipher/cipher.c (added), res/pjproject/pjlib/include/pj/unicode.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/gfx/mark_icon.bmp (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_gsm.py (added), res/pjproject/third_party/speex (added), res/pjproject/tests/pjsua/scripts-run/100_simple.py (added), res/pjproject/pjmedia/src/test/sdp_neg_test.c (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_8_22.py (added), res/pjproject/third_party/BaseClasses/combase.h (added), res/pjproject/pjsip-apps/src/ipjsua/Classes/ipjsuaAppDelegate.h (added), res/pjproject/third_party/build/speex/speex/speex_config_types.h (added), res/pjproject/pjsip-apps/src/ipjsua/Classes/ipjsuaAppDelegate.m (added), res/pjproject/pjsip/src/pjsip-simple (added), res/pjproject/pjmedia/src/pjmedia-codec/ffmpeg_vid_codecs.c (added), res/pjproject/build.symbian/pjsua_lib.mmp (added), res/pjproject/pjsip-apps/src/python/samples/registration.py (added), res/pjproject/pjlib-util/include/pjlib-util/config.h (added), res/pjproject/pjsip/build/pjsip_test.vcproj (added), res/pjproject/pjnath/src/pjnath-test/main.c (added), res/pjproject/pjlib-util/src/pjlib-util/base64.c (added), res/pjproject/pjsip-apps/src/samples/strerror.c (added), res/pjproject/third_party/mp3/BladeMP3EncDLL.h (added), res/pjproject/third_party/portaudio/fixdir.bat (added), res/pjproject/pjlib/src/pj/ioqueue_common_abs.c (added), res/pjproject/third_party/srtp/crypto/kernel/key.c (added), res/pjproject/pjsip-apps/build/samples.vcproj (added), res/pjproject/pjlib/src/pj/ioqueue_common_abs.h (added), res/pjproject/pjmedia/src/pjmedia/stream_info.c (added), res/pjproject/third_party/BaseClasses/mtype.cpp (added), res/pjproject/third_party/BaseClasses/seekpt.h (added), res/pjproject/pjmedia/src/pjmedia-videodev/sdl_dev_m.m (added), res/pjproject/tests/pjsua/scripts-sipp/uas-mwi.xml (added), res/pjproject/third_party/srtp/VERSION (added), res/pjproject/pjmedia/src/pjmedia/null_port.c (added), res/pjproject/pjlib/src/pj/ssl_sock_common.c (added), res/pjproject/third_party/portaudio/README.txt (added), res/pjproject/tests/pjsua/scripts-sendto/152_err_sdp_no_media.py (added), res/pjproject/third_party/portaudio/src/hostapi/coreaudio/notes.txt (added), res/pjproject/third_party/srtp/crypto/include/cipher.h (added), res/pjproject/pjmedia/src/pjmedia-codec/g722.c (added), res/pjproject/third_party/srtp/doc (added), res/pjproject/third_party/srtp/crypto/kernel/err.c (added), res/pjproject/third_party/build/gsm/libgsmcodec.vcproj (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_3_3.py (added), res/pjproject/pjsip/src/pjsua-lib (added), res/pjproject/pjnath/src/pjnath-test/server.c (added), res/pjproject/pjsip/build/os-rtems.mak (added), res/pjproject/pjmedia/src/pjmedia/resample_port.c (added), res/pjproject/pjsip-apps/src/samples/playfile.c (added), res/pjproject/pjnath/src/pjnath-test/server.h (added), res/pjproject/build/vs/pjproject-vs8-wm6-release-defaults.vsprops (added), res/pjproject/pjmedia/src/pjmedia-audiodev/errno.c (added), res/pjproject/third_party/resample/src/resamplesubs.c (added), res/pjproject/third_party/ilbc/StateSearchW.c (added), res/pjproject/third_party/build/os-win32.mak (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_speex_8000.py (added), res/pjproject/third_party/build/portaudio/libportaudio.vcp (added), res/pjproject/third_party/build/portaudio/src/pa_unix_hostapis.c (added), res/pjproject/third_party/ilbc/StateSearchW.h (added), res/pjproject/build/m-m68k.mak (added), res/pjproject/pjsip-apps/src/python/setup.py (added), res/pjproject/tests/automated/gnu.xml.template (added), res/pjproject/pjlib/include/pj/file_io.h (added), res/pjproject/pjsip-apps/src/samples/confsample.c (added), res/pjproject/pjsip/include/pjsip/sip_parser.h (added), res/pjproject/third_party/speex/libspeex/vq.c (added), res/pjproject/build (added), res/pjproject/third_party/speex/include (added), res/pjproject/pjnath/src/pjnath-test/turn_sock_test.c (added), res/pjproject/third_party/speex/libspeex/vq.h (added), res/pjproject/third_party/portaudio/src/os/win (added), res/pjproject/pjsip/include/pjsip/sip_auth_msg.h (added), configs/rtp.conf.sample, res/pjproject/pjsip/src/pjsip/sip_transport_tls.c (added), res/pjproject/pjsip-apps/src/pocketpj/res/PocketPJ.ico (added), res/pjproject/Makefile (added), res/pjproject/third_party/srtp/crypto/test/rand_gen.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemListView.cpp (added), res/pjproject/third_party/g7221/decode/dct4_s.c (added), res/pjproject/tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_3.py (added), res/pjproject/build.symbian/pjmedia_audiodev.mmp (added), res/pjproject/tests/pjsua/scripts-sendto/201_ice_mismatch_1.py (added), res/pjproject/third_party/srtp/crypto/include (added), res/pjproject/third_party/g7221/decode/dct4_s.h (added), res/pjproject/pjlib/src/pjlib-test/timestamp.c (added), res/pjproject/third_party/speex/libspeex (added), res/pjproject/pjsip-apps/src/ipjsua/ipjsua_Prefix.pch (added), res/pjproject/pjlib/include/pj/compat/os_darwinos.h (added), res/pjproject/pjlib/src/pj/os_info_symbian.cpp (added), res/pjproject/tests/pjsua/scripts-sendto/300_srtp_duplicated_crypto_tag.py (added), res/pjproject/pjlib-util/include/pjlib-util/xml.h (added), res/pjproject/third_party/srtp/test (added), res/pjproject/third_party/srtp/test/rtpw_test.sh (added), res/pjproject/third_party/speex/libspeex/exc_10_16_table.c (added), res/pjproject/third_party/BaseClasses/measure.h (added), res/pjproject/pjmedia/include/pjmedia/plc.h (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_core.c (added), res/pjproject/pjlib-util/include/pjlib-util/dns.h (added), res/pjproject/pjsip/include/pjsip-simple/xpidf.h (added), res/pjproject/pjlib/src/pj/sock_qos_symbian.cpp (added), res/pjproject/third_party/srtp/TODO (added), res/pjproject/tests/pjsua/inc_sdp.py (added), res/pjproject/pjnath/src/pjnath/stun_auth.c (added), res/pjproject/pjsip-apps/src/ipjsystest/Classes/ipjsystestAppDelegate.h (added), res/pjproject/pjmedia/src (added), res/pjproject/tests/pjsua/scripts-pres/200_publish.py (added), res/pjproject/pjsip/src/test/main.c (added), res/pjproject/pjsip-apps/src/ipjsystest/Classes/ipjsystestAppDelegate.m (added), res/pjproject/pjlib/src/pj/extra-exports.c (added), res/pjproject/tests/pjsua/scripts-run (added), res/pjproject/pjmedia/src/pjmedia/transport_loop.c (added), res/pjproject/third_party/portaudio/Makefile.in (added), res/pjproject/pjmedia/src/pjmedia-videodev/errno.c (added), res/pjproject/pjlib/src/pj/os_time_unix.c (added), res/pjproject/pjlib/src/pj/types.c (added), res/pjproject/pjmedia/include/pjmedia-codec/g7221_sdp_match.h (added), res/pjproject/pjmedia/src/pjmedia-codec/opencore_amrnb.c (added), res/pjproject/third_party/lib (added), res/pjproject/pjsip/src/pjsip/sip_config.c (added), res/pjproject/pjsip/include/pjsua-lib/pjsua.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemListView.h (added), res/pjproject/pjsip-apps/src/pocketpj/ReadMe.txt (added), res/pjproject/pjmedia/include/pjmedia-codec/l16.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.h (added), res/pjproject/third_party/BaseClasses/wxdebug.h (added), res/pjproject/third_party/g7221/decode (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_l16_16000.py (added), res/pjproject/tests/pjsua/scripts-sendto/110_tel_uri.py (added), res/pjproject/build/os-palmos.mak (added), res/pjproject/pjmedia/src/pjmedia/vid_stream.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/gfx/list_icon.bmp (added), res/pjproject/pjlib/src/pjlib++-test/main.cpp (added), res/pjproject/pjlib/include/pj/array.h (added), res/pjproject/pjlib/src/pj/log_writer_symbian_console.cpp (added), res/pjproject/pjmedia/build/m-x86_64.mak (added), res/pjproject/pjsip-apps/src/samples/level.c (added), res/pjproject/pjnath/src/pjnath/ice_strans.c (added), res/pjproject/pjlib/src/pjlib-test/activesock.c (added), res/pjproject/build.symbian/pjsip_simple.mmp (added), res/pjproject/pjlib/include/pj/string.h (added), res/pjproject/pjsip-apps/src/pocketpj/res/blank.bmp (added), res/pjproject/pjsip-apps/src/pjsystest/gui.h (added), res/pjproject/tests/pjsua/scripts-pesq/101_defaults.py (added), res/pjproject/tests/cdash/builder.py (added), res/pjproject/pjsip-apps/src/pjsua_wince/StdAfx.h (added), res/pjproject/pjlib/include/pj/pool_i.h (added), res/pjproject/build.symbian/libgsmcodec.mmp (added), res/res_rtp_asterisk.c, res/pjproject/tests/pjsua/scripts-sendto/140_sdp_with_direction_attr_in_session_2.py (added), res/pjproject/third_party/BaseClasses/amfilter.cpp (added), res/pjproject/build/m-auto.mak (added), res/pjproject/build/os-darwinos.mak (added), res/pjproject/pjmedia/include/pjmedia/echo_port.h (added), res/pjproject/third_party/BaseClasses/renbase.cpp (added), res/pjproject/third_party/g7221/common/huff_tab.c (added), res/pjproject/third_party/gsm/src/toast_lin.c (added), res/pjproject/third_party/srtp/crypto/hash (added), res/pjproject/third_party/g7221/common/huff_tab.h (added), res/pjproject/pjnath/src/pjnath/nat_detect.c (added), res/pjproject/tests/pjsua/scripts-recvfrom (added), res/pjproject/pjlib/build/pjlib.vcproj (added), res/pjproject/pjsip/build/wince-evc4/pjsip_simple_wince.vcp (added), res/pjproject/build.symbian/pjsip_ua.mmp (added), res/pjproject/pjsip-apps/src/ipjsystest/Classes/RootViewController.h (added), res/pjproject/third_party/mp3/mp3_writer.c (added), res/pjproject/third_party/ilbc/getCBvec.c (added), res/pjproject/user.mak.sample (added), res/pjproject/pjsip-apps/src/pocketpj/StdAfx.cpp (added), res/pjproject/pjsip-apps/src/ipjsystest/Classes/RootViewController.m (added), res/pjproject/third_party/ilbc/getCBvec.h (added), res/pjproject/pjlib/include/pj++/types.hpp (added), res/pjproject/pjlib/src/pjlib-test/ioq_unreg.c (added), res/pjproject/third_party/resample/src/largefilter.h (added), res/pjproject/third_party/build/gsm/output (added), res/pjproject/pjmedia/include/pjmedia/errno.h (added), res/pjproject/pjmedia/include/pjmedia-codec (added), res/pjproject/third_party/gsm/src/toast.c (added), res/pjproject/pjmedia/src/test/session_test.c (added), res/pjproject/pjmedia/build/pjmedia_test.vcproj (added), res/pjproject/pjlib-util/src/pjlib-util/md5.c (added), res/pjproject/pjmedia/include/pjmedia/clock.h (added), res/pjproject/pjmedia/include/pjmedia/splitcomb.h (added), res/pjproject/third_party/srtp/crypto/test/aes_calc.c (added), res/pjproject/pjmedia/include/pjmedia-codec/gsm.h (added), res/pjproject/pjnath/bin (added), res/pjproject/pjmedia/src/pjmedia-videodev/dshowclasses.cpp (added), res/pjproject/pjsip-apps/build/Samples.mak (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.loc (added), res/pjproject/pjmedia/src/pjmedia/converter.c (added), res/pjproject/pjmedia/src/pjmedia-videodev/videodev.c (added), res/pjproject/pjmedia/include/pjmedia-videodev (added), res/pjproject/third_party/ilbc/hpOutput.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.txt (added), res/pjproject/third_party/portaudio/pablio/README.txt (added), res/pjproject/third_party/ilbc/hpOutput.h (added), res/pjproject/third_party/gsm/tls/bitter.dta (added), res/pjproject/tests/pjsua/scripts-sipp/uas-template.xml (added), res/pjproject/tests/pjsua/scripts-sendto/200_ice_success_2.py (added), res/pjproject/third_party/speex/libspeex/lpc.c (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_11_32.py (added), res/pjproject/third_party/build/gsm/Makefile (added), res/pjproject/build.symbian/pjmediaU.def (added), res/pjproject/third_party/speex/libspeex/lpc.h (added), res/pjproject/pjlib/src/pjlib-test/udp_echo_srv_ioqueue.c (added), res/pjproject/tests/pjsua/scripts-recvfrom/215_reg_good_multi_ok.py (added), res/pjproject/pjsip-apps/src/ipjsystest/ipjsystest-Info.plist (added), res/pjproject/pjlib/src/pjlib-test/select.c (added), res/pjproject/pjmedia/include/pjmedia (added), res/pjproject/tests/pjsua/scripts-sendto/001_torture_4475_3_1_1_2.py (added), res/pjproject/third_party/g7221/common/typedef.h (added), res/pjproject/third_party/ilbc/iLBC_encode.c (added), res/pjproject/pjmedia/include/pjmedia-codec/config.h (added), res/pjproject/pjlib/src/pj/compat/string_compat.c (added), res/pjproject/pjsip-apps/build/vidgui.vcproj (added), res/pjproject/third_party/ilbc/iLBC_encode.h (added), res/pjproject/pjsip-apps/src/py_pjsua/pjsua.py (added), res/pjproject/third_party/gsm/INSTALL (added), res/pjproject/pjlib/src/pjlib-test/ioq_udp.c (added), res/pjproject/pjlib/build/os-win32.mak (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.pan (added), res/pjproject/pjlib/src/pjlib-test/main_win32.c (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_ilbc.py (added), res/pjproject/pjlib/src/pj/os_time_linux_kernel.c (added), res/pjproject/tests/pjsua/scripts-sendto/401_fmtp_g7221_with_bitrate_32000.py (added), res/pjproject/pjsip/include/pjsip/sip_tel_uri.h (added), res/pjproject/third_party/portaudio/src/common/pa_memorybarrier.h (added), res/pjproject/pjmedia/src/pjmedia-codec/h264_packetizer.c (added), res/pjproject/pjmedia/src/pjmedia (added), res/pjproject/pjsip-apps/src/pocketpj/res/invisibl.ico (added), res/pjproject/pjmedia/include/pjmedia/wsola.h (added), res/pjproject/third_party/build/portaudio/src/portaudio.h (added), res/pjproject/pjmedia/src/pjmedia-audiodev/symb_mda_dev.cpp (added), res/pjproject/third_party/speex/libspeex/buffer.c (added), res/pjproject/pjsip-apps/src/samples/debug.c (added), res/pjproject/third_party/srtp/crypto/include/crypto.h (added), res/pjproject/pjsip/src/test (added), res/pjproject/pjlib/src/pj/os_core_win32.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.hrh (added), res/pjproject/pjmedia/src/pjmedia/types.c (added), res/pjproject/pjsip/src/pjsip/sip_tel_uri.c (added), res/pjproject/tests/pjsua/scripts-sendto/252_multipart_ok_clutter.py (added), res/pjproject/third_party/gsm/src/code.c (added), main/rtp_engine.c, res/pjproject/pjsip-apps/src/samples/icedemo.c (added), res/pjproject/third_party/build/portaudio/src/pa_cpuload.c (added), res/pjproject/third_party/srtp/crypto/include/rand_source.h (added), res/pjproject/third_party/portaudio/include/portaudio.h (added), res/pjproject/pjmedia/lib (added), res/pjproject/pjsip-apps/src/samples/pjsip-perf.c (added), res/pjproject/third_party/build/portaudio/src/pa_cpuload.h (added), res/pjproject/third_party/build/srtp/srtp_config.h (added), res/pjproject/tests/cdash/inc_test.py (added), res/pjproject/pjnath/include/pjnath/types.h (added), res/pjproject/third_party/portaudio/src/hostapi/wdmks/pa_win_wdmks.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp (added), res/pjproject/pjlib/src/pj/list.c (added), res/pjproject/pjsip-apps/src/python (added), res/pjproject/third_party/build/portaudio/src/pa_mac_core.c (added), res/pjproject/pjsip-apps/src/confbot/config.py (added), res/pjproject/third_party/build/portaudio/src/pa_mac_core.h (added), res/pjproject/third_party/build/os-darwinos.mak (added), res/pjproject/tests/pjsua/scripts-sendto/151_err_sdp_video.py (added), res/pjproject/third_party/srtp/crypto/test/sha1_driver.c (added), res/pjproject/third_party/ilbc/filter.c (added), res/pjproject/third_party/speex/libspeex/testjitter.c (added), res/pjproject/pjsip-apps/src/pocketpj/StdAfx.h (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJ.vcproj (added), res/pjproject/third_party/ilbc/filter.h (added), res/pjproject/third_party/speex/libspeex/cb_search_bfin.h (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_11_16.py (added), res/pjproject/pjsip-apps/src/ipjsua/SecondView.xib (added), res/pjproject/third_party/ilbc/StateConstructW.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-subscribe-refresh-481.xml (added), res/pjproject/pjlib-util/src/pjlib-util/stun_simple.c (added), res/pjproject/configure-iphone (added), res/pjproject/pjlib/include/pj/fifobuf.h (added), res/pjproject/third_party/ilbc/StateConstructW.h (added), res/pjproject/pjsip/include (added), res/pjproject/third_party/gsm/src/decode.c (added), res/pjproject/build.symbian/symbian_ua.mmp (added), res/pjproject/pjsip/include/pjsip/sip_event.h (added), res/pjproject/third_party/srtp/crypto/math/gf2_8.c (added), res/pjproject/third_party/g7221/common (added), res/pjproject/third_party/gsm/MANIFEST (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiApplication.h (added), res/pjproject/third_party/portaudio/src/os/win/pa_x86_plain_converters.c (added), res/pjproject/pjlib/src/pjlib-samples (added), res/pjproject/pjnath/src/pjnath-test/sess_auth.c (added), res/pjproject/build/os-sunos.mak (added), res/pjproject/third_party/portaudio/src/os/win/pa_x86_plain_converters.h (added), res/pjproject/third_party/build/portaudio/src/pa_win_hostapis.c (added), res/pjproject/pjsip-apps/src/python/_pjsua.c (added), res/pjproject/svn_pset (added), res/pjproject/pjmedia/src/pjmedia/vid_stream_info.c (added), res/pjproject/pjmedia/src/pjmedia/wav_player.c (added), res/pjproject/pjsip-apps/src/python/_pjsua.h (added), res/pjproject/tests/pjsua/scripts-sendto/251_multipart_ok_simple.py (added), res/pjproject/third_party/gsm/tls/ginger.c (added), res/pjproject/third_party/portaudio/src/common/pa_trace.c (added), res/pjproject/third_party/build/os-linux.mak (added), res/pjproject/third_party/speex/libspeex/mdf.c (added), res/pjproject/third_party/portaudio/src/common/pa_trace.h (added), res/pjproject/pjsip-apps/src/samples/encdec.c (added), res/pjproject/pjmedia/README.txt (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.loc (added), res/pjproject/build/vs (added), res/pjproject/pjmedia/src/pjmedia/mem_capture.c (added), res/pjproject/pjsip-apps/src/py_pjsua/helper.mak (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_l16_16000_stereo.py (added), res/pjproject/pjmedia/src/pjmedia-audiodev/symb_aps_dev.cpp (added), res/pjproject/pjmedia/include/pjmedia/alaw_ulaw.h (added), res/pjproject/pjsip-apps/src/pjsystest/main_console.c (added), res/pjproject/pjsip/build/pjsip_simple.vcproj (added), res/pjproject/pjlib/src/pj/os_info_iphone.m (added), res/pjproject/pjmedia/src/pjmedia-audiodev/legacy_dev.c (added), res/pjproject/pjsip-apps/src/ipjsua/Classes/TabBarController.h (added), res/pjproject/pjsip/include/pjsip-simple/pidf.h (added), res/pjproject/pjsip-apps/src/pjsua_wince/pjsua_wince.vcproj (added), res/pjproject/pjlib-util/docs/header.html (added), res/pjproject/third_party/ilbc/constants.c (added), res/pjproject/pjsip-apps/src/ipjsua/Classes/TabBarController.m (added), res/pjproject/build.symbian (added), res/pjproject/pjlib-util/include/pjlib-util/getopt.h (added), res/pjproject/third_party/ilbc/constants.h (added), res/pjproject/third_party/build/portaudio/src/pa_unix_util.c (added), res/pjproject/pjmedia/include/pjmedia/transport_ice.h (added), res/pjproject/third_party/build/g7221/Makefile (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/gfx/list_icon_mask.bmp (added), res/pjproject/pjmedia/include/pjmedia/vid_tee.h (added), res/pjproject/third_party/build/portaudio/src/pa_unix_util.h (added), res/pjproject/pjmedia/src/pjmedia-videodev/dshow_dev.c (added), res/pjproject/pjsip-apps/src/pocketpj/res/offline.bmp (added), res/pjproject/pjlib/src/pj/log_writer_printk.c (added), res/pjproject/third_party/portaudio/src/common/pa_types.h (added), res/pjproject/pjsip/src/pjsip-simple/pidf.c (added), res/pjproject/third_party/portaudio/pablio/test_w_saw8.c (added), res/pjproject/tests/pjsua/scripts-call/300_ice_1_1.py (added), res/pjproject/pjsip-apps/src/samples/aviplay.c (added), res/pjproject/tests/pjsua/scripts-sendto/331_srtp_prefer_rtp_avp.py (added), res/pjproject/tests/pjsua/scripts-recvfrom/400_inv_answered_with_less_media.py (added), res/pjproject/pjsip/src/pjsip/sip_auth_aka.c (added), res/pjproject/build.symbian/bld.inf (added), res/pjproject/third_party/srtp/crypto/Makefile (added), res/pjproject/third_party/speex/libspeex/kiss_fft.c (added), res/pjproject/pjlib/src/pj/compat (added), res/pjproject/third_party/speex/libspeex/kiss_fft.h (added), res/pjproject/pjnath/include/pjnath/turn_sock.h (added), res/pjproject/third_party/g7221/common/defs.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.loc (added), res/pjproject/third_party/g7221/decode/coef2sam.c (added), res/pjproject/third_party/build/portaudio/src/pa_mac_hostapis.c (added), res/pjproject/pjlib/include/pj/hash.h (added), res/pjproject/pjlib/include/pj/compat/assert.h (added), res/pjproject/pjmedia/src/pjmedia/sdp_neg.c (added), res/pjproject/pjnath/src/pjturn-srv/main.c (added), res/pjproject/third_party/srtp/crypto/test/datatypes_driver.c (added), res/pjproject/pjmedia/include/pjmedia/silencedet.h (added), res/pjproject/third_party/srtp/crypto/include/aes_icm.h (added), res/pjproject/third_party/srtp/crypto/include/auth.h (added), res/pjproject/third_party/gsm/src/long_term.c (added), res/pjproject/third_party/ilbc/LPCencode.c (added), res/pjproject/pjsip/src/pjsip-ua/sip_timer.c (added), res/pjproject/third_party/gsm/add-test/add_test.dta (added), res/pjproject/third_party/ilbc/LPCencode.h (added), res/pjproject/pjlib/src/pj/ip_helper_generic.c (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_1_2.py (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_11_44.py (added), res/pjproject/pjsip-apps/src/py_pjsua/setup.py (added), res/pjproject/third_party/build/portaudio (added), res/pjproject/tests/pjsua/scripts-sendto/100_simplecall.py (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.rssi (added), res/pjproject/pjlib/src/pjlib-test/pjlib_test_reg.rss (added), res/pjproject/pjlib/include/pj/compat/cc_gcc.h (added), res/pjproject/pjmedia/include/pjmedia/vid_codec.h (added), res/pjproject/tests/pjsua/scripts-sipp/uas.xml (added), res/pjproject/pjmedia/src/pjmedia/echo_suppress.c (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_11_8.py (added), res/pjproject/pjmedia/src/pjmedia/port.c (added), res/pjproject/pjlib/src/pj/ioqueue_symbian.cpp (added), res/pjproject/pjlib/build/cacert.pem (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/gfx/mark_icon_mask.bmp (added), res/pjproject/third_party/speex/libspeex/filterbank.c (added), res/pjproject/third_party/gsm/src/gsm_encode.c (added), res/pjproject/pjsip/src/pjsip-simple/errno.c (added), res/pjproject/third_party/speex/libspeex/filterbank.h (added), res/pjproject/third_party/gsm/src/toast_audio.c (added), res/pjproject/tests/pjsua/scripts-sendto/999_asterisk_err.py (added), res/pjproject/pjsip/src/pjsip-ua/sip_100rel.c (added), res/pjproject/pjlib/src/pjlib-test/rbtree.c (added), res/pjproject/third_party/portaudio/src/hostapi/oss/pa_unix_oss.c (added), res/pjproject/pjlib/include/pj/lock.h (added), res/pjproject/pjlib/include/pj++/string.hpp (added), res/pjproject/tests/pjsua/scripts-sipp/uac-message-no-body.xml (added), res/pjproject/pjnath/build/wince-evc4 (added), res/pjproject/tests/pjsua/scripts-sendto/330_srtp_prefer_rtp_savp.py (added), res/pjproject/pjlib/src/pj/sock_qos_bsd.c (added), res/pjproject/pjmedia/src/pjmedia-codec/g722/g722_enc.c (added), res/pjproject/third_party/speex/include/speex/speex.h (added), res/pjproject/pjsip/include/pjsip-ua/sip_replaces.h (added), res/pjproject/third_party/g7221/common/basic_op_i.h (added), res/pjproject/pjsip-apps/src/pocketpj/PocketPJ.h (added), res/pjproject/pjmedia/src/pjmedia-codec/g722/g722_enc.h (added), res/pjproject/third_party/portaudio/src/hostapi/wmme (added), res/pjproject/pjsip/include/pjsip-simple/evsub_msg.h (added), res/pjproject/tests/pjsua/scripts-sendto/122_sdp_with_unknown_dynamic_2.py (added), res/pjproject/tests/pjsua/scripts-pesq/201_codec_g711a.py (added), res/pjproject/tests/pjsua/scripts-sendto/360_non_sip_uri.py (added), res/pjproject/third_party/build/portaudio/src/pa_util.h (added), res/pjproject/pjlib-util/src/pjlib-util-test/main_rtems.c (added), res/pjproject/tests/pjsua/scripts-recvfrom/234_reg_bad_stale_ok.py (added), res/pjproject/svn_add.bat (added), res/pjproject/build/cc-gcc.mak (added), res/pjproject/build/vs/pjproject-vs8-release-static-defaults.vsprops (added), res/pjproject/third_party/speex/libspeex/lpc_bfin.h (added), res/pjproject/pjsip-apps/src/ipjsystest (added), res/pjproject/pjlib/src/pj/compat/setjmp_i386.S (added), res/pjproject/third_party/build/resample/output (added), res/pjproject/pjsip-apps/src/python/samples (added), res/pjproject/tests/pjsua/scripts-sendto/170_timer_required.py (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/sis (added), res/pjproject/pjsip/include/pjsip/print_util.h (added), res/pjproject/pjmedia/include/pjmedia/port.h (added), res/pjproject/third_party/portaudio/src/hostapi/asio/pa_asio.cpp (added), res/pjproject/third_party/ilbc/syntFilter.c (added), res/pjproject/third_party/BaseClasses/ctlutil.h (added), res/pjproject/third_party/speex/libspeex/testecho.c (added), res/pjproject/third_party/ilbc/syntFilter.h (added), res/pjproject/tests/cdash/cfg_symbian.py (added), res/pjproject/third_party/portaudio/build/dev-cpp (added), res/pjproject/pjnath/include/pjnath/stun_config.h (added), res/pjproject/pjsip-apps/src/pjsystest/resource.h (added), res/pjproject/third_party/srtp/crypto/include/xfm.h (added), res/pjproject/pjlib/include/pj/compat/os_linux.h (added), res/pjproject/pjlib/include/pj/compat/os_linux_kernel.h (added), res/pjproject/tests/pjsua/scripts-sendto/123_sdp_with_unknown_static_1.py (added), res/pjproject/third_party/portaudio/pablio/test_rw_echo.c (added), res/pjproject/pjmedia/src/pjmedia/echo_speex.c (added), res/pjproject/third_party/build/speex (added), res/pjproject/pjlib/src/pj/os_core_unix.c (added), res/pjproject/third_party/portaudio/src/hostapi/asio/iasiothiscallresolver.cpp (added), res/pjproject/tests/pjsua/scripts-call (added), res/pjproject/pjlib/build/os-linux.mak (added), res/pjproject/third_party/srtp/test/rtp.c (added), res/pjproject/third_party/ilbc/doCPLC.c (added), res/pjproject/pjnath/src/pjnath/stun_sock.c (added), res/pjproject/build/vs/pjproject-vs8-wm2003-release-defaults.vsprops (added), res/pjproject/pjlib/src/pj/unicode_win32.c (added), res/pjproject/third_party/ilbc/doCPLC.h (added), res/pjproject/pjlib-util/include/pjlib-util.h (added), res/pjproject/pjmedia/build/os-win32.mak (added), res/pjproject/third_party/srtp/crypto/math/datatypes.c (added), res/pjproject/build.symbian/pjlibU.def (added), res/pjproject/third_party/BaseClasses/streams.h (added), res/pjproject/pjsip-apps/src/ipjsua/Resources-iPad (added), res/pjproject/pjlib-util/src/pjlib-util/stun_simple_client.c (added), res/pjproject/pjsip/src/test/dns_test.c (added), res/pjproject/third_party/portaudio/LICENSE.txt (added), res/pjproject/build.symbian/pjproject.cww (added), res/pjproject/pjlib/build/wince-evc4 (added), res/pjproject/pjlib/include/pj/compat/os_symbian.h (added), res/pjproject/third_party/speex/libspeex/fixed_bfin.h (added), res/pjproject/third_party/speex/include/speex/speex_config_types.h.in (added), res/pjproject/third_party/speex/libspeex/exc_5_256_table.c (added), res/pjproject/third_party/speex/libspeex/testresample.c (added), res/pjproject/pjnath/src/pjturn-srv/listener_udp.c (added), res/pjproject/pjsip/build/wince-evc4/output (added), res/pjproject/pjsip-apps/src/samples/aectest.c (added), res/pjproject/pjlib/src/pjlib-test/thread.c (added), res/pjproject/pjlib/include/pj (added), res/pjproject/tests/pjsua/scripts-sendto/300_srtp_receive_no_key_1.py (added), res/pjproject/pjmedia/include/pjmedia/transport_udp.h (added), res/pjproject/third_party/build/ilbc (added), res/pjproject/third_party/srtp/config_in.h (added), res/pjproject/third_party/speex/libspeex/nb_celp.c (added), res/pjproject/third_party/speex/libspeex/nb_celp.h (added), res/pjproject/third_party/srtp/crypto/kernel (added), res/pjproject/tests/pjsua/scripts-sendto/124_sdp_with_unknown_static_unknown_transport.py (added), res/pjproject/tests/pjsua/scripts-sendto/310_srtp1_no_crypto.py (added), res/pjproject/tests/pjsua/scripts-recvfrom/202_reg_good_ok_wildcard.py (added), res/pjproject/third_party/build/portaudio/os-auto.mak.in (added), res/pjproject/tests/pjsua/mod_sendto.py (added), res/pjproject/build/cc-auto.mak.in (added), res/pjproject/pjmedia/build/output (added), res/pjproject/tests/pjsua/scripts-sipp/uas-auth.xml (added), res/pjproject/pjlib/src/pjlib-test/errno.c (added), res/pjproject/tests/automated/gnu-ipp.xml.template (added), res/pjproject/pjmedia/include/pjmedia-audiodev/errno.h (added), res/pjproject/build.symbian/pjsip_simpleU.def (added), res/pjproject/pjsip/include/pjsip/sip_autoconf.h.in (added), res/pjproject/third_party/speex/libspeex/fixed_debug.h (added), res/pjproject/third_party/portaudio/depcomp (added), res/pjproject/pjnath/src/pjturn-srv/auth.c (added), res/pjproject/pjlib/src/pj/pool.c (added), res/pjproject/pjlib-util/include/pjlib-util/sha1.h (added), res/pjproject/pjnath/src/pjturn-srv/auth.h (added), res/pjproject/pjmedia/src/pjmedia/stream_common.c (added), res/pjproject/pjlib/include/pj/compat/m_auto.h.in (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_l16_8000.py (added), res/pjproject/pjmedia/src/pjmedia/rtcp.c (added), res/pjproject/pjlib/build/os-auto.mak.in (added), res/pjproject/tests/cdash/cfg_msvc.py (added), res/pjproject/third_party/gsm/src/lpc.c (added), res/pjproject/third_party/resample/README.resample (added), res/pjproject/pjsip-apps/src/ipjsua/MainWindow.xib (added), res/pjproject/third_party/portaudio/include/pa_win_wmme.h (added), res/pjproject/third_party/speex/symbian/config.h (added), res/pjproject/pjnath/src/pjnath-test/test.c (added), res/pjproject/pjsip-apps/src/samples/siprtp_report.c (added), res/pjproject/pjnath/src/pjnath-test/test.h (added), res/pjproject/third_party/srtp (added), res/pjproject/third_party/build/g7221/libg7221codec.vcproj (added), res/pjproject/pjlib-util/build/wince-evc4/pjlib_util_test_wince.vcp (added), res/pjproject/build/m-i386.mak (added), res/pjproject/pjlib-util/include/pjlib-util/srv_resolver.h (added), res/pjproject/tests/pjsua/scripts-call/150_srtp_3_2.py (added), res/pjproject/pjsip/include/pjsip_simple.h (added), res/pjproject/pjmedia/src/test/audio_tool.c (added), res/pjproject/pjlib/src/pj/exception_symbian.cpp (added), res/pjproject/pjmedia/build/m-i386.mak (added), res/pjproject/third_party/BaseClasses/wxutil.h (added), res/pjproject/pjsip-apps/src/vidgui (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_media.c (added), res/pjproject/pjlib-util/build/pjlib_util.vcproj (added), res/pjproject/pjnath/include/pjnath/stun_transaction.h (added), res/pjproject/third_party/portaudio/src/hostapi/oss/recplay.c (added), res/pjproject/third_party/resample/include (added), res/pjproject/pjmedia/include/pjmedia/transport.h (added), res/pjproject/pjlib-util/src/pjlib-util/srv_resolver.c (added), res/pjproject/build.symbian/pjsua_libU.def (added), res/pjproject/pjsip/src/pjsip-simple/presence_body.c (added), res/pjproject/pjmedia/include/pjmedia/stereo.h (added), res/pjproject/tests/pjsua/scripts-call/301_ice_public_b.py (added), res/pjproject/tests/automated/configure.py (added), res/pjproject/pjsip-apps/src/symbian_ua/symbian_ua_reg.rss (added), res/pjproject/pjsip-apps/src/pocketpj/PopUpWnd.h (added), res/pjproject/third_party/speex/libspeex/high_lsp_tables.c (added), res/pjproject/pjlib/src/pj/ssl_sock_ossl.c (added), res/pjproject/tests/pjsua/scripts-sendto/313_srtp1_unsupported_crypto.py (added), res/pjproject/pjsip-apps/src/symbian_ua_gui (added), res/pjproject/third_party/build/milenage/libmilenage.vcp (added), res/pjproject/pjmedia/include/pjmedia/transport_loop.h (added), res/pjproject/third_party/build/gsm/libgsmcodec.vcp (added), res/pjproject/third_party/speex/libspeex/window.c (added), res/pjproject/tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_2.py (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data (added), res/pjproject/pjsip/src/pjsip/sip_transport_wrap.cpp (added), res/pjproject/pjmedia/include/pjmedia-videodev/errno.h (added), res/pjproject/pjlib/src/pj/os_time_common.c (added), res/pjproject/third_party/resample/src (added), res/pjproject/pjlib/docs (added), res/pjproject/tests/pjsua/scripts-sendto/161_err_replaces_dlg_not_found.py (added), res/pjproject/pjsip-apps/src/pocketpj (added), res/pjproject/pjsip-apps/src/samples/simple_pjsua.c (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/src (added), res/pjproject/tests/pjsua/scripts-media-playrec/100_resample_lf_11_48.py (added), res/pjproject/pjmedia/include/pjmedia/rtcp.h (added), res/pjproject/tests/pjsua/scripts-sendto/300_srtp_invalid_crypto_tag_non_numeric.py (added), res/pjproject/tests/pjsua/scripts-pres/100_peertopeer.py (added), res/pjproject/pjmedia/src/pjmedia/vid_codec_util.c (added), res/pjproject/third_party/gsm/MACHINES (added), res/pjproject/tests/pjsua/scripts-sipp/uac-subscribe.xml (added), res/pjproject/third_party/build/baseclasses (added), res/pjproject/third_party/srtp/include/srtp.h (added), res/pjproject/tests/pjsua/scripts-sendto/173_timer_offer_refresher_uac.py (added), res/pjproject/pjmedia/src/pjmedia/stream.c (added), res/pjproject/tests/pjsua/scripts-recvfrom/209a_reg_handle_423_ok.py (added), res/pjproject/pjlib/src/pjlib-samples/log.c (added), res/pjproject/third_party/build/portaudio/src/pa_mac_core_old.c (added), res/pjproject/pjsip/src/pjsip/sip_transport_tcp.c (added), res/pjproject/tests/pjsua/scripts-sendto/150_err_extension.py (added), res/pjproject/pjlib-util/src/pjlib-util-test/encryption.c (added), res/pjproject/lib (added), res/pjproject/pjmedia/include/pjmedia/codec.h (added), res/pjproject/pjmedia/src/pjmedia/converter_libswscale.c (added), res/pjproject/pjlib/src/pj/ip_helper_win32.c (added), res/pjproject/pjmedia/include/pjmedia-videodev/avi_dev.h (added), res/pjproject/pjlib-util/src/pjlib-util/scanner_cis_bitwise.c (added), res/pjproject/third_party/gsm/README (added), res/pjproject/pjlib-util/src/pjlib-util (added), res/pjproject/third_party/build/gsm (added), res/pjproject/pjlib/include/pj/compat/cc_msvc.h (added), res/pjproject/pjsip-apps/src/pjsua_wince (added), res/pjproject/tests/pjsua (added), res/pjproject/pjlib/include/pj++/timer.hpp (added), res/pjproject/build.symbian/pjlib.mmp (added), res/pjproject/pjsip/src/test/test.c (added), res/pjproject/third_party/portaudio/build (added), res/pjproject/pjsip/src/test/test.h (added), res/pjproject/pjsip/include/pjsip_auth.h (added), res/pjproject/pjlib/src/pj/errno.c (added), res/pjproject/third_party/BaseClasses/wxdebug.cpp (added), res/pjproject/pjsip/include/pjsip-simple/rpid.h (added), res/pjproject/pjlib/include/pj/compat/os_sunos.h (added), res/pjproject/third_party/portaudio/install-sh (added), res/pjproject/pjlib/src/pj/os_info.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-reinv-no-media.xml (added), res/pjproject/tests/pjsua/scripts-sendto/172_timer_supported_but_not_used.py (added), res/pjproject/third_party/build/resample/libresample_dll.vcproj (added), res/pjproject/pjmedia/include (added), res/pjproject/third_party/portaudio/src/hostapi/asio/ASIO-README.txt (added), res/pjproject/pjsip-apps/src/python/samples/presence.py (added), res/pjproject/build/vs/pjproject-vs8-debug-static-defaults.vsprops (added), res/pjproject/pjmedia/src/pjmedia/transport_srtp.c (added), res/pjproject/pjmedia/include/pjmedia-codec/amr_sdp_match.h (added), res/pjproject/pjsip/src/pjsip-simple/rpid.c (added), res/pjproject/pjlib-util/src/pjlib-util/dns_server.c (added), res/pjproject/tests/pjsua/runall.py (added), res/pjproject/pjlib/include/pj/compat/m_armv4.h (added), res/pjproject/pjsip/src/pjsip/sip_util_proxy.c (added), res/pjproject/pjlib-util/include/pjlib-util/crc32.h (added), res/pjproject/pjlib-util/build/os-auto.mak.in (added), res/pjproject/tests/pjsua/scripts-sipp/uas-subscribe-multipart-notify.xml (added), res/pjproject/pjlib/build/wince-evc4/pjlib_wince.vcp (added), res/pjproject/pjmedia/include/pjmedia/sound.h (added), res/pjproject/pjsip/build/output (added), res/pjproject/pjnath (added), res/pjproject/INSTALL.txt (added), res/pjproject/tests/pjsua/mod_call.py (added), res/pjproject/pjlib/build/wince-evc4/pjlib_wince.vcw (added), res/pjproject/pjsip/src/test/dlg_core_test.c (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_g711u.py (added), res/pjproject/tests/pjsua/scripts-sendto/411_fmtp_amrnb_offer_band_eff.py (added), res/pjproject/third_party/build/resample/config.h (added), res/pjproject/pjsip-apps/src/pjsua_wince/pjsua_wince.rc (added), res/pjproject/pjlib/build/output (added), res/pjproject/pjlib/include/pj/compat/m_powerpc.h (added), res/pjproject/pjsip/src/test/msg_logger.c (added), res/pjproject/pjsip-apps/src/pjsua_wince/resource.h (added), res/pjproject/pjsip/src/pjsip/sip_auth_parser_wrap.cpp (added), res/pjproject/aconfigure.ac (added), res/pjproject/tests/pjsua/scripts-sendto/140_sdp_with_direction_attr_in_session_1.py (added), res/pjproject/pjsip-apps/src/pjsystest/pjsystest_wince.rc2 (added), res/pjproject/pjlib/include/pj/compat/os_win32.h (added), res/pjproject/pjmedia/include/pjmedia/doxygen.h (added), res/pjproject/pjsip/src/test/main_rtems.c (added), res/pjproject/pjlib-util/include/pjlib-util/scanner_cis_bitwise.h (added), res/pjproject/pjsip-apps/src/ipjsystest/main.m (added), res/pjproject/build.symbian/pjsip.mmp (added), res/pjproject/third_party/speex/include/speex/speex_jitter.h (added), res/pjproject/tests/pjsua/run.py (added), res/pjproject/third_party/speex/symbian (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_l16_8000_stereo.py (added), res/pjproject/pjsip-apps/src/samples/auddemo.c (added), res/pjproject/tests/pjsua/scripts-sendto/300_srtp_crypto_case_insensitive.py (added), res/pjproject/third_party/g7221/common/basic_op.c (added), res/pjproject/pjnath/build/wince-evc4/pjnath_test_wince.vcp (added), res/pjproject/third_party/g7221/common/basic_op.h (added), res/pjproject/third_party/portaudio/config.guess (added), res/pjproject/third_party/portaudio/src/os/unix (added), res/pjproject/third_party/speex/libspeex/cb_search_sse.h (added), res/pjproject/tests/pjsua/tools/Makefile (added), res/pjproject/pjlib/src/pj/compat/longjmp_i386.S (added), res/pjproject/third_party/portaudio/pablio (added), res/pjproject/build.symbian/symbian_ua_udeb.pkg (added), res/pjproject/README.txt (added), res/pjproject/third_party/srtp/srtp.vcproj (added), res/pjproject/pjnath/build (added), res/pjproject/third_party/portaudio/src/hostapi/dsound (added), res/pjproject/tests/automated/prepare.xml.template (added), res/pjproject/pjsip/src/pjsua-lib/pjsua_pres.c (added), res/pjproject/tests/pjsua/scripts-sipp/uas-reinv-and-ack(same-branch)-without-sdp.xml (added), res/pjproject/pjlib/build (added), res/pjproject/third_party/build/baseclasses/libbaseclasses.vcproj (added), res/pjproject/third_party/speex/include/speex/speex_preprocess.h (added), res/pjproject/pjlib/src/pjlib-test (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.l01 (added), res/pjproject/pjlib/build/privkey.pem (added), res/pjproject/pjmedia/src/pjmedia/alaw_ulaw_table.c (added), res/pjproject/configure-legacy (added), res/pjproject/tests/pjsua/scripts-sendto/200_ice_success_1.py (added), res/pjproject/pjsip/include/pjsip/sip_transport.h (added), res/pjproject/pjnath/src/pjturn-srv/server.c (added), res/pjproject/pjmedia/build/os-linux.mak (added), res/pjproject/pjlib/include/pj/compat/os_win32_wince.h (added), res/pjproject/pjsip/src/pjsip-ua/sip_replaces.c (added), res/pjproject/third_party/portaudio/src/common/pa_util.h (added), res/pjproject/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiDocument.h (added), res/pjproject/pjlib/src/pj/fifobuf.c (added), res/pjproject/third_party/gsm/tls/sour1.dta (added), res/pjproject/pjsip/include/pjsip/sip_types.h (added), res/pjproject/pjlib/include/pj/compat/time.h (added), res/pjproject/pjsip/src/pjsip/sip_auth_msg.c (added), res/pjproject/tests/pjsua/scripts-sendto/001_torture_4475_3_1_1_1.py (added), res/pjproject/pjsip/include/pjsip_ua.h (added), res/pjproject/pjlib/build/Makefile (added), res/pjproject/third_party/srtp/README (added), res/pjproject/tests/pjsua/scripts-sendto/311_srtp1_recv_avp.py (added), res/pjproject/pjsip-apps/src/pjsua/main_rtems.c (added), res/pjproject/pjsip-apps/src/pocketpj/res/invisibl.bmp (added), res/pjproject/pjlib/src/pjlib-test/rtems_network_config.h (added), res/pjproject/third_party/srtp/crypto/math/stat.c (added), res/pjproject/third_party/srtp/test/replay_driver.c (added), res/pjproject/pjmedia/src/pjmedia-audiodev/audiotest.c (added), res/pjproject/pjlib/src/pjlib++-test (added), res/pjproject/pjsip-apps/src/samples/streamutil.c (added), res/pjproject/pjmedia/src/pjmedia/ffmpeg_util.c (added), res/pjproject/tests/pjsua/scripts-sendto/500_pres_subscribe_with_bad_event.py (added), res/pjproject/third_party/srtp/install-sh (added), res/pjproject/tests/pjsua/scripts-pesq/200_codec_speex_16000.py (added), res/pjproject/third_party/srtp/crypto/cipher/null_cipher.c (added), res/pjproject/pjmedia/src/pjmedia/ffmpeg_util.h (added), res/pjproject/pjlib-util/src (added), res/pjproject/pjsip/include/pjsip/sip_config.h (added), res/pjproject/pjlib/docs/doxygen.cfg (added): Add support for ICE/STUN/TURN in res_rtp_asterisk and chan_sip. Review: https://reviewboard.asterisk.org/r/1891/ 2012-06-29 20:32 +0000 [r369512] Mark Michelson * main/rtp_engine.c, /: Fix apparent copy and paste error where incorrect "glue" is used. ........ Merged revisions 369511 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-29 17:02 +0000 [r369493] Richard Mudgett * apps/app_dial.c, main/channel.c, main/autoservice.c, main/pbx.c, channels/chan_local.c, funcs/func_channel.c, main/channel_internal_api.c, main/features.c, configs/cdr.conf.sample, include/asterisk/channel.h, include/asterisk/pbx.h, CHANGES, apps/app_followme.c, apps/app_queue.c: Hangup handlers - Dialplan subroutines that run when the channel hangs up. Hangup handlers are an alternative to the h extension. They can be used in addition to the h extension. The idea is to attach a Gosub routine to a channel that will execute when the call hangs up. Whereas which h extension gets executed depends on the location of dialplan execution when the call hangs up, hangup handlers are attached to the call channel. You can attach multiple handlers that will execute in the order of most recently added first. (closes issue ASTERISK-19549) Reported by: Mark Murawski Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/2002/ 2012-06-29 16:56 +0000 [r369492] Joshua Colp * /, channels/chan_sip.c: With some configurations a transport is not actually specified so assume UDP in these cases. ........ Merged revisions 369490 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369491 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-29 16:42 +0000 [r369489] Richard Mudgett * main/channel_internal_api.c, .cleancount: Remove obsolete struct ast_channel note. The opaquing the ast_channel struct no longer requires .cleancount to be changed when the struct is changed. * Bump .cleancount value one last time because of struct ast_channel for old times sake. 2012-06-29 15:33 +0000 [r369473] Joshua Colp * /, channels/chan_sip.c: Make the address family filter specific to the transport. (closes issue ASTERISK-16618) Reported by: Leif Madsen Review: https://reviewboard.asterisk.org/r/1667/ ........ Merged revisions 369471 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369472 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-28 01:12 +0000 [r369449-369454] Terry Wilson * include/asterisk/config_options.h, configs/config_test.conf.sample, main/config_options.c, tests/test_config.c: Add the ability to set flags via the config options api Allows the setting of flags via the config options api. For example, code like this: #define OPT1 1 << 0 #define OPT2 1 << 1 #define OPT3 1 << 2 struct thing { unsigned int flags; }; and a config like this: [blah] opt1=yes opt2=no opt3=yes Review: https://reviewboard.asterisk.org/r/2004/ * /, channels/chan_sip.c, channels/sip/include/sip.h: AST-2012-010: Clean up after a reinvite that never gets a final response The basic problem is that if a re-INVITE is sent by Asterisk and it receives a provisional response, but no final response, then the dialog is never torn down. In addition to leaking memory, this also leaks file descriptors and will eventually lead to Asterisk no longer being able to process calls. This patch just keeps track of whether there is an outstanding re-INVITE, and if there is goes ahead and cleans up everything as though there was no outstanding reinvite. Review: https://reviewboard.asterisk.org/r/2009/ (closes issue ASTERISK-19992) Reported by: Steve Davies Tested by: Steve Davies, Terry Wilson ........ Merged revisions 369436 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369437 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-26 21:45 +0000 [r369414] Jonathan Rose * include/asterisk/logger.h, channels/chan_dahdi.c, main/autoservice.c, main/pbx.c, channels/chan_local.c, channels/sig_analog.c, main/channel_internal_api.c, channels/chan_agent.c, main/features.c, main/logger.c, channels/chan_iax2.c, channels/sig_pri.c, channels/sig_ss7.c, main/bridging.c, main/cli.c: Unique Call ID logging Phases III and IV Adds call ID logging changes to specific channel drivers that weren't handled handled in phase II of Call ID Logging. Also covers logging for threads for threads created by systems that may be involved with many different calls. Extra special thanks to Richard for rigorous review of chan_dahdi and its various signalling modules. review: https://reviewboard.asterisk.org/r/1927/ review: https://reviewboard.asterisk.org/r/1950/ 2012-06-26 13:23 +0000 [r369370-369392] Matthew Jordan * /, main/adsi.c: Fix crash in unloading of res_adsi module When res_adsi is unloaded, it removes the ADSI functions that it previously installed by passing a NULL adsi_funcs pointer to ast_adsi_install_funcs. This function was not checking whether or not the adsi_funcs pointer passed in was NULL before dereferencing it to check whether or not the version of the functions matches what the core was expecting it. This patch makes it so that the version is only checked if a potentially valid adsi_funcs pointer was passed in. Passing in NULL removes the installed functions, bypassing the version check. ........ Merged revisions 369390 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369391 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/manager.c: Update "manager show event" to support tab completion Thank you rmudgett for pointing out that I was missing this in the initial check-in for AMI event documentation (r369346) * main/cdr.c, /: Fix incorrect duration reporting in CDRs created in batch mode Certain places in core/cdr.c would, if the duration value were 0, calculate the duration as being the delta between the current time and the time at which the CDR record was started. While this does not typically cause a problem in non-batch mode, this can cause an issue in batch mode where CDR records are gathered and written long after those calls have ended. In particular, this affects calls that were never answered, as those are expected to have a duration of 0. Often, this would result in CDR logs with a significant number of calls with lengthy durations, but dispositions of "BUSY". Note that this does not affect cdr_csv, as that backend does not use ast_cdr_getvar and instead directly reports the duration value. The affected core backends include cdr_apative_odbc and cdr_custom; other extended or deprecated CDR backends may potentially still directly manipulate the duration values. (issue ASTERISK-19860) Reported by: Thomas Arimont (issue AST-883) Reported by: Thomas Arimont Tested by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1996/ ........ Merged revisions 369351 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369369 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-25 19:26 +0000 [r369367] Mark Michelson * /, channels/chan_sip.c, channels/sip/include/sip.h: Re-fix how local tag is generated when sending a 481 to an INVITE. Match our local tag to whatever to-tag was sent in the initial INVITE. Because the size of the to-tag may not fit in the buffer in the sip_pvt, it has been changed to a string field. (closes issue ASTERISK-19892) reported by Walter Doekes Review: https://reviewboard.asterisk.org/r/1977 ........ Merged revisions 369352 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369353 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-25 17:59 +0000 [r369346] Matthew Jordan * apps/app_dial.c, apps/app_meetme.c, configure.ac, apps/app_userevent.c, CHANGES, apps/app_queue.c, Makefile, build_tools/get_documentation.py (added), main/manager.c, configure, build_tools/post_process_documentation.py (added), include/asterisk/xmldoc.h, apps/app_confbridge.c, makeopts.in, apps/app_stack.c, apps/app_chanspy.c, doc/appdocsxml.dtd, main/xmldoc.c, apps/app_voicemail.c: Add AMI event documentation This patch adds the core changes necessary to support AMI event documentation in the source files of Asterisk, and adds documentation to those AMI events defined in the core application modules. Event documentation is built from the source by two new python scripts, located in build_tools: get_documentation.py and post_process_documentation.py. The get_documentation.py script mirrors the actions of the existing AWK get_documentation scripts, except that it will scan the entirety of a source file for Asterisk documentation. Upon encountering it, if the documentation happens to be an AMI event, it will attempt to extract information about the event directly from the manager event macro calls that raise the event. The post_process_documentation.py script combines manager event instances that are the same event but documented in multiple source files. It generates the final core-[lang].xml file. As this process can take longer to complete than a typical 'make all', it is only performed if a new make target, 'full', is chosen. Review: https://reviewboard.asterisk.org/r/1967/ 2012-06-25 16:07 +0000 [r369329] Richard Mudgett * /, main/features.c: Fix Bridge application occasionally returning to the wrong location. * Fix do_bridge_masquerade() getting the resume location from the zombie channel. The code must not touch a clone channel after it has masqueraded it. The clone channel has become a zombie and is starting to hangup. (closes issue ASTERISK-19985) Reported by: jamicque Patches: jira_asterisk_19985_v1.8.patch (license #5621) patch uploaded by rmudgett Tested by: jamicque ........ Merged revisions 369327 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369328 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-25 15:55 +0000 [r369304-369326] Mark Michelson * include/asterisk/adsi.h, /, main/Makefile, res/res_adsi.c, main/adsi.c (added), res/res_adsi.exports.in (removed): Multiple revisions 369323-369324 ........ r369323 | mmichelson | 2012-06-25 10:35:43 -0500 (Mon, 25 Jun 2012) | 9 lines Eliminate embedding of res_adsi.so module. The way this is done is to stop using the optional API. Instead, res_adsi.so, when loaded fills in a table of function pointers. Review: https://reviewboard.asterisk.org/r/1991 ........ r369324 | mmichelson | 2012-06-25 10:50:17 -0500 (Mon, 25 Jun 2012) | 2 lines Forgot to svn add this file in my last commit. ........ Merged revisions 369323-369324 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369325 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Be more consistent with the return code for requests received from invalid domain. When Asterisk receives an INVITE from an external domain when allowexternaldomains=no send a 403 instead of a 404. This is consistent with Asterisk's behavior when receiving a REGISTER in this situation. (Closes issue ASTERISK-19601) Reported by Matthew Jordan Patches: ASTERISK-19601-no401.patch uploaded by Mark Michelson (License #5049) ........ Merged revisions 369302 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369303 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-23 00:33 +0000 [r369237-369296] Richard Mudgett * main/features.c: Fix F and F(x) action logic in Bridge application. * /, main/features.c: Fix Bridge application and AMI Bridge action error handling. * Fix AMI Bridge action disconnecting the AMI link on error. * Fix AMI Bridge action and Bridge application not checking if their masquerades were successful. * Fix Bridge application running the h-exten when it should not. * Made do_bridge_masquerade() return if the masquerade was successful so the Bridge application and AMI Bridge action could deal with it correctly. * Made bridge_call_thread_launch() hangup the passed in channels if the bridge_call_thread fails to start. Those channels would have been orphaned. * Made builtin_atxfer() check the success of the transfer masquerade setup. ........ Merged revisions 369282 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369283 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_queue.c: Explicitly check caller hangup in app Queue rather than a polluted res2 value. ........ Merged revisions 369262 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369263 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_queue.c: Fix F and F(x) action logic in Queue application. * apps/app_dial.c, /: Check if PBX was started and fix F and F(x) action logic in Dial application. ........ Merged revisions 369258 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369259 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/ccss.c: Check if PBX was started for generic CCSS recall. ........ Merged revisions 369238 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369239 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Change incorrect chan_sip zombie hangup debug message. They are all zombies now. ........ Merged revisions 369235 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369236 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-22 20:05 +0000 [r369217] Terry Wilson * /, channels/chan_sip.c: Don't crash on a guest directmedia call A sip_pvt may not have relatedpeer set if a call doesn't match up with a peer. If there is no relatedpeer, there is no direct media ACL to apply, so just return that it is allowed. (closes issue ASTERISK-20040) Reported by: Terry Wilson ........ Merged revisions 369214 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369215 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-22 19:54 +0000 [r369184-369216] Kinsey Moore * channels/chan_dahdi.c: Fix wrong variable name in the R2 disconnect callback * /, channels/chan_sip.c: Don't parse media stream state for SIP video streams The sendonly/recvonly/sendrecv/inactive media stream attributes were parsed for video, but nothing was ever done with them. With this code removed, an UNSUPPORTED message is produced when these attributes are used in conjunction with a video stream which is the better behavior since they were never really supported in the first place. ........ Merged revisions 369195 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369206 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_dahdi.c: Add HANGUPCAUSE hash implementation for DAHDI MFC/R2 subtech This adds a minimal implementation of the "Who Hung Up?" Asterisk 11 work to chan_dahdi.c for the MFC/R2 DAHDI subtech. Given the way that OpenR2 interfaces with chan_dahdi, it is much harder to expose the type of protocol information that is available in PRI, SS7, or other channel technologies. * channels/sig_analog.c, channels/sig_pri.c: Add HANGUPCAUSE hash support for analog and PRI DAHDI subtechs This is part of the DAHDI support for the Asterisk 11 "Who Hung Up?" project and covers the implementation for the technologies implemented in sig_analog.c and sig_pri.c. Tested on a local machine to verify protocol and cause information is available. Review: https://reviewboard.asterisk.org/r/1953/ (issue SWP-4222) * channels/sig_ss7.c: Add "Who Hung Up?" implementation for DAHDI SS7 subtechnology Testing was done on a local machine to verify that protocol and cause information was being sent properly. Review: https://reviewboard.asterisk.org/r/1955/ (issue SWP-4222) 2012-06-20 21:33 +0000 [r369166-369167] Richard Mudgett * main/logger.c: Don't waste time initializing the whole call_identifer_str[]. The array is either setup with a callid string or only the first element needs to be initialized. * channels/chan_misdn.c: Fix chan_misdn compile error. 2012-06-20 17:48 +0000 [r369148] Alexandr Anikin * /, addons/ooh323c/src/ooq931.c, addons/ooh323c/src/ooCalls.c: fix locking issue on empty callList (issue ASTERISK-19298) Reported by: Dmitry Melekhov Patches: ASTERISK-18322-2.patch ........ Merged revisions 369146 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369147 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-20 11:47 +0000 [r369142] Sean Bright * apps/app_externalivr.c: Remove declaration of eivr_connect_socket because it no longer exists. 2012-06-20 11:20 +0000 [r369141] Alexandr Anikin * addons/chan_ooh323.c: use right definition for channel name 2012-06-20 03:18 +0000 [r369110-369126] Michael L. Young * main/manager.c, CHANGES: Add IPv6 Support To Manager This patch adds IPv6 support to AMI. (Closes issue ASTERISK-19965) Reported by: Michael L. Young Tested by: Michael L. Young Patches: ami_ipv6_v3.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/1968/ * main/netsock2.c, /, include/asterisk/netsock2.h: Fix NULL pointer segfault in ast_sockaddr_parse() While working with ast_parse_arg() to perform a validity check, a segfault occurred. The segfault occurred due to passing a NULL pointer to ast_sockaddr_parse() from ast_parse_arg(). According to the documentation in config.h, "result pointer to the result. NULL is valid here, and can be used to perform only the validity checks." This patch fixes the segfault by checking for a NULL pointer. This patch also adds documentation to netsock2.h about why it is necessary to check for a NULL pointer. (Closes issue ASTERISK-20006) Reported by: Michael L. Young Tested by: Michael L. Young Patches: asterisk-20006-netsock-null-ptr.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/1990/ ........ Merged revisions 369108 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369109 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-19 23:36 +0000 [r369092] Alexandr Anikin * addons/chan_ooh323.c, /: check rtptimeouts in ooh323 channels as per config file (rtp voice, video, udptl except rtcp) (closes issue ASTERISK-19179) Reported by: TSAREGORODTSEV Yury Patches: 19179-ooh323-ast10.patch ........ Merged revisions 369091 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-19 21:13 +0000 [r369086] Kinsey Moore * main/channel.c, channels/chan_dahdi.c, channels/chan_misdn.c, main/rtp_engine.c, include/asterisk/channel.h, channels/chan_iax2.c: Ensure that pvt cause information does not break native bridging Channel drivers that allow native bridging need to handle AST_CONTROL_PVT_CAUSE_CODE frames and previously did not handle them properly, usually breaking out of the native bridge. This change corrects that behavior and exposes the available cause code information to the dialplan while native bridges are in place. This required exposing the HANGUPCAUSE hash setter outside of channel.c, so additional documentation has been added. 2012-06-19 15:44 +0000 [r369068] Mark Michelson * /, channels/chan_sip.c: Fix request routing issue when outboundproxy is used. Asterisk was incorrectly setting the destination of CANCELs and ACKs for error responses to the URI of the initial INVITE. This resulted in further requests, such as INVITEs with authentication credentials, to be routed incorrectly. Instead, when these CANCEL or ACKs are to be sent, we should simply keep the destination the same as what it previously was. There is no need to alter it any. (closes issue ASTERISK-20008) Reported by Marcus Hunger Patches: ASTERISK-20008.patch uploaded by Mark Michelson (license #5049) ........ Merged revisions 369066 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369067 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-18 22:56 +0000 [r369061] Kinsey Moore * main/features.c: Fix AST_CONTROL_PVT_CAUSE_CODE handling When the IAX2 Who Hung Up? changes were added, they uncovered a bug in the way AST_CONTROL_PVT_CAUSE_CODE was handled in feature_request_and_dial(). This particular frame subtype was being treated like more terminal control frames causing the function to be exited prematurely. 2012-06-18 18:25 +0000 [r369057] Richard Mudgett * /, main/features.c: Fix monitoring calls put in a parking lot. * Fix a regression that was introduced by -r366167 which effectively disabled monitoring parked calls. (closes issue ASTERISK-20012) Reported by: sdolloff Tested by: rmudgett ........ Merged revisions 369043 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369044 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-15 21:18 +0000 [r369034] Damien Wedhorn * channels/chan_skinny.c: Various small chan_skinny fixes and cleanup Added test to skinny_register to only allow device to register against a device that is not already registered. Addback l->device test for skinny_show_lines. Fixes segfault if a line is configured but not configured to a device. Reverses part of r368680. Removed redundant l->device tests in subsubstate and dumpsub. l->device will always be valid if these routines are called. Reverses 368948 - discussed with mjordan on irc. Some indentation cleanup. 2012-06-15 17:13 +0000 [r369028] Kinsey Moore * channels/chan_sip.c, channels/sip/include/sip.h: Allow chan_sip to decline unwanted media streams This change replaces the static array of four representable media streams with an AST_LIST so that chan_sip can keep track of offered media streams. This allows chan_sip to deal with offers containing multiple same-type streams and many other situations without rejecting the SDP offer in its entirety, yet still generating a valid response. This also covers cases where Asterisk can not comprehend the offer if it is in the correct format. Previously, chan_sip would reject SDP offers or entirely ignore individual stream offers in an effort to be more compatible which would often result in invalid SDP responses. Review: https://reviewboard.asterisk.org/r/1988/ 2012-06-15 16:30 +0000 [r369027] Jason Parker * /, apps/app_voicemail.c: Fix voicemail API tests by using the correct argument order for create/destroy. ........ Merged revisions 369024 from http://svn.asterisk.org/svn/asterisk/certified/branches/1.8.11 ........ Merged revisions 369026 from http://svn.asterisk.org/svn/asterisk/branches/10-digiumphones 2012-06-15 16:20 +0000 [r369013] Kevin P. Fleming * main/format.c, main/udptl.c, main/netsock2.c, main/autoservice.c, main/rtp_engine.c, main/frame.c, main/security_events.c, /, main/say.c, main/threadstorage.c, channels/console_video.c, main/devicestate.c, main/astfd.c, main/taskprocessor.c, main/format_pref.c, main/astobj2.c, main/indications.c, main/config.c, main/loader.c, main/term.c, apps/confbridge/conf_config_parser.c, main/cli.c, channels/sig_analog.c, main/framehook.c, main/strcompat.c, main/plc.c, main/fskmodem_int.c, main/syslog.c, main/stdtime/localtime.c, main/bridging.c, main/db.c, channels/sig_ss7.c, main/datastore.c, main/sched.c, channels/sip/sdp_crypto.c, main/strings.c, main/pbx.c, channels/vcodecs.c, channels/sip/security_events.c, main/libasteriskssl.c, channels/iax2-provision.c, pbx/dundi-parser.c, main/aoc.c, main/cel.c, utils/astdb2bdb.c, channels/iax2-parser.c, main/chanvars.c, main/netsock.c, build_tools/find_missing_support_level (added), main/data.c, main/srv.c, channels/chan_misdn.c, main/privacy.c, main/fixedjitterbuf.c, channels/sip/dialplan_functions.c, main/test.c, main/audiohook.c, codecs/codec_dahdi.c, main/alaw.c, main/asterisk.c, main/timing.c, main/global_datastores.c, main/fskmodem_float.c, main/ccss.c, channels/sip/reqresp_parser.c, main/xml.c, channels/misdn/isdn_msg_parser.c, main/utils.c, main/autochan.c, channels/misdn/isdn_lib.c, main/enum.c, main/presencestate.c, main/fskmodem.c, channels/misdn_config.c, main/io.c, main/channel.c, main/cdr.c, res/ael/pval.c, main/ulaw.c, main/dial.c, main/format_cap.c, main/tdd.c, channels/console_gui.c, main/heap.c, channels/misdn/ie.c, main/logger.c, main/app.c, channels/console_board.c, main/image.c, main/message.c, main/dns.c, main/lock.c, main/stun.c, channels/sip/srtp.c, main/dnsmgr.c, main/slinfactory.c, main/channel_internal_api.c, main/translate.c, main/jitterbuf.c, main/acl.c, utils/astdb2sqlite3.c, channels/sip/utils.c, channels/sig_pri.c, apps/app_system.c, funcs/func_realtime.c, main/tcptls.c, main/hashtab.c, funcs/func_presencestate.c, apps/app_celgenuserevent.c, main/abstract_jb.c, main/callerid.c, main/file.c, main/config_options.c, res/snmp/agent.c, main/astmm.c, main/event.c, channels/misdn/portinfo.c, channels/sip/config_parser.c, channels/vgrabbers.c, main/dsp.c, main/xmldoc.c: Multiple revisions 369001-369002 ........ r369001 | kpfleming | 2012-06-15 10:56:08 -0500 (Fri, 15 Jun 2012) | 11 lines Add support-level indications to many more source files. Since we now have tools that scan through the source tree looking for files with specific support levels, we need to ensure that every file that is a component of a 'core' or 'extended' module (or the main Asterisk binary) is explicitly marked with its support level. This patch adds support-level indications to many more source files in tree, but avoids adding them to third-party libraries that are included in the tree and to source files that don't end up involved in Asterisk itself. ........ r369002 | kpfleming | 2012-06-15 10:57:14 -0500 (Fri, 15 Jun 2012) | 3 lines Add a script to enable finding source files without support-levels defined. ........ Merged revisions 369001-369002 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369005 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-15 16:17 +0000 [r369007] Kinsey Moore * main/frame.c, channels/chan_iax2.c, include/asterisk/frame.h: Add HANGUPCAUSE hash support to IAX2 Continuing with the Who Hung Up? project for Asterisk 11, this adds support to IAX2 for the HANGUPCAUSE hash. Additionally, this breaks out some functionality in frame.c for getting information about frame types and subclasses. Review: https://reviewboard.asterisk.org/r/1941/ (issue SWP-4222) 2012-06-15 15:33 +0000 [r369000] Jason Parker * /, apps/app_voicemail.exports.in: Remove some symbol exports that got missed in the removal of global symbols. (issue AST-807) (issue AST-901) (issue AST-908) ........ Merged revisions 368998 from http://svn.asterisk.org/svn/asterisk/certified/branches/1.8.11 ........ Merged revisions 368999 from http://svn.asterisk.org/svn/asterisk/branches/10-digiumphones 2012-06-15 00:55 +0000 [r368972-368991] Richard Mudgett * /: Remove remaining properties mmichelson left laying around from phones branch merge. * apps/app_dial.c, main/channel.c, include/asterisk/app.h, main/ccss.c, main/app.c, apps/app_followme.c, apps/app_queue.c, apps/app_stack.c: Allow non-normal execution routines to be able to run on hungup channels. * Make non-normal dialplan execution routines be able to run on a hung up channel. This is preparation work for hangup handler routines. * Fixed ability to support relative non-normal dialplan execution routines. (i.e., The context and exten are optional for the specified dialplan location.) Predial routines are the only non-normal routines that it makes sense to optionally omit the context and exten. Setting a hangup handler also needs this ability. * Fix Return application being able to restore a dialplan location exactly. Channels without a PBX may not have context or exten set. * Fixes non-normal execution routines like connected line interception and predial leaving the dialplan execution stack unbalanced. Errors like missing Return statements, popping too many stack frames using StackPop, or an application returning non-zero could leave the dialplan stack unbalanced. * Fixed the AGI gosub application so it cleans up the dialplan execution stack and handles the autoloop priority increments correctly. * Eliminated the need for the gosub_virtual_context return location. Review: https://reviewboard.asterisk.org/r/1984/ * main/pbx.c: Make the Hangup application set a softhangup flag. The Hangup application used to just return -1 to cause normal dialplan execution to hangup a channel. For the non-normal execution routines like predial and connected-line interception routines, the hangup request would exit the routine early but otherwise be ignored. * Made the Hangup application not allow setting a cause code of zero. A zero cause code is not defined. * include/asterisk/app.h: Move vm defines to group them better. 2012-06-14 19:40 +0000 [r368966] Jason Parker * include/asterisk/app.h, /, tests/test_voicemail_api.c, main/app.c, include/asterisk/app_voicemail.h (removed), apps/app_voicemail.c: Multiple revisions 368963,368965 ........ r368963 | qwell | 2012-06-14 13:47:03 -0500 (Thu, 14 Jun 2012) | 14 lines Remove global symbol requirement from app_voicemail. This uses the existing "function installation" stuff that already existed for other functions, like getting message counts. (closes issue AST-807) (issue AST-901) (issue AST-908) Review: https://reviewboard.asterisk.org/r/1965/ ........ Merged revisions 368962 from http://svn.asterisk.org/svn/asterisk/certified/branches/1.8.11 ........ r368965 | qwell | 2012-06-14 14:04:57 -0500 (Thu, 14 Jun 2012) | 11 lines These functions that were moved need to be static. Also wrap test functions in a #ifdef. (issue AST-807) (issue AST-901) (issue AST-908) ........ Merged revisions 368964 from http://svn.asterisk.org/svn/asterisk/certified/branches/1.8.11 ........ Merged revisions 368963,368965 from http://svn.asterisk.org/svn/asterisk/branches/10-digiumphones 2012-06-14 17:34 +0000 [r368948] Matthew Jordan * /, channels/chan_skinny.c: AST-2012-009: Fix crash in chan_skinny due to Key Pad Button Message handling AST-2012-008 (r367844) fixed a denial of service attack exploitable in the Skinny channel driver that occurred when certain messages are sent after a previously registered station sends an Off Hook message. Unresolved in that patch is an issue in the Asterisk 10 releases, wherein, if a Station Key Pad Button Message is processed after an Off Hook message, the channel driver will inappropriately dereference a NULL pointer. This patch fixes those places where the message handling or the channel callback functions would attempt to dereference the line's pointer to the device. (issue ASTERISK-19905) Reported by: Christoph Hebeisen Tested by: mjordan, Christoph Hebeisen Patches: AST-2012-009-10.diff uploaded by mjordan (license 6283) ........ Merged revisions 368947 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-14 15:28 +0000 [r368929] Mark Michelson * /, main/Makefile: Revert Makefile change to remove embedding res_adsi.so The change has resulted in a linking error for certain versions of GCC. This is much worse than the original issue, so for now, temporarily revert the change. A more thorough change will be sought out. ........ Merged revisions 368927 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368928 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-14 13:41 +0000 [r368920-368921] Terry Wilson * include/asterisk/config_options.h, main/config_options.c: Add a post_apply callback to the Config Options API This adds a callback that only fires when changes have been successfully applied via the Config Options API. Review: https://reviewboard.asterisk.org/r/1980/ * include/asterisk/config_options.h, main/config_options.c: Add filename alias support to the Config Options API This adds the ability to handle a single filename alias for a config file. This is useful if a config filename has changed, but the old filename should be supported for backwards compatibility. Review: https://reviewboard.asterisk.org/r/1981/ 2012-06-13 21:17 +0000 [r368900] Mark Michelson * /, funcs/func_volume.c: Fix a deadlock that occurs when func_volume is used on a local channel. This was discovered by trying to perform a call forward to an extension that makes use of func_volume. When the local channel is optimized away, the datastore on the local;2 channel would have its audiohook destroyed rather than detaching the audiohook from the channel and then destroying it. With this patch, func_volume's datastore destructor takes the proper route of detaching the audiohook and then destroying it. (closes issue ASTERISK-19611) reported by Volker Sauer Patches: ASTERISK-19611.patch uploaded by Mark Michelson (license #5049) ........ Merged revisions 368898 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368899 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-13 20:28 +0000 [r368896] Matthew Jordan * res/res_smdi.c, /, res/res_adsi.c: Mark res_smdi/res_adsi as 'core' supported modules Recently, various issues surrounding weak symbols have caused problems with modules that rely on that feature to be enabled in menuselect. This includes app_voicemail and chan_dahdi, as they both rely upon res_smdi and res_adsi, which, in certain circumstances, may not be enabled by default in menuselect. Because res_smdi/res_adsi are dependencies for chan_dahdi/app_voicemail, this patch marks both as 'core' supported modules. This will allow both app_voicemail and chan_dahdi to be enabled as well, regardless of whether or not that system supports weak symbols. (issue AST-900) Reported by: Thomas Arimont (issue AST-885) Reported by: Denis Alberto Martinez ........ Merged revisions 368894 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368895 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-13 19:51 +0000 [r368886] Mark Michelson * /, main/Makefile: Remove forced linking of res_adsi.o In GCC 4.5+ the result is that Asterisk has a phantom module loaded at startup, claiming to be res_adsi. (closes issue ASTERISK-19920) reported by Leif Madsen ........ Merged revisions 368873 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368885 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-13 14:55 +0000 [r368832-368855] Matthew Jordan * Makefile: Replace MODULES_DIR with ASTMODDIR in Makefile's INSTALLDIRS Post Asterisk 10, the MODULES_DIR variable no longer exists, and was replaced with ASTMODDIR. * Makefile, /: Do not install empty directories; add ASTLIBDIR r368830 modified the installation script to only create a directory if that directory does not exist. If some directory variable was empty, it would attempt to create the empty location. It also failed to create the ASTLIBDIR directory. This patch fixes it such that the correct directories are made and only created if a value specifying them actually exists. ........ Merged revisions 368852 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368853 from http://svn.asterisk.org/svn/asterisk/branches/10 * Makefile, /: Do not perform install on existing directories If a directory already exists, performing a 'make install' will remove the permissions associated with the current directory and replace them with the permissions of the user executing the install. This patch changes this behavior to only perform an install on the directory if the directory does not exist. Thus, if a user later changes the permissions on that directory, those permissions will be preserved in subsequent installs. Review: https://reviewboard.asterisk.org/r/1986 Review: https://reviewboard.asterisk.org/r/1864 (closes issue ASTERISK-19492) Reported by: Karl Fife Tested by: Paul Belanger, Tilghman Lesher patches: ASTERISK-19492 by pabelanger (uploaded by mjordan) ........ Merged revisions 368830 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368831 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-12 15:46 +0000 [r368809] Mark Michelson * /, channels/chan_sip.c: Set the Caller ID "tag" on peers even if remote party information is present. On incoming calls, we were setting the cid_tag on the dialog only if there was no remote party information (Remote-Party-ID or P-Asserted-Identity) present. The Caller ID tag is an invented parameter, though, and should be set no matter the circumstance. (closes issue ASTERISK-19859) Reported by Thomas Arimont (closes issue AST-884) Reported by Trey Blancher ........ Merged revisions 368807 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368808 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-12 14:09 +0000 [r368793-368794] Matthew Jordan * /: Update merge property information * channels/chan_sip.c: Fix deadlock in SIP transfers that involve a REFER request In r367163, "send to voicemail" functionality was added to the SIP channel driver. This required updating the party redirecting information for the channel based on the headers provided in the REFER request. When the redirecting party information is updated on the channel, a call to ast_indicate_data occurs. Because handle_request_refer still had the sip_pvt locked, a deadlock could occur between the pbx_thread and the do_monitor thread servicing the REFER request. This patch preserves the proper locking order between the channel and the sip_pvt by ensuring that the sip_pvt is unlocked prior to updating the party redirecting information on the channel. (closes issue AST-903) Reported by: Matt Jordan patches: jira_ast_903_trunk.patch by rmudgett (license 5621) 2012-06-12 04:03 +0000 [r368784] Kinsey Moore * channels/chan_sip.c, UPGRADE.txt: Parse ANI2 information from SIP From header parameters ANI2 information is now parsed out of SIP From headers when present in the oli, isup-oli, and ss7-oli parameters and is available via the CALLERID(ani2) dialplan function. (closes issue ASTERISK-19912) Patch-by: Rob Gagnon Review: https://reviewboard.asterisk.org/r/1947/ 2012-06-11 17:34 +0000 [r368772] Richard Mudgett * main/channel.c, channels/chan_dahdi.c, channels/sig_analog.c, /, channels/chan_sip.c, include/asterisk/channel.h, channels/chan_iax2.c: Fix deadlock potential with ast_set_hangupsource() calls. Calling ast_set_hangupsource() with the channel lock held can result in a deadlock because the function also locks the bridged channel. (issue ASTERISK-19537) (closes issue AST-891) Reported by: Guenther Kelleter Tested by: Guenther Kelleter (closes issue ASTERISK-19801) Reported by: Alec Davis ........ Merged revisions 368759 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368760 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-11 15:23 +0000 [r368722-368751] Kinsey Moore * channels/sip/sdp_crypto.c, /, channels/chan_sip.c, main/say.c, res/res_fax.c, channels/sip/reqresp_parser.c, apps/app_queue.c, main/loader.c, channels/chan_dahdi.c, res/res_config_odbc.c, channels/sip/dialplan_functions.c, apps/app_directory.c, pbx/pbx_config.c, res/res_odbc.c, res/res_speech.c, apps/app_voicemail.c: Fix coverity UNUSED_VALUE findings in core support level files Most of these were just saving returned values without using them and in some cases the variable being saved to could be removed as well. (issue ASTERISK-19672) ........ Merged revisions 368738 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368739 from http://svn.asterisk.org/svn/asterisk/branches/10 * /: Recorded merge of revisions 368721 from http://svn.asterisk.org/svn/asterisk/branches/10 ........ Fix compilation in dev-mode Backport a compilation fix in md5.c from trunk that only showed up in dev-mode under certain compiler versions. ........ Merged revisions 368719 from http://svn.asterisk.org/svn/asterisk/branches/1.8 2012-06-08 21:08 +0000 [r368712-368714] Richard Mudgett * main/manager.c, main/utils.c, include/asterisk/strings.h: Fix error paths in action_hangup() for AMI Hangup action. * Check allocation function return values for failure. Crashing is bad. * Tweak ast_regex_string_to_regex_pattern() parameters for proper ast_str usage. * main/channel.c, include/asterisk/channel.h: Tweak ast_channel_softhangup_withcause_locked() to take a typed parameter. 2012-06-08 08:32 +0000 [r368688] Igor Goncharovskiy * channels/chan_unistim.c: Fix MWI update so LED display correct voicemail state after phone usage. Also fixes few warnings. (closes issue #19675) Reported by: dbohling Patches: fixmwi.patch uploaded by dbohling (license 6378) 2012-06-07 21:44 +0000 [r368680-368681] Damien Wedhorn * channels/chan_skinny.c: Skinny cleanup (mwi_event_cb). Original was testing for d->session, setting and testing again (all nested). Removed duplicate testing and restructured function to test/return and then the main code. * channels/chan_skinny.c: Skinny cleanup. Removed d->registered which was mirroring d->session. Changed relevant references to use d->session instead. Moved setting and unsetting of l->device from session register to device configuration. As such, l->device will always be valid unless it is has not been configured to a device. Revised various test where checking if a device is registered to use l->device->session. 2012-06-07 20:39 +0000 [r368674-368675] Richard Mudgett * apps/app_queue.c: Fix app_queue debug message use of args.options after the string has been parsed. * apps/app_queue.c: Fix inverted test in app_queue for ringinuse. Regression from -r367080 ringinuse commit. (issue ASTERISK-19536) 2012-06-07 20:32 +0000 [r368673] Terry Wilson * main/udptl.c, include/asterisk/config_options.h, apps/app_skel.c, main/config_options.c, tests/test_config.c: Fix reloading an unchanged file with the Config Options API Adding multiple file support broke reloading an unchanged file. This adds an enum for return values for the aco_process_* functions and ensures that the config is not applied if res is not ACO_PROCESS_OK. Review: https://reviewboard.asterisk.org/r/1979/ 2012-06-07 20:00 +0000 [r368668] Tzafrir Cohen * formats/format_ogg_vorbis.c: Fix a typo in format_ogg_vorbis.c: suport Review: https://reviewboard.asterisk.org/r/1970/ 2012-06-07 15:43 +0000 [r368663] Terry Wilson * include/asterisk/config_options.h, main/config_options.c, tests/test_config.c: Add default handler documentation and standardize acl handler Added documentation describing what flags and arguments to pass to aco_option_register for default option types. Also changed the ACL handler to use the flags parameter to differentiate between "permit" and "deny" instead of adding an additional vararg parameter. Review: https://reviewboard.asterisk.org/r/1969/ 2012-06-06 21:34 +0000 [r368646] Richard Mudgett * channels/chan_dahdi.c, channels/sig_analog.c, /: Fix POTS flash hook to orignate a second call deadlock. A deadlock can occur when a POTS phone tries to flash hook to originate a second call for 3-way or transfer. If another process is scanning the channels container when the POTS line flash hooks then a deadlock will occur. * Release the channel and private locks when creating a new channel as a result of a flash hook. (closes issue ASTERISK-19842) Reported by: rmudgett Tested by: rmudgett ........ Merged revisions 368644 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368645 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-06 19:25 +0000 [r368637] Mark Michelson * /, channels/chan_sip.c: Fix a specific scenario where ACKs are not matched. If a dialog-starting INVITE contains a to-tag, then Asterisk will respond with a 481. In this case, the resulting incoming ACK would not be matched, so Asterisk would continue retransmitting the 481 until the transaction times out. There were two issues. Asterisk, upon creating a sip_pvt would generate a local tag. However, when the time came to transmit the 481, since there was a to-tag in the INVITE, Asterisk would place this original to-tag in the 481 response. When the ACK came in, Asterisk would attempt to match the to-tag in the ACK to the generated local tag. Unfortunately, Asterisk never actually transmitted a response with the generated local tag, so the to-tag in the ACK would not match. The other problem was that when the 481 was sent, nothing was set on the sip_pvt to indicate what CSeq is expected in the ACK. To fix the first problem, we zero out the to-tag seen in the incoming INVITE. This way, Asterisk, when time to send a response, will send its generated local tag instead. To fix the second problem, we set the sip_pvt's pendinginvite to the CSeq of the INVITE when we send a 481. (closes issue ASTERISK-19892) Reported by Mark Michelson ........ Merged revisions 368625 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368629 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-06 17:22 +0000 [r368606] Matthew Jordan * /, build_tools/make_version: Add feature modifier to versions produced from branches Certain branches, such as Certified Asterisk, may have a modifier added to them that specifies the features available in that branch. For branches, this modifier is expected to be reflected in the location of the branch in subversion. For example, a subversion of URL of /certified/branches/1.8.11 would have a feature modifier of 'certified'. This is slightly different then how features are determined for tags, where the feature is part of the actual tag name, e.g., "10.5.0-digiumphones". In keeping with the nomenclature used for tags, the feature specifier for branches is translated and placed after the revision numbers. For the example given previously, this would result in a branch version of "Asterisk SVN-branch-1.8.11-cert-rXXXXXX". ........ Merged revisions 368604 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368605 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-06 16:11 +0000 [r368588] Kinsey Moore * /, channels/chan_sip.c: Ensure overlapping hold flags do not conflict When changing between different modes of hold, the flags were not being cleared out properly causing a failure to change hold states. (closes issue ASTERISK-19919) Patch-by: Morten Tryfoss Reported-by: Morten Tryfoss ........ Merged revisions 368586 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368587 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-06 01:11 +0000 [r368566-368569] Richard Mudgett * /, main/features.c: Fix parked call performing a DTMF blind transfer after being retrieved. When a parked call was retrieved from the parking lot, it could not do a blind transfer because it caused the involved calls to be hung up unconditionally. * Made the ParkedCall application return the ast_bridge_call() return value. (closes issue ABE-2862) Reported by: Vlad Povorozniuc ........ Merged revisions 368567 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368568 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/features.c: Make builtin_blindtransfer() fully use ast_async_goto() abilities. 2012-06-05 16:25 +0000 [r368550] Jonathan Rose * CHANGES: Merge 'core' and 'core changes' sections in CHANGES file. 2012-06-05 15:28 +0000 [r368519-368537] Kinsey Moore * /: Recorded merge of revisions 368536 from http://svn.asterisk.org/svn/asterisk/branches/10 ........ Resolve some build warnings My newly upgraded compiler caught these usages of uninitialized values. They weren't actually used. ........ Merged revisions 368533 from http://svn.asterisk.org/svn/asterisk/branches/1.8 * /, apps/app_voicemail.c: Ensure that pages and emails are sent using RFC822-compliant date format When localization was added to app_voicemail, these headers were altered when they should have remained in en_US format for RFC compliance. This reverts the changes to those two lines. (closes issue ASTERISK-19876) ........ Merged revisions 368520 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368524 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_dial.c, channels/chan_unistim.c, channels/chan_local.c, channels/chan_sip.c, main/channel_internal_api.c, main/features.c, include/asterisk/channel.h, apps/app_queue.c: Convert AST_FLAG_ANSWERED_ELSEWHERE usage to AST_CAUSE_ANSWERED_ELSEWHERE This was essentially duplicated functionality where normal channels used AST_CAUSE_ANSWERED_ELSEWHERE while local channels and queues used AST_FLAG_ANSWERED_ELSEWHERE. This removes the flag and converts that usage into AST_CAUSE_ANSWERED_ELSEWHER usage. Review: https://reviewboard.asterisk.org/r/1944 (closes issue ASTERISK-19865) Patch-by: Birger Harzenetter 2012-06-04 22:12 +0000 [r368500] Mark Michelson * /, channels/chan_sip.c: Relay proper SIP responses on calling side. Revision 351130 broke corect HANGUPCAUSE setting for the 404 case in chan_sip. Other cases were also potentially broken. This patch fixes the relaying of causes to be what they used to be. (closes issue ASTERISK-19914) Reported by Pavel Troller Tested by Walter Doekes (via a reviewboard test to be committed later) Patches: chan_sip.diff uploaded by Pavel Troller (license #6302) ........ Merged revisions 368498 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368499 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-04 21:18 +0000 [r368472] Richard Mudgett * /, UPGRADE.txt: Document BLINDTRANSFER behavior change. (issue ASTERISK-19322) (closes issue ASTERISK-19875) Reported by: call ........ Merged revisions 368469 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368470 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-04 20:53 +0000 [r368435-368467] Mark Michelson * contrib/editors/asterisk.vim: Also have vim syntax-highlight type=network. * contrib/editors/asterisk.vim: Add vim syntax highlighting for type=line, type=phone, and type=application. (closes issue ASTERISK-19800) Reported by: Billy Chia Patches: asterisk.vim.patch uploaded by Billy Chia (license #6381) * main/channel.c, apps/app_mixmonitor.c: Remove some extra debugging I forgot to remove in the merge of Digium phone support. * /: Remove automerge properties. * /, contrib/realtime/mysql/voicemail_messages.sql, main/presencestate.c (added), main/config.c, main/channel.c, include/asterisk/callerid.h, include/asterisk/file.h, main/manager.c, channels/chan_skinny.c, include/asterisk/event_defs.h, include/asterisk/sip_api.h (added), tests/test_voicemail_api.c (added), main/features.c, apps/app_voicemail.exports.in, main/app.c, main/message.c, channels/sip/include/sip.h, main/pbx.c, channels/chan_sip.c, include/asterisk/presencestate.h (added), include/asterisk/config.h, include/asterisk/app_voicemail.h (added), configs/manager.conf.sample, apps/app_queue.c, include/asterisk/manager.h, include/asterisk/app.h, funcs/func_presencestate.c (added), include/asterisk/message.h, main/file.c, main/callerid.c, main/event.c, include/asterisk/pbx.h, tests/test_config.c, channels/chan_sip.exports.in (added), apps/app_mixmonitor.c, main/asterisk.c, apps/app_voicemail.c: Merge changes dealing with support for Digium phones. Presence support has been added. This is accomplished by allowing for presence hints in addition to device state hints. A dialplan function called PRESENCE_STATE has been added to allow for setting and reading presence. Presence can be transmitted to Digium phones using custom XML elements in a PIDF presence document. Voicemail has new APIs that allow for moving, removing, forwarding, and playing messages. Messages have had a new unique message ID added to them so that the APIs will work reliably. The state of a voicemail mailbox can be obtained using an API that allows one to get a snapshot of the mailbox. A voicemail Dialplan App called VoiceMailPlayMsg has been added to be able to play back a specific message. Configuration hooks have been added. Configuration hooks allow for a piece of code to be executed when a specific configuration file is loaded by a specific module. This is useful for modules that are dependent on the configuration of other modules. chan_sip now has a public method that allows for a custom SIP INFO request to be sent mid-dialog. Digium phones use this in order to display progress bars when files are played. Messaging support has been expanded a bit. The main visible difference is the addition of an AMI action MessageSend. Finally, a ParkingLots manager action has been added in order to get a list of parking lots. 2012-06-04 19:46 +0000 [r368421] Richard Mudgett * main/channel.c, /: Fix potential deadlock between masquerade and chan_local. * Restructure ast_do_masquerade() to not hold channel locks while it calls ast_indicate(). * Simplify many calls to ast_do_masquerade() since it will never return a failure now. If it does fail internally because a channel driver callback operation failed, the only thing ast_do_masquerade() can do is generate a warning message about strange things may happen and press on. * Fixed the call to ast_bridged_channel() in ast_do_masquerade(). This change fixes half of the deadlock reported in ASTERISK-19801 between masquerades and chan_iax. (closes issue ASTERISK-19537) Reported by: rmudgett Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1915/ ........ Merged revisions 368405 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368407 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-02 21:13 +0000 [r368359] Joshua Colp * include/asterisk/utils.h, res/res_http_websocket.exports.in (added), include/asterisk/http_websocket.h (added), main/utils.c, res/res_http_websocket.c (added): Add res_http_websocket module which implements the WebSocket protocol according to RFC 6455. Review: https://reviewboard.asterisk.org/r/1952/ 2012-06-01 23:53 +0000 [r368311] Richard Mudgett * /, apps/app_stack.c: Fix deadlock when Gosub used with alternate dialplan switches. Attempting to remove a channel from autoservice with the channel lock held will result in deadlock. * Restructured gosub_exec() to not call ast_parseable_goto() and ast_exists_extension() with the channel lock held. (closes issue ASTERISK-19764) Reported by: rmudgett Tested by: rmudgett ........ Merged revisions 368308 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368310 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-01 20:42 +0000 [r368268-368269] Kevin P. Fleming * channels/chan_sip.c: Improve SDP offer/answer RFC compliance Asterisk should not accept SDP offers that contain unknown RTP profiles (for audio/video streams) or unknown top-level media types. When it does, it answers with an SDP that does not match the offer properly, and this will nearly always result in a broken call. This patch causes such offers to be rejected. Review: https://reviewboard.asterisk.org/r/1811/ * /, channels/chan_sip.c: Improve SDP parsing warning messages * 'Unsupported media type' is only reported when that is in fact the case, not when a supported media type is included in an 'm' line that has an invalid format. * All warning messages related to parsing 'm' lines now include the 'm' line contents. * (minor bugfix) newline added to port-number-zero warning messages. * Warning messages improved to use RFC-specified terminology for various items. * Warnings for offers that include more than one port for a single media type now include the media type. Review: https://reviewboard.asterisk.org/r/1811/ ........ Merged revisions 368218 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368267 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-06-01 18:20 +0000 [r368181-368221] Terry Wilson * configs/config_test.conf.sample (added): Add missing config for config API test * main/udptl.c, include/asterisk/utils.h, include/asterisk/astobj2.h, configure.ac, include/asterisk/config.h, main/astobj2.c, main/config.c, Makefile, include/asterisk/config_options.h (added), configure, main/asterisk.exports.in, apps/app_skel.c, main/config_options.c (added), tests/test_config.c, makeopts.in, configs/app_skel.conf.sample (added), include/asterisk/stringfields.h: Add new config-parsing framework This framework adds a way to register the various options in a config file with Asterisk and to handle loading and reloading of that config in a consistent and atomic manner. Review: https://reviewboard.asterisk.org/r/1873/ 2012-06-01 13:04 +0000 [r368143] Mark Michelson * channels/chan_sip.c, configs/sip.conf.sample, channels/sip/include/sip.h: Help mitigate potential reinvite glare scenarios. When Asterisk servers are set up back-to-back, and direct media is to be used betweeen endpoints, it is fairly common for the two Asterisk servers to send direct media reinvites to each other simultaneously. This results in 491s and ACKs being exchanged between the servers. While the media eventually gets set up properly, the problem is that there can be a noticeable delay for the streams to stabilize. This patch adds a new directmedia option called "outgoing". With this set, an immediate direct media reinvite will only be sent if the call direction is outgoing. For incoming dialogs, an immediate direct media reinvite will not be sent, but further "reactionary" direct media reinvites may be sent. Review: https://reviewboard.asterisk.org/r/1954 2012-06-01 03:30 +0000 [r368094] Michael L. Young * /, funcs/func_channel.c: Add documentation to function CHANNEL for options echocan_mode and buffers The ability to set "echocan_mode" and "buffers" through the dialplan was added to chan_dahdi some time ago. This patch adds some documentation to func_channel. (Closes issue ASTERISK-19911) Reported by: Dale Noll Tested by: Michael L. Young Patches: asterisk-19911-branch18.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/1949/ ........ Merged revisions 368092 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368093 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-31 18:39 +0000 [r368052] Richard Mudgett * res/ael/pval.c, main/tcptls.c, main/manager.c, res/res_config_odbc.c, /, channels/chan_sip.c, channels/chan_agent.c, funcs/func_math.c, main/features.c, apps/app_queue.c, channels/chan_iax2.c, pbx/pbx_config.c: Coverity Report: Fix issues for error type REVERSE_INULL (core modules) * Fixes findings: 0-2,5,7-15,24-26,28-31 (issue ASTERISK-19648) Reported by: Matt Jordan ........ Merged revisions 368039 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368042 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-30 18:08 +0000 [r367908-367982] Richard Mudgett * /: Use the DEADLOCK_AVOIDANCE() macro instead. (issue ASTERISK-19854) ........ Merged revisions 367980 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367981 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/sig_pri.c, channels/sig_ss7.c: Fix deadlock when executing CLI "pri show channels" and "ss7 show channels" commands. * Fix sig_pri_lock_owner() to avoid deadlock properly. * Code pri_grab() better. * Fix sig_ss7_lock_owner() to avoid deadlock properly. * Code ss7_grab() better. (closes issue ASTERISK-19854) Reported by: Jaxon Patches: jira_asterisk_19854_v1.8.6.patch (license #5621) patch uploaded by rmudgett (Modified to do the same thing to sig_ss7) Tested by: Jaxon ........ Merged revisions 367976 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367978 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_meetme.c: Coverity Report: Fix issues for error type REVERSE_INULL (deprecated modules) * Fix only issue pointed out by deprecated_REVERSE_INULL.txt for app_meetme.c in find_user(). * Change use of %i to %d in sscanf() in find_user(). The use of %i gives unexpected parsing because it can accept hex, octal, and decimal integer formats. * Changed other uses of %i in app_meetme() to use %d for consistency. (issue ASTERISK-19648) Reported by: Matt Jordan ........ Merged revisions 367906 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367907 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-29 18:40 +0000 [r367845] Matthew Jordan * /, channels/chan_skinny.c: AST-2012-008: Fix remote crash vulnerability in chan_skinny When a skinny session is unregistered, the corresponding device pointer is set to NULL in the channel private data. If the client was not in the on-hook state at the time the connection was closed, the device pointer can later be dereferened if a message or channel event attempts to use a line's pointer to said device. The patches prevent this from occurring by checking the line's pointer in message handlers and channel callbacks that can fire after an unregistration attempt. (closes issue ASTERISK-19905) Reported by: Christoph Hebeisen Tested by: mjordan, Damien Wedhorn Patches: AST-2012-008-1.8.diff uploaded by mjordan (license 6283) AST-2012-008-10.diff uploaded by mjordan (licesen 6283) ........ Merged revisions 367844 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-25 16:33 +0000 [r367783] Richard Mudgett * /, channels/chan_iax2.c: AST-2012-007: Fix IAX receiving HOLD without suggested MOH class crash. * Made schedule_delivery() set the received frame f->data.ptr to NULL if the datalen is zero. * Fix queue_signalling() memcpy() size error. * Made queue_signalling() not use C++ keyword variable names. (closes issue ASTERISK-19597) Reported by: mgrobecker Patches: jira_asterisk_19597_v1.8.patch (license #5621) patch uploaded by rmudgett Tested by: rmudgett, Michael L. Young ........ Merged revisions 367781 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367782 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-25 02:31 +0000 [r367732] Michael L. Young * /, channels/chan_sip.c: Fix pvt_sip for inbound call to use peer's allowtransfer setting The pvt_sip allowtransfer was not being set to that of the peer's setting. Therefore, the global allowtransfer setting was being used instead which would lead to calls not being transfered if the global setting was set to 'no' despite the setting on the peer being 'yes' and vice versa, calls would be allowed to transfer even if the peer's setting was 'no' but the global setting was 'yes'. (Closes issue ASTERISK-19856) Reported by: Jacek Tested by: Michael L. Young, Jacek Patches: issue-asterisk-19856-branch10-v3.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/1923/ ........ Merged revisions 367730 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367731 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-24 23:52 +0000 [r367693] Richard Mudgett * apps/app_dial.c, /, apps/app_queue.c: Fix Dial I option ignored if dial forked and one fork redirects. The Dial and Queue I option is intended to block connected line updates and redirecting updates. However, it is a feature that when a call is locally redirected, the I option is disabled if the redirected call runs as a local channel so the administrator can have an opportunity to setup new connected line information. Unfortunately, the Dial and Queue I option is disabled for *all* forked calls if one of those calls is redirected. * Make the Dial and Queue I option apply to each outgoing call leg independently. Now if one outgoing call leg is locally redirected, the other outgoing calls are not affected. * Made Dial not pass any redirecting updates when forking calls. Redirecting updates do not make sense for this scenario. * Made Queue not pass any redirecting updates when using the ringall strategy. Redirecting updates do not make sense for this scenario. * Fixed deadlock potential with chan_local when Dial and Queue send redirecting updates for a local redirect. * Converted the Queue stillgoing flag to a boolean bitfield. (closes issue ASTERISK-19511) Reported by: rmudgett Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1920/ ........ Merged revisions 367678 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367679 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-24 18:56 +0000 [r367640] Jonathan Rose * main/rtp_engine.c, channels/chan_sip.c, include/asterisk/rtp_engine.h: chan_sip: fix problem directmediapermit/deny uses the wrong address When remotely bridging calls with directmedia, Asterisk would check the address of the peers/users holding directmedia ACLs (set via directmediapermit/directmediadeny) instead of the bridged peer. This is similar to r366547, but trunk specific and involves changes to the rtpengine instead of just chan_sip. (closes issue AST-876) review: https://reviewboard.asterisk.org/r/1924/ 2012-05-24 13:33 +0000 [r367563] Matthew Jordan * /, apps/app_confbridge.c: Fix crash in ConfBridge when user announcement is played for more than 2 users A patch introduced in r354938 made it so that ConfBridge would not attempt to play sound files if those files did not exist. Unfortunately, ConfBridge uses the same underlying function, play_sound_helper, to playback both sound files and numbers to callers. When a number is being played back, the name of the sound file is expected to be NULL. This NULL value was passed into a function that tested for the existance of a sound file and is not tolerant to NULL file names, causing a crash. This patch fixes the behavior, such that if a sound file does not exist we do not attempt to play it, but we only attempt that check if the a sound file was specified in the first place. If a sound file was not specified, we use the 'play number' logic in the helper function. (closes issue ASTERISK-19899) Reported by: Florian Gilcher Tested by: Florian Gilcher patches: asterisk-19899.diff uploaded by mjordan (license 6283) ........ Merged revisions 367562 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-24 00:36 +0000 [r367477-367520] Richard Mudgett * channels/iax2-parser.c: Made use IAX frame cache only for cacheable frame types. * main/pbx.c, /: Fix WaitExten(x,m(musicclass)) string termination. The AST_CONTROL_HOLD MOH class from the WaitExten application can now be queued onto a channel, passed over local channels with the /m option, and passed over IAX channels. ........ Merged revisions 367469 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367470 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-23 20:39 +0000 [r367419] Jonathan Rose * main/pbx.c: logger: Fix a potential callid reference leak discovered in development Uncovered a nasty reference leak while I was writing some changes to chan_dahdi/sig_analog. Slapped myself around a bit after seeing that I performed the unchecked return causing this problem. 2012-05-23 20:30 +0000 [r367418] Mark Michelson * main/tcptls.c, /: Only call SSL_CTX_free if DO_SSL is defined. Thanks to Paul Belanger for pointing out this error. ........ Merged revisions 367416 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367417 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-23 13:46 +0000 [r367376] Matthew Jordan * /, channels/chan_sip.c, channels/sip/include/sip.h: Re-add LastMsgsSent value for SIP peers Previously, MWI logic utilized a counter called 'lastmsgssent' to know whether or not MWI NOTIFY requests had been sent to a specific peer. When MWI notifications were changed to use the internal event framework, this value was no longer needed for its original purpose. Hence, it was no longer updated with the new/old message counts for a peer. The value was previously removed for Asterisk 10; however, since it was still present in Asterisk 1.8 and still useful for reporting purposes, it was decided to re-add the value. This patch re-adds the 'LastMsgsSent' field in the response to an AMI/CLI 'sip show peer [peer]' command, and makes it so that the value of lastmsgssent is updated appropriately. The value should now display the new/old message counts for a particular peer. (closes issue ASTERISK-17866) Reported by: Steve Davies patches by: ast-17866-rb1272.patch (License #5041 by irroot) Modified slightly for this commit Review: https://reviewboard.asterisk.org/r/1939 ........ Merged revisions 367362 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367369 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-22 17:29 +0000 [r367274-367309] Terry Wilson * main/channel.c, /, include/asterisk/cel.h, main/channel_internal_api.c, include/asterisk/channel.h, main/cel.c, main/asterisk.c: Fix race condition for CEL LINKEDID_END event This patch fixes to situations that could cause the CEL LINKEDID_END event to be missed. 1) During a core stop gracefully, modules are unloaded when ast_active_channels == 0. The LINKDEDID_END event fires during the channel destructor. This means that occasionally, the cel_* module will be unloaded before the channel is destroyed. It seemed generally useful to wait until the refcount of all channels == 0 before unloading, so I added a channel counter and used it in the shutdown code. 2) During a masquerade, ast_channel_change_linkedid is called. It calls ast_cel_check_retire_linkedid which unrefs the linkedid in the linkedids container in cel.c. It didn't ref the new linkedid. Now it does. Review: https://reviewboard.asterisk.org/r/1900/ ........ Merged revisions 367292 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367299 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Resolve crash in subscribing for MWI notifications ASTOBJ_UNREF sets the variable to NULL after unreffing it, so the variable should definitely not be used after that. To solve this in the two cases that affect subscribing for MWI notifications, we instead save the ref locally, and unref them in the error conditions. (closes issue ASTERISK-19827) Reported by: B. R Review: https://reviewboard.asterisk.org/r/1940/ ........ Merged revisions 367266 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367267 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-21 22:45 +0000 [r367227] Richard Mudgett * main/channel.c: Made ast_queue_hangup() and ast_queue_hangup_with_cause() lock instead of trylock. It made no sense to trylock the channel and then unconditionally lock the channel right after. 2012-05-21 20:35 +0000 [r367189] Kinsey Moore * channels/chan_iax2.c: Make chan_iax2 reject cause code indications correctly If chan_iax2 does not reject the PVT_CAUSE_CODE frames, the cause will not be stored properly. 2012-05-21 20:31 +0000 [r367163-367183] Mark Michelson * include/asterisk/callerid.h, channels/chan_sip.c, main/callerid.c: Revert revision 367163. This should have been committed to my team trunk-digiumphones branch instead of trunk. * include/asterisk/callerid.h, channels/chan_sip.c, main/callerid.c: Add "send to voicemail" Digium phone functionality to Asterisk. This change accommodates two methods by which calls can be directed to a user's voicemail. * Incoming calls can be redirected to any user's voicemail. * Established calls can be blind transferred to any user's voicemail. Digium phones indicate the desire to direct a call to voicemail by using a Diversion header with a reason parameter of "send_to_vm". This patch adds the "send_to_vm" reason as a valid redirecting reason. In addition, chan_sip.c has been modified to update redirecting information on the transferred channel by reading a Diversion header on a REFER request. (closes issue AST-871) Reported by Malcolm Davenport Review: https://reviewboard.asterisk.org/r/1925 2012-05-21 17:39 +0000 [r367124] Terry Wilson * include/asterisk/astobj2.h: Minor documentation change 2012-05-18 19:39 +0000 [r367080] Jonathan Rose * configs/queues.conf.sample, CHANGES, apps/app_queue.c: app_queue: Per Member ringinuse option and deprecation of ignorebusy Adds a number of methods for controlling the setting of 'ringinuse' which is basically the same concept as the old ignorebusy setting, only now the per member setting always controls whether or not the member is actually ringed while in use. A CLI command and a manager action have been added to change a given queue member's ringinuse option while Asterisk is running and the an argument has been added for adding members with deliberately set ringinuse in queues.conf Some effort has been made to ensure compatability with dialplans and databases still referring to 'ignorebusy'. (issue ASTERISK-19536) reported by: Philippe Lindheimer Review: https://reviewboard.asterisk.org/r/1919/ 2012-05-18 17:54 +0000 [r367010-367029] Mark Michelson * channels/chan_dahdi.c, /, main/say.c: Address MISSING_BREAK static analysis reports some more. This addresses core findings 4 and 6. Moises Silva helped me by stating that a break could be safely added to the case where it is added in chan_dahdi.c In say.c, I have added a comment indicating that static analysis complains but that it is currently unknown if this is correct. This fixes all core findings of this type. (closes issue ASTERISK-19662) reported by Matthew Jordan ........ Merged revisions 367027 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367028 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/tcptls.c, /, channels/chan_sip.c, include/asterisk/tcptls.h: Fix memory leak of SSL_CTX structures in TLS core. SSL_CTX structures were allocated but never freed. This was a bigger issue for clients than servers since new SSL_CTX structures could be allocated for each connection. Servers, on the other hand, typically set up a single SSL_CTX for their lifetime. This is solved in two ways: 1. In __ssl_setup(), if a tcptls_cfg has an ssl_ctx on it, it is freed so that a new one can take its place. 2. A companion to ast_ssl_setup() called ast_ssl_teardown() has been added so that servers can properly free their SSL_CTXs. (issue ASTERISK-19278) ........ Merged revisions 367002 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 367003 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-18 15:51 +0000 [r366917-366955] Matthew Jordan * channels/chan_dahdi.c, /, channels/chan_sip.c, funcs/func_odbc.c, main/cli.c: Fix more memory leaks This patch adds to what was fixed in r366880. Specifically, it addresses the following: * chan_sip: dispose of an allocated frame in off nominal code paths in sip_rtp_read * func_odbc: when disposing of an allocated resultset, ensure that any rows that were appended to that resultset are also disposed of * cli: free the created return string buffer in another off nominal code path * chan_dahdi: free a frame that was allocated by the dsp layer if we choose not to process that frame (issue ASTERISK-19665) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1922/ ........ Merged revisions 366944 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366948 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/netsock2.c, res/res_rtp_asterisk.c, main/pbx.c, res/res_calendar_exchange.c, res/res_calendar_icalendar.c, apps/app_page.c, /, funcs/func_dialgroup.c, channels/chan_sip.c, apps/app_record.c, res/res_calendar_caldav.c, res/res_jabber.c, apps/app_queue.c, channels/chan_iax2.c, main/enum.c, main/editline/term.c, main/config.c, res/res_srtp.c, main/cli.c, main/editline/tokenizer.c, main/data.c, channels/chan_dahdi.c, funcs/func_odbc.c, main/features.c, apps/app_minivm.c, main/editline/readline.c, channels/sip/config_parser.c, main/xmldoc.c, res/res_calendar.c, apps/app_voicemail.c: Fix a variety of memory leaks This patch addresses a number of memory leaks in a variety of modules that were found by a static analysis tool. A brief summary of the changes: * app_minivm: free ast_str objects on off nominal paths * app_page: free the ast_dial object if the requested channel technology cannot be appended to the dialing structure * app_queue: if a penalty rule failed to match any existing rule list names, the created rule would not be inserted and its memory would be leaked * app_read: dispose of the created silence detector in the presence of off nominal circumstances * app_voicemail: dispose of an allocated unique ID field for MWI event un-subscribe requests in off nominal paths; dispose of configuration objects when using the secret.conf option * chan_dahdi: dispose of the allocated frame produced by ast_dsp_process * chan_iax2: properly unref peer in CLI command "iax2 unregister" * chan_sip: dispose of the allocated frame produced by sip_rtp_read's call of ast_dsp_process; free memory in parse unit tests * func_dialgroup: properly deref ao2 object grhead in nominal path of dialgroup_read * func_odbc: free resultset in off nominal paths of odbc_read * cli: free match_list in off nominal paths of CLI match completion * config: free comment_buffer/list_buffer when configuration file load is unchanged; free the same buffers any time they were created and config files were processed * data: free XML nodes in various places * enum: free context buffer in off nominal paths * features: free ast_call_feature in off nominal paths of applicationmap config processing * netsock2: users of ast_sockaddr_resolve pass in an ast_sockaddr struct that is allocated by the method. Failures in ast_sockaddr_resolve could result in the users of the method not knowing whether or not the buffer was allocated. The method will now not allocate the ast_sockaddr struct if it will return failure. * pbx: cleanup hash table traversals in off nominal paths; free ignore pattern buffer if it already exists for the specified context * xmldoc: cleanup various nodes when we no longer need them * main/editline: various cleanup of pointers not being freed before being assigned to other memory, cleanup along off nominal paths * menuselect/mxml: cleanup of value buffer for an attribute when that attribute did not specify a value * res_calendar*: responses are allocated via the various *_request method returns and should not be allocated in the various write_event methods; ensure attendee buffer is freed if no data exists in the parsed node; ensure that calendar objects are de-ref'd appropriately * res_jabber: free buffer in off nominal path * res_musiconhold: close the DIR* object in off nominal paths * res_rtp_asterisk: if we run out of ports, close the rtp socket object and free the rtp object * res_srtp: if we fail to create the session in libsrtp, destroy the temporary ast_srtp object (issue ASTERISK-19665) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1922 ........ Merged revisions 366880 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366881 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-18 14:27 +0000 [r366896] Jonathan Rose * channels/sip/dialplan_functions.c: chan_sip: Fix a small TEST_FRAMEWORK related error that prevents compiling Introduced with r366842, a function call made only with TEST_FRAMEWORK enabled was missing an argument since the function arguments were changed. 2012-05-18 14:21 +0000 [r366843-366888] Kinsey Moore * /, channels/sip/config_parser.c: Reorder and renumber tests appropriately It appears that a patch did not apply properly when adding tests 12 and 13 and test 11 was duplicated. These tests have been reordered and renumbered such that they make sense. ........ Merged revisions 366882 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366884 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/channel.c: Make the new SIP_CAUSE backend behave more like the original SIP_CAUSE There was a slight discrepancy in the behaviors of the old SIP_CAUSE and the new SIP_CAUSE/HANGUPCAUSE when a channel had been originated and had not yet been answered. This caused the noload_res_srtp_attempt_srtp test to fail since the SIP_CAUSE variable was never actually set. This behavior has been restored. 2012-05-17 16:28 +0000 [r366842] Jonathan Rose * include/asterisk/logger.h, main/channel.c, channels/sip/include/dialog.h, main/pbx.c, channels/chan_sip.c, main/channel_internal_api.c, main/logger.c, include/asterisk/channel.h, CHANGES, channels/sip/include/sip.h, main/cli.c: logger: Adds additional support for call id logging and chan_sip specific stuff This patch improves the handling of call id logging significantly with regard to transfers and adding APIs to better handle specific aspects of logging. Also, changes have been made to chan_sip in order to better handle the creation of callids and to enable the monitor thread to bind itself to a particular call id when a dialog is determined to be related to a callid. It then unbinds itself before returning to normal monitoring. review: https://reviewboard.asterisk.org/r/1886/ 2012-05-17 13:21 +0000 [r366746] Matthew Jordan * channels/chan_dahdi.c, /, res/res_calendar_ews.c: Fix checking bounds of array index after using it; improper sizeof This patch fixes two problems pointed out by a static analysis tool. * In chan_dahdi, when an event is handled the index of the sub channel is first obtained. In very off nominal cases, the method that determines the index can return a negative value. In the event handling code, whether or not the index returned is valid was being checked after that value was used to index into an array. This patch makes it so the value is checked before any indexing is done. * In res_calendar_ews, sizeof was being passed a pointer instead of the struct to determine the amount of memory to allocate. (issue ASTERISK-19651) Reported by: Matt Jordan (closes issue ASTERISK-19671) Reported by: Matt Jordan ........ Merged revisions 366740 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366741 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-16 18:00 +0000 [r366663-366700] Richard Mudgett * include/asterisk/astobj2.h: Remove missed idx parameter to some ao2 global holder macros. * include/asterisk/astobj2.h, tests/test_astobj2.c, main/astobj2.c: Change ao2 global array to ao2 global object holder. Review: https://reviewboard.asterisk.org/r/1921/ 2012-05-15 23:41 +0000 [r366599] Mark Michelson * /, channels/chan_sip.c: Correct misuse of ast_strip_quoted() when getting a Diversion header's reason parameter. The use here was assuming that the pointer would be updated, but the updated string is actually returned by ast_strip_quoted() instead. ........ Merged revisions 366597 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366598 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-15 19:36 +0000 [r366462-366546] Richard Mudgett * channels/chan_local.c: The predial routine must be run on the local;1 channel. When ast_call() operates on a local channel, it copies a lot of things from the local;1 channel to the local;2 channel. This includes among other things, channel variables and party id information. Other reasons it was a bad idea to run predial on the local;2 channel: 1) The channel has not been completely setup. The ast_call() completes the setup. 2) The local;2 caller and connected line party information is opposite to any other channels predial runs on. (And it hasn't been setup yet.) * Partially back out -r366183 by removing the chan_local implementation of the struct ast_channel_tech.pre_call callback. * CHANGES, apps/app_followme.c: Add predial support to FollowMe. Like the new predial feature for Dial. This adds the same b/B options to FollowMe. Review: https://reviewboard.asterisk.org/r/1910/ * channels/chan_local.c: Make chan_local use the API call instead of inlining its own version. 2012-05-14 20:15 +0000 [r366413] Mark Michelson * /, pbx/dundi-parser.c: Fix two more coverity constant expression result findings. These correspond to findings 0 and 1 in the core findings of ASTERISK-19649. After contacting Mark Spencer, he was unsure of what the intent behind these lines of code were, so they are being axed. For Asterisk 1.8 and 10, the output of debugging DUNDi frames will not be changed, but for trunk the "Retry" portion will be omitted since it does not properly distinguish retransmissions from initial frames. (closes issue ASTERISK-19649) Reported by Matthew Jordan ........ Merged revisions 366409 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366412 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-14 19:44 +0000 [r366408] Kinsey Moore * channels/chan_unistim.c, apps/app_dial.c, main/rtp_engine.c, channels/chan_vpb.cc, channels/chan_sip.c, UPGRADE.txt, channels/chan_gtalk.c, channels/chan_console.c, channels/chan_iax2.c, apps/app_queue.c, apps/app_followme.c, channels/chan_oss.c, channels/chan_jingle.c, main/channel.c, channels/chan_phone.c, main/dial.c, channels/chan_misdn.c, channels/chan_skinny.c, funcs/func_frame_trace.c, main/features.c, channels/chan_h323.c, main/file.c, channels/chan_alsa.c, configs/sip.conf.sample, include/asterisk/frame.h, channels/chan_mgcp.c: Commit framework for HANGUPCAUSE (replacement for SIP_CAUSE) This is the starting point for the Asterisk 11: Who Hung Up work and provides a framework which will allow channel drivers to report the types of hangup cause information available in SIP_CAUSE without incurring the overhead of the MASTER_CHANNEL dialplan function. The initial implementation only includes cause generation for chan_sip and does not include cause code translation utilities. This change deprecates SIP_CAUSE and replaces its method of reporting cause codes with the new framework. This change also deprecates the 'storesipcause' option in sip.conf. Review: https://reviewboard.asterisk.org/r/1822/ (Closes issue SWP-4221) 2012-05-14 19:27 +0000 [r366401] Mark Michelson * /, channels/chan_sip.c: Fix broken reinvite glare scenario. To make a long story short, reinvite glares were broken because Asterisk would invert the To and From headers when ACKing a 491 response. The reason was because the initreq of the dialog was being changed to the incoming glared reinvite instead of being set to the outgoing glared reinvite. This change has three parts * In handle_incoming, we never will reject an ACK because it has a to-tag present, even if we think the request may be out of dialog. * In handle_request_invite, we do not change the initreq when receiving a reinvite to which we will respond with a 491. * In handle_request_invite, several superflous settings up pendinginvite have been removed since this is dones automatically by transmit_response_reliable Review: https://reviewboard.asterisk.org/r/1911 ........ Merged revisions 366389 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366390 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-14 13:42 +0000 [r366351] Tzafrir Cohen * configure, configure.ac, autoconf/ast_pkgconfig.m4 (added): Macro AST_PKG_CONFIG_CHECK to use chkconfig AST_PKG_CONFIG_CHECK: Similar to AST_EXT_LIB_CHECK, but simply uses pkg-config data. This simple version only uses pkg-config(1)'s tests. This commit also uses the macro to test for GTK2 and GMIME (instead of the current direct usage of pkg-config). Review: https://reviewboard.asterisk.org/r/1906/ 2012-05-12 00:03 +0000 [r366298] Russell Bryant * /, addons/format_mp3.c: format_mp3: Fix a possible crash in mp3_read(). This patch fixes a potential crash in mp3_read() by not assuming that dbuf has enough data to finish filling up the output buffer. The patch also makes sure that the dbuf state gets reset after we know we read everything out of it already. In passing, this patch includes some other cleanups of this module, including stripping trailing whitespace, formatting fixes based on coding guidelines, and removing a number of unused members from the private state struct. (closes issue ASTERISK-19761) Reported by: Chris Maciejewsk Tested by: Chris Maciejewsk ........ Merged revisions 366296 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366297 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-10 23:49 +0000 [r366183-366242] Richard Mudgett * main/channel.c, /: * Made ast_change_name() hold the channels container lock while changing the channel name. * Eliminate redundant list not empty check in clone_variables(). ........ Merged revisions 366240 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366241 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_dial.c: Tweak app_dial predial documentation. * apps/app_dial.c, main/channel.c, channels/chan_local.c, include/asterisk/channel.h: Run predial routine on local;2 channel where you would expect. Before this patch, the predial routine executes on the ;1 channel of a local channel pair. Executing predial on the ;1 channel of a local channel pair is of limited utility. Any channel variables set by the predial routine executing on the ;1 channel will not be available when the local channel executes dialplan on the ;2 channel. * Create ast_pre_call() and an associated pre_call() technology callback to handle running the predial routine. If a channel technology does not provide the callback, the predial routine is simply run on the channel. Review: https://reviewboard.asterisk.org/r/1903/ 2012-05-10 20:56 +0000 [r366169] Kinsey Moore * funcs/func_speex.c, main/pbx.c, res/res_calendar_icalendar.c, /, channels/chan_sip.c, funcs/func_lock.c, channels/chan_agent.c, channels/sip/reqresp_parser.c, main/devicestate.c, pbx/dundi-parser.c, channels/chan_iax2.c, channels/iax2-parser.c, main/config.c, res/res_monitor.c, main/channel.c, main/cdr.c, res/ael/pval.c, main/data.c, channels/chan_dahdi.c, main/tcptls.c, main/manager.c, main/features.c, main/app.c, main/event.c, pbx/pbx_dundi.c, res/res_odbc.c, main/xmldoc.c, apps/app_voicemail.c: Resolve FORWARD_NULL static analysis warnings This resolves core findings from ASTERISK-19650 numbers 0-2, 6, 7, 9-11, 14-20, 22-24, 28, 30-32, 34-36, 42-56, 82-84, 87, 89-90, 93-102, 104, 105, 109-111, and 115. Finding numbers 26, 33, and 29 were already resolved. Those skipped were either extended/deprecated or in areas of code that shouldn't be disturbed. (Closes issue ASTERISK-19650) ........ Merged revisions 366167 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366168 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-10 18:35 +0000 [r366126] Jonathan Rose * main/pbx.c, channels/sig_analog.c, /, channels/chan_sip.c, funcs/func_lock.c, main/features.c, main/acl.c, channels/iax2-provision.c, apps/app_queue.c, channels/chan_iax2.c, res/ael/ael.flex, funcs/func_devstate.c, main/asterisk.c, main/xmldoc.c, apps/app_voicemail.c: Coverity Report: Fix issues for error type CHECKED_RETURN for core (issue ASTERISK-19658) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1905/ ........ Merged revisions 366094 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366106 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-10 16:22 +0000 [r366062] Mark Michelson * /, channels/chan_sip.c: Close the proper tcptls_session when session creation fails. (issue AST-998) Reported by: Thomas Arimont Tested by: Thomas Arimont ........ Merged revisions 366052 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366053 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-10 15:57 +0000 [r366007-366051] Jonathan Rose * /, funcs/func_cdr.c, main/features.c, apps/app_disa.c, apps/app_chanspy.c: Coverity Report: Fix issues for error type UNINIT in Core supported modules (issue ASTERISK-19652) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1909/ ........ Merged revisions 366048 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 366049 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, codecs/codec_dahdi.c: Block on frameout if the hardware has enough samples to complete a frame. Fixes some problems with skipping audio in elaborate scenarios involving multiple codecs by making codec_dahdi operate in a more synchronous fashion similar to codec_g729. This change also fixes the use of file conversion tools from Asterisk's CLI. This change may cause the thread responsible for transcoding audio to block briefly (Shaun Ruffell describes this as 'several milliseconds') while waiting for the hardware transcoder. (closes issue ASTERISK-19643) reported by: Shaun Ruffell Patches: 0001-codec_dahdi-Block-on-frameout-the-hardware-has-enoug.patch uploaded by Shaun Ruffell (license 5417) ........ Merged revisions 365989 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365990 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-09 19:26 +0000 [r366002] Tzafrir Cohen * Makefile: pass BUILD_CFLGAS and BUILD_LDFLAGS to menuselect Allow menuselect to get its set of CFLAGS and LDFLAGS through the environment of Make: make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever" Review: https://reviewboard.asterisk.org/r/1907/ 2012-05-09 17:58 +0000 [r365951] Richard Mudgett * configs/followme.conf.sample, apps/app_followme.c: Improve FollowMe accept/decline DTMF string matching. If you hit the wrong DTMF digit trying to accept/decline a FollowMe call, you had to wait for the prompt to repeat to try again. * Make FollowMe compare the last DTMF digits received to the accept/decline matching strings. 2012-05-09 16:36 +0000 [r365913] Mark Michelson * /, channels/chan_sip.c: Prevent sip_pvt refleak when an ast_channel outlasts its corresponding sip_pvt. chan_sip was coded under the assumption that a SIP dialog with an owner channel will always be destroyed after the owner channel has been hung up. However, there are situations where the SIP dialog can time out and auto destruct before the corresponding channel has hung up. A typical example of this would be if the 'h' extension in the dialplan takes a long time to complete. In such cases, __sip_autodestruct() would complain about the dialog being auto destroyed with an owner channel still in place. The problem is that even once the owner channel was hung up, the sip_pvt would still be linked in its ao2_container because nothing would ever unlink it. The fix for this is that if __sip_autodestruct() is called for a sip_pvt that still has an owner channel in place, the destruction is rescheduled for 10 seconds in the future. This will continue until the owner channel is finally hung up. (closes issue ASTERISK-19425) reported by David Cunningham Patches: ASTERISK-19425.patch uploaded by Mark Michelson (License #5049) (closes issue ASTERISK-19455) reported by Dean Vesvuio Tested by Dean Vesvuio ........ Merged revisions 365896 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365898 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-09 02:35 +0000 [r365766-365856] Richard Mudgett * configs/followme.conf.sample, UPGRADE.txt, apps/app_followme.c: Keep answered FollowMe calls until call accepted or last step times out. * apps/app_followme.c: Put winning FollowMe outgoing call on hold if the caller put it on hold. The FollowMe caller call leg is usually answered and listening to MOH. The caller could put the call on hold while FollowMe is looking for a winner. The winning outgoing call is now immediately placed on hold if the caller has put the call on hold before the winning call was selected. * apps/app_followme.c: Restructure how the FollowMe outgoing channel list is handled. * apps/app_followme.c: Addendum to -r365766. Since it is no longer allocated. * apps/app_followme.c: Make FollowMe findmeexec() put the list head on the stack instead of mallocing it. Why this tiny struct was malloced instead of the 28k struct in the last change is beyond me. Just doing my part to help stamp out sillyness. 2012-05-08 21:46 +0000 [r365751] Sean Bright * apps/app_externalivr.c: Add interrupt ('I') command to ExternalIVR. Sending the 'I' command from an external process will cause the current playlist to be cleared, including stopping any audio file that is currently playing. This is useful when you want to interrupt audio playback only when specific DTMF is entered by the caller. 2012-05-08 21:41 +0000 [r365633-365749] Richard Mudgett * apps/app_followme.c: Make FollowMe app_exec() not declare a 28k struct on the stack. Helping to stamp out stack abuse. * apps/app_followme.c: Simplify findmeexec() parameter passing. * /, apps/app_followme.c: * Fix FollowMe memory leak on error paths in app_exec(). * Fix FollowMe leaving recorded caller name file on error paths in app_exec(). * Use correct buffer dimension define in struct fm_args.namerecloc[]. This fixes unexpected namerecloc filename length restriction. ........ Merged revisions 365692 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365701 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_followme.c: * Fix accept/decline DTMF buffer overwrite in FollowMe. * Made use MAX_YN_STRING define to make all accept/decline DTMF buffers the same size. Just using 20 isn't good enough when someone didn't get the memo. * Fix stupid use of a global variable in FollowMe. (ynlongest) * Fix bit field declarations in FollowMe. ........ Merged revisions 365631 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365632 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-08 15:57 +0000 [r365576] Mark Michelson * /, channels/chan_sip.c: Send more accurate identification information in dialog-info SIP NOTIFYs. This uses the calling channel's caller ID and connected line information to populate the remote and local identities in the dialog-info NOTIFY when an extension is ringing. There is a bit of an oddity here, and that is that we seed the remote target with the To header of the outbound call rather than the from header. This is because it was reported that seeding with the from header caused hints to be broken with certain SNOM devices. A comment has been added to the code to explain this. (closes issue ASTERISK-16735) reported by Maciej Krajewski patches: local_remote_hint2.diff uploaded by Mark Michelson (license #5049) 16735_tweak1.diff uploaded by Mark Michelson (license #5049) Tested by Niccolo Belli ........ Merged revisions 365574 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365575 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-07 20:08 +0000 [r365532] Richard Mudgett * main/features.c: Change comment to use local channel name designators in features.c 2012-05-07 18:58 +0000 [r365480] Matthew Jordan * main/pbx.c, apps/app_voicemail.c: Fix channel opaquification slip-up in r365477 Those channels are opaque now... 2012-05-07 18:51 +0000 [r365479] Richard Mudgett * /, tests/test_config.c: Fix type punned compiler warning in test_config.c ........ Merged revisions 365476 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365478 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-07 18:42 +0000 [r365477] Matthew Jordan * main/pbx.c, /, apps/app_voicemail.c: Support VoiceMail d() option when extension does not exist in channel's context The VoiceMail d([c]) option is documented to accept digits for a new extension in context , if played during the greeting. This option works fine if the extension being redirected to has an extension with the same initial digit in the channel's current context. If that digit did not happen to exist in some extension, a dialplan match would fail and the user would not be redirected. This patch fixes it such that if the option is used, the extensions are matched in that context as opposed to the caller's original context. (closes issue ASTERISK-18243) Reported by: mjordan Tested by: mjordan Review: https://reviewboard.asterisk.org/r/1892 ........ Merged revisions 365474 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365475 from http://svn.asterisk.