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.org/svn/asterisk/branches/10 2012-05-04 22:17 +0000 [r365400] Kinsey Moore * /, channels/chan_sip.c, funcs/func_aes.c, main/features.c, apps/app_followme.c, channels/chan_iax2.c, channels/sip/config_parser.c, pbx/pbx_config.c, apps/app_chanspy.c, apps/app_stack.c, main/config.c, apps/app_voicemail.c: Fix many issues from the NULL_RETURNS Coverity report Most of the changes here are trivial NULL checks. There are a couple optimizations to remove the need to check for NULL and outboundproxy parsing in chan_sip.c was rewritten to avoid use of strtok. Additionally, a bug was found and fixed with the parsing of outboundproxy when "outboundproxy=," was set. (Closes issue ASTERISK-19654) ........ Merged revisions 365398 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365399 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-04 17:38 +0000 [r365356] Richard Mudgett * channels/chan_local.c, /: Fix local channel chains optimizing themselves out of a call. * Made chan_local.c:check_bridge() check the return value of ast_channel_masquerade(). In long chains of local channels, the masquerade occasionally fails to get setup because there is another masquerade already setup on an adjacent local channel in the chain. * Made the outgoing local channel (the ;2 channel) flush one voice or video frame per optimization attempt. * Made sure that the outgoing local channel also does not have any frames in its queue before the masquerade. * Made do the masquerade immediately to minimize the chance that the outgoing channel queue does not get any new frames added and thus unconditionally flushed. * Made block indication -1 (Stop tones) event when the local channel is going to optimize itself out. When the call is answered, a chain of local channels pass down a -1 indication for each bridge. This blizzard of -1 events really slows down the optimization process. (closes issue ASTERISK-16711) Reported by: Alec Davis Tested by: rmudgett, Alec Davis Review: https://reviewboard.asterisk.org/r/1894/ ........ Merged revisions 365313 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365320 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-04 15:52 +0000 [r365300] Mark Michelson * res/res_rtp_asterisk.c, /: Fix core FINDING 2, FINDING 3, and FINDING 4 from Coverity's CONSTANT_EXPRESSION_RESULT report. These three all are in RTP code that attempts to print the number of sequence number cycles in an RTCP RR report. The code was masking out the upper 16 bits and then shifting the number right by 16 bits. This led to an all zero result in all cases. The fix is to do the shift without the bit masking. (issue ASTERISK-19649) ........ Merged revisions 365298 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365299 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-03 19:36 +0000 [r365248] Michael L. Young * tests/test_security_events.c: Update security events unit tests The security events framework API was changed in Asterisk 10 but the unit tests were not updated at the same time. This patch does the following: * Adds two more security events that were added to the API * Add challenge, received_challenge and received_hash in the inval_password security event unit test (Closes issue ASTERISK-19760) Reported by: Michael L. Young Tested by: Michael L. Young Patches: issue-asterisk-19760-trunk.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/1897/ 2012-05-03 18:43 +0000 [r365213] Sean Bright * CHANGES: Update documentation references in CHANGES to reflect the correct pages on the wiki. The current CHANGES file refers to doc/ in many places and those files no longer exist. 2012-05-03 15:05 +0000 [r365161] Alexandr Anikin * addons/ooh323c/src/ooh323.c, /, addons/ooh323c/src/h323/H323-MESSAGES.h, addons/ooh323c/src/h323/H323-MESSAGESEnc.c: Fix warning of Coverity Static analysis, change H225ProtocolIdentifier from value to pointer per functions that use this. (close issue ASTERISK-19670) Reported by: Matt Jordan Patches: ASTERISK-19670.patch (License #5415) ........ Merged revisions 365159 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365160 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-03 14:47 +0000 [r365158] Sean Bright * apps/app_externalivr.c, CHANGES: Add IPv6 support to ExternalIVR. Review: https://reviewboard.asterisk.org/r/1896/ 2012-05-03 14:35 +0000 [r365157] Alexandr Anikin * /, addons/ooh323c/src/ooq931.c: Fix coverity static analysis warning, allocate full ie structure instead of without data buffer (close issue ASTERISK-19674) Reported by: Matt Jordan Patches: ASTERISK-19674.patch (License #5415) ........ Merged revisions 365143 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365155 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-02 17:43 +0000 [r365084] Terry Wilson * channels/chan_local.c, /, main/cel.c: Multiple revisions 365006,365068 ........ r365006 | twilson | 2012-05-02 10:49:03 -0500 (Wed, 02 May 2012) | 12 lines Fix a CEL LINKEDID_END race and local channel linkedids This patch has the ;2 channel inherit the linkedid of the ;1 channel and fixes the race condition by no longer scanning the channel list for "other" channels with the same linkedid. Instead, cel.c has an ao2 container of linkedid strings and uses the refcount of the string as a counter of how many channels with the linkedid exist. Not only does this eliminate the race condition, but it also allows us to look up the linkedid by the hashed key instead of traversing the entire channel list. Review: https://reviewboard.asterisk.org/r/1895/ ........ r365068 | twilson | 2012-05-02 12:02:39 -0500 (Wed, 02 May 2012) | 11 lines Don't leak a ref if out of memory and can't link the linkedid If the ao2_link fails, we are most likely out of memory and bad things are going to happen. Before those bad things happen, make sure to clean up the linkedid references. This patch also adds a comment explaining why linkedid can't be passed to both local channel allocations and combines two ao2_ref calls into 1. Review: https://reviewboard.asterisk.org/r/1895/ ........ Merged revisions 365006,365068 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 365083 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-02 15:59 +0000 [r365011] Jason Parker * channels/chan_sip.c: Save the address on which a MESSAGE was received, so it can be used in MESSAGE() This is useful in cases where chan_sip may be listening on multiple addresses. 2012-05-02 02:51 +0000 [r364966] Matthew Jordan * /, main/audiohook.c: Only log a failure to get read/write samples from factories if it didn't happen In audiohook_read_frame_both, anytime samples are obtained from the read/write factories a debug statement is logged stating that samples were not obtained from the factories. This statement used to only occur if option_debug was turned on and no samples were obtained; in some refactoring when the option_debug statement was removed, the "else" clause was removed as well. This patch makes it so that those debug log statements only occur if the condition leading up to them actually happened. ........ Merged revisions 364965 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-01 23:23 +0000 [r364915] Mark Michelson * channels/chan_sip.c: Remove a function that has been marked unused since Asterisk 1.6.0. The reason I'm removing this is that Coverity reported a STRAY_SEMICOLON issue here. Since the function has been unused for so long, I just elected to remove it altogether. (closes issue ASTERISK-19660) 2012-05-01 23:21 +0000 [r364910] Richard Mudgett * /, main/astobj2.c: Fixed __ao2_ref() validating user_data twice. (closes issue ASTERISK-19755) Reported by: Gunther Kelleter Patches: ao2_ref.patch (license #6372) patch uploaded by Gunther Kelleter ........ Merged revisions 364902 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364903 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-01 23:11 +0000 [r364901] Mark Michelson * /, funcs/func_volume.c: Fix Coverity-reported ARRAY_VS_SINGLETON error. As it turned out, this wasn't a huge deal. We were calling ast_app_parse_options() for a set of options of which none took arguments. The proper thing to do for this case is to pass NULL for the "args" parameter here. We were instead passing a seemingly-randomly chosen char * from the function. While this would never get written to, you can rest assured things would have gotten bad had new options (which took arguments) been added to func_volume. (closes issue ASTERISK-19656) ........ Merged revisions 364899 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364900 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-01 22:00 +0000 [r364846] Richard Mudgett * channels/chan_local.c, /: * Fix error path resouce leak in local_request(). * Restructure local_request() to reduce indentation. ........ Merged revisions 364840 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364845 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-01 21:49 +0000 [r364844] Jason Parker * main/manager.c, /: Prevent a potential crash when using manager hooks. Found by me while poking at DPMA-127. ........ Merged revisions 364841 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364842 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-01 19:10 +0000 [r364788] Kinsey Moore * /, apps/app_confbridge.c: Play conf-placeintoconf message to the correct channel Correct the code in app_confbridge to play the conf-placeintoconf message to the marked user entering the bridge instead of to the conference while the marked user hears silence. (closes issue ASTERISK-19641) Reported-by: Mark A Walters ........ Merged revisions 364786 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364787 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-05-01 18:29 +0000 [r364785] Jonathan Rose * /, main/app.c: Fix bad check in voicemail functions for ast_inboxcount2_func Check looks for ast_inboxcount_func instead of ast_inboxcount2_func on ast_inboxcount2_func calls. (closes issue ASTERISK-19718) Reported by: Corey Farrell Patches: ast_app_inboxcount2-null-refcheck.patch uploaded by Corey Farrell (license 5909) ........ Merged revisions 364769 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364777 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-30 19:51 +0000 [r364708] Mark Michelson * /, channels/chan_sip.c: Revert revision 360862. Revision 360862 was intended to improve identities sent in dialog-info NOTIFY requests. Some users reported that hint became broken once this was done. It's not clear exactly what part of the patch has caused this regression, but broken hints are bad. For now, this revision is being reverted so that the next releases of Asterisk do not have bad behavior in them. The original reported issue will have to be fixed differently in the next version of Asterisk. (issue ASTERISK-16735) ........ Merged revisions 364706 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364707 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-30 17:17 +0000 [r364654] Mark Murawki * /, main/logger.c: Merged revisions 364635 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r364635 | markm | 2012-04-30 11:51:12 -0400 (Mon, 30 Apr 2012) | 10 lines Sanatize result from bfd_find_nearest_line (BETTER_BACKTRACES) bfd_find_nearest_line can possibly set file to null resulting in a crash when strrchr(file) runs (closes issue ASTERISK-19815) Reported by Mark Murawski Tested by Mark Murawski ........ ........ Merged revisions 364650 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-30 16:59 +0000 [r364652] Alexandr Anikin * /, addons/ooh323cDriver.c: Fix use freed pointer in return value from call thread (issue ASTERISK-19663) Reported by: Matt Jordan Patches: ASTERISK-19663-ooh323.patch (License #5415) ........ Merged revisions 364649 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364651 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-29 19:50 +0000 [r364580] Matthew Jordan * formats/format_ilbc.c, /, formats/format_sln.c, formats/format_vox.c, formats/format_wav.c, formats/format_pcm.c, formats/format_g723.c, formats/format_h263.c, formats/format_h264.c, formats/format_wav_gsm.c, formats/format_siren14.c, formats/format_gsm.c, formats/format_g719.c, formats/format_siren7.c, formats/format_g729.c: Fix error that caused truncate operations to fail Another very inappropriate placement of a ')' (again introduced in r362151) caused the various truncate operations to attempt to truncate the sound file at a position of '0'. (issue ASTERISK-19655) Reported by: Matt Jordan (issue ASTERISK-19810) Reported by: colbec ........ Merged revisions 364578 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364579 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-29 02:23 +0000 [r364537] Michael L. Young * /, apps/confbridge/conf_config_parser.c: Fix configuring custom sound_leader_has_left in confbridge.conf The configuration option to specify a custom sound_leader_has_left file for a conference bridge was not being parsed. This patch fixes it so that a custom sound file will now be used. (closes issue ASTERISK-19771) Reported by: Pawel Kuzak Tested by: Pawel Kuzak, Michael L. Young Patches: leaderhasleft_sound.dpatch uploaded by Pawel Kuzak (license 6380) Review: https://reviewboard.asterisk.org/r/1884/ ........ Merged revisions 364536 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-28 20:24 +0000 [r364500] Joshua Colp * channels/chan_sip.c, configs/sip.conf.sample, CHANGES, channels/sip/include/sip.h: Add support for lightweight NAT keepalive. If enabled using the keepalive option in sip.conf a small packet will be sent at a regular interval to keep the NAT mapping open. This is lightweight as the remote side does not need to parse and handle a SIP message. (closes issue AST-783) Review: https://reviewboard.asterisk.org/r/1756/ 2012-04-28 01:33 +0000 [r364437-364462] Russell Bryant * main/md5.c: md5: supress some compiler warnings. md5.c: In function ‘MD5Final’: md5.c:154:2: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] md5.c:155:2: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] There is an md5 unit test and it still passes. * configure, include/asterisk/autoconfig.h.in, res/res_corosync.c, configure.ac: res_corosync: Fix build against corosync 2.0. * apps/app_minivm.c: app_minivm: Fix a couple compiler warnings. The warnings were about argv[0] being used uninitialized, which is correct. Just remove setting username to this value, since username is set again before it actually gets used. * main/features.c, CHANGES: features: Add FEATURE() and FEATUREMAP() functions. Add two new dialplan functions: FEATURE() and FEATUREMAP(). FEATURE() lets you set some of the configuration options from the [general] section of features.conf on a per-channel basis. FEATUREMAP() lets you customize the key sequence used to activate built-in features, such as blindxfer, and automon. See the built-in documentation for details. Review: https://reviewboard.asterisk.org/r/1871/ 2012-04-28 00:31 +0000 [r364436] Richard Mudgett * apps/app_dial.c, CHANGES: PreDial - Ability to run dialplan on callee and caller channels before Dial. Thanks to Mark Murawski for the initial patch and feature definition. (closes issue ASTERISK-19548) Reported by: Mark Murawski Review: https://reviewboard.asterisk.org/r/1878/ Review: https://reviewboard.asterisk.org/r/1229/ 2012-04-27 22:54 +0000 [r364397] Terry Wilson * /, tests/test_config.c (added), main/config.c: Multiple revisions 364365,364369 ........ r364365 | twilson | 2012-04-27 17:31:01 -0500 (Fri, 27 Apr 2012) | 11 lines Fix ast_parse_arg numeric type range checking and add tests ast_parse_arg wasn't checking for strto* parse errors or limiting the results by the actual range of the numeric types. This patch fixes that and adds unit tests as well. Review: https://reviewboard.asterisk.org/r/1879/ ........ Merged revisions 364340 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ r364369 | twilson | 2012-04-27 17:33:10 -0500 (Fri, 27 Apr 2012) | 2 lines Add missing test_config.c ........ Merged revisions 364365,364369 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-27 22:11 +0000 [r364343] Mark Michelson * /, channels/chan_sip.c: Don't attempt to make use of the dynamic_exclude_static ACL if DNS lookup fails. (closes issue ASTERISK-18321) Reported by Dan Lukes Patches: ASTERISK-18321.patch by Mark Michelson (license #5049) ........ Merged revisions 364341 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364342 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-27 19:30 +0000 [r364287] Matthew Jordan * /, include/asterisk/time.h: Prevent overflow in calculation in ast_tvdiff_ms on 32-bit machines The method ast_tvdiff_ms attempts to calculate the difference, in milliseconds, between two timeval structs, and return the difference in a 64-bit integer. Unfortunately, it assumes that the long tv_sec/tv_usec members in the timeval struct are large enough to hold the calculated values before it returns. On 64-bit machines, this might be the case, as a long may be 64-bits. On 32-bit machines, however, a long may be less (32-bits), in which case, the calculation can overflow. This overflow caused significant problems in MixMonitor, which uses the method to determine if an audio factory, which has not presented audio to an audiohook, is merely late in providing said audio or will never provide audio. In an overflow situation, the audiohook would incorrectly determine that an audio factory that will never provide audio is merely late instead. This led to situations where a MixMonitor never recorded any audio. Note that this happened most frequently when that MixMonitor was started by the ConfBridge application itself, or when the MixMonitor was attached to a Local channel. (issue ASTERISK-19497) Reported by: Ben Klang Tested by: Ben Klang Patches: 32-bit-time-overflow-10-2012-04-26.diff (license #6283) by mjordan (closes issue ASTERISK-19727) Reported by: Mark Murawski Tested by: Michael L. Young Patches: 32-bit-time-overflow-2012-04-27.diff (license #6283) by mjordan) (closes issue ASTERISK-19471) Reported by: feyfre Tested by: feyfre (issue ASTERISK-19426) Reported by: Johan Wilfer Review: https://reviewboard.asterisk.org/r/1889/ ........ Merged revisions 364277 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364285 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-27 18:59 +0000 [r364260] Kinsey Moore * /, channels/chan_sip.c: Allow SIP pvts involved in Replaces transfers to fall out of reference sooner Unref the SIP pvt stored in the refer structure as soon as it is no longer needed so that the pvt and associated file descriptors can be freed sooner. This change makes a reference decrement unnecessary in code that handles SIP BYE/Also transfers which should not touch the reference anyway. (Closes issue ASTERISK-19579) Reported by: Maciej Krajewski Tested by: Maciej Krajewski ........ Merged revisions 364258 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364259 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-27 14:45 +0000 [r364205] Matthew Jordan * /, channels/chan_sip.c: Allow for reloading SRTP crypto keys within the same SIP dialog As a continuation of the patch in r356604, which allowed for the reloading of SRTP keys in re-INVITE transfer scenarios, this patch addresses the more common case where a new key is requested within the context of a current SIP dialog. This can occur, for example, when certain phones request a SIP hold. Previously, once a dialog was associated with an SRTP object, any subsequent attempt to process crypto keys in any SDP offer - either the current one or a new offer in a new SIP request - were ignored. This patch changes this behavior to only ignore subsequent crypto keys within the current SDP offer, but allows future SDP offers to change the keys. (issue ASTERISK-19253) Reported by: Thomas Arimont Tested by: Thomas Arimont Review: https://reviewboard.asteriskorg/r/1885/ ........ Merged revisions 364203 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364204 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-27 12:58 +0000 [r364164] Stefan Schmidt * res/res_calendar_icalendar.c, /, res/res_calendar_caldav.c: fix a wrong behavior of alarm timezones in caldav and icalendar when an alarm doesnt use utc. This change uses the same timezone from the start time. ........ Merged revisions 364163 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-26 21:11 +0000 [r364082-364110] Richard Mudgett * /, apps/app_directed_pickup.c: Update Pickup application documentation. (With feeling this time.) ........ Merged revisions 364108 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364109 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/features.c: Fix DTMF atxfer running h exten after the wrong bridge ends. When party B does an attended transfer of party A to party C, the attending bridge between party B and C should not be running an h exten when the bridge ends. Running an h exten now sets a softhangup flag to ensure that an AGI will run in dead AGI mode. * Set the AST_FLAG_BRIDGE_HANGUP_DONT on the party B channel for the attending bridge between party B and C. (closes issue AST-870) (closes issue ASTERISK-19717) Reported by: Mario (closes issue ASTERISK-19633) Reported by: Andrey Solovyev Patches: jira_asterisk_19633_v1.8.patch (license #5621) patch uploaded by rmudgett Tested by: rmudgett, Andrey Solovyev, Mario ........ Merged revisions 364060 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364065 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-26 19:33 +0000 [r364048] Terry Wilson * /, main/asterisk.c: Add more constness to the end_buf pointer in the netconsole issue ASTERISK-18308 Review: https://reviewboard.asterisk.org/r/1876/ ........ Merged revisions 364046 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 364047 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-26 13:59 +0000 [r363989] Olle Johansson * apps/app_queue.c: Code formatting fixes. 2012-04-26 13:31 +0000 [r363988] Kinsey Moore * /, channels/chan_sip.c: Fix reference leaks involving SIP Replaces transfers The reference held for SIP blind transfers using the Replaces header in an INVITE was never freed on success and also failed to be freed in some error conditions. This caused a file descriptor leak since the RTP structures in use at the time of the transfer were never freed. This reference leak and another relating to subscriptions in the same code path have now been corrected. (closes issue ASTERISK-19579) ........ Merged revisions 363986 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363987 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-26 09:48 +0000 [r363936] Alec L Davis * /, channels/chan_sip.c: chan_sip: [general] maxforwards, not checked for a value greater than 255 The peer maxforwards is checked for both '< 1' and '> 255', but the default 'maxforwards' in the [general] section is only checked for '< 1' alecdavis (license 585) Reported by: alecdavis Tested by: alecdavis Review: https://reviewboard.asterisk.org/r/1888/ ........ Merged revisions 363934 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363935 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-26 03:12 +0000 [r363689-363877] Richard Mudgett * /, apps/app_directed_pickup.c: Update Pickup application documentation. (Even better) ........ Merged revisions 363875 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363876 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_directed_pickup.c: * Put more information in pickup_exec() LOG_NOTICE. * Delay duplicating a string on the stack in pickup_exec(). * /, apps/app_directed_pickup.c: Update Pickup application documentation. ........ Merged revisions 363788 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363789 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_dahdi.c, /, channels/sig_pri.c: Make DAHDISendCallreroutingFacility wait 5 seconds for a reply before disconnecting the call. Some switches may not handle the call-deflection/call-rerouting message if the call is disconnected too soon after being sent. Asteisk was not waiting for any reply before disconnecting the call. * Added a 5 second delay before disconnecting the call to wait for a potential response if the peer does not disconnect first. (closes issue ASTERISK-19708) Reported by: mehdi Shirazi Patches: jira_asterisk_19708_v1.8.patch (license #5621) patch uploaded by rmudgett Tested by: rmudgett ........ Merged revisions 363730 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363734 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/sig_pri.h, channels/chan_dahdi.c, /, channels/sig_pri.c: Clear ISDN channel resetting state if the peer continues to use it. Some ISDN switches occasionally fail to send a RESTART ACKNOWLEDGE in response to a RESTART request. * Made the second SETUP received after sending a RESTART request clear the channel resetting state as if the peer had sent the expected RESTART ACKNOWLEDGE before continuing to process the SETUP. The peer may not be sending the expected RESTART ACKNOWLEDGE. (issue ASTERISK-19608) (issue AST-844) (issue AST-815) Patches: jira_ast_815_v1.8.patch (license #5621) patch uploaded by rmudgett (modified) ........ Merged revisions 363687 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363688 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-25 13:57 +0000 [r363480-363637] Olle Johansson * apps/app_queue.c: Add documentation Thanks Tilghman! * apps/app_queue.c: Formatting changes only * apps/app_followme.c, apps/app_queue.c: Use the DEFINED value for musicclass length. For some reason, features.c has it's own definition. Should propably be fixed too. * main/channel.c, configs/asterisk.conf.sample, CHANGES, include/asterisk/options.h, main/asterisk.c: Make it possible to change the minimum DTMF duration in asterisk.conf Asterisk has a setting for the minimum allowed DTMF. If we get shorter DTMF tones, these will be changed to the minimum on the outbound call leg. (closes issue ASTERISK-19772) Review: https://reviewboard.asterisk.org/r/1882/ Reported by: oej Tested by: oej Patches by: oej Thanks to the reviewers. 1.8 branch for this patch: agave-dtmf-duration-asterisk-conf-1.8 * main/say.c: Formatting fixes Developer guidelines are important. * main/channel.c: Formatting fixes Found a small amount of curly brackets in my hotel room here in Denmark. I hereby donate them to the Asterisk project. 2012-04-25 01:26 +0000 [r363377-363430] Richard Mudgett * /, main/features.c: Fix recalled party B feature flags for a failed DTMF atxfer. 1) B calls A with Dial option T 2) B DTMF atxfer to C 3) B hangs up 4) C does not answer 5) B is called back 6) B answers 7) B cannot initiate transfers anymore * Add dial features datastore to recalled party B channel that is a copy of the original party B channel's dial features datastore. * Extracted add_features_datastore() from add_features_datastores(). * Renamed struct ast_dial_features features_caller and features_callee members to my_features and peer_features respectively. These better names eliminate the need for some explanatory comments. * Simplified code accessing the struct ast_dial_features datastore. (closes issue ASTERISK-19383) Reported by: lgfsantos ........ Merged revisions 363428 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363429 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/features.c: Hangup affected channel in error paths of bridge_call_thread(). ........ Merged revisions 363375 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363376 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-24 17:52 +0000 [r363335] Terry Wilson * /, main/asterisk.c: OpenBSD doesn't have rawmemchr, use strchr (closes issue ASTERISK-19758) Reported by: Barry Miller Tested by: Terry Wilson Patches: 362758-diff uploaded by Barry Miller (license 5434) ........ Merged revisions 362868 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362869 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-23 17:05 +0000 [r363269] Richard Mudgett * apps/app_dial.c, apps/app_queue.c: Make app_dial and app_queue use new macro and gosub calls. * Simplify some code in app_dial and app_queue by calling ast_app_exec_macro() and ast_app_exec_sub(). * Fix minor locking issue in app_dial for post-answer macro/gosub MACRO/GOSUB_RESULT=GOTO: handling. 2012-04-23 16:08 +0000 [r363215] Tilghman Lesher * /, main/astfd.c: On some platforms, O_RDONLY is not a flag to be checked, but merely the absence of O_RDWR and O_WRONLY. The POSIX specification does not mandate how these 3 flags must be specified, only that one of the three must be specified in every call. ........ Merged revisions 363209 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363212 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-23 14:48 +0000 [r363159] Jonathan Rose * main/manager.c, /: AST-2012-004: Fix an error that allows AMI users to run shell commands sans authorization. As detailed in the advisory, AMI users without write authorization for SYSTEM class AMI actions were able to run system commands by going through other AMI commands which did not require that authorization. Specifically, GetVar and Status allowed users to do this by setting their variable/s options to the SHELL or EVAL functions. Also, within 1.8, 10, and trunk there was a similar flaw with the Originate action that allowed users with originate permission to run MixMonitor and supply a shell command in the Data argument. That flaw is fixed in those versions of this patch. (closes issue ASTERISK-17465) Reported By: David Woolley Patches: 162_ami_readfunc_security_r2.diff uploaded by jrose (license 6182) 18_ami_readfunc_security_r2.diff uploaded by jrose (license 6182) 10_ami_readfunc_security_r2.diff uploaded by jrose (license 6182) ........ Merged revisions 363117 from http://svn.asterisk.org/svn/asterisk/branches/1.6.2 ........ Merged revisions 363141 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363156 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-23 14:10 +0000 [r363105-363108] Matthew Jordan * /, channels/chan_sip.c: AST-2012-006: Fix crash in UPDATE handling when no channel owner exists If Asterisk receives a SIP UPDATE request after a call has been terminated and the channel has been destroyed but before the SIP dialog has been destroyed, a condition exists where a connected line update would be attempted on a non-existing channel. This would cause Asterisk to crash. The patch resolves this by first ensuring that the SIP dialog has an owning channel before attempting a connected line update. If an UPDATE request is received and no channel is associated with the dialog, a 481 response is sent. (closes issue ASTERISK-19770) Reported by: Thomas Arimont Tested by: Matt Jordan Patches: ASTERISK-19278-2012-04-16.diff uploaded by Matt Jordan (license 6283) ........ Merged revisions 363106 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363107 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_skinny.c: AST-2012-005: Fix remotely exploitable heap overflow in keypad button handling When handling a keypad button message event, the received digit is placed into a fixed length buffer that acts as a queue. When a new message event is received, the length of that buffer is not checked before placing the new digit on the end of the queue. The situation exists where sufficient keypad button message events would occur that would cause the buffer to be overrun. This patch explicitly checks that there is sufficient room in the buffer before appending a new digit. (closes issue ASTERISK-19592) Reported by: Russell Bryant ........ Merged revisions 363100 from http://svn.asterisk.org/svn/asterisk/branches/1.6.2 ........ Merged revisions 363102 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 363103 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-21 11:45 +0000 [r363045-363046] Russell Bryant * res/res_corosync.c: res_corosync: Recover if corosync gets restarted. If corosync gets restarted while Asterisk is running, automatically recover. * res/res_corosync.c: res_corosync: reimplement "corosync show members" command. Reimplement the "corosync show members" CLI command using a CPG iterator instead of the cpg_membership_get API call. This will also show all CPG members, including those in groups other than 'asterisk', which may be useful at some point for debugging purposes. 2012-04-21 01:46 +0000 [r362920-362999] Richard Mudgett * apps/app_dial.c, /: Update app_dial M and U option GOTO return value documentation. ........ Merged revisions 362997 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362998 from http://svn.asterisk.org/svn/asterisk/branches/10 * include/asterisk/app.h, main/app.c, apps/app_stack.c: Fix connected-line/redirecting interception gosubs executing more than intended. * Redo ast_app_run_sub()/ast_app_exec_sub() to use a known return point so execution will stop after the routine returns there. (s@gosub_virtual_context:1) * Create ast_app_exec_macro() and ast_app_exec_sub() to run the macro and gosub application respectively with the parameter string already created. * main/rtp_engine.c: Move debug message in ast_rtp_instance_early_bridge_make_compatible(). Move debug message in ast_rtp_instance_early_bridge_make_compatible() to be output when what it states has actually happened. 2012-04-20 16:50 +0000 [r362919] Michael L. Young * /, main/event.c: Add missing payload type to events API The Security Events Framework API was changed while adding the generation of security events in chan_sip. A payload type and name was missed from being added to struct ie_maps. (closes issue ASTERISK-19759) Reported by: Michael L. Young Patches: issue-asterisk-19759.diff uploaded by Michael L. Young (license 5026) ........ Merged revisions 362918 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-20 16:23 +0000 [r362867-362888] Richard Mudgett * apps/app_dial.c, channels/chan_dahdi.c, channels/chan_local.c, channels/chan_misdn.c, main/rtp_engine.c: Use ast_channel_lock_both() where it was inlined before. The CHANNEL_DEADLOCK_AVOIDANCE() feature of preserving where the channel lock was originally obtained is overkill where ast_channel_lock_both() was inlined. * main/pbx.c: * Add more information to some messages in __ast_pbx_run(). * Simplify some dialplan priority setting code in ast_explicit_goto() because of opaquification. 2012-04-20 14:50 +0000 [r362817] Terry Wilson * /, apps/app_speech_utils.c: Document Speech* apps hangup on failure and suggest TryExec The Speech API apps return -1 on failure, which will hang up the channel. This may not be desirable behavior for some, but it isn't something that can be changed without breaking people's dialplans or writing an option to all of the Speech apps that does what TryExec already does. This patch documents the hangup behavior of the apps, and suggests TryExec as the solution. (closes issue AST-813) ........ Merged revisions 362815 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362816 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-20 00:57 +0000 [r362779] Richard Mudgett * main/channel.c, UPGRADE.txt, include/asterisk/channel.h, CHANGES, channels/sig_pri.c, funcs/func_callerid.c: Add original party id and reason support. ISDN ETSI PTP and Q.SIG (And SS7 in future) have support for reporting who was the original redirecting party of a call. * Added support for the original redirecting party and reason to the REDIRECTING function and the system core as well as to the stubbed locations in sig_pri.c. Review: https://reviewboard.asterisk.org/r/1829/ 2012-04-19 22:01 +0000 [r362731] Walter Doekes * funcs/func_version.c, /: Fix documentation for ${VERSION(ASTERISK_VERSION_NUM)}. ........ Merged revisions 362729 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362730 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-19 21:14 +0000 [r362682] Michael L. Young * /, tests/test_linkedlists.c, tests/test_poll.c: Add leading and trailing backslashes A couple of unit tests did not have have leading or trailing backslashes when setting their test category resulting in a warning message being displayed. Added the backslash where needed. ........ Merged revisions 362680 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362681 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-19 21:01 +0000 [r362679] Richard Mudgett * /, configs/queues.conf.sample: Update membermacro and membergosub documentation in queues.conf.sample. ........ Merged revisions 362677 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362678 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-19 19:05 +0000 [r362635] Terry Wilson * addons/chan_ooh323.c, apps/app_alarmreceiver.c, channels/iax2-provision.c, res/snmp/agent.c: Convert some strncpys to ast_copy_string Review: https://reviewboard.asterisk.org/r/1732/ 2012-04-19 16:10 +0000 [r362588] Sean Bright * /, apps/app_externalivr.c: Prevent a crash in ExternalIVR when the 'S' command is sent first. If the first command sent from an ExternalIVR client is an 'S' command, we were blindly removing the first element from the play list and deferencing it, even if it was NULL. This corrects that and also locks appropriately in one place. (issue ASTERISK-17889) Reported by: Chris Maciejewski ........ Merged revisions 362586 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362587 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-19 14:35 +0000 [r362538] Terry Wilson * /, main/asterisk.c: Handle multiple commands per connection via netconsole Asterisk would accept multiple NULL-delimited CLI commands via the netconsole socket, but would occasionally miss a command due to the command not being completely read into the buffer. This patch ensures that any partial commands get moved to the front of the read buffer, appended to, and properly sent. (closes issue ASTERISK-18308) Review: https://reviewboard.asterisk.org/r/1876/ ........ Merged revisions 362536 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362537 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-19 02:40 +0000 [r362497] Matthew Jordan * channels/chan_unistim.c, /, main/tdd.c, main/jitterbuf.c, apps/app_sms.c, main/stdtime/localtime.c, utils/extconf.c, addons/chan_mobile.c, main/format_pref.c, main/asterisk.c: Fix a variety of potential buffer overflows * chan_mobile: Fixed an overrun where the cind_state buffer (an integer array of size 16) would be overrun due to improper bounds checking. At worst, the buffer can be overrun by a total of 48 bytes (assuming 4-byte integers), which would still leave it within the allocated memory of struct hfp. This would corrupt other elements in that struct but not necessarily cause any further issues. * app_sms: The array imsg is of size 250, while the array (ud) that the data is copied into is of size 160. If the size of the inbound message is greater then 160, up to 90 bytes could be overrun in ud. This would corrupt the user data header (array udh) adjacent to ud. * chan_unistim: A number of invalid memmoves are corrected. These would move data (which may or may not be valid) into the ends of these buffers. * asterisk: ast_console_toggle_loglevel does not check that the console log level being set is less then or equal to the allowed log levels of 32. * format_pref: In ast_codec_pref_prepend, if any occurrence of the specified codec is not found, the value used to index into the array pref->order would be one greater then the maximum size of the array. * jitterbuf: If the element being placed into the jitter buffer lands in the last available slot in the jitter history buffer, the insertion sort attempts to move the last entry in the buffer into one slot past the maximum length of the buffer. Note that this occurred for both the min and max jitter history buffers. * tdd: If a read from fsk_serial returns a character that is greater then 32, an attempt to read past one of the statically defined arrays containing the values that character maps to would occur. * localtime: struct ast_time and tm are not the same size - ast_time is larger, although it contains the elements of tm within it in the same layout. Hence, when using memcpy to copy the contents of tm into ast_time, the size of tm should be used, as opposed to the size of ast_time. * extconf: this treats ast_timing's minmask array as if it had a length of 48, when it has defined the size of the array as 24. pbx.h defines minmask as having a size of 48. (issue ASTERISK-19668) Reported by: Matt Jordan ........ Merged revisions 362485 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362496 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-18 17:03 +0000 [r362432] Michael L. Young * tests/test_security_events.c: Fix building security events test The Security Events Framework API changed in trunk to support IPv6. This broke the building of the security events test which was based around IPv4. This patches fixes the build by changing the test to conform to the new changes. (related to issue ASTERISK-19447) Review: https://reviewboard.asterisk.org/r/1874/ 2012-04-18 16:41 +0000 [r362430] Richard Mudgett * channels/sig_pri.h, channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, /, channels/sig_pri.c: Add ability to ignore layer 1 alarms for BRI PTMP lines. Several telcos bring the BRI PTMP layer 1 down when the line is idle. When layer 1 goes down, Asterisk cannot make outgoing calls. Incoming calls could fail as well because the alarm processing is handled by a different code path than the Q.931 messages. * Add the layer1_presence configuration option to ignore layer 1 alarms when the telco brings layer 1 down. This option can be configured by span while the similar DAHDI driver teignorered=1 option is system wide. This option unlike layer2_persistence does not require libpri v1.4.13 or newer. Related to JIRA AST-598 JIRA ABE-2845 ........ Merged revisions 362428 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362429 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-17 21:23 +0000 [r362365-362380] Matthew Jordan * /, main/format_pref.c: Handle case where an unknown format is used to get the preferred codec size In ast_codec_pref_getsize, if an unknown format is passed to the method, no preferred codec will be selected and a negative number will be used to index into the format list. The method now logs an unknown format as a warning, and returns an empty format list. (issue ASTERISK-19655) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1863/ ........ Merged revisions 362377 from http://svn.asterisk.org/svn/asterisk/branches/10 * res/res_rtp_asterisk.c, /, res/res_agi.c, res/res_musiconhold.c: Fix places in resources where a negative return value could impact execution This patch addresses a number of modules in resources that did not handle the negative return value from function calls adequately. This includes: * res_agi.c: if the result of the read function is a negative number, indicating some failure, the result would instead be treated as the number of bytes read. This patch now treats negative results in the same manner as an end of file condition, with the exception that it also logs the error code indicated by the return. * res_musiconhold.c: if spawn_mp3 fails to assign a file descriptor to srcfd, and instead assigns a negative value, that file descriptor could later be passed to functions that require a valid file descriptor. If spawn_mp3 fails, we now immediately retry instead of continuing in the logic. * res_rtp_asterisk.c: if no codec can be matched between two RTP instances in a peer to peer bridge, we immediately return instead of attempting to use the codec payload type as an index to determine the appropriate negotiated codec. (issue ASTERISK-19655) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1863/ ........ Merged revisions 362362 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362364 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-17 21:10 +0000 [r362363] Jonathan Rose * res/res_config_curl.c, res/res_config_pgsql.c, res/res_config_odbc.c, /: Make use of va_args more appropriate to form in various res_config modules plus utils. A number of va_copy operations weren't matched with a corresponding va_end in res_config_odbc. Also, there was a potential for va_end to be invoked twice on the same va_arg in utils, which would mean invoking va_end on an undefined variable... which is bad. va_end is removed from various functions in config_pgsql and config_curl since they aren't making their own copy. The invokers of those functions are responsible for calling va_end on them. (issue ASTERISK-19451) Reported by: Walter Doekes Review: https://reviewboard.asterisk.org/r/1848/ ........ Merged revisions 362354 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362357 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-17 21:08 +0000 [r362358-362361] Matthew Jordan * main/manager.c, /, main/asterisk.c: Fix places in main where a negative return value could impact execution This patch addresses a number of modules in main that did not handle the negative return value from function calls adequately, or were not sufficiently clear that the conditions leading to improper handling of the return values could not occur. This includes: * asterisk.c: A negative return value from the read function would be used directly as an index into a buffer. We now check for success of the read function prior to using its result as an index. * manager.c: Check for failures in mkstemp and lseek when handling the temporary file created for processing data returned from a CLI command in action_command. Also check that the result of an lseek is sanitized prior to using it as the size of a memory map to allocate. (issue ASTERISK-19655) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1863/ ........ Merged revisions 362359 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362360 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, funcs/func_env.c: Fix places where a negative return from ftello could be used as invalid input In a variety of locations in both reading and writing a file, the result from the C library function ftello is used as input to other functions. For the parameters and functions in question, a negative value is invalid input. This patch checks the return value from the ftello function to determine if we were able to determine the current position in the file stream and, if not, fail gracefully. (issue ASTERISK-19655) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1863/ ........ Merged revisions 362355 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362356 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-17 18:57 +0000 [r362307] Walter Doekes * channels/chan_unistim.c, cdr/cdr_sqlite3_custom.c, funcs/func_env.c, res/res_phoneprov.c, channels/chan_gtalk.c, cdr/cdr_pgsql.c, res/res_http_post.c, res/res_musiconhold.c, res/res_jabber.c, res/res_format_attr_celt.c, channels/chan_dahdi.c, funcs/func_groupcount.c, apps/app_osplookup.c, funcs/func_odbc.c, main/ast_expr2f.c, apps/app_minivm.c, channels/chan_alsa.c, codecs/codec_resample.c, formats/format_h264.c, res/res_format_attr_silk.c, res/res_config_ldap.c, main/ast_expr2.fl, res/res_config_sqlite3.c, channels/chan_sip.c, channels/vcodecs.c, codecs/codec_g726.c, main/data.c, res/res_corosync.c, channels/chan_h323.c, codecs/codec_dahdi.c, funcs/func_callerid.c, main/asterisk.c, res/res_odbc.c: Avoid cppcheck warnings; removing unused vars and a bit of cleanup. Patch by: junky Review: https://reviewboard.asterisk.org/r/1743/ 2012-04-17 18:29 +0000 [r362306] Matthew Jordan * /, formats/format_sln.c, formats/format_vox.c, formats/format_wav.c, formats/format_pcm.c, formats/format_wav_gsm.c, formats/format_siren14.c, formats/format_gsm.c, formats/format_g719.c, formats/format_siren7.c: Fix error that caused seek format operations to set max file size to '1' or '0' A very inappropriate placement of a ')' (introduced in r362151) caused the maximum size of a file to be set as the result of a comparison operation, as opposed to the result of the ftello operation. This resulted in seeking being restricted to the beginning of the file, or 1 byte into the file. Thanks to the Asterisk Test Suite for properly freaking out about this on at least one test. (issue ASTERISK-19655) Reported by: Matt Jordan ........ Merged revisions 362304 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362305 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-17 15:00 +0000 [r362266] Michael L. Young * /, channels/chan_sip.c: Turn off warning message when bind address is set to any. When a bind address is set to an ANY address (udpbindport=::), a warning message is displayed stating that "Address remapping activated in sip.conf but we're using IPv6, which doesn't need it. Please remove 'localnet' and/or 'externaddr' settings." But if one is running dual stack, we shouldn't be told to turn those settings off. This patch checks if the bind address is an ANY address or not. The warning message will now only be displayed if the bind address is NOT an ANY address and IPv6 is being used. Also, updated the copyright year. (closes issue ASTERISK-19456) Reported by: Michael L. Young Tested by: Michael L. Young Patches: chan_sip_ipv6_message.diff uploaded by Michael L. Young (license 5026) ........ Merged revisions 362253 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362264 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-16 21:58 +0000 [r362203-362206] Matthew Jordan * channels/chan_dahdi.c, /, channels/chan_agent.c: Fix negative return handling in channel drivers In chan_agent, while handling a channel indicate, the agent channel driver must obtain a lock on both the agent channel, as well as the channel the agent channel is using. To do so, it attempts to lock the other channel first, then unlock the agent channel which is locked prior to entry into the indicate handler. If this unlock fails with a negative return value, which can occur if the object passed to agent_indicate is an invalid ao2 object or is NULL, the return value is passed directly to strerror, which can only accept positive integer values. In chan_dahdi, the return value of dahdi_get_index is used to directly index into the sub-channel array. If dahd_get_index returns a negative value, it would use that value to index into the array, which could cause an invalid memory access. If dahdi_get_index returns a negative number, we now default to SUB_REAL. (issue ASTERISK-19655) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1863/ ........ Merged revisions 362204 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362205 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_voicemail.c: Fix handling of negative return code when storing voicemails in ODBC storage When storing a voicemail message using an ODBC connection to a database, the voicemail message is first stored on disk. The sound file associated with the message is read into memory before being transmitted to the database. When this occurs, a failure in the C library's lseek function would cause a negative value to be passed to the mmap as the size of the memory map to create. This would almost certainly cause the creation of the memory map to fail, resulting in the message being lost. (issue ASTERISK-19655) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1863 ........ Merged revisions 362201 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362202 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-16 21:20 +0000 [r362200] Michael L. Young * main/manager.c, main/security_events.c, channels/sip/security_events.c, CHANGES, include/asterisk/security_events_defs.h: Add IPv6 address support to security events framework. The current Security Events Framework API only supports IPv4 when it comes to generating security events. This patch does the following: * Changes the Security Events Framework API to support IPV6 and updates the components that use this API. * Eliminates an error message that was being generated since the current implementation was treating an IPv6 socket address as if it was IPv4. * Some copyright dates were updated on files touched by this patch. (closes issue ASTERISK-19447) Reported by: Michael L. Young Tested by: Michael L. Young Patches: security_events_ipv6v3.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/1777/ 2012-04-16 20:17 +0000 [r362153] Matthew Jordan * formats/format_ilbc.c, /, formats/format_sln.c, formats/format_vox.c, formats/format_wav.c, formats/format_pcm.c, formats/format_g723.c, formats/format_h263.c, formats/format_h264.c, formats/format_wav_gsm.c, formats/format_siren14.c, formats/format_gsm.c, formats/format_g719.c, formats/format_siren7.c, formats/format_g729.c: Check for IO stream failures in various format's truncate/seek operations For the formats that support seek and/or truncate operations, many of the C library calls used to determine or set the current position indicator in the file stream were not being checked. In some situations, if an error occurred, a negative value would be returned from the library call. This could then be interpreted inappropriately as positional data. This patch checks the return values from these library calls before using them in subsequent operations. (issue ASTERISK-19655) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/1863/ ........ Merged revisions 362151 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362152 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-13 16:12 +0000 [r362081-362085] Jonathan Rose * apps/app_forkcdr.c, /: Make ForkCDR e option not set end time of the newly forked CDR log Prior to this patch, ForkCDR's e option would immediately set the end time of the forked CDR to that of the CDR that is being terminated. This resulted in the new CDR's end time being roughly the same as it's beginning time (which is in turn roughly the same as the original's end time). (closes issue ASTERISK-19164) Reported by: Steve Davies Patches: cdr_fork_end.v10.patch uploaded by Steve Davies (license 5012) ........ Merged revisions 362082 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362084 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_meetme.c: Send relative path named recordings to the meetme directory instead of sounds Prior to this patch, no effort was made to parse the path name to determine a proper destination for recordings of MeetMe's r option. This fixes that. Review: https://reviewboard.asterisk.org/r/1846/ ........ Merged revisions 362079 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 362080 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-12 20:08 +0000 [r362043] Paul Belanger * main/srv.c: Convert SRV lookup message to debug level This helps clean up the Asterisk CLI by converting the log message from verbose to debug 2012-04-12 16:29 +0000 [r361998] Richard Mudgett * configs/asterisk.conf.sample, UPGRADE.txt, pbx/pbx_config.c, include/asterisk/options.h, main/asterisk.c: Add option to invoke the extensions.conf stdexten using the legacy macro method. ASTERISK-18809 eliminated the legacy macro invocation of the stdexten in favor of the Gosub method without a means of backwards compatibility. (issue ASTERISK-18809) (closes issue ASTERISK-19457) Reported by: Matt Jordan Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1855/ 2012-04-12 16:25 +0000 [r361968-361987] Kinsey Moore * /, channels/chan_iax2.c: Make trunkfreq take effect when set Previously, setting trunkfreq had no effect on initial load or on reload and only ever used the default value. This causes trunkfreq to be used appropriately on initial load and reload. (closes issue ASTERISK-19521) Patch-by: Jaco Kroon ........ Merged revisions 361972 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361981 from http://svn.asterisk.org/svn/asterisk/branches/10 * Makefile, build_tools/cflags.xml, /, build_tools/menuselect-deps.in, codecs/gsm/src/k6opt.s, configure, codecs/gsm/Makefile, configure.ac, Makefile.rules, makeopts.in, codecs/lpc10/Makefile: Simplify build system architecture optimization This change to the build system rips out any usage of PROC along with architecture-specific optimizations in favor of using -march=native where it is supported. This fixes broken builds on 64bit Intel systems and results in better optimized code on systems running GCC 4.2+. Review: https://reviewboard.asterisk.org/r/1852/ (closes issue ASTERISK-19462) ........ Merged revisions 361955 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361956 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-11 17:20 +0000 [r361909] Jonathan Rose * /, configs/queues.conf.sample, apps/app_queue.c: Change default value of 'ignorebusy' on Queue members so that behavior is more like 1.8 Prior to this patch, in order to restore that behavior, a function would have to be used on the QueueMember to make the ringinuse option do anything, which is pretty unreasonable. (closes issue ASTERISK-19536) reported by: Philippe Lindheimer Review: https://reviewboard.asterisk.org/r/1860/ ........ Merged revisions 361907 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-10 21:50 +0000 [r361856] Richard Mudgett * channels/chan_dahdi.c, /: Prevent invalid access of free'd memory if DAHDI channel during an MWI event In the MWI processing loop, when a valid event occurs the temporary caller ID information is deallocated. If a new DAHDI channel is successfully created, the event is passed up to the analog_ss_thread without error and the loop exits. If, however, the DAHDI channel is not created, then the caller ID struct has been free'd, and the gains reset to their previous level. This will almost certainly cause an invalid access to the free'd memory, either in subsequent calls to callerid_free or calls to callerid_feed. * Rework the -r361705 patch to better manage the cs and mtd allocated resources. * Fixed use of mwimonitoractive flag to be correct if the mwi_thread() fails to start. ........ Merged revisions 361854 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361855 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-10 19:58 +0000 [r361659-361805] Matthew Jordan * /, main/http.c: Fix crash caused by unloading or reloading of res_http_post When unlinking itself from the registered HTTP URIs, res_http_post could inadvertently free all URIs registered with the HTTP server. This patch modifies the unregister method to only free the URI that is actually being unregistered, as opposed to all of them. ........ Merged revisions 361803 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361804 from http://svn.asterisk.org/svn/asterisk/branches/10 * funcs/func_curl.c, /: Allow func_curl to exit gracefully if list allocation fails during write If the global_curl_info data structure could not be allocated, the datastore associated with the operation would be free'd, but the function would not return. This would later dereference the datastore, almost certainly causing Asterisk to crash. With this patch, if the data structure is not allocated the method will return an error code, and not attempt any further operation. ........ Merged revisions 361753 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361754 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_dahdi.c, /: Prevent invalid access of free'd memory if DAHDI channel during an MWI event In the MWI processing loop, when a valid event occurs the temporary caller ID information is deallocated. If a new DAHDI channel is successfully created, the event is passed up to the analog_ss_thread without error and the loop exits. If, however, the DAHDI channel is not created, then the caller ID struct has been free'd, and the gains reset to their previous level. This will almost certainly cause an invalid access to the free'd memory, either in subsequent calls to callerid_free or calls to callerid_feed. This patch makes it so that we only free the caller ID structure if a DAHDI channel is successfully created, and we bump the gains back up if we fail to make a DAHDI channel. ........ Merged revisions 361705 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361706 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, funcs/func_global.c: Change SHARED function to use a safe traversal when modifying a variable When the SHARED function modifies a variable, it removes it from its list of variables and reinserts the new value at the head of the list of variables. Doing this inside a standard list traversal can be dangerous, as the standard list traversal does not account for the list being changed. While the code in question should not cause a use after free violation due to its breaking out of the loop after freeing the variable, it could lead to a maintenance issue if the loop was modified. This also fixes a violation reported by a static analysis tool, which also makes this code easier to maintain in the future. ........ Merged revisions 361657 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361658 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-06 22:00 +0000 [r361561-361608] Matthew Jordan * /, res/res_calendar_ews.c: Fix memory leak in res_calendar_ews when event email address node is empty If the XML calendar data returned by a Microsoft Exchange Web Service specifies an XML Event E-Mail Address ("EmailAddress"), and no e-mail address is provided, a condition existed where an ast_calendar_attendee struct would be allocated but not appended to the list of attendees. Because of that, the memory associated with the attendee would never be freed. This patch frees the memory if no e-mail address is provided. ........ Merged revisions 361606 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361607 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_meetme.c: Fix memory leak when using MeetMeAdmin 'e' option with user specified A memory leak/reference counting leak occurs if the MeetMeAdmin 'e' command (eject last user that joined) is used in conjunction with a specified user. Regardless of the command being executed, if a user is specified for the command, MeetMeAdmin will look up that user. Because the 'e' option kicks the last user that joined, as opposed to the one specified, the reference to the user specified by the command would be leaked when the user variable was assigned to the last user that joined. ........ Merged revisions 361558 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361560 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-06 19:58 +0000 [r361523] Richard Mudgett * /, main/message.c: Don't add an empty MESSAGE_DATA(key) header if it doesn't already exist. Doing Set(MESSAGE_DATA(key)=) would add an empty key header if the key header did not already exist. If it already existed it would delete it. * Made msg_set_var_full() exit early if the named variable did not already exist and the value to set is empty. ........ Merged revisions 361522 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-06 18:19 +0000 [r361476] Kinsey Moore * channels/chan_unistim.c, main/pbx.c, /, channels/chan_sip.c, funcs/func_strings.c, formats/format_ogg_vorbis.c, channels/console_video.c, apps/app_ices.c, channels/chan_gtalk.c, channels/chan_iax2.c, res/res_config_sqlite.c, res/res_srtp.c, main/cdr.c, main/tcptls.c, channels/console_gui.c, funcs/func_channel.c, apps/app_sms.c, addons/chan_mobile.c, apps/app_chanspy.c, main/xmldoc.c, channels/chan_mgcp.c, res/res_config_sqlite3.c, res/res_clioriginate.c, apps/app_voicemail.c: Add missing newlines to CLI logging ........ Merged revisions 361471 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361472 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-06 16:33 +0000 [r361429] Paul Belanger * bridges/bridge_builtin_features.c, /, funcs/func_sysinfo.c, bridges/bridge_multiplexed.c: Multiple revisions 361403,361412 ........ r361403 | pabelanger | 2012-04-06 12:24:36 -0400 (Fri, 06 Apr 2012) | 2 lines Fix typo in svn:keywords ........ r361412 | pabelanger | 2012-04-06 12:27:30 -0400 (Fri, 06 Apr 2012) | 2 lines Fix typo in svn:keywords ........ Merged revisions 361403,361412 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361422 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-06 15:50 +0000 [r361382] Russell Bryant * /, configs/rpt.conf.sample (removed), configs/usbradio.conf.sample (removed), apps/rpt_flow.pdf (removed): Remove a few more files related to chan_usbradio and app_rpt. ........ Merged revisions 361380 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361381 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-06 14:02 +0000 [r361334] Matthew Jordan * /, channels/chan_sip.c: Fix a typo in the warning messages for an ignored media stream Added a '\n' to the warning messages when we ignore a media stream due to the port number being '0'. (closes issue ASTERISK-19646) Reported by: Badalian Vyacheslav ........ Merged revisions 361332 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361333 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-06 13:32 +0000 [r361331] Kinsey Moore * apps/app_dial.c, /: Remove unnecessary error message in app_dial.c The error message for failure to stop autoservice after a gosub or macro call during a dial was removed for macro while Asterisk 1.4 was still being actively developed. The corresponding gosub error message was never removed. (closes issue ASTERISK-19551) ........ Merged revisions 361329 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361330 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-05 17:22 +0000 [r361092-361279] Jonathan Rose * /, apps/app_meetme.c: Fix MusicOnHold in MeetMe so that it always uses the class if it's been defined There were a few instances of restarting music on hold in meetme that would cause Asterisk to revert to the default class of music on hold for no adequate reason. Review: https://reviewboard.asterisk.org/r/1844/ ........ Merged revisions 361269 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361270 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, addons/ooh323cDriver.c: Fix some stuff involving calls to memcpy and memset The important parts of the patch were already applied through other updates. (closes issue ASTERISK-19445) Reported by: Makoto Dei Patches: memset-memcpy-length.patch uploaded by Makoto Dei (license 5027) ........ Merged revisions 361210 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361211 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, funcs/func_devstate.c: Make 'help devstate change' display properly (get rid of excess comma) (closes issue ASTERISK-19444) Reported by: Makoto Dei Patches: devstate-change-usage-truncate.patch uploaded by Makoto Dei (license 5027) ........ Merged revisions 361201 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361208 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/channel.c, pbx/pbx_loopback.c, addons/chan_ooh323.c, /, channels/chan_sip.c, main/app.c, pbx/pbx_realtime.c, apps/app_externalivr.c, channels/chan_iax2.c, res/res_fax_spandsp.c, apps/app_milliwatt.c: Replace GNU old-style field designator extensions to fix clang warnings (issue ASTERISK-19540) Reported by: Makoto Dei Patches: clang-gnu-designator.patch uploaded by Makoto Dei (license 5027) ........ Also add from the patch the portion in res_fax_spandsp that didn't apply to 1.8 Merged revisions 361142 from http://svn.asterisk.org/svn/asterisk/branches/1.8 (closes issue ASTERISK-19540) ........ Merged revisions 361143 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_meetme.c: Make the MeetMeAdmin N command (mute all nonadmins) not mute admins (Closes Issue ASTERISK-19335) Reported by: Johan Wilfer Review: https://reviewboard.asterisk.org/r/1843/ ........ Merged revisions 361090 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361091 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-03 20:14 +0000 [r361042] Kinsey Moore * /, apps/app_transfer.c: Fix the display of documentation for Transfer This came up while fixing documentation generation for many other cases where the argument separator was not being displayed properly. Now that it is displayed properly, it shows up in the wrong place for Transfer since the '/' is only required if Tech is present. (related to issue ASTERISK-18168) ........ Merged revisions 361040 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361041 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-04-03 20:03 +0000 [r361038-361039] Mark Murawki * include/asterisk/manager.h: Fix dev-mode compiler warning about gnu_printf (related to ASTERISK-19575) * main/channel.c, main/manager.c, main/utils.c, include/asterisk/channel.h, include/asterisk/strings.h, CHANGES, include/asterisk/manager.h: Allow the Hangup manager action to match channels by regex * Hangup now can take a regular expression as the Channel option. If you want to hangup multiple channels, use /regex/ as the Channel option. Existing behavior to hanging up a single channel is unchanged, but if you pass a regex, the manager will send you a list of channels back that were hung up. (closes issue ASTERISK-19575) Reported by: Mark Murawski Tested by: Mark Murawski 2012-04-02 22:27 +0000 [r360994] Kinsey Moore * /, channels/chan_sip.c: Stop sending out RTCP if RTP is inactive This change prevents Asterisk from sending RTCP receiver reports during a remote bridge since it is no longer receiving media and should not be reporting anything. (related to ASTERISK-19366) ........ Merged revisions 360987 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360993 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-30 21:38 +0000 [r360935] Richard Mudgett * /, main/logger.c: Fix logger deadlock on Asterisk shutdown. The logger_thread() had an exit path that failed to release the logmsgs list lock. * Make logger_thread() exit path unlock the logmsgs list lock. * Made ast_log() not queue any messages to the logmsgs list if the close_logger_thread flag is set. (issue ASTERISK-19463) Reported by: Matt Jordan ........ Merged revisions 360933 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360934 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-29 23:36 +0000 [r360872-360886] Mark Michelson * /, main/features.c: Fix potential race condition during call pickup. Prior to this patch, a connected line update was queued during call pickup and then an answer frame was queued. The original caller would presumably then have his connected line updated and then the call would be answered. In actuality, the answer frame was not how the call ended up being answered. Rather, an odd section in app_dial that checks if the called channel's state is up. The result is that the order of the connected line update and the answer were variable. In most cases, this wasn't actually a bad thing. However, if the 'I' option was passed to dial, the connected line update would be inhibited. The fix is to queued the connected line after the answer frame is queued. This way the race in app_dial is between two conditions resulting in an answer. This way the connected line update occurs after the answer every time. (closes issue ASTERISK-19183) Reported by: Thomas Arimont Tested by: Thomas Arimont Mark Michelson Patches: ASTERISK-19183.patch uploaded by Mark Michelson (license 5049) ........ Merged revisions 360884 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360885 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Improve accuracy of identifying information sent in dialog-info SIP NOTIFY requests. This change makes use of connected party information in addition to caller ID in order to populate local and remote XML elements in the dialog-info NOTIFYs. (closes issue ASTERISK-16735) Reported by: Maciej Krajewski Tested by: Maciej Krajewski Patches: local_remote_hint2.diff uploaded by Mark Michelson (license 5049) ........ Merged revisions 360862 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360863 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-29 21:57 +0000 [r360827] Richard Mudgett * include/asterisk/astobj2.h, main/astobj2.c: Misc changes to make astobj2 enhancement diffs easier to follow. * Rename astobj2 API parameter funcname to func. * Rename astobj2 API iterator parameter to iter. * Update some documentation for OBJ_MULTIPLE. 2012-03-29 20:01 +0000 [r360785-360787] Jonathan Rose * include/asterisk/logger.h, main/dial.c, main/pbx.c, include/asterisk/bridging.h, main/features.c, main/logger.c, CHANGES, apps/app_mixmonitor.c, configs/logger.conf.sample: Introducing the log message unique call identifiers feature Log messages will now display a call number that they are tied to (ordered for calls based on when they started). This feature is made to be minimally invasive without requiring changes to many of the existing log messages. These IDs won't show up for verbose messages on CLI (but they will in log files) This is currently in phase II of production, see more about this feature on the wiki -- https://wiki.asterisk.org/wiki/display/AST/Unique+Call-ID+Logging Review: https://reviewboard.asterisk.org/r/1823/ * include/asterisk/logger.h, main/dial.c, main/pbx.c, /, include/asterisk/bridging.h, main/features.c, main/logger.c, CHANGES, apps/app_mixmonitor.c, configs/logger.conf.sample: undoing 360785 due to merging mistake * include/asterisk/logger.h, main/dial.c, main/pbx.c, /, include/asterisk/bridging.h, main/features.c, main/logger.c, CHANGES, apps/app_mixmonitor.c, configs/logger.conf.sample: Introducing the log message unique call identifiers feature Log messages will now display a call number that they are tied to (ordered for calls based on when they started). This feature is made to be minimally invasive without requiring changes to many of the existing log messages. These IDs won't show up for verbose messages on CLI (but they will in log files) This is currently in phase II of production, see more about this feature on the wiki -- https://wiki.asterisk.org/wiki/display/AST/Unique+Call-ID+Logging Review: https://reviewboard.asterisk.org/r/1823/ 2012-03-28 19:39 +0000 [r360724] Terry Wilson * channels/chan_jingle.c, addons/chan_ooh323.c, cdr/cdr_adaptive_odbc.c, addons/cdr_mysql.c, channels/chan_gtalk.c, apps/confbridge/conf_config_parser.c: Fix setting CDR variables in the hangup extension A previous CDR fix for setting CDR variables during a bridge via custom dialplan features broke setting CDR variables in the hangup extension. This patch fixes the issue. Review: https://reviewboard.asterisk.org/r/1794/ ........ Merged revisions 358978 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358989 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-27 18:44 +0000 [r360673] Mark Michelson * /, channels/chan_sip.c: Make a debug message regarding subscription changes more accurate. I was getting confused during some testing why Asterisk was saying that a subscription was being added when it was clearly being removed. This fixes that confusion. ........ Merged revisions 360625 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360672 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-27 17:13 +0000 [r360626-360627] Richard Mudgett * include/asterisk/astobj2.h, tests/test_astobj2.c, main/astobj2.c: Add global ao2 array container. Global ao2 objects must always exist after initialization because there is no access control to obtain another reference to the global object. It is expected that module configuration could use these new API calls to replace an active configuration parameter object with an updated configuration parameter object. With these new API calls, the global object could be replaced, removed, or referenced without the risk of someone using a stale global object pointer. Review: https://reviewboard.asterisk.org/r/1824/ * main/astobj2.c: Attempt to be more helpful when using a bad ao2 object pointer. 2012-03-27 14:43 +0000 [r360576] Jonathan Rose * /, configure: Updates config with bootstrap where I changed configure.ac in r360488 (issue ASTERISK-17842) Reported by: Bryon Clark ........ Merged revisions 360574 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360575 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-26 21:22 +0000 [r360536] Paul Belanger * main/dnsmgr.c, /: Convert ast_verb() to ast_debug() and increase log level Rather then flood the CLI with verbose messages, we've changed the level to debug. This will help keep the CLI clean. 2012-03-26 19:49 +0000 [r360490] Jonathan Rose * /, configure.ac: Fix BETTER_BACKTRACES library detection for Fedora/RedHat/CentOS (closes ASTERISK-17842) Reported by: Bryon Clark Patches: 20110512__issue19278.diff.txt uploaded by Tilghman Lesher (license 5003) configure_bfd_with_dl_and_iberty.patch uploaded by Bryon Clark (license 6157) ........ Merged revisions 360488 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360489 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-24 23:49 +0000 [r360359-360415] Russell Bryant * funcs/func_curl.c, /: func_curl: Fix leak of an ast_str in error handling code path. ........ Merged revisions 360413 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360414 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_iax2.c: chan_iax2: Use OBJ_NODATA to be a bit more explicit. This is just a minor code cleanup change. These uses of ao2_callback() would never return anything since the callbacks always returned 0. However, be more explicit that no returned results are wanted by specifying OBJ_NODATA. * /, apps/app_page.c: app_page: Fix a memory leak on every Page(). dial_list is a dynamically allocated array that is allocated at the beginning of Page() based on how many devices will be dialed. This was never being freed. ........ Merged revisions 360363 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360364 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_jack.c: app_jack: fix datastore memory leak in error handling path. ........ Merged revisions 360360 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360361 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/ast_expr2.h, res/ael/ael.tab.c, main/ast_expr2.y, main/ast_expr2f.c, res/ael/ael_lex.c, res/ael/ael.tab.h, main/ast_expr2.c: Multiple revisions 360356-360357 ........ r360356 | russell | 2012-03-23 22:33:36 -0400 (Fri, 23 Mar 2012) | 6 lines expression parser: Fix (theoretical) memory leak. Fix a memory leak that is very unlikely to actually happen. If a malloc() succeeded, but the following strdup() failed, the memory from the original malloc() would be leaked. ........ r360357 | russell | 2012-03-23 22:34:39 -0400 (Fri, 23 Mar 2012) | 6 lines Rebuild parsers. This is needed to include the last fix to main/ast_expr2.y. The changes look much bigger as this regeneration of the code was done with newer versions of flex and bison. ........ Merged revisions 360356-360357 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360358 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-24 00:40 +0000 [r360264-360311] Richard Mudgett * main/channel.c, /, channels/sig_pri.c: Make number not available presentation also set screening to network provided. Q.951 indicates that when the presentation indicator is "Number not available due to interworking" for a number then the screening indicator field should be "Network provided". * Made ast_party_id_presentation() return AST_PRES_NUMBER_NOT_AVAILABLE when the presentation is "Number not available due to interworking". This fix makes Asterisk consistent and it also makes it consistent with earlier branches as far as this presentation value is concerned. * Made pri_to_ast_presentation() and ast_to_pri_presentation() conversions handle the "Number not available due to interworking" case better in sig_pri.c. This change is possible because the minimum required libpri version (v1.4.11) has the necessary defines in libpri.h. ........ Merged revisions 360309 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360310 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_sip.c: Add missing initialization of update_redirecting in chan_sip.c ........ Merged revisions 360262 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360263 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-22 21:25 +0000 [r360227] Jonathan Rose * apps/app_dial.c, include/asterisk/utils.h, main/features.c, main/utils.c, CHANGES, apps/app_queue.c: Adds F option to Bridge application Similar to dial and queue F option. (Closes issue ASTERISK-19282) Reported by: To Patches: bridge_f-v3.diff uploaded by To (license 6347) Review: https://reviewboard.asterisk.org/r/1825/ 2012-03-22 19:51 +0000 [r360190] Kinsey Moore * main/udptl.c, main/stdtime/test.c, main/autoservice.c, main/rtp_engine.c, main/frame.c, main/fskmodem_float.c, main/sha1.c, main/say.c, main/ecdisa.h, main/utils.c, main/devicestate.c, main/taskprocessor.c, main/indications.c, main/enum.c, main/config.c, main/loader.c, main/term.c, main/cli.c, main/io.c, main/ulaw.c, main/channel.c, main/dial.c, main/manager.c, main/tdd.c, main/strcompat.c, main/plc.c, main/features.c, main/logger.c, main/fskmodem_int.c, main/app.c, main/stdtime/localtime.c, main/image.c, main/dns.c, main/message.c, main/md5.c, main/sched.c, main/lock.c, main/pbx.c, main/dnsmgr.c, main/slinfactory.c, main/translate.c, main/jitterbuf.c, main/cel.c, main/chanvars.c, main/netsock.c, main/srv.c, main/privacy.c, main/fixedjitterbuf.c, main/file.c, main/callerid.c, main/event.c, main/astmm.c, main/audiohook.c, main/cygload.c, main/fixedjitterbuf.h, main/asterisk.c, main/xmldoc.c, main/dsp.c, main/timing.c: Kill off red blobs in most of main/* Everything still compiled after making these changes, so I assume these whitespace-only changes didn't break anything (and shouldn't have). 2012-03-21 14:55 +0000 [r360140] Jonathan Rose * /, contrib/scripts/install_prereq: Update install_prereq script to include missing GSM library for debian amd move SQLite3. (closes issue ASTERISK-19367) Reported by: Andrew Latham Patches: debian_install_prereq.diff uploaded by Andrew Latham (license 5985) ........ Merged revisions 360138 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360139 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-21 14:47 +0000 [r360137] Tzafrir Cohen * /, configure, configure.ac: Also detect gmime 2.6 Also detect gmime version 2.6 (Michael Biebl) Signed-off-by: Tzafrir Cohen (License #5035) ........ Merged revisions 360087 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360098 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-21 13:31 +0000 [r360089] Matthew Jordan * /, channels/chan_sip.c: Ensure Asterisk sends a BYE when pending on the final response to a re-INVITE When Asterisk detects a hangup and cannot send a BYE due to a pending INVITE, it sets the pendingbye flag and waits for the final response to that INVITE. When the response is received, it transmits the BYE. If, however, that INVITE request is a pending re-INVITE, it needs to first send a CANCEL request to terminate the pending re-INVITE. In that circumstance, Asterisk was, in some scenarios, clearing the pendingbye flag after processing the CANCEL request and not checking for a pending BYE when receiving the final 487 response to the INVITE. This patch ensures that if the pendingbye flag is set, it is honored regardless of the nature of the INVITE request currently in flight. (closes issue ASTERISK-19365) Reported by: Thomas Arimont Tested by: Thomas Arimont Patches: bugASTERISK-19365_2012_03_08.patch uploaded by mjordan (license 6283) Review: https://reviewboard.asterisk.org/r/1807 ........ Merged revisions 360086 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360088 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-20 20:42 +0000 [r360036] Kinsey Moore * /, apps/app_echo.c: Prevent Echo() from relaying control, null, and modem frames Echo()'s description states that it echoes audio, video, and DTMF except for # while it actually echoes any frame that it receives other than DTMF #. This was causing frame storms in the test suite in some circumstances where Echo() was attached to both ends of a pair of local channels and control frames were being periodically generated. Echo()'s behavior and description have been modifed so that it only echoes media and non-# DTMF frames. ........ Merged revisions 360033 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 360034 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-20 18:17 +0000 [r359983] Sean Bright * /, UPGRADE.txt, channels/chan_iax2.c, include/asterisk/manager.h: chan_iax2: Correct spelling of 'Port' header in IAX2 PeerStatus AMI Events The PeerStatus event for IAX2 channels currently includes a header named Post which should have been Port. Post was removed and the AMI version has been updated to 1.3. ........ Merged revisions 359982 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-20 17:31 +0000 [r359942-359981] Richard Mudgett * main/data.c, main/pbx.c, main/manager.c, /, main/features.c, include/asterisk/manager.h, main/db.c: Allow AMI action callback to be reentrant. Fix AMI module reload deadlock regression from ASTERISK-18479 when it tried to fix the race between calling an AMI action callback and unregistering that action. Refixes ASTERISK-13784 broken by ASTERISK-17785 change. Locking the ao2 object guaranteed that there were no active callbacks that mattered when ast_manager_unregister() was called. Unfortunately, this causes the deadlock situation. The patch stops locking the ao2 object to allow multiple threads to invoke the callback re-entrantly. There is no way to guarantee a module unload will not crash because of an active callback. The code attempts to minimize the chance with the registered flag and the maximum 5 second delay before ast_manager_unregister() returns. The trunk version of the patch changes the API to fix the race condition correctly to prevent the module code from unloading from memory while an action callback is active. * Don't hold the lock while calling the AMI action callback. (closes issue ASTERISK-19487) Reported by: Philippe Lindheimer Review: https://reviewboard.asterisk.org/r/1818/ Review: https://reviewboard.asterisk.org/r/1820/ ........ Merged revisions 359979 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359980 from http://svn.asterisk.org/svn/asterisk/branches/10 * res/res_mutestream.c: Convert MuteAudio documentation to XML. * Added missing error exits with cause in manager_mutestream(). * Cleaned up manager_mutestream() and func_mute_write(). * Some whitespace and comment cleanup. 2012-03-16 21:00 +0000 [r359905] Jonathan Rose * /, apps/app_chanspy.c: Prevent chanspy from binding to zombie channels This patch addresses a bug with chanspy on local channels which roughly 50% of the time would create a situation where chanspy can latch onto a zombie channel, keeping the zombie alive forever and causing the channel doing the spying to never be able to hang up. (closes issue ASTERISK-19493) Reported by: lvl Review: https://reviewboard.asterisk.org/r/1819/ ........ Merged revisions 359892 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359898 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-16 20:37 +0000 [r359904] Richard Mudgett * include/asterisk/app.h, main/app.c: Simplify some code in ast_app_run_sub(). * Remove unnnecessary const from const char * const var declaration in the ast_app_run_macro() and ast_app_run_sub() prototypes. The second const is unnecessary. 2012-03-16 15:38 +0000 [r359857] Mark Michelson * apps/app_dial.c, main/pbx.c, include/asterisk/pbx.h, CHANGES: Revert the pre-dial addition. The code may be just fine, but it had not received a "ship it!" on review board yet. 2012-03-16 08:27 +0000 [r359811] Alec L Davis * /, channels/sip/include/sip.h: Missed lastinvite CSeq int to uint32_t change from Review: https://reviewboard.asterisk.org/r/1699/ ........ Merged revisions 359809 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359810 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-15 20:11 +0000 [r359772] Mark Murawki * main/pbx.c: Fix warning from commit r359705 (predial options for app_dial) 2012-03-15 19:11 +0000 [r359708] Matthew Jordan * /, main/utils.c: Fix remotely exploitable stack overflow in HTTP manager There exists a remotely exploitable stack buffer overflow in HTTP digest authentication handling in Asterisk. The particular method in question is only utilized by HTTP AMI. When parsing the digest information, the length of the string is not checked when it is copied into temporary buffers allocated on the stack. This patch fixes this behavior by parsing out pre-defined key/value pairs and avoiding unnecessary copies to the stack. (closes issue ASTERISK-19542) Reported by: Russell Bryant Tested by: Matt Jordan ........ Merged revisions 359706 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359707 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-15 18:58 +0000 [r359705] Mark Murawki * apps/app_dial.c, main/pbx.c, include/asterisk/pbx.h, CHANGES: Add options PreDial options 'b' and 'B' to app_dial * Added 'b' and 'B' options to Dial. These options will allow you to run last-minute dialplan on the caller and callee channels while the Dial application is executing, but before the call is started. For example you can use the 'b' option to run dialplan on the callee channel to get the name of the newly created channel right away. Review: https://reviewboard.asterisk.org/r/1229/ (closes issue: ASTERISK-19548) Reported by: Mark Murawski Tested by: Mark Murawski, Stefan Schmidt 2012-03-15 18:55 +0000 [r359704] Matthew Jordan * /, apps/app_milliwatt.c: Fix remotely exploitable stack overrun in Milliwatt Milliwatt is vulnerable to a remotely exploitable stack overrun when using the 'o' option. This occurs due to the milliwatt_generate function not accounting for AST_FRIENDLY_OFFSET when calculating the maximum number of samples it can put in the output buffer. This patch resolves this issue by taking into account AST_FRIENDLY_OFFSET when determining the maximum number of samples allowed. Note that at no point is remote code execution possible. The data that is written into the buffer is the pre-defined Milliwatt data, and not custom data. (closes issue ASTERISK-19541) Reported by: Russell Bryant Tested by: Matt Jordan Patches: milliwatt_stack_overrun.rev1.txt by Russell Bryant (license 6283) Note that this patch was written by Russell, even though Matt uploaded it ........ Merged revisions 359645 from http://svn.asterisk.org/svn/asterisk/branches/1.6.2 ........ Merged revisions 359656 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359694 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-15 18:34 +0000 [r359651] Paul Belanger * channels/chan_sip.c: Remove unused variable ‘srch’ Missed on the previous commit 2012-03-15 18:32 +0000 [r359644] Richard Mudgett * apps/app_dial.c, /, apps/app_queue.c: Add missing connected line macro calls to initial dial for Dial and Queue apps. The connected line interception macros do not get executed when the outgoing channel is initially created and that channel's caller-id is implicitly imported into the incoming channel's connected line data. If you are using the interception macros, you would expect that they get run for every change to a channel's connected line information outside of normal dialplan execution. Review: https://reviewboard.asterisk.org/r/1817/ ........ Merged revisions 359609 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359620 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-15 17:36 +0000 [r359607] Paul Belanger * channels/chan_sip.c: Remove some dead code found in _sip_show_peers() Review: https://reviewboard.asterisk.org/r/1696/ 2012-03-15 00:54 +0000 [r359456-359560] Russell Bryant * /, channels/chan_iax2.c: chan_iax2: Fix use of uninitialized sockaddr_in in try_transfer(). Initialize a struct sockaddr_in in try_transfer() so that the code isn't (potentially) trying to read from it while uninitialized. ........ Merged revisions 359558 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359559 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_gtalk.c: chan_gtalk: Fix potential use of uninitialized variable. Avoid potential use of idroster in gtalk_alloc() before it has been initialized. ........ Merged revisions 359508 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359509 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_chanisavail.c: app_chanisavail: Fix use of uninitialized variable. Ensure that status is set before it is used by resetting it during each loop iteration. This could have resulted in incorrect results from this app. ........ Merged revisions 359486 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359491 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/udptl.c, /: udptl: Ensure fec[] in udptl_build_packet() is initialized. Scan results indicated that this array could be used uninitialized. At a quick look, it looks correct. In any case, initializing it is a Good Thing (tm). ........ Merged revisions 359457 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359458 from http://svn.asterisk.org/svn/asterisk/branches/10 * include/asterisk/app.h, /: app.h: Always initialize AST_DECLARE_APP_ARGS(). This patch ensures that the struct defined by AST_DECLARE_APP_ARGS() is always fully initialized. I'm not sure if this fixes any real bugs, but it silences a bunch of warnings from coverity, and is generally a good thing to do anyway. ........ Merged revisions 359452 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359454 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-14 22:38 +0000 [r359455] Richard Mudgett * main/channel.c, /, channels/chan_agent.c, include/asterisk/channel.h: Fix deadlock potential with some ast_indicate/ast_indicate_data calls. Calling ast_indicate()/ast_indicate_data() with the channel lock held can result in a deadlock with a local channel because of how local channels need to avoid deadlock. ........ Merged revisions 359451 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359453 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-14 18:56 +0000 [r359406] Matthew Jordan * tests/test_jitterbuf.c (added): Add tests for main/jitterbuf.c This patch adds unit tests for main/jitterbuf.c. This includes checking for the following: * Nominal insertion and retrieval of frames * Insertion and retrieval of frames where the frames are inserted out of order with respect to the previous frame * Insertion and retrieval of frames where some number of frames that would occur in the expected sequence are instead dropped * Insertion and retrieval of frames with an arrival time that does not occur at the same rate as the surrounding frames * Resynchronization of the jitter buffer when an inserted frame breaks the resynchronization threshold * Overfilling of the jitter buffer For each of the tests, both JB_TYPE_VOICE and JB_TYPE_CONTROL permutations exist. Review: https://reviewboard.asterisk.org/r/1815 (issue: ASTERISK-18964) Reported by: Kris Shaw Tested by: Kris Shaw, Matt Jordan 2012-03-14 18:12 +0000 [r359360] Richard Mudgett * include/asterisk/channel_internal.h: Three copies of the file contents in channel_internal.h are a bit excessive. 2012-03-14 17:48 +0000 [r359359] Matthew Jordan * /, main/jitterbuf.c: Fix incorrect jitter buffer overflow due to missed resynchronizations When a change in time occurs, such that the timestamps associated with frames being placed into an adaptive jitter buffer (implemented in jitterbuf.c) are significantly different then the previously inserted frames, the jitter buffer checks to see if it needs to be resynched to the new time frame. If three consecutive packets break the threshold, the jitter buffer resynchs itself to the new timestamps. This currently only occurs when history is calculated, and hence only on JB_TYPE_VOICE frames. JB_TYPE_CONTROL frames, on the other hand, are never passed to the history calculations. Because of this, if the jump in time is greater then the maximum allowed length of the jitter buffer, the JB_TYPE_CONTROL frames are dropped and no resynchronization occurs. Alterntively, if the overfill logic is not triggered, the JB_TYPE_CONTROL frame will be placed into the buffer, but with a time reference that is not applicable. Subsequent JB_TYPE_VOICE frames will quickly trigger the overflow logic until reads from the jitter buffer reach the errant JB_TYPE_CONTROL frame. This patch allows JB_TYPE_CONTROL frames to resynch the jitter buffer. As JB_TYPE_CONTROL frames are unlikely to occur in multiples, it perform the resynchronization on any JB_TYPE_CONTROL frame that breaks the resynch threshold. Note that this only impacts chan_iax2, as other consumers of the adaptive jitter buffer use the abstract jitter buffer API, which does not use JB_TYPE_CONTROL frames. Review: https://reviewboard.asterisk.org/r/1814/ (closes issue ASTERISK-18964) Reported by: Kris Shaw Tested by: Kris Shaw, Matt Jordan Patches: jitterbuffer-2012-2-26.diff uploaded by Kris Shaw (license 5722) ........ Merged revisions 359356 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359358 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-14 17:39 +0000 [r359357] Richard Mudgett * apps/app_dial.c, main/channel.c, /: Fix Dial m and r options and forked calls generating warnings for voice frames. When connected line support was added, the wait_for_answer() variable single changed its meaning slightly. Unfortunately, the places where single was used did not necessarily get updated to reflect that change. Also audio/video frames were sent to all forked calls when the endpoints were never made compatible. * Don't pass audio/video media frames when the channels have not been made compatible. * Added handling of AST_CONTROL_SRCCHANGE to app_dial.c. * Fixed app_dial.c passing on AST_CONTROL_HOLD because that frame can also pass a requested MOH class. (closes issue ASTERISK-16901) Reported by: Chris Gentle (closes issue ASTERISK-17541) Reported by: clint Review: https://reviewboard.asterisk.org/r/1805/ ........ Merged revisions 359344 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359355 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-14 14:40 +0000 [r359306] Matthew Jordan * include/asterisk/astobj2.h: Force non-inlining of ao2_iterator_destroy when TEST_FRAMEWORK is enabled In r357272, astobj2 was changed to automatically enable REF_DEBUG when the TEST_FRAMEWORK flag was enabled. Unfortunately, some compilers (gcc 4.5.1 at least) will attempt to inline ao2_iterator_destroy in handle_astobj2_test. This by itself is not a problem; unfortunately, the compiler believes that there is a code path wherein an object allocated on the stack will be free'd. As warnings are treated as errors, this prevents compilation of astobj2. This patch works around that by adding the noinline attribue to ao2_iterator_destroy, but only if the TEST_FRAMEWORK flag is enabled. Preventing inlining is only needed for the test method defined in astobj2, which is also only enabled if TEST_FRAMEWORK is enabled. 2012-03-14 10:56 +0000 [r359052-359261] Russell Bryant * include/asterisk/logger.h, /, main/logger.c: Fix bogus reads/writes of console log levels in asterisk.c This patch updates the NUMLOGLEVELS define in logger.h to 32, to match the fact that logger.c implements 32 log levels (because of the custom log level stuff). asterisk.c uses this define to size an array of levels per remote console. This array is modified in ast_console_toggle_loglevel(), which is called by the "logger set level" CLI command. While the documentation for the CLI command doesn't make it terribly obvious, you can use this CLI command to toggle a custom log level on a remote console, as well. However, doing so led to an invalid array index in asterisk.c. This array is read from any time a log message is written to a console. So, all custom log level messages resulted in a bogus read if a remote console was connected. ........ Merged revisions 359259 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359260 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, apps/app_externalivr.c, channels/chan_iax2.c: Fix invalid reads/writes due to incorrect sizeof(). These few places in the code used sizeof() on h_addr in struct hostent. This is sizeof(char *). The correct way to get the size of this address is to use h_length. This error would result in reads/writes of 8 bytes instead of 4 on 64-bit machines. ........ Merged revisions 359211 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359212 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/sched.c: Fix inaccurate sizeof() in sched.c. This code just needed sizeof(int), not sizeof(int *). ........ Merged revisions 359157 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359162 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, utils/astman.c: Fix incorrect sizeof() in astman. ........ Merged revisions 359116 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359117 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, res/res_crypto.c: Fix incorrect usage of sizeof() in res_crypto. In this case, just remove the memset(). There was a redundant memset that is done correctly just 2 lines later. ........ Merged revisions 359110 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359114 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, res/res_adsi.c: Fix broken usage of sizeof() in res_adsi. ........ Merged revisions 359088 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359091 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/features.c: Fix incorrect sizeof() usage in features.c. This didn't actually result in a bug anywhere, luckily. The only place where the result of these memcpys was used is in app_dial, and the only field that it read out of ast_call_feature was the first one, which is an int, so these memcpys always copied just enough to avoid a problem. ........ Merged revisions 359069 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359072 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, main/md5.c: Fix incorrect sizeof() on a pointer in MD5Final(). ........ Merged revisions 359059 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359060 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/pbx.c, /: Don't use a buffer after it goes out of scope. 's' is set to 'workspace'. Make sure 'workspace' doesn't go out of scope while the reference to it via 's' is still used. ........ Merged revisions 359056 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359057 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_usbradio.c (removed), /, channels/xpmr (removed), build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in, apps/app_rpt.c (removed): Remove chan_usbradio and app_rpt. These modules are being maintained outside of the tree and have been for a long time now, so it doesn't make sense to keep them here. Review: https://reviewboard.asterisk.org/r/1764/ ........ Merged revisions 359050 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 359051 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-13 21:24 +0000 [r359011] Terry Wilson * include/asterisk/channel_internal.h (added): Add missing channel_internal.h ...again. 2012-03-13 21:18 +0000 [r358997] Richard Mudgett * channels/sig_pri.h, channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, channels/sig_pri.c: Add ability for chan_dahdi ISDN to block connected line updates per span. Added new chan_dahdi.conf colp_send option parameter to block connected line updates per span. (closes issue ASTERISK-17025) Reported by: Michael Smith 2012-03-13 20:43 +0000 [r358907-358993] Terry Wilson * /, main/features.c: Fix setting CDR variables in the hangup extension A previous CDR fix for setting CDR variables during a bridge via custom dialplan features broke setting CDR variables in the hangup extension. This patch fixes the issue. Review: https://reviewboard.asterisk.org/r/1794/ ........ Merged revisions 358978 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358989 from http://svn.asterisk.org/svn/asterisk/branches/10 * include/asterisk/devicestate.h, /, channels/chan_sip.c, tests/test_devicestate.c, main/devicestate.c: Make hints for invalid SIP devices return Unavail, not idle This patch drastically simplifies the device state aggegation code. The old method was not only overly complex, but also made it impossible to return AST_DEVICE_INVALID from the aggregation code. The unit test update is as a result of fixing that bug. The SIP change stems from a bug introduced by removing a DNS lookup for hostname-based SIP channels. (closes issue ASTERISK-16702) Review: https://reviewboard.asterisk.org/r/1808/ ........ Merged revisions 358943 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358944 from http://svn.asterisk.org/svn/asterisk/branches/10 * apps/app_voicemail.c: Fix IMAP storage compilation after opaquification changes (closes issue ASTERISK-19513) * channels/chan_unistim.c, main/autoservice.c, channels/chan_vpb.cc, channels/chan_local.c, main/rtp_engine.c, res/res_musiconhold.c, bridges/bridge_multiplexed.c, apps/app_followme.c, main/indications.c, main/cli.c, main/channel.c, channels/chan_phone.c, channels/chan_dahdi.c, channels/sig_analog.c, main/manager.c, main/features.c, apps/app_dumpchan.c, res/res_agi.c, main/app.c, apps/app_confbridge.c, apps/app_externalivr.c, main/bridging.c, apps/app_parkandannounce.c, apps/app_dial.c, main/pbx.c, channels/chan_sip.c, channels/chan_bridge.c, main/channel_internal_api.c, channels/chan_agent.c, apps/app_disa.c, include/asterisk/channel.h, apps/app_talkdetect.c, apps/app_queue.c, apps/app_speech_utils.c, apps/app_channelredirect.c, main/file.c, res/snmp/agent.c, apps/app_macro.c, apps/app_stack.c, apps/app_chanspy.c, apps/app_mixmonitor.c: Finalize ast_channel opaquification Review: https://reviewboard.asterisk.org/r/1786/ 2012-03-13 17:01 +0000 [r358858-358861] Richard Mudgett * main/channel.c: Fix crash caused by opaquification change -r356042. The set_format() function was more subtle in how it modified the struct ast_channel readtrans/writetrans values. * Fixed ast_activate_generator() conversion correctly. (closes issue ASTERISK-19434) Reported by: Birger Harzenetter Tested by: rmudgett * main/format.c: Use struct copy instead of memcpy(). 2012-03-13 08:06 +0000 [r358812] Tilghman Lesher * res/ael/pval.c, funcs/func_dialplan.c, /, tests/test_gosub.c, utils/ael_main.c, apps/app_stack.c, utils/conf2ael.c: Enable macros in 1.8 to find the next highest "h" extension in a context, like in 1.4. This change restores functionality that was present in 1.4, when AEL macros were implemented with the Macro dialplan application. Macros are fraught with functionality issues, because they consume a large portion of the underlying application stack. This limits the ability of AEL users to call many layers of subroutines, an issue which Gosub does not have (originally tested to 100,000 levels deep). Therefore, starting in 1.6.0, AEL macros were implemented with Gosub. However, there were some implicit behaviors of Macro, which were not replicated at the same time as with the transition to Gosub, one of which is documented in the related issue. In particular, the "h" extension is designed to execute not in the Macro context, but in the topmost calling context. Due to legacy issues with a misapplied bugfix many years ago, when a macro exited in 1.4, it looks in all calling contexts, bubbling up from the deepest level until it finds an "h" extension. Since AEL hides the complexity of the underlying dialplan logic from the AEL programmer, it's reasonable to assume that this behavior should not change in the transition from Asterisk 1.4 LTS to Asterisk 1.8 LTS, lest we break working AEL configurations in the transition to Asterisk 1.8 LTS. This fix is the result, which implements a search for the "h" extension in all calling Gosub contexts. Fixes ASTERISK-19336 Patch: 20120308__ael_bugfix_for_trunk__2.diff (License #5003) by Tilghman Lesher (with slight modifications for 1.8) Tested by: Johan Wilfer Review: https://reviewboard.asterisk.org/r/1776/ ........ Merged revisions 358810 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358811 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-12 17:01 +0000 [r358766] Igor Goncharovskiy * channels/chan_unistim.c, contrib/unistimLang/ru.po (added), contrib/unistimLang/ru.po.utf8 (added), configs/unistim.conf.sample, UPGRADE.txt, CHANGES, contrib/unistimLang/en.po (added), contrib/unistimLang (added): Massive changes in chan_unistim channel driver. Include many fixes in channel driver operation and add additional functionality: * Added ability to use multiple lines on phone, so for one device in configuration multiple lines can be defined, it allows to have multiple calls on one phone, callwaiting and switching between calls. * Added ability for translation on-screen menu to multiple languages. Tested on Russian languages. Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4, ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen menu of phone * Other described in CHANGES file Testing done by issue tracker users: ibercom, scsiborg, idarwin, TeknoJuce, c0rnoTa. Tested on production system by Jonn Taylor (jonnt) using phone models: Nortel i2004, 1120E and 1140E. (closes issue ASTERISK-16890) Review: https://reviewboard.asterisk.org/r/1243/ 2012-03-10 20:06 +0000 [r358730] Joshua Colp * configs/confbridge.conf.sample, main/dial.c, apps/app_page.c, apps/confbridge/include/confbridge.h, apps/app_confbridge.c, include/asterisk/dial.h, CHANGES, apps/confbridge/conf_config_parser.c: Transition app_page to using app_confbridge internally for the conference bridge portion of paging. This also adds a new 'announcement' option to ConfBridge user profiles. Review: https://reviewboard.asterisk.org/r/1754/ 2012-03-08 17:48 +0000 [r358646-358691] Sean Bright * apps/app_dial.c, apps/app_directory.c, apps/app_queue.c: Resolve a few more cases of variable shadowing. * channels/chan_phone.c, channels/chan_skinny.c, channels/chan_agent.c, pbx/pbx_lua.c, pbx/pbx_dundi.c, channels/chan_gtalk.c, pbx/pbx_config.c, channels/chan_oss.c, apps/confbridge/conf_config_parser.c: Eliminate a bunch of shadow warnings. * include/asterisk/linkedlists.h: Add some underscores in a few of our llist macros to reduce name collisions. 2012-03-08 16:59 +0000 [r358645] Jonathan Rose * /, channels/chan_sip.c: Make transfer not ignore port information with SIP. Attempting to transfer with SIP to an address like 1XXXXX@ip.ad.re.ss:5061 would fail because port would be cut from the host string and ignored. This simply keeps chan_sip from cutting off the port number during these kinds of transfers. (closes issue ASTERISK-19321) Reported by: Federico Alves Review: https://reviewboard.asterisk.org/r/1790/diff/#index_header ........ Merged revisions 358643 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358644 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-08 16:21 +0000 [r358609-358622] Sean Bright * Makefile, configure, configure.ac, makeopts.in: Add --enable-dev-mode=strict to configure. Passing -Wshadow to gcc enables shadow warnings. From the gcc manual: Warn whenever a local variable or type declaration shadows another variable, parameter, type, or class member (in C++), or whenever a built-in function is shadowed. Asterisk will not currently compile with this option set, but a number of bugs have been discovered by enabling this flag on specific files. The long-term goal is to eliminate all of the suspect code that causes this warning to be emitted. * Makefile: Whitespace only change to the Makefile 2012-03-07 21:28 +0000 [r358576] Terry Wilson * cel/cel_odbc.c, configs/cel_odbc.conf.sample: Handle numeric columns for eventtype properly in cel_odbc Patch also implements correct handling of datetime2 and datetimeoffset new datatypes in SQL Server 2008 and 2008 R2. (closes issue ASTERISK-17548) Review: https://reviewboard.asterisk.org/r/1160/ Review: https://reviewboard.asterisk.org/r/1804/ 2012-03-07 18:33 +0000 [r358532] Richard Mudgett * /, channels/sig_ss7.c: Change directly setting _softhangup in sig_ss7.c to use ast_softhangup_nolock(). Update to: (issue ASTERISK-19372) ........ Merged revisions 358530 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358531 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-07 16:16 +0000 [r358486] Sean Bright * /, codecs/codec_dahdi.c: Return g729 and g723.1 frames with the number of samples set properly. If the wctc4xxp returns more than a single packet, we need to update the number of samples in the returned frame accordingly. Acked-by: Shaun Ruffell ........ Merged revisions 358484 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358485 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-07 15:19 +0000 [r358437-358444] Terry Wilson * /, configs/cdr_adaptive_odbc.conf.sample: Set snarkiness = 0 in cdr_adaptive_odbc.conf.sample ........ Merged revisions 358438 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358441 from http://svn.asterisk.org/svn/asterisk/branches/10 * cel/cel_odbc.c, /, cdr/cdr_adaptive_odbc.c: Add detection for ODBC WCHAR fields Without detecting these types, cel_odbc blows up when the character set for the table is utf8. This also wraps cdr_adaptive_odbc's use of those types in the HAVE_ODBC_WCHAR #ifdef seen in other parts of the code. ........ Merged revisions 358435 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358436 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-06 17:47 +0000 [r358262-358379] Richard Mudgett * channels/chan_dahdi.c, /: Fix ring cadance setup for outgoing calls on FXS ports. * Fix referencing the wrong variable in chan_dahdi.c:my_set_cadence(). Thanks to Sean Bright for compiling with -Wshadow and finding this bug. ........ Merged revisions 358377 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358378 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, CHANGES: Add dialtone_detect option for analog incoming calls. For analog lines, enables Asterisk to use dialtone detection per channel if an incoming call was hung up before it was answered. If dialtone is detected, the call is hung up. no: Disabled. (Default) yes: Look for dialtone for 10000 ms after answer. : Look for dialtone for the specified number of ms after answer. always: Look for dialtone for the entire call. Dialtone may return if the far end hangs up first. dialtone_detect=yes dialtone_detect=5000 dialtone_detect=always (closes issue ASTERISK-19316) Reported by: Jeremy Pepper Patch by: Jeremy Pepper Tested by: rmudgett,Jeremy Pepper Review: https://reviewboard.asterisk.org/r/1737/ * /, channels/sig_ss7.c: Drop SS7 call if not connected yet when INCOMPLETE/BUSY/CONGESTION. SS7 is a trunk protocol and should clear a failed call as soon as possible. * Made SS7 hangup a call immediately if it has not connected yet for INCOMPLETE/BUSY/CONGESTION causes. Otherwise, play an appropriate inband tone. (closes issue ASTERISK-19372) Reported by: Igor Nikolaev ........ Merged revisions 358278 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358284 from http://svn.asterisk.org/svn/asterisk/branches/10 * include/asterisk/channel.h: Make usage of DECLARE_STRINGFIELD_SETTERS_FOR() not look so odd. * channels/chan_dahdi.c, channels/sig_ss7.h, /, channels/sig_ss7.c: Setup DSP when SS7 call is connected or early media is available. Outgoing SS7 calls fail to detect incoming DTMF so any bridged channel that requires out-of-band DTMF will not work. * Added sig_ss7_open_media() calls at appropriate places in sig_ss7.c. The new call converts conditionaled out unconverted code and shows that the code really did something useful. * Improved some chan_dahdi DTMF debug messages to help track DTMF handling. (closes issue ASTERISK-19312) Reported by: Igor Nikolaev ........ Merged revisions 358260 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358261 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-05 19:06 +0000 [r358216] Jonathan Rose * main/manager.c, /: Eliminate double close of file descriptor in manager.c The process_output function in manager.c attempted to call fclose and close immediately afterwards. Since fclose implies close, this resulted in a potential double free on file descriptors. This patch changes that behavior and also adds error checking to fclose and close depending on which was deemed necessary. Also error messages. Thanks to Rosen Iliev for pointing out the location of the problem. (closes issue ASTERISK-18453) Reported By: Jaco Kroon Review: https://reviewboard.asterisk.org/r/1793/ ........ Merged revisions 358214 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358215 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-05 16:44 +0000 [r358164] Joshua Colp * /, channels/chan_sip.c: Defer sending the connected line reinvite if a reinvite is already in progress. (issue ASTERISK-19355) Reported by: tomaso (closes issue AST-825) ........ Merged revisions 358162 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358163 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-05 16:00 +0000 [r358117] Kinsey Moore * /, channels/chan_sip.c: Ensure Asterisk acknowledges ACKs to 4xx on Replaces errors Asterisk was not setting pendinginvite in the upper half of handle_request_invite such that the 4xx was retransmitted repeatedly even though an ack was received for every retransmission. (closes issue ASTERISK-19303) Reported by: Jon Tsiros Patches: fix-19303.patch uploaded by Jeremiah Gowdy (license 6358) ........ Merged revisions 358115 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358116 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-05 11:20 +0000 [r358082] Sean Bright * configs/iax.conf.sample: Tab to spaces and text change. 2012-03-02 23:29 +0000 [r357999-358038] Terry Wilson * channels/chan_usbradio.c, /, channels/xpmr/xpmr.c: Fix unused-but-set-variable warnings All of these were pretty obviously unused. Some were unused because the code that used them was #if 0'd. In those cases, I just commented out the unused-but-set variables. ........ Merged revisions 358029 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358033 from http://svn.asterisk.org/svn/asterisk/branches/10 * /: Correct some set-but-unused variable warnings in the mISDN library. (from kpfleming's commit to trunk r356292) ........ Merged revisions 358011 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 358017 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/xpmr/xpmr.c: Make chan_usbradio compile under dev mode x=++x and x=x=1? Really? ........ Merged revisions 357986 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357987 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-02 21:06 +0000 [r357942] Kinsey Moore * /, main/ccss.c, tests/test_event.c, main/event.c, include/asterisk/strings.h: Fix case-sensitivity for device-specific event subscriptions and CCSS This change fixes case-sensitivity for device-specific subscriptions such that the technology identifier is case-insensitive while the remainder of the device string is still case-sensitive. This should also preserve the original case of the device string as passed in to the event system. CCSS is the only feature affected as it is the only consumer of device-specific event subscriptions. The second part of this patch addresses similar case-sensitivity issues within CCSS itself that prevented it from functioning correctly after the fix to the events system. This adds a unit test to verify that the event system works as expected. (closes issue ASTERISK-19422) Review: https://reviewboard.asterisk.org/r/1780/ ........ Merged revisions 357940 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357941 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-02 18:38 +0000 [r357896] Richard Mudgett * main/channel.c, /, channels/sig_pri.c: Remove ISDN hold restriction for non-bridged calls. The check if an ISDN call is bridged before it could be placed on hold is not necessary and is overly restrictive. The check was originally done to prevent problems with call transfers in case a user tried to transfer a call connected to an application to another call connected to an application. The ISDN transfer code has not required this restriction for quite some time because ECT could transfer any two active calls to each other. * Remove ISDN hold restriction for calls connected to applications. * Made ast_waitfordigit_full() ignore AST_CONTROL_HOLD and AST_CONTROL_UNHOLD instead of generating a warning message. (closes issue ASTERISK-19388) Reported by: Birger Harzenetter Tested by: rmudgett ........ Merged revisions 357894 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357895 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-02 16:57 +0000 [r357861] Jonathan Rose * apps/app_queue.c: Adds a transfer callee on hangup option (like with Dial option F) to queues. This should (and does in my testing) act just like the Dial option of the same name. This allows a queue member to be transfered to the next priority (no args), or to a context/extension/priority similar to goto (with args context^extension^priority) when a caller hangs up on them. (closes issue ASTERISK-19283) Reported by: To Patches: queue_f-v3.diff uploaded by To (license 6347) Review: https://reviewboard.asterisk.org/r/1785/ 2012-03-02 16:26 +0000 [r357834] Richard Mudgett * apps/app_chanspy.c: Remove bad usage of goto in ChanSpy next_channel(). 2012-03-02 16:19 +0000 [r357821] Sean Bright * configs/iax.conf.sample: Beef up the IAX2 sample configuration a bit and fix some formatting issues. 2012-03-02 16:03 +0000 [r357814-357815] Richard Mudgett * /, apps/app_chanspy.c: Fix channel reference leak in ChanSpy. * Fix next_channel() channel reference leak in ChanSpy. (closes issue ASTERISK-19461) Reported by: Irontec Patches: app_chanspy_iteartor_next_unref.patch (license #6213) patch uploaded by Irontec (issue ASTERISK-17515) ........ Merged revisions 357809 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357810 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_usbradio.c: Fix compile error from latest channel opaquification change. 2012-03-02 16:00 +0000 [r357813] Sean Bright * /, channels/chan_iax2.c: The default value for mohinterpret is the empty string, so when resetting to default values don't explicitly set the value to "default." ........ Merged revisions 357811 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357812 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-03-02 01:33 +0000 [r357774-357775] Mark Michelson * main/channel.c, /: Fix race condition that can cause important control frames (such as a hangup) to be missed. This takes two actions. 1. Move the reading of the alertpipe in __ast_read() to immediately before the removal of frames from the readq. This means we won't do something silly like read from the alertpipe, then ignore the fact that there's a frame to get from the readq since channel's fdno is the AST_TIMING_FD. 2. When ast_settimeout() sets the rate to 0 and the timingfunc to NULL, if the channel's fdno is the AST_TIMING_FD, then set the fdno to -1. This is because if the rate is 0 and the timingfunc is NULL, it means that the channel's timing fd is being invalidated, so any pending reads should not occur. This may actually solve more issues than the referenced one below, but it's not known at this time for sure. (closes issue ASTERISK-19223) reported by Frank-Michael Wittig Review: https://reviewboard.asterisk.org/r/1779 ........ Merged revisions 357761 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357762 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_dahdi.c: Fix compilation error due to typo during channel opaquification. s/ast_channel_fd_set/ast_channel_internal_fd_set/g 2012-03-01 22:09 +0000 [r357721] Terry Wilson * channels/chan_unistim.c, apps/app_dahdibarge.c, main/autoservice.c, addons/chan_ooh323.c, channels/chan_vpb.cc, apps/app_meetme.c, channels/console_video.c, channels/chan_gtalk.c, channels/chan_iax2.c, main/cli.c, main/channel.c, channels/chan_phone.c, channels/chan_dahdi.c, channels/sig_analog.c, channels/chan_skinny.c, main/features.c, apps/app_dumpchan.c, channels/sig_ss7.c, channels/chan_mgcp.c, main/pbx.c, channels/chan_sip.c, main/channel_internal_api.c, channels/chan_agent.c, apps/app_dahdiras.c, include/asterisk/channel.h, apps/app_queue.c, channels/sig_pri.c, channels/chan_jingle.c, channels/chan_misdn.c, apps/app_flash.c, funcs/func_channel.c, apps/app_directed_pickup.c, main/file.c, channels/chan_h323.c, res/snmp/agent.c, main/dsp.c: Opaquify ast_channel typedefs, fd arrays, and softhangup flag Review: https://reviewboard.asterisk.org/r/1784/ 2012-03-01 14:22 +0000 [r357673] Kinsey Moore * /, main/acl.c: Prevent outbound SIP NOTIFY packets from displaying a port of 0 In the change from 1.6.2 to 1.8, ast_sockaddr was introduced which changed the behavior of ast_find_ourip such that port number was wiped out. This caused the port in internip (which is used for Contact and Call-ID on NOTIFYs) to be 0. This change causes ast_find_ourip to be port-preserving again. (closes issue ASTERISK-19430) ........ Merged revisions 357665 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357667 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-29 20:41 +0000 [r357621] Walter Doekes * /, main/utils.c, include/asterisk/stringfields.h: Update stringfield documentation for removed second va_list in favor of va_copy. In r320946, the second va_list that was passed to ast_string_field_build_va and friends, was removed. This patch updates the documentation to reflect that. ........ Merged revisions 357620 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-29 20:31 +0000 [r357610] Sean Bright * res/res_agi.c, CHANGES: Add IPv6 support to FastAGI. Review: https://reviewboard.asterisk.org/r/1774/ Reviewed by: Simon Perreault, Mark Michelson 2012-02-29 19:48 +0000 [r357577] Walter Doekes * apps/app_dial.c, /: Fix copying of CDR(accountcode) to local channels. In r203638, during the addition of the Channel Event Logging, in mid-2009, this got broken in trunk and ended up in asterisk 1.8 and higher. This fixes so the CDR(accountcode) from the calling channel is available to dialed channels again as well as showing up properly in the CDR's. (closes issue ASTERISK-19384) Reported by: jamicque Patches: accountcode.patch (License #6033) by jamicque Review: https://reviewboard.asterisk.org/r/1775/ Reviewed by: Richard Mudgett ........ Merged revisions 357575 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357576 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-29 16:52 +0000 [r357542] Terry Wilson * channels/chan_local.c, addons/chan_ooh323.c, funcs/func_strings.c, channels/console_video.c, apps/app_alarmreceiver.c, channels/chan_iax2.c, main/cli.c, channels/chan_dahdi.c, channels/sig_analog.c, channels/chan_skinny.c, apps/app_dumpchan.c, main/features.c, apps/app_amd.c, channels/sig_ss7.c, apps/app_dial.c, main/pbx.c, include/asterisk/utils.h, funcs/func_timeout.c, apps/app_privacy.c, apps/app_fax.c, channels/chan_agent.c, apps/app_disa.c, include/asterisk/channel.h, apps/app_talkdetect.c, main/cel.c, channels/chan_misdn.c, apps/app_macro.c, apps/app_zapateller.c, apps/app_mixmonitor.c, apps/app_voicemail.c, channels/chan_unistim.c, tests/test_substitution.c, channels/chan_vpb.cc, apps/app_meetme.c, main/ccss.c, apps/app_readexten.c, channels/chan_gtalk.c, main/autochan.c, apps/app_followme.c, main/cdr.c, main/channel.c, main/dial.c, channels/chan_phone.c, apps/app_osplookup.c, apps/app_setcallerid.c, main/manager.c, bridges/bridge_builtin_features.c, apps/app_minivm.c, res/res_agi.c, main/app.c, apps/app_confbridge.c, apps/app_rpt.c, main/message.c, channels/chan_mgcp.c, apps/app_parkandannounce.c, apps/app_while.c, funcs/func_dialplan.c, channels/chan_sip.c, res/res_fax.c, main/channel_internal_api.c, pbx/pbx_lua.c, channels/chan_console.c, channels/sig_pri.c, apps/app_queue.c, channels/chan_oss.c, channels/chan_jingle.c, channels/chan_usbradio.c, funcs/func_blacklist.c, main/abstract_jb.c, channels/chan_h323.c, main/file.c, res/snmp/agent.c, apps/app_sms.c, apps/app_stack.c, funcs/func_callerid.c: Opaquify ast_channel structs and lists Review: https://reviewboard.asterisk.org/r/1773/ 2012-02-28 22:31 +0000 [r357460-357503] Jonathan Rose * /, configs/sip.conf.sample, UPGRADE-1.8.txt: Adding transport=udp to sample sip.conf - Also changes version of Asterisk 1.8 in UPGRADE (issue ASTERISK-19352) Reported by: jamicque Patches: asterisk-19352-transport-warning-message-v1.patch uploaded by Michael L. Young (license 5026) ........ Merged revisions 357490 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357497 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, cdr/cdr_adaptive_odbc.c: Add additional character type types to supported data types for cdr_adaptive_odbc The reporter was uable to use varchar utf8_unicode_ci with cdr_adaptive_odbc, so this patch adds those along with some other character types to the list of types cdr_adaptive_odbc will work using the varchar conditions. The problem wasn't really UTF8 characters as much as it was a failure to respond to the exact type that was declared/in use on that database. (closes issue ASTERISK-19334) Reported By: Igor Nikolaev Patches: cdr_adaptive_odbc.patch uploaded by Igor Nikolaev (license 6236) ........ Merged revisions 357455 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357458 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-28 21:26 +0000 [r357436] Tilghman Lesher * /, apps/app_stack.c: Correctly reset the dialplan priority. When the stack frame is allocated, we save the address to which we should return, when the Gosub returns. However, if we just want to restore the priority, then we need to subtract 1 before setting it. Otherwise, when a Gosub goes to a nonexistent address, it will skip a priority in the dialplan. This is because when we return from an application, the PBX increments the priority for us. ........ Merged revisions 357416 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357421 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-28 21:01 +0000 [r357409] Richard Mudgett * /, channels/sig_pri.c: Use more reasonable cause code when rejecting incoming call waiting calls. (closes issue ASTERISK-19397) Reported by: Birger Harzenetter Patches: nochannel-cause.patch (license #5870) patch uploaded by Birger Harzenetter ........ Merged revisions 357407 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357408 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-28 20:43 +0000 [r357406] Jonathan Rose * /, UPGRADE-10.txt: revision 357386 -- oops, accidentally made it 10.3 to 10.4 instead of 10.2 to 10.3 (issue ASTERISK-19352) reported by: jamicque ........ Merged revisions 357405 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-28 20:34 +0000 [r357404] Richard Mudgett * main/channel.c, res/res_musiconhold.c, apps/app_queue.c: Fix REF_DEBUG compile errors. 2012-02-28 20:33 +0000 [r357358-357403] Jonathan Rose * /, UPGRADE-10.txt, UPGRADE-1.8.txt: Moves UPGRADE.txt notes from r357356 to a new section specific to 1.8.12 (issue ASTERISK-19352) reported by: jamicque ........ Merged revisions 357386 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357400 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, UPGRADE-1.8.txt: Adds UPGRADE.txt notes to r357266 indicating changes to transport option (issue ASTERISK-19352) Reported by: jamicque ........ Merged revisions 357356 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357357 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-28 19:55 +0000 [r357355] Sean Bright * include/asterisk/netsock2.h: Documentation update. There is no AST_SOCKADDR_UNSPEC. 2012-02-28 19:37 +0000 [r357354] Richard Mudgett * /, apps/app_page.c: Remove dupliate 'i' option table entry in app_page.c. (closes issue ASTERISK-19310) Reported by: Makoto Dei Patches: app_page-duplicate-i-option.patch (license #5027) patch uploaded by Makoto Dei ........ Merged revisions 357352 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357353 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-28 18:52 +0000 [r357319] Mark Michelson * /, channels/sip/security_events.c: Add a security event for the case where fake authentication challenge is sent. ........ Merged revisions 357318 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-28 18:46 +0000 [r357317] Richard Mudgett * main/tcptls.c, channels/chan_sip.c, include/asterisk/tcptls.h: Convert struct ast_tcptls_session_instance to finally use the ao2 object lock. 2012-02-28 18:23 +0000 [r357288] Jonathan Rose * /, channels/chan_sip.c: Changes transport option in sip.conf so that using multiple instances doesn't stack. Prior to this patch, Using "transport=" multiple times would cause them to add to one another like allow/deny. This patch changes that behavior to simply use the transport option specified last. Also, if no transport option is applied now, the default will automatically be UDP. (closes ASTERISK-19352) Reported by: jamicque Patches: asterisk-19352-transport-warning-message-v1.patch uploaded by Michael L. Young (license 5026) issueA19352_no_transport_is_udp.patch uploaded by Walter Doekes (license 5674) Review: https://reviewboard.asterisk.org/r/1745/diff/#index_header ........ Merged revisions 357266 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357271 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-28 18:15 +0000 [r357272] Richard Mudgett * main/format.c, main/format_cap.c, include/asterisk/astobj2.h, include/asterisk/lock.h, main/astobj2.c: Astobj2 locking enhancement. Add the ability to specify what kind of locking an ao2 object has when it is allocated. The locking could be one of: MUTEX, RWLOCK, or none. New API: ao2_t_alloc_options() ao2_alloc_options() ao2_t_container_alloc_options() ao2_container_alloc_options() ao2_rdlock() ao2_wrlock() ao2_tryrdlock() ao2_trywrlock() The OBJ_NOLOCK and AO2_ITERATOR_DONTLOCK flags have a slight meaning change. They no longer mean that the object is protected by an external mechanism. They mean the lock associated with the object has already been manually obtained by one of the ao2_lock calls. This change is necessary for RWLOCK support since they are not reentrant. Also an operation on an ao2 container may require promoting a read lock to a write lock by releasing the already held read lock to re-acquire as a write lock. Replaced API calls: ao2_t_link_nolock() ao2_link_nolock() ao2_t_unlink_nolock() ao2_unlink_nolock() with the respective ao2_t_link_flags() ao2_link_flags() ao2_t_unlink_flags() ao2_unlink_flags() API calls to be more flexible and to allow an anticipated enhancement to control linking duplicate objects into a container. The changes to format.c and format_cap.c are taking advantange of the new ao2 locking options to simplify the use of the format capabilities containers. Review: https://reviewboard.asterisk.org/r/1554/ 2012-02-28 14:47 +0000 [r357178-357214] Kevin P. Fleming * /, Makefile.rules: Make COMPILE_DOUBLE magic actually work. The build system has some special magic to ensure that if Asterisk is built with --enable-dev-mode *and* DONT_OPTIMIZE, that all the source is still compiled with the optimizer enabled (even though the result will be thrown away), because the compiler is able to find a great deal of coding errors and bugs as a result of running its optimizers. Unfortunately at some point this mode got broken, and the 'throwaway' compile of the code was no longer done with the optimizer enabled. This patch corrects that problem. ........ Merged revisions 357212 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357213 from http://svn.asterisk.org/svn/asterisk/branches/10 * main/astobj2.c: Trailing whitespace cleanup. 2012-02-28 00:42 +0000 [r357096-357145] Richard Mudgett * include/asterisk/astobj2.h, tests/test_astobj2.c, main/astobj2.c: Add ability to clone ao2 containers. Occasionally there is a need to put all objects in one container also into another container. Some reasons you might need to do this: 1) You need to reconfigure a container. You would do this by creating a new container with the new configuration and ao2_container_dup the old container into it. Then replace the old container with the new. Then destroy the old container. 2) You need the contents of a container to remain stable while operating on all of the objects. You would do this by creating a cloned container of the original with ao2_container_clone. The cloned container is a snapshot of the objects at the time of the cloning. When done, just destroy the cloned container. Review: https://reviewboard.asterisk.org/r/1746/ * main/channel.c: Fix ast_channel allocation init setting priority to -1 instead of 1. * Fix opaquification conversion error. (closes issue ASTERISK-19424) Reported by: Jeremy Pepper Patches: asterisk-19424-initialize_priority_regression.diff (license #5026) patch uploaded by Michael L. Young * main/channel.c, /: Fix callerid of Originated calls. Thanks to Matt Riddell for tracking this down. (closes issue ASTERISK-19385) Reported by: ornix ........ Merged revisions 357093 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 357095 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-27 19:55 +0000 [r357051] Jonathan Rose * include/asterisk/res_odbc.h, res/res_odbc.c: Converts locking for odbc containers from ast_mutex_lock to ao2_locks. 2012-02-27 17:03 +0000 [r357014] Sean Bright * channels/chan_iax2.c, main/netsock.c: Address comments from Mark Michelson 2012-02-27 16:50 +0000 [r357013] Kinsey Moore * apps/app_dial.c, main/channel.c, include/asterisk/app.h, main/dial.c, main/rtp_engine.c, main/ccss.c, main/features.c, UPGRADE.txt, main/app.c, include/asterisk/channel.h, configs/ccss.conf.sample, apps/app_followme.c, apps/app_queue.c, include/asterisk/ccss.h: Deprecated macro usage for connected line, redirecting, and CCSS This commit adds GoSub alternatives to connected line, redirecting, and CCSS macro hooks so that macro can finally be deprecated. This also adds deprecation warnings for those features when used and in documentation. Review: https://reviewboard.asterisk.org/r/1760/ (closes issue SWP-4256) 2012-02-27 16:31 +0000 [r357005] Sean Bright * include/asterisk/netsock.h, channels/chan_iax2.c, main/netsock.c: Convert netsock.h over to use ast_sockaddrs rather than sockaddr_in and update chan_iax2 to pass in the correct types. chan_iax2 is the only consumer for the various ast_netsock_* functions in trunk at this point, so this feels like a safe change to make. 2012-02-27 16:24 +0000 [r356987] Jonathan Rose * channels/chan_sip.c, configs/sip.conf.sample, CHANGES, channels/sip/include/sip.h: Adds an option to sip.conf that prevents diversion headers from being added. send_diversion=no will prevent Diversion headers from being added to SIP requests. This doesn't prevent Diversion from being added with dialplan such as with SIPAddHeader. (closes issue ASTERISK-16862) Reported by: rsw686 Review: https://reviewboard.asterisk.org/r/1769/ 2012-02-27 16:12 +0000 [r356966] Sean Bright * channels/chan_iax2.c: There isn't much point in saving off and restoring a value that we never use again. 2012-02-27 16:08 +0000 [r356965] Terry Wilson * /, main/features.c: Copy CDR variables when set during a bridge This patch makes sure amaflags, accountcode, and userfield get copied to the bridge CDR when set during a bridge (like via a custom feature). (closes issue ASTERISK-16990) Review: https://reviewboard.asterisk.org/r/1721/ ........ Merged revisions 356963 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356964 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-27 15:35 +0000 [r356962] Jonathan Rose * /, res/res_odbc.c: Remove possible segfaults from res_odbc by adding locks around usage of odbc handle (closes issue ASTERISK-19011) Reported by: Walter Doekes Patches: issueA19011_combine_read_and_write_locks_WORK_IN_PROGRESS.patch uploaded by Walter Doekes (license 5674) review: https://reviewboard.asterisk.org/r/1719/ review: https://reviewboard.asterisk.org/r/1622/ ........ Merged revisions 356917 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356961 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-27 14:57 +0000 [r356881-356916] Sean Bright * include/asterisk/netsock.h, main/netsock.c: Make ast_netsock_set_qos() delegate to ast_set_qos(). * include/asterisk/netsock.h: Correct typo in deprecation comment. * channels/chan_unistim.c, main/udptl.c, channels/chan_skinny.c, include/asterisk/netsock.h, pbx/pbx_dundi.c, channels/chan_mgcp.c: Prefer ast_set_qos() over ast_netsock_set_qos() * main/netsock.c: Remove trailing whitespace 2012-02-26 18:25 +0000 [r356848] Alexandr Anikin * addons/ooh323c/src/ooGkClient.c, addons/chan_ooh323.c: Add support change gatekeeper mode or ip per ooh323 reload command (issue ASTERISK-19298) Reported by: Dmitry Melekhov Patches: change_gk_on_reload-1.patch (License #5415) 2012-02-25 17:22 +0000 [r356799] Matthew Jordan * /, apps/app_voicemail.c: Fix crash in app_voicemail during close_mailbox In r354890, a memory leak in app_voicemail was fixed by properly disposing of the allocated heard/deleted pointers. However, there are situations, particularly when no messages are found in a folder, where these pointers are not allocated and not NULL. In that case, an invalid free would be attempted, which could crash app_voicemail. As there are a number of code paths where this could occur, this patch uses the number of messages detected in the folder before it attempts to free the pointers. This resolves the crash detected in the Asterisk Test Suite's check_voicemail_nominal test. ........ Merged revisions 356797 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356798 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-24 23:40 +0000 [r356697-356765] Richard Mudgett * include/asterisk/astobj2.h: astobj2.h comment tweaks. * include/asterisk/astobj2.h, main/astobj2.c: astobj2.h documentation updates. * /, channels/chan_sip.c, include/asterisk/tcptls.h, channels/sip/include/sip.h: Fix worker thread resource leak in SIP TCP/TLS. The SIP TCP/TLS worker threads were created joinable but noone could join them if they died on their own. * Fix the SIP TCP/TLS worker threads to not be created joinable. * _sip_tcp_helper_thread() only needs one parameter since the pvt parameter is only passed in as NULL and never used. (closes issue ASTERISK-19203) Reported by: Steve Davies Review: https://reviewboard.asterisk.org/r/1714/ ........ Merged revisions 356677 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356690 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-24 17:43 +0000 [r356606-356652] Matthew Jordan * /, res/res_srtp.c: Remove srtp_shutdown from res_srtp The patch for ASTERISK-19253 included properly shutting down the libsrtp library in the case of module unload. Unfortunately, not all distributions have the srtp_shutdown call. As such, this patch removes calling srtp_shutdown. ........ Merged revisions 356650 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356651 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/sip/sdp_crypto.c, include/asterisk/res_srtp.h, main/rtp_engine.c, /, include/asterisk/rtp_engine.h, res/res_srtp.c: Allow SRTP policies to be reloaded Currently, when using res_srtp, once the SRTP policy has been added to the current session the policy is locked into place. Any attempt to replace an existing policy, which would be needed if the remote endpoint negotiated a new cryptographic key, is instead rejected in res_srtp. This happens in particular in transfer scenarios, where the endpoint that Asterisk is communicating with changes but uses the same RTP session. This patch modifies res_srtp to allow remote and local policies to be reloaded in the underlying SRTP library. From the perspective of users of the SRTP API, the only change is that the adding of remote and local policies are now added in a single method call, whereas they previously were added separately. This was changed to account for the differences in handling remote and local policies in libsrtp. Review: https://reviewboard.asterisk.org/r/1741/ (closes issue ASTERISK-19253) Reported by: Thomas Arimont Tested by: Thomas Arimont Patches: srtp_renew_keys_2012_02_22.diff uploaded by Matt Jordan (license 6283) (with some small modifications for this check-in) ........ Merged revisions 356604 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356605 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-24 00:32 +0000 [r356573] Terry Wilson * channels/chan_unistim.c, channels/chan_local.c, addons/chan_ooh323.c, channels/chan_multicast_rtp.c, channels/chan_vpb.cc, main/rtp_engine.c, apps/app_meetme.c, apps/app_dictate.c, apps/app_record.c, apps/app_test.c, bridges/bridge_softmix.c, channels/chan_gtalk.c, apps/app_ices.c, res/res_musiconhold.c, channels/chan_iax2.c, bridges/bridge_multiplexed.c, main/indications.c, main/cli.c, main/channel.c, channels/chan_phone.c, channels/chan_dahdi.c, channels/chan_skinny.c, res/res_agi.c, main/features.c, apps/app_mp3.c, apps/app_dumpchan.c, main/app.c, apps/app_amd.c, channels/chan_alsa.c, apps/app_confbridge.c, addons/chan_mobile.c, main/bridging.c, channels/chan_mgcp.c, apps/app_nbscat.c, main/pbx.c, channels/chan_sip.c, res/res_fax.c, apps/app_festival.c, channels/chan_bridge.c, main/channel_internal_api.c, apps/app_fax.c, apps/app_waitforsilence.c, res/res_adsi.c, channels/chan_agent.c, bridges/bridge_simple.c, include/asterisk/channel.h, channels/chan_console.c, apps/app_talkdetect.c, channels/chan_oss.c, apps/app_speech_utils.c, channels/chan_usbradio.c, channels/chan_jingle.c, channels/chan_misdn.c, funcs/func_channel.c, main/file.c, channels/chan_nbs.c, apps/app_chanspy.c, apps/app_voicemail.c, res/res_calendar.c: Opaquification for ast_format structs in struct ast_channel Review: https://reviewboard.asterisk.org/r/1770/ 2012-02-23 20:14 +0000 [r356523] Richard Mudgett * /, channels/chan_sip.c, main/features.c: Fix blind transfer parking issues if the dialed extension is not recognized as a parking extension. Custom parking extensions may not be coded such that the first and only extension priority is the Park application. These custom parking extensions will not be recognized as parking extensions. When a call is blind transferred to an extension that is not recognized as a parking extension, the normal blind transfer code causes the transferred channel to start executing dialplan. Calls that get parked in this manner do not know the original channel name that parked the call so the original parker could never be called back if the parked call is not retrieved before the timeout time. The parking space is also announced to the call being parked as a side effect of not knowing the original parking channel. * Fix handling of BLINDTRANSFER channel variable for call parking. * Fixed SIP blind transfer using the wrong dialplan context variable to check for the parking extension. (closes issue ASTERISK-19322) Reported by: aragon Tested by: rmudgett, jparker Review: https://reviewboard.asterisk.org/r/1730/ JIRA AST-766 ........ Merged revisions 356521 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356522 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-23 15:49 +0000 [r356477] Mark Michelson * /, channels/chan_sip.c: Fix ACK routing for non-2xx responses. When we send an ACK for a 2xx response to an INVITE, we are supposed to use the learned route set. However, when we receive a non-2xx final response to an INVITE, we are supposed to send the ACK to the same place we initially sent the INVITE. We had been doing this up until the changes went in that would build a route set from provisional responses. That introduced a regression where we would use the learned route set under all circumstances. With this change, we now will set the destination of our ACK based on the invitestate. If it is INV_COMPLETED then that means that we have received a non-2xx final response (INV_TERMINATED indicates a 2xx response was received). If it is INV_CANCELLED, then that means the call is being canceled, which means that we should be ACKing a 487 response. The other change introduced here is setting the invitestate to INV_CONFIRMED when we send an ACK *after* the reqprep instead of before. This way, we can tell in reqprep more easily what the invitestate is prior to sending the ACK. (closes issue ASTERISK-19389) reported by Karsten Wemheuer patches: ASTERISK-19389v2.patch uploaded by Mark Michelson (license #5049) (with some slight modifications prior to commit) ........ Merged revisions 356475 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356476 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-23 03:27 +0000 [r356429] Paul Belanger * /, apps/app_rpt.c: Multiple revisions 356290,356335,356337 ........ r356290 | pabelanger | 2012-02-22 15:20:29 -0500 (Wed, 22 Feb 2012) | 4 lines Fix -Werror=unused-but-set-variable compiler error (gcc 4.6.2) Review: https://reviewboard.asterisk.org/r/1763/ ........ r356335 | pabelanger | 2012-02-22 16:29:25 -0500 (Wed, 22 Feb 2012) | 2 lines Add back strsep() function for previous commit ........ r356337 | pabelanger | 2012-02-22 16:36:37 -0500 (Wed, 22 Feb 2012) | 2 lines Missed one strsep() function ........ Merged revisions 356290,356335,356337 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356428 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-23 01:53 +0000 [r356397] Terry Wilson * tests/test_substitution.c, tests/test_utils.c: Fix some tests that didn't get opaquification changes Review: https://reviewboard.asterisk.org/r/1766/ 2012-02-23 00:56 +0000 [r356366] Richard Mudgett * main/channel_internal_api.c: Revert some apparently accidental spacing changes. 2012-02-22 21:22 +0000 [r356314] Terry Wilson * /, include/asterisk/calendar.h, main/loader.c, res/res_calendar.c: Track module use count for res_calendar If the res_calendar module was followed immediately by one of the calendar tech modules and "core stop gracefully" was run, Asterisk would crash. This patch adds use count tracking for res_calendar so that it is unloaded after the tech modules when shutting down gracefully. It is now not possible to unload all the of the calendar modules via "module unload res_calednar.so", but it is still possible to unload them all via "module unload -h res_calendar.so". Review: https://reviewboard.asterisk.org/r/1752/ ........ Merged revisions 356291 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356297 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-22 21:10 +0000 [r356292] Kevin P. Fleming * channels/misdn/isdn_msg_parser.c, channels/misdn/isdn_lib.c: Correct some set-but-unused variable warnings in the mISDN library. 2012-02-22 17:34 +0000 [r356259] Terry Wilson * channels/chan_misdn.c: Fix chan_misdn after the lastest opaquification changes It now compiles, but there are some unrelated warnings for set but unused variables. 2012-02-22 14:54 +0000 [r356216] Matthew Jordan * /, channels/chan_sip.c: Merged revisions 356215 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/10 ................ r356215 | mjordan | 2012-02-22 08:53:53 -0600 (Wed, 22 Feb 2012) | 32 lines Merged revisions 356214 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r356214 | mjordan | 2012-02-22 08:50:20 -0600 (Wed, 22 Feb 2012) | 27 lines Fix potential buffer overrun and memory leak when executing "sip show peers" The "sip show peers" command uses a fix sized array to sort the current peers in the peers ao2_container. The size of the array is based on the current number of peers in the container. However, once the size of the array is determined, the number of peers in the container can change, as the peers container is not locked. This could cause a buffer overrun when populating the array, if peers were added to the container after the array was created. Additionally, a memory leak of the allocated array would occur if a user caused the _show_peers method to return CLI_SHOWUSAGE. We now create a snapshot of the current peers using an ao2_callback with the OBJ_MULTIPLE flag. This size of the array is set to the number of peers that the iterator will iterate over; hence, if peers are added or removed from the peers container it will not affect the execution of the "sip show peers" command. Review: https://reviewboard.asterisk.org/r/1738/ (closes issue ASTERISK-19231) (closes issue ASTERISK-19361) Reported by: Thomas Arimont, Jamuel Starkey Tested by: Thomas Arimont, Jamuel Starkey Patches: sip_show_peers_2012_02_16.diff uploaded by mjordan (license 6283) ........ ................ 2012-02-22 00:35 +0000 [r356152-356183] Terry Wilson * main/channel.c, main/channel_internal_api.c, include/asterisk/channel.h: Rename ast_channel_emulate_dtmf_digit* funcs The accessors names for the "emulate_dtmf_digit" field on the ast_channel are misleading. Change them to ast_channel_dtmf_digit_to_emulate*. * main/channel.c, main/framehook.c, res/res_monitor.c: Fix some opaquification-related compiler warnings (closes issue ASTERISK-19419) PseudoReview - seanbright on IRC 2012-02-21 11:17 +0000 [r356111] Sean Bright * /, channels/chan_iax2.c: Make 'iax2 show callnumber usage' output make sense when an IP is passed in. ........ Merged revisions 356107 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 356108 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-21 04:31 +0000 [r356075] Kinsey Moore * /, main/ccss.c: Add missing newline to ccss state change notification Move along, nothing to see here... ........ Merged revisions 356074 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-20 23:43 +0000 [r356042] Terry Wilson * main/udptl.c, apps/app_dahdibarge.c, addons/chan_ooh323.c, cdr/cdr_sqlite3_custom.c, channels/chan_local.c, main/rtp_engine.c, apps/app_playtones.c, apps/app_record.c, apps/app_sayunixtime.c, apps/app_test.c, main/devicestate.c, apps/app_alarmreceiver.c, apps/app_chanisavail.c, apps/app_ices.c, channels/chan_iax2.c, bridges/bridge_multiplexed.c, main/cli.c, channels/chan_dahdi.c, channels/sig_analog.c, main/framehook.c, channels/chan_skinny.c, main/features.c, apps/app_dumpchan.c, pbx/pbx_realtime.c, channels/chan_alsa.c, apps/app_externalivr.c, main/bridging.c, channels/sig_ss7.c, apps/app_milliwatt.c, cdr/cdr_manager.c, apps/app_dial.c, main/pbx.c, funcs/func_timeout.c, apps/app_privacy.c, channels/chan_bridge.c, apps/app_echo.c, apps/app_softhangup.c, apps/app_fax.c, apps/app_dahdiras.c, channels/chan_agent.c, apps/app_disa.c, bridges/bridge_simple.c, include/asterisk/channel.h, apps/app_talkdetect.c, apps/app_transfer.c, main/cel.c, res/res_monitor.c, apps/app_playback.c, apps/app_speech_utils.c, channels/chan_misdn.c, apps/app_sendtext.c, funcs/func_channel.c, funcs/func_cdr.c, channels/sip/dialplan_functions.c, apps/app_macro.c, apps/app_zapateller.c, main/audiohook.c, apps/app_chanspy.c, apps/app_voicemail.c, apps/app_cdr.c, res/res_calendar.c, channels/chan_unistim.c, channels/chan_multicast_rtp.c, channels/chan_vpb.cc, apps/app_meetme.c, main/ccss.c, apps/app_dictate.c, apps/app_authenticate.c, apps/app_readexten.c, channels/chan_gtalk.c, res/res_musiconhold.c, apps/app_followme.c, main/channel.c, main/cdr.c, channels/chan_phone.c, main/dial.c, main/manager.c, apps/app_osplookup.c, bridges/bridge_builtin_features.c, res/res_agi.c, apps/app_minivm.c, main/app.c, apps/app_confbridge.c, main/image.c, apps/app_directory.c, main/message.c, apps/app_ivrdemo.c, addons/chan_mobile.c, apps/app_rpt.c, cdr/cdr_custom.c, apps/app_parkandannounce.c, channels/chan_mgcp.c, apps/app_while.c, res/res_rtp_asterisk.c, apps/app_read.c, channels/chan_sip.c, apps/app_festival.c, res/res_fax.c, cdr/cdr_syslog.c, apps/app_waitforsilence.c, main/channel_internal_api.c, res/res_adsi.c, pbx/pbx_lua.c, funcs/func_jitterbuffer.c, channels/chan_console.c, apps/app_queue.c, channels/sig_pri.c, channels/chan_oss.c, channels/chan_jingle.c, channels/chan_usbradio.c, apps/app_channelredirect.c, apps/app_forkcdr.c, apps/app_flash.c, main/abstract_jb.c, main/file.c, channels/chan_h323.c, include/asterisk/sched.h, res/snmp/agent.c, apps/app_sms.c, channels/chan_nbs.c, funcs/func_callerid.c, apps/app_verbose.c, apps/app_stack.c: ast_channel opaquification of pointers and integral types Review: https://reviewboard.asterisk.org/r/1753/ 2012-02-20 18:40 +0000 [r355903-355999] Sean Bright * /, channels/chan_iax2.c: Remove spurious warning when 'qualifyfreqnotok' is set successfully. (closes issue ASTERISK-17176) Reported by: John Covert Tested by: Sean Bright Patches: chan_iax2.c.qualifyfreqnotok.patch uploaded by John Covert (license 5512) ........ Merged revisions 355997 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355998 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_dahdi.c, /: This was a LOG_NOTICE, so roll it back. ........ Merged revisions 355952 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355953 from http://svn.asterisk.org/svn/asterisk/branches/10 * channels/chan_dahdi.c, /: Change some debug messages from LOG_DEBUG to ast_debug. ........ Merged revisions 355949 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355950 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_iax2.c: Add some boilerplate documentation for IAXVAR and IAXPEER. ........ Merged revisions 355904 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355905 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, channels/chan_iax2.c: Set the length of the ast_sockaddr, so that we can set it's port later. Without this, the call to ast_sockaddr_set_port a few lines later is a noop. ........ Merged revisions 355901 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355902 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-18 08:02 +0000 [r355852] Alec L Davis * channels/sig_pri.h, channels/chan_dahdi.c, channels/sig_analog.c, channels/sig_ss7.h, /, channels/sig_analog.h, channels/sig_pri.c, channels/sig_ss7.c: push 'outgoing' flag from sig_XXX up to chan_dahdi 'p->outgoing' in chan_dahdi and sig_analog wern't kept in sync, particulary FXS ast_hangup didn't clear the 'outgoing' flag. sig_pri and sig_ss7 were keeping 'outgoing' flag insync. Now provides a callback for all the low level sig_XXX modules. (issue ASTERISK-19316) alecdavis (license 585) Reported by: Jeremy Pepper Tested by: alecdavis Review: https://reviewboard.asterisk.org/r/1747/ ........ Merged revisions 355850 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355851 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-17 22:03 +0000 [r355795] Sean Bright * configs/iax.conf.sample, /, channels/chan_iax2.c: Don't allow trunkfreq to be greater than 1000ms. ........ Merged revisions 355793 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355794 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-17 19:56 +0000 [r355749] Tilghman Lesher * main/asterisk.c: Non-verbose output should always go to the remote console, regardless of the previous level. 2012-02-17 19:35 +0000 [r355748] Sean Bright * /, channels/chan_iax2.c: Pass the correct value to ast_timer_set_rate() for IAX2 trunking. IAX2 uses the trunkfreq variable to determine how often to send trunk packets, but this value is in milliseconds while ast_timer_set_rate() expects the rate argument to be ticks per second. So we divide 1000 by trunkfreq and pass that in instead. With a default of 20ms, this change makes IAX2 send trunk packets every 20ms instead of every 50ms. Tracked down by myself and Bob Wienholt. ........ Merged revisions 355746 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355747 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-17 19:22 +0000 [r355745] Mark Michelson * /, channels/chan_sip.c: Fix regressions with regards to route-set creation on early dialogs. This fixes two main issues: 1. Asterisk would send a CANCEL to the route created by the provisional response instead of using the same destination it did in the initial INVITE. 2. If a new route set arrives in a 200 OK than was in the 1XX response (perfectly possible if our outbound INVITE gets forked), then the route set in the 200 OK needs to overwrite the route set in the 1XX response. (closes issue ASTERISK-19358) Reported by: Karsten Wemheuer Tested by: Karsten Wemheuer patches: ASTERISK-19358.patch uploaded by Mark Michelson (license 5049) ASTERISK-19358.patch uploaded by Stefan Schmidt (license 6034) Review: https://reviewboard.asterisk.org/r/1749 ........ Merged revisions 355732 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355733 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-16 22:00 +0000 [r355667] Paul Belanger * apps/app_rpt.c: Fix channel opaquification for app_rpt 2012-02-16 20:03 +0000 [r355624] Sean Bright * /, main/audiohook.c: Revert a change to audio_audiohook_write_list that had no affect. When I made this change initially, I was under the false impression that the audiohooks structure remained on the channel after all of the hooks had been detached. This is not the case, ast ast_read takes care of removing the audiohooks structure if the lists are empty. ........ Merged revisions 355622 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355623 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-16 19:51 +0000 [r355576-355621] Richard Mudgett * /, configure, include/asterisk/autoconfig.h.in, autoconf/ast_c_declare_check.m4 (added), configure.ac, formats/format_ogg_vorbis.c: Fix compile problem when old version of libvorbisfile v1.1.2 is used. The principle difference between libvorbisfile v1.1.2 and newer (at least v1.2.0) is the addition of the predefined callbacks OV_CALLBACKS_xxx in vorbis/vorbisfile.h used for ov_open_callbacks(). * Updated the configure script to detect if libvorbisfile.h declares OV_CALLBACKS_NOCLOSE. * Copied the declaration of OV_CALLBACKS_NOCLOSE from v1.2.0 to allow v1.1.2 to compile. (closes issue ASTERISK-19370) Reported by: Jonn Taylor ........ Merged revisions 355608 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355620 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, res/res_monitor.c: Fix AMI Monitor action without File header converting channel name into filename. * Fix potential Solaris crash if Monitor application has a urlbase and no fname_base option. ........ Merged revisions 355574 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355575 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-15 19:29 +0000 [r355450-355531] Sean Bright * /, channels/chan_iax2.c: When IAX2 debugging is enabled, make sure to log 'apathetic' messages too. ........ Merged revisions 355529 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355530 from http://svn.asterisk.org/svn/asterisk/branches/10 * build_tools/cflags.xml, channels/chan_iax2.c: Remove IAX_OLD_FIND from chan_iax2. * /, channels/chan_iax2.c: Use TRUNK_CALL_START as originally intended. Back in r646, TRUNK_CALL_START was added and defined as 0x4000. That same value was also hard-coded in one part of the IAX2 code instead of using the #define. TRUNK_CALL_START has changed over the years (for dealing with LOW_MEMORY), but the hard-coded usage was never updated to match. This patch fixes that. ........ Merged revisions 355448 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355449 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-14 20:27 +0000 [r355413] Tilghman Lesher * utils/refcounter.c, main/pbx.c, funcs/func_timeout.c, include/asterisk/autoconfig.h.in, utils/hashtest.c, UPGRADE.txt, CHANGES, main/config.c, configs/logger.conf.sample, main/loader.c, include/asterisk/logger.h, main/manager.c, main/logger.c, utils/ael_main.c, utils/hashtest2.c, codecs/codec_dahdi.c, main/stdtime/localtime.c, main/asterisk.c, addons/res_config_mysql.c: Re-commit the verbose branch. This change permits each verbose destination (consoles, logger) to have its own concept of what the verbosity level is. The big feature here is that the logger will now be able to capture a particular verbosity level without condemning each console to need to suffer that level of verbosity. Additionally, a stray 'core set verbose' will no longer change what will go to the log. Review: https://reviewboard.asterisk.org/r/1599/ 2012-02-14 19:29 +0000 [r355321-355376] Richard Mudgett * /, configure, include/asterisk/autoconfig.h.in, configure.ac, formats/format_ogg_vorbis.c: Fix voicemail problems when using ogg/vorbis. Ogg/vorbis was fairly useless as a voicemail file format because it did not implement the seek and tell format callbacks among other problems. Since we were already using the libvorbis and libvorbisenc libraries we can use libvorbisfile as it is also part of the vorbis library package. * Made use the libvorbisfile to handle the ogg/vorbis file stream. The format_ogg_vorbis.c is now mostly a wrapper around libvorbisfile. (closes issue ASTERISK-16926) Reported by: sque Patches: ogg_vorbis_use_libvorbisfile.patch (license #6108) patch uploaded by sque ........ Merged revisions 355365 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355375 from http://svn.asterisk.org/svn/asterisk/branches/10 * /, cel/cel_sqlite3_custom.c: Fix lock typo that should be unlock in cel_sqlite_custom reload. (closes issue ASTERISK-19356) Reported by: Alex Villacis Lasso Patches: asterisk-1.8.9.2-cel_sqlite3_custom-fix-reload-locking-typo.patch (license #5617) patch uploaded by Alex Villacis Lasso Review: https://reviewboard.asterisk.org/r/1740/ ........ Merged revisions 355319 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355320 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-14 16:28 +0000 [r355274] Mark Michelson * /, channels/chan_sip.c: Properly invert the return of a strncmp call. This was causing identification that should have been made private to be public. (closes issue AST-814) reported by Patrick Anderson Patches: chan_sip.c.diff uploaded by Patrick Anderson (license 5430) ........ Merged revisions 355268 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355271 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-14 15:58 +0000 [r355230] Jason Parker * /, configs/cdr_sqlite3_custom.conf.sample: Don't enable sqlite3 CDRs by default in sample configs. ........ Merged revisions 355228 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355229 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-14 13:35 +0000 [r355184] Sean Bright * /, channels/chan_iax2.c: Clear the high order bit from the destination call number before sending. send_apathetic_reply takes the incoming frame's source call number as the destination call number for the outgoing frame. If the incoming frame was a full frame, then the high order bit of the source call number is set and will be interpreted as a retransmit when sent back out as the destination call number. ........ Merged revisions 355182 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 355183 from http://svn.asterisk.org/svn/asterisk/branches/10 2012-02-14 09:58 +0000 [r355138] Alexandr Anikin * addons/chan_ooh323.c, /: call manager