2009-01-21 Leif Madsen * Asterisk 1.4.23 released. 2009-01-20 18:49 -0500 [r169581] Terry Wilson * One-touch parking was calling back the wrong channel on timeout 2009-01-20 13:40 -0500 [r169485] Terry Wilson * Don't play audio to the channel if we've masqueraded (closes issue #14066) Reported by: bluefox Tested by: otherwiseguy, bluefox 2009-01-16 Russell Bryant * Asterisk 1.4.23-rc4 released. 2009-01-16 00:19 +0000 [r168745] Steve Murphy * pbx/pbx_ael.c: This patch fixes a problem where a goto (or jump, in this case) fails a consistency check because it can't find a matching extension. The problem was a missing instruction to end the range notation in the code where it converts the pattern into a regex and uses the regex code to determine the match. I tested using the AEL code the user supplied, and now, the consistency check passes. (closes issue #14141) Reported by: dimas 2009-01-15 18:43 +0000 [r168721] Olle Johansson * configs/extconfig.conf.sample: Meetme actually has realtime but wasn't documented 2009-01-15 18:22 +0000 [r168716] Terry Wilson * res/res_features.c: Convert call to park_call_full to masq_park_call_announce Since we removed the AST_PBX_KEEPALIVE return value, we need to use masqueraded parking, otherwise we will try to call ast_hangup() in __pbx_run() and in do_parking_thread() and then promptly crash. (closes issue #14215) Reported by: waverly360 Tested by: otherwiseguy (closes issue #14228) Reported by: kobaz Tested by: otherwiseguy 2009-01-15 01:20 +0000 [r168633] Tilghman Lesher * /: Blocked revision 168632 from /branches/1.2: 1.2 regression on security fix AST-2009-001 (Closes issue #14238) 2009-01-15 00:11 +0000 [r168628] Mark Michelson * apps/app_queue.c: Fix some crashes from bad datastore handling in app_queue.c * The queue_transfer_fixup function was searching for and removing the datastore from the incorrect channel, so this was fixed. * Most datastore operations regarding the queue_transfer datastore were being done without the channel locked, so proper channel locking was added, too. (closes issue #14086) Reported by: ZX81 Patches: 14086v2.patch uploaded by putnopvut (license 60) Tested by: ZX81, festr 2009-01-14 21:48 +0000 [r168622] Richard Mudgett * channels/misdn/isdn_lib.c: * Fixed create_process() allocation of process ID values. The allocated process IDs could overflow their respective NT and TE fields. Affects outgoing calls. 2009-01-14 20:52 +0000 [r168614] Sean Bright * contrib/scripts/autosupport: Update autosupport script to supply info for both Zaptel and DAHDI in 1.4 and be sure to run dahdi_test in 1.6.x and trunk instead of zttest. (closes issue #14132) Reported by: dsedivec Patches: asterisk-1.4-autosupport.patch uploaded by dsedivec (license 638) asterisk-trunk-autosupport.patch uploaded by dsedivec (license 638) 2009-01-14 19:34 +0000 [r168608] Steve Murphy * apps/app_page.c: app_page was failing to compile in dev-mode on my gcc-4.2.4 system. This change gets rid of the warning. 2009-01-14 19:02 +0000 [r168603] Tilghman Lesher * main/udptl.c: Don't read into a buffer without first checking if a value is beyond the end. (closes issue #13600) Reported by: atis Patches: 20090106__bug13600.diff.txt uploaded by Corydon76 (license 14) Tested by: atis 2009-01-14 16:19 +0000 [r168598] Mark Michelson * channels/chan_agent.c: Fix a logic error I found while searching through chan_agent.c I found that the allow_multiple_logins function would never return 0 due to an incorrect comparison being used when traversing the list of agents. While I was modifying this function, I also did a little bit of coding guidelines cleanup, too. 2009-01-14 01:27 +0000 [r168593] Terry Wilson * apps/app_page.c: Don't overflow when paging more than 128 extensions The number of available slots for calls in app_page was hardcoded to 128. Proper bounds checking was not in place to enforce this limit, so if more than 128 extensions were passed to the Page() app, Asterisk would crash. This patch instead dynamically allocates memory for the ast_dial structures and removes the (non-functional) arbitrary limit. This issue would have special importance to anyone who is dynamically creating the argument passed to the Page application and allowing more than 128 extensions to be added by an outside user via some external interface. The patch posted by a_villacis was slightly modified for some coding guidelines and other cleanups. Thanks, a_villacis! (closes issue #14217) Reported by: a_villacis Patches: 20080912-asterisk-app_page-fix-buffer-overflow.patch uploaded by a (license 660) Tested by: otherwiseguy 2009-01-13 19:13 +0000 [r168561] Russell Bryant * main/indications.c, main/channel.c, apps/app_read.c, channels/chan_misdn.c, funcs/func_channel.c, include/asterisk/indications.h, apps/app_disa.c, main/app.c, res/snmp/agent.c, include/asterisk/channel.h, res/res_indications.c: Revert unnecessary indications API change from rev 122314 2009-01-13 18:34 +0000 [r168551] Terry Wilson * channels/chan_sip.c: Don't pass a value with a side effect to a macro (closes issue #14176) Reported by: paraeco Patches: chan_sip.c.diff uploaded by paraeco (license 658) 2009-01-13 17:48 +0000 [r168546] Tilghman Lesher * funcs/func_logic.c: If either conditional is NULL, don't try copying it. (closes issue #14226) Reported by: caspy Patches: 20090113__bug14226.diff.txt uploaded by Corydon76 (license 14) 2009-01-12 21:42 +0000 [r168507-168516] Jeff Peeler * res/res_agi.c: (closes issue #13881) Reported by: hoowa Update the app CDR field for AGI commands that are not executing an application via "exec". * channels/chan_agent.c: (closes issue #12269) Reported by: IgorG Tested by: denisgalvao This gits rid of the notion of an owning_app allowing the request and hangup to be initiated by different threads. Originating from an active agent channel requires this. The implementation primarily changes __login_exec to wait on a condition variable rather than a lock. Review: http://reviewboard.digium.com/r/35/ 2009-01-12 14:58 +0000 [r168482] Mark Michelson * channels/chan_sip.c: I am reverting the fix made in revision 168128 (and its upward merges) after being contacted by Olle Johansson and being shown how this fix is incorrect. Thanks to Olle for clearing this up for me. 2009-01-12 14:57 +0000 [r168480] Russell Bryant * configs/indications.conf.sample: s/ringdance/ringcadence/ for Bulgaria 2009-01-10 20:47 +0000 [r168267-168382] Kevin P. Fleming * README: small commit to test new server * README: small commit to test new server * sounds/Makefile: update to use new sound file packages that include license files 2009-01-09 22:14 +0000 [r168198] Russell Bryant * res/res_musiconhold.c: Make this compile for mvanbaak 2009-01-09 21:28 +0000 [r168191] Richard Mudgett * channels/chan_misdn.c: * Fix for JIRA AST-175/ABE-1757 * Miscellaneous doxygen comments added. 2009-01-09 20:08 +0000 [r168128] Mark Michelson * channels/chan_sip.c: Add check_via calls to more request handlers INFO, NOTIFY, OPTIONS, REFER, and MESSAGE requests were not checking the topmost Via to determine where to send the response. Adding check_via calls to those request handlers solves this. (closes issue #13071) Reported by: baron Patches: check_via.patch uploaded by baron (license 531) Tested by: baron 2009-01-08 22:08 +0000 [r167840] Tilghman Lesher * res/res_agi.c: Don't truncate database results at 255 chars. (closes issue #14069) Reported by: evandro Patches: 20081214__bug14069.diff.txt uploaded by Corydon76 (license 14) 2009-01-08 17:24 +0000 [r167620-167714] Kevin P. Fleming * channels/chan_sip.c: remove an unnecessary argument to queue_request() * channels/chan_sip.c: When a SIP request or response arrives for a dialog with an associated Asterisk channel, and the lock on that channel cannot be obtained because it is held by another thread, instead of dropping the request/response, queue it for later processing when the channel lock becomes available. http://reviewboard.digium.com/r/117/ 2009-01-07 22:35 +0000 [r167432-167566] Russell Bryant * main/file.c: Fix the last couple of places where free() was improperly used directly. * main/file.c: Don't fclose() the file early, the filestream destructor will handle it. * main/file.c: Only try to close the file if one was actually opened * main/file.c: Don't use free() directly. This caused a crash since ast_filestream is now an ao2 object. Reported by JunK-Y on IRC, #asterisk-dev * main/indications.c: Treat an empty string the same way as a NULL country argument. In passing, simplify the handling of returning a default tone zone. 2009-01-06 21:35 +0000 [r167299] Mark Michelson * main/db.c: Use the correct variable when creating the format string (closes issue #14177) Reported by: nic_bellamy Patches: asterisk-trunk-svn-r167242-ast_db_gettree.patch uploaded by nic (license 299) 2009-01-06 20:48 +0000 [r167260] Tilghman Lesher * /, channels/chan_iax2.c: Merged revisions 167259 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r167259 | tilghman | 2009-01-06 14:44:03 -0600 (Tue, 06 Jan 2009) | 2 lines Security fix AST-2009-001. ........ 2009-01-05 16:51 +0000 [r167179] Mark Michelson * channels/chan_sip.c: A couple of changes to T.38 SDP attribute handling There are some boolean attributes for T.38 such as T38FaxFillBitRemoval, T38FaxTranscodingMMR, and T38FaxTranscodingJBIG. By simply being present, we should treat these as a "true" value. The current code, however, was requiring a 1 or 0 as the value of the attribute in order to parse it. This is due to the fact that there are some T.38 endpoints and gateways that also transmit this information incorrectly. This patch follows the "be liberal in what you accept and strict in what you send" philosophy by accepting both the correctly- and incorrectly-formatted attributes, but only sending information as it is supposed to be sent. It was also discovered that a particular type of T.38 gateway sends some non-standard T.38 SDP attributes. Instead of using T38FaxMaxDatagram and T38MaxBitRate, it used T38MaxDatagram and T38FaxMaxRate respectively. We now will properly accept these attributes as well. Note that there are a lot of patches cited in the below commit message template. This is because the person who submitted these patches is an awesome person and wrote 1.4, 1.6.0, and 1.6.1 variants. (closes issue #13976) Reported by: linulin Patches: chan_sip.c.1.4-update1.diff uploaded by arcivanov (license 648) chan_sip.c.1.6.0-update1.diff uploaded by arcivanov (license 648) chan_sip.c.1.6.1-update1.diff uploaded by arcivanov (license 648) chan_sip.c.1.4-relaxedT38_update1.diff uploaded by arcivanov (license 648) chan_sip.c.1.6.0-relaxedT38_update1.diff uploaded by arcivanov (license 648) chan_sip.c.1.6.1-relaxedT38_update1.diff uploaded by arcivanov (license 648) Tested by: arcivanov 2009-01-01 00:01 +0000 [r166953-167095] Tilghman Lesher * channels/chan_alsa.c: Repeat attempts to write when we receive -EAGAIN from the driver, as detailed in the ALSA sample code (see http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html#a32) Reported by: Jerry Geis (via the -users list) Fixed by: me (license 14) * channels/chan_local.c: Also inherit the musiconhold class. (Closes #14153) Reported by: Jerry Geis, via the users list. Patch by: me (license 14) 2008-12-28 15:13 +0000 [r166772] Russell Bryant * channels/misdn_config.c: Use strncat() instead of an sprintf() in which source and target buffers overlap http://lists.digium.com/pipermail/asterisk-dev/2008-December/035919.html 2008-12-23 15:35 +0000 [r166592] Tilghman Lesher * main/asterisk.c, channels/chan_iax2.c: Compile, even if both DAHDI and Zaptel are not installed. (Closes issue #14120) 2008-12-23 15:16 +0000 [r166568] Mark Michelson * main/channel.c: Fix a crash resulting from a datastore with inheritance but no duplicate callback The fix for this is to simply set the newly created datastore's data pointer to NULL if it is inherited but has no duplicate callback. (closes issue #14113) Reported by: francesco_r Patches: 14113.patch uploaded by putnopvut (license 60) Tested by: francesco_r 2008-12-23 04:05 +0000 [r166509] Tilghman Lesher * main/channel.c: Use the integer form of condition for integer comparisons. (closes issue #14127) Reported by: andrew 2008-12-22 20:56 +0000 [r166380] Mark Michelson * channels/chan_dahdi.c: Fix a deadlock relating to channel locks and autoservice It has been discovered that if a channel is locked prior to a call to ast_autoservice_stop, then it is likely that a deadlock will occur. The reason is that the call to ast_autoservice_stop has a check built into it to be sure that the thread running autoservice is not currently trying to manipulate the channel we are about to pull out of autoservice. The autoservice thread, however, cannot advance beyond where it currently is, though, because it is trying to acquire the lock of the channel for which autoservice is attempting to be stopped. The gist of all this is that a channel MUST NOT be locked when attempting to stop autoservice on the channel. In this particular case, the channel was locked by a call to ast_read. A call to ast_exists_extension led to autoservice being started and stopped due to the existence of dialplan switches. It may be that there are future commits which handle the same symptoms but in a different location, but based on my looks through the code, it is very rare to see a construct such as this one. (closes issue #14057) Reported by: rtrauntvein Patches: 14057v3.patch uploaded by putnopvut (license 60) Tested by: rtrauntvein Review: http://reviewboard.digium.com/r/107/ 2008-12-22 17:22 +0000 [r166262-166297] Russell Bryant * main/utils.c: Fix up timeout handling in ast_carefulwrite(). * include/asterisk/strings.h, res/res_musiconhold.c: Re-work ref count handling of MoH classes using astobj2 to resolve crashes. (closes issue #13566) Reported by: igorcarneiro Tested by: russell Review: http://reviewboard.digium.com/r/106/ 2008-12-19 23:34 +0000 [r166157] Mark Michelson * main/channel.c, funcs/func_audiohookinherit.c (added), channels/chan_sip.c, include/asterisk/audiohook.h, main/audiohook.c, CHANGES: Backport of AUDIOHOOK_INHERIT for Asterisk 1.4 (closes issue #13538) Reported by: mbit Patches: 13538.patch uploaded by putnopvut (license 60) Tested by: putnopvut 2008-12-19 22:30 +0000 [r166093] Steve Murphy * apps/app_dial.c, res/res_features.c, include/asterisk/pbx.h, apps/app_queue.c: This merges the masqpark branch into 1.4 These changes eliminate the need for (and use of) the KEEPALIVE return code in res_features.c; There are other places that use this result code for similar purposes at a higher level, these appear to be left alone in 1.4, but attacked in trunk. The reason these changes are being made in 1.4, is that parking ends a channel's life, in some situations, and the code in the bridge (and some other places), was not checking the result code properly, and dereferencing the channel pointer, which could lead to memory corruption and crashes. Calling the masq_park function eliminates this danger in higher levels. A series of previous commits have replaced some parking calls with masq_park, but this patch puts them ALL to rest, (except one, purposely left alone because a masquerade is done anyway), and gets rid of the code that tests the KEEPALIVE result, and the NOHANGUP_PEER result codes. While bug 13820 inspired this work, this patch does not solve all the problems mentioned there. I have tested this patch (again) to make sure I have not introduced regressions. Crashes that occurred when a parked party hung up while the parking party was listening to the numbers of the parking stall being assigned, is eliminated. These are the cases where parking code may be activated: 1. Feature one touch (eg. *3) 2. Feature blind xfer to parking lot (eg ##700) 3. Run Park() app from dialplan (eg sip xfer to 700) (eg. dahdi hookflash xfer to 700) 4. Run Park via manager. The interesting testing cases for parking are: I. A calls B, A parks B a. B hangs up while A is getting the numbers announced. b. B hangs up after A gets the announcement, but before the parking time expires c. B waits, time expires, A is redialed, A answers, B and A are connected, after which, B hangs up. d. C picks up B while still in parking lot. II. A calls B, B parks A a. A hangs up while B is getting the numbers announced. b. A hangs up after B gets the announcement, but before the parking time expires c. A waits, time expires, B is redialed, B answers, A and B are connected, after which, A hangs up. d. C picks up A while still in parking lot. Testing this throroughly involves acting all the permutations of I and II, in situations 1,2,3, and 4. Since I added a few more changes (ALL references to KEEPALIVE in the bridge code eliimated (I missed one earlier), I retested most of the above cases, and no crashes. H-extension weirdness. Current h-extension execution is not completely correct for several of the cases. For the case where A calls B, and A parks B, the 'h' exten is run on A's channel as soon as the park is accomplished. This is expected behavior. But when A calls B, and B parks A, this will be current behavior: After B parks A, B is hung up by the system, and the 'h' (hangup) exten gets run, but the channel mentioned will be a derivative of A's... Thus, if A is DAHDI/1, and B is DAHDI/2, the h-extension will be run on channel Parked/DAHDI/1-1, and the start/answer/end info will be those relating to Channel A. And, in the case where A is reconnected to B after the park time expires, when both parties hang up after the joyful reunion, no h-exten will be run at all. In the case where C picks up A from the parking lot, when either A or C hang up, the h-exten will be run for the C channel. CDR's are a separate issue, and not addressed here. As to WHY this strange behavior occurs, the answer lies in the procedure followed to accomplish handing over the channel to the parking manager thread. This procedure is called masquerading. In the process, a duplicate copy of the channel is created, and most of the active data is given to the new copy. The original channel gets its name changed to XXX and keeps the PBX information for the sake of the original thread (preserving its role as a call originator, if it had this role to begin with), while the new channel is without this info and becomes a call target (a "peer"). In this case, the parking lot manager thread is handed the new (masqueraded) channel. It will not run an h-exten on the channel if it hangs up while in the parking lot. The h exten will be run on the original channel instead, in the original thread, after the bridge completes. See bug 13820 for our intentions as to how to clean up the h exten behavior. Review: http://reviewboard.digium.com/r/29/ 2008-12-19 19:48 +0000 [r165991] Jeff Peeler * include/asterisk/dahdi_compat.h, main/asterisk.c, main/channel.c, apps/app_dahdibarge.c, channels/chan_dahdi.c, apps/app_meetme.c, apps/app_dahdiscan.c, codecs/codec_dahdi.c, res/res_musiconhold.c, channels/chan_iax2.c: (closes issue #13480) Reported by: tzafrir Replace a bunch of if defined checks for Zaptel/DAHDI through several new defines in dahdi_compat.h. This removes a lot of code duplication. Example from bug: #ifdef HAVE_ZAPTEL fd = open("/dev/zap/pseudo", O_RDWR); #else fd = open("/dev/dahdi/pseudo", O_RDWR); #endif is replaced with: fd = open(DAHDI_FILE_PSEUDO, O_RDRW); 2008-12-19 15:03 +0000 [r165796-165889] Russell Bryant * apps/app_chanspy.c: Ensure that the chanspy datastore is fully initialized. This patch resolved some random crash issues observed by a user on a BSD system (closes issue #14111) Reported by: ys Patches: app_chanspy.c.diff uploaded by ys (license 281) * main/utils.c: Make ast_carefulwrite() be more careful. This patch handles some additional cases that could result in partial writes to the file description. This was done to address complaints about partial writes on AMI. (issue #13546) (more changes needed to address potential problems in 1.6) Reported by: srt Tested by: russell Review: http://reviewboard.digium.com/r/99/ 2008-12-18 21:14 +0000 [r165767] Tilghman Lesher * apps/app_voicemail.c: Add mutexes around accesses to the IMAP library interface. This prevents certain crashes, especially when shared mailboxes are used. (closes issue #13653) Reported by: howardwilkinson Patches: asterisk-1.4.21.2-appvoicemail-sharedimap-lock.patch uploaded by howardwilkinson (license 590) Tested by: jpeeler 2008-12-18 18:52 +0000 [r165661] Russell Bryant * res/res_musiconhold.c: Set the process group ID on the MOH process so that all children will get killed (closes issue #14099) Reported by: caspy Patches: res_musiconhold.c.patch.killpg.try2 uploaded by caspy (license 645) 2008-12-18 17:11 +0000 [r165537-165591] Joshua Colp * main/rtp.c: Only care about a compatible codec for early bridging if we are actually bridging to another channel. If we are not we actually want to bring the audio back to us. (closes issue #13545) Reported by: davidw * apps/app_followme.c: Do not crash if we are not passed in a followme id. (closes issue #14106) Reported by: ys Patches: app_followme.c.2.diff uploaded by ys (license 281) 2008-12-17 Russell Bryant * Asterisk 1.4.23-rc3 released. 2008-12-17 21:14 +0000 [r165317] Tilghman Lesher * apps/app_macro.c: Reverse the fix from issue #6176 and add proper handling for that issue. (Closes issue #13962, closes issue #13363) Fixed by myself (license 14) 2008-12-17 20:51 +0000 [r164977-165255] Mark Michelson * apps/app_meetme.c, apps/app_realtime.c, apps/app_directory.c, apps/app_queue.c: Fix some memory leaks found while looking at how realtime configs are handled. Also cleaned up some coding guidelines violations in app_realtime.c, mostly related to spacing * channels/chan_sip.c: After looking through SIP registration code most of the day, this is one of the few things I could find that was just plain wrong. Even though it probably isn't possible for it to happen, it seems weird to have code that checks if a pointer is NULL and then immediately dereferences that pointer if it was NULL. 2008-12-16 21:38 +0000 [r164672-164881] Russell Bryant * main/utils.c: Fix an issue where DEBUG_THREADS may erroneously report that a thread is exiting while holding a lock. If the last lock attempt was a trylock, and it failed, it will still be in the list of locks so that it can be reported. (closes issue #13219) Reported by: pj * apps/app_macro.c: Do not dereference the channel if AST_PBX_KEEPALIVE has been returned. This is a bug I noticed while looking at the code for app_macro. This return code means that another thread has assumed ownership of the channel and it can no longer be touched. (I hate this return code with a passion, by the way.) * main/manager.c: Add "restart gracefully" to the AMI blacklist of CLI commands. "module unload" was already identified as a command that can not be used from the AMI. "restart gracefully" effectively unloads all modules, and will run in to the same problems. (closes issue #13894) Reported by: kernelsensei * include/asterisk/threadstorage.h, main/threadstorage.c: Fix memory leak and invalid reporting issues with DEBUG_THREADLOCALS. One issue was that the ast_mutex_* API was being used within the context of the thread local data destructors. We would go off and allocate more thread local data while the pthread lib was in the middle of destroying it all. This led to a memory leak. Another issue was an invalid argument being provided to the the object_add API call. (closes issue #13678) Reported by: ys Tested by: Russell * channels/chan_sip.c: Fix a memory leak related to the use of the "setvar" configuration option. The problem was that these variables were being appended to the list of vars on the sip_pvt every time a re-registration or re-subscription came in. Since it's just a waste of memory to put them there unless the request was an INVITE, then the fix is to check the request type before copying the vars. (closes issue #14037) Reported by: marvinek Tested by: russell 2008-12-16 15:15 +0000 [r164634] Steve Murphy * main/pbx.c: I added a sentence to clarify why - and ' ' are ignored in patterns as per bug 14076. Leif says he'll put some stuff about it in the extensions.conf sample, etc. 2008-12-16 14:28 +0000 [r164605] Russell Bryant * res/res_musiconhold.c: Don't try to change working directory if a directory was not configured. (closes issue #14089) Reported by: caspy 2008-12-15 19:53 +0000 [r164416-164422] Mark Michelson * include/asterisk/pbx.h: Add the deadlock note to ast_spawn_extension as well * include/asterisk/channel.h, include/asterisk/pbx.h: Add notes to autoservice and pbx doxygen regarding a potential deadlock scenario so that it is avoided in the future 2008-12-15 18:11 +0000 [r164204-164350] Joshua Colp * channels/chan_sip.c: Do not try to unlock a non-existant channel if the transfer fails. (closes issue #13800) Reported by: dwagner Patches: asterisk-1.4.22-chan-sip-nullp.patch uploaded by tweety (license 608) * configure, include/asterisk/autoconfig.h.in, configure.ac, include/asterisk/channel.h: Use autoconf logic to determine whether the system has timersub or not. Do not blindly assume Solaris does not. (closes issue #13838) Reported by: ano * apps/app_dial.c: Can we try not to assign an unsigned int to -1? (closes issue #14074) Reported by: wetwired 2008-12-15 14:31 +0000 [r164201] Russell Bryant * main/channel.c, res/res_features.c: Handle a case where a call can be bridged to a channel that is still ringing. The issue that was reported was about a case where a RINGING channel got redirected to an extension to pick up a call from parking. Once the parked call got taken out of parking, it heard silence until the other side answered. Ideally, the caller that was parked would get a ringing indication. This patch fixes this case so that the caller receives ringback once it comes out of parking until the other side answers. The fixes are: - Make sure we remember that a channel was an outgoing channel when doing a masquerade. This prevents an erroneous ast_answer() call on the channel, which causes a bogus 200 OK to be sent in the case of SIP. - Add some additional comments to explain related parts of code. - Update the handling of the ast_channel visible_indication field. Storing values that are not stateful is pointless. Control frames that are events or commands should be ignored. - When a bridge first starts, check to see if the peer channel needs to be given ringing indication because the calling side is still ringing. - Rework ast_indicate_data() a bit for the sake of readability. (closes issue #13747) Reported by: davidw Tested by: russell Review: http://reviewboard.digium.com/r/90/ 2008-12-13 23:22 +0000 [r164082] Tilghman Lesher * apps/app_dial.c: Change the default calldurationlimit from the special value 0 to -1, so we can better detect an exceptional case. This follows on to the changes made in revision 156386. Related to issue #13851. (closes issue #13974) Reported by: paradise Patches: 20081208__bug13974.diff.txt uploaded by Corydon76 (license 14) Tested by: file, blitzrage, ZX81 2008-12-12 22:20 +0000 [r163785] Russell Bryant * /: Set the reviewboard:url property on 1.4, as well 2008-12-12 22:03 +0000 [r163761] Tilghman Lesher * main/asterisk.c, main/editline/read.c: Simple fix for Ctrl-C not immediately exiting Asterisk, but also add a pointer inside editline to look back to asterisk.c, so others don't spend as much time as I did looking (in the wrong place) for the appropriate function. Reported by: ZX81, via the #asterisk-users channel Fixed by: me (license 14) 2008-12-12 14:40 +0000 [r163448-163511] Russell Bryant * pbx/pbx_dundi.c: Specify uint32_t for variables storing a CRC32 so that it is actually 32 bits on 64-bit machines, as well. (inspired by issue #13879) * main/channel.c, main/autoservice.c, include/asterisk/channel.h: Resolve issues that could cause DTMF to be processed out of order. These changes come from team/russell/issue_12658 1) Change autoservice to put digits on the head of the channel's frame readq instead of the tail. If there were frames on the readq that autoservice had not yet read, the previous code would have resulted in out of order processing. This required a new API call to queue a frame to the head of the queue instead of the tail. 2) Change up the processing of DTMF in ast_read(). Some of the problems were the result of having two sources of pending DTMF frames. There was the dtmfq and the more generic readq. Both were used for pending DTMF in various scenarios. Simplifying things to only use the frame readq avoids some of the problems. 3) Fix a bug where a DTMF END frame could get passed through when it shouldn't have. If code set END_DTMF_ONLY in the middle of digit emulation, and a digit arrived before emulation was complete, digits would get processed out of order. (closes issue #12658) Reported by: dimas Tested by: russell, file Review: http://reviewboard.digium.com/r/85/ 2008-12-11 23:35 +0000 [r163383] Tilghman Lesher * main/asterisk.c: When a Ctrl-C or Ctrl-D ends a remote console, on certain shells, the terminal is messed up. By intercepting those events with a signal handler in the remote console, we can avoid those issues. (closes issue #13464) Reported by: tzafrir Patches: 20081110__bug13464.diff.txt uploaded by Corydon76 (license 14) Tested by: blitzrage 2008-12-11 22:44 +0000 [r163316] Matt Nicholson * pbx/pbx_dundi.c: Clean up the dundi cache every 5 minutes. (closes issue #13819) Reported by: adomjan Patches: pbx_dundi.c-clearcache.patch uploaded by adomjan (license 487) dundi_clearecache3.diff uploaded by mnicholson (license 96) Tested by: adomjan 2008-12-11 21:46 +0000 [r163092-163253] Russell Bryant * funcs/func_strings.c, funcs/func_cut.c: Fix some observed slowdowns in dialplan processing. The change is to remove autoservice usage from dialplan functions that do not need it because they do not perform operations that potentially block. (closes issue #13940) Reported by: tbelder * res/res_features.c: Fix an issue that made it so you could only have a single caller executing a custom feature at a time. This was especially problematic when custom features ran for any appreciable amount of time. The fix turned out to be quite simple. The dynamic features are now stored in a read/write list instead of a list using a mutex. (closes issue #13478) Reported by: neutrino88 Fix suggested by file 2008-12-11 16:51 +0000 [r163088] Tilghman Lesher * res/res_agi.c: Don't wait forever, if there's a specified recording timeout. (closes issue #13885) Reported by: bamby Patches: res_agi.c.patch uploaded by bamby (license 430) 2008-12-11 16:46 +0000 [r163080-163084] Mark Michelson * apps/app_queue.c: Revert this cast to long. Using time_t here causes build failures on a FreeBSD 32-bit build. * apps/app_queue.c: Fix a potential crash due to unsafe datastore handling. This patch also contains a conversion from using long to time_t for representing times for a queue, as well as some whitespace fixes. (closes issue #14060) Reported by: nivek Patches: datastore_fixup.patch.corrected uploaded by nivek (license 636) with slight modification from me Tested by: nivek 2008-12-10 22:52 +0000 [r162874-162926] Jeff Peeler * res/res_musiconhold.c: Oops, inverted logic for a strcasecmp check. Pointed out by mmichelson, thanks! * res/res_musiconhold.c: (closes issue #13229) Reported by: clegall_proformatique Ensure that moh_generate does not return prematurely before local_ast_moh_stop is called. Also, the sleep in mp3_spawn now only occurs for http locations since it seems to have been added originally only for failing media streams. 2008-12-10 19:01 +0000 [r162738-162804] Joshua Colp * channels/chan_sip.c: Fix subscription based MWI up a bit. We only want to put sip: at the beginning of the URI if it is not already there and revert code to ignore destination check if subscribing for MWI. (closes issue #12560) Reported by: vsauer Patches: patch001.diff uploaded by ramonpeek (license 266) * channels/chan_sip.c: When a SIP peer unregisters set the expiry time back to 0 so that the 200 OK contains an expires of 0. (closes issue #13599) Reported by: hjourdain Patches: chan_sip.c.diff uploaded by hjourdain (license 583) 2008-12-10 16:45 +0000 [r162671] Steve Murphy * pbx/ael/ael_lex.c, pbx/ael/ael.flex: (closes issue #14022) Reported by: wetwired Tested by: murf I checked, and I added a mod to the trunk version of Asterisk that would make it 8-bit transparent on 27 Nov 2007, but I made no such updates to 1.4. My best guess is that 1.4 was released, and it was not appropriate to commit an enhancement. But I'm going to add the same fixes to 1.4 now, for the following reasons: 1. wetwired is correct; 1.4 is **mostly** 8-bit transparent now. This is because the lexical token forming rules use . in most 'word' state continuances. It's just the beginning of a 'word' that is picky. 2. Accepting 8-bit chars in some places and not others leads to bug reports like this. 2008-12-10 16:44 +0000 [r162659-162670] Mark Michelson * include/asterisk/stringfields.h: Update to stringfield handling so that side-effects on parameters are not evaluated multiple times. An example where this caused a problem was in chan_sip.c, with the line ast_string_field_set(p, fromdomain, ++fromdomain); This patch was originally uploaded to issue #13783 by jamessan. While the issue was closed for other reasons, this patch is valid and fixes a separate problem, and is thus being committed. * channels/chan_sip.c: Revert fix for issue 13570. It has caused more problems than it helped to fix. (closes issue #13783) Reported by: navkumar (closes issue #14025) Reported by: ffs * doc/misdn.txt: Add missing documentation to misdn.txt (closes issue #14052) Reported by: festr Patches: misdn.txt.patch uploaded by festr (license 443) 2008-12-10 16:05 +0000 [r162653] Joshua Colp * main/rtp.c: Increment the sequence number on the end packets for RFC2833. After reading the RFC some more and doing some testing I agree with this change. (closes issue #12983) Reported by: vt Patches: dtmf_inc_seqnum_on_end_pkts.diff uploaded by vt (license 520) 2008-12-09 23:08 +0000 [r162463] Tilghman Lesher * apps/app_voicemail.c: Oops, should be "tz", not "zonetag". 2008-12-09 22:17 +0000 [r162413] Russell Bryant * main/asterisk.c, include/asterisk/utils.h, main/utils.c: Remove the test_for_thread_safety() function completely. The test is not valid. Besides, if we actually suspected that recursive mutexes were not working, we would get a ton of LOG_ERROR messages when DEBUG_THREADS is turned on. (inspired by a discussion on the asterisk-dev list) 2008-12-09 21:53 +0000 [r162348] Tilghman Lesher * apps/app_voicemail.c: We appear to have documented tz= in the [general] section of voicemail.conf, without actually having implemented it. Oops. (Reported by Olivier on the -users list) 2008-12-09 21:14 +0000 [r162341] Joshua Colp * apps/app_directed_pickup.c: Add 'down' as a valid state for directed call pickup. This creeps up when we receive session progress when dialing a device and not ringing. (closes issue #14005) Reported by: ddl 2008-12-09 20:57 +0000 [r162286] Russell Bryant * apps/app_meetme.c: Fix an issue where callers on an incoming call on an SLA trunk would not hear ringback. We need to make sure that we don't start writing audio to the trunk channel until we're actually ready to answer it. Otherwise, the channel driver will treat it as inband progress, even though all they are getting is silence. (closes issue #12471) Reported by: mthomasslo 2008-12-09 20:44 +0000 [r162273] Joshua Colp * apps/app_festival.c: Fix double declaration of 'x' on the PPC platform. (closes issue #14038) Reported by: ffloimair 2008-12-09 20:28 +0000 [r162265] Mark Michelson * main/pbx.c: If we fail to start a thread for the pbx to run in, we need to be sure to decrease the number of active calls on the system. This fix may relate to ABE-1713, but it is not certain yet. 2008-12-09 20:20 +0000 [r162264] Steve Murphy * pbx/ael/ael_lex.c, pbx/ael/ael.flex: In discussion with seanbright on #asterisk-dev, I have added a default rule, and an option to suppress the default rule from being generated in the flex output, for the sake of those OS's where they didn't tweak flex's ECHO macro, and the compiler doesn't like it. The regressions are OK with this. 2008-12-09 19:47 +0000 [r162188-162204] Joshua Colp * main/rtp.c: Make sure that the timestamp for DTMF is not the same as the previous voice frame and do not send audio when transmitting DTMF as this confuses some equipment. (closes issue #13209) Reported by: ip-rob Patches: 13209.diff uploaded by file (license 11) Tested by: ip-rob, bujones * main/rtp.c: Take video into account when early bridging RTP. (closes issue #13535) Reported by: davidw 2008-12-09 18:13 +0000 [r162136] Steve Murphy * pbx/ael/ael_lex.c, pbx/ael/ael.flex: Previous fix used ast_malloc and ast_copy_string and messed up the standalone stuff. Fixed. 2008-12-09 17:07 +0000 [r162071] Tilghman Lesher * channels/chan_phone.c: For some reason, after a distclean, gcc started returning 'value computed is not used'. Fixing (for --enable-dev-mode). 2008-12-09 16:46 +0000 [r162014] Russell Bryant * apps/app_disa.c: Allow DISA to handle extensions that start with #. (closes issue #13330) Reported by: jcovert 2008-12-09 16:31 +0000 [r162013] Steve Murphy * pbx/ael/ael_lex.c, pbx/pbx_ael.c, include/asterisk/ael_structs.h, pbx/ael/ael.flex: (closes issue #14019) Reported by: ckjohnsonme Patches: 14019.diff uploaded by murf (license 17) Tested by: ckjohnsonme, murf This crash was the result of a few small errors that would combine in 64-bit land to result in a crash. 32-bit land might have seen these combine to mysteriously drop the args to an application call, in certain circumstances. Also, in trying to find this bug, I spotted a situation in the flex input, where, in passing back a 'word' to the parser, it would allocate a buffer larger than necessary. I changed the usage in such situations, so that strdup was not used, but rather, an ast_malloc, followed by ast_copy_string. I removed a field from the pval struct, in u2, that was never getting used, and set in one spot in the code. I believe it was an artifact of a previous fix to make switch cases work invisibly with extens. And, for goto's I removed a '!' from before a strcmp, that has been there since the initial merging of AEL2, that might prevent the proper target of a goto from being found. This was pretty harmless on its own, as it would just louse up a consistency check for users. Many thanks to ckjohnsonme for providing a simplified and complete set of information about the bug, that helped considerably in finding and fixing the problem. Now, to get aelparse up and running again in trunk, and out of its "horribly broken" state, so I can run the regression suite! 2008-12-09 14:52 +0000 [r161948] Russell Bryant * main/app.c: Fix a problem with GROUP() settings on a masquerade. The previous code carried over group settings from the old channel to the new one. However, it did nothing with the group settings that were already on the new channel. This patch removes all group settings that already existed on the new channel. I have a more complicated version of this patch which addresses only the most blatant problem with this, which is that a channel can end up with multiple group settings in the same category. However, I could not think of a use case for keeping any of the group settings from the old channel, so I went this route for now. (closes AST-152) 2008-12-08 17:52 +0000 [r161725] Joshua Colp * channels/chan_sip.c: Make the usereqphone option work again. (closes issue #13474) Reported by: mmaguire Patches: 20080912_bug13474.diff uploaded by mmaguire (license 571) 2008-12-05 21:02 +0000 [r161426] Sean Bright * main/astobj2.c, /, include/asterisk/astobj2.h: Merged revisions 161421 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r161421 | seanbright | 2008-12-05 15:50:23 -0500 (Fri, 05 Dec 2008) | 8 lines Fix build errors on FreeBSD (uint -> unsigned int). (closes issue #14006) Reported by: alphaque Patches: astobj2.h-patch uploaded by alphaque (license 259) (Slightly modified by seanbright) ........ 2008-12-05 16:51 +0000 [r161354] Dwayne M. Hubbard * utils/smsq.c: kill a warning 2008-12-05 14:12 +0000 [r161287] Russell Bryant * main/pbx.c: Fix a NULL format string warning found by buildbot. 2008-12-04 18:30 +0000 [r161013] Jeff Peeler * main/rtp.c: (closes issue #13835) Reported by: matt_b Tested by: jpeeler This mirrors a check that was present in ast_rtp_read to also be in ast_rtp_raw_write to not schedule sending the receiver report if the remote RTCP endpoint address isn't present in the RTCP structure. Closes AST-142. 2008-12-04 16:44 +0000 [r160943] Mark Michelson * main/callerid.c: Fix a callerid parsing issue. If someone formatted callerid like the following: "name " (including the quotation marks), then the parts would be parsed as name: "name number: number This is because the closing quotation mark was not discovered since the number and everything after was parsed out of the string earlier. Now, there is a check to see if the closing quote occurs after the number, so that we can know if we should strip off the opening quote on the name. Closes AST-158 2008-12-03 21:54 +0000 [r160770] Tilghman Lesher * apps/app_voicemail.c: Some compilers warn on null format strings; some don't (caught by buildbot) 2008-12-03 21:38 +0000 [r160764] Jason Parker * channels/chan_agent.c: Only show this warning when we want to show it. (closes issue #13982) Reported by: coolmig Patches: chan_agent.c.patch uploaded by coolmig (license 621) 2008-12-03 20:41 +0000 [r160703] Steve Murphy * funcs/func_callerid.c: (closes issue #13597) Reported by: john8675309 Patches: patch.13597 uploaded by murf (license 17) Tested by: murf, john8675309 This patch causes the setcid func to update the CDR clid after setting the channel field. 2008-12-03 17:55 +0000 [r160480-160570] Tilghman Lesher * channels/chan_iax2.c: During bridge code, the channel bridge may return a retry code, if a transfer was initiated but not yet completed. If the bridge is immediately retried, then we may send a storm of TXREQ packets, even though the first set is sent reliably (retransmitted). Fixes AST-137. * pbx/pbx_spool.c: If an entry is added to the directory during a scan when another entry expires, then that new entry will not be processed promptly, but must wait for either a future entry to start or a current entry's retry to occur. If no other entries exist in the directory (other than the new entries) when a bunch expire, then the new entries must wait until another new entry is added to be processed. This was a rather weird race condition, really. Fixes AST-147. * pbx/pbx_spool.c: Don't start scanning the directory until all modules are loaded, because some required modules (channels, apps, functions) may not yet be in memory yet. Fixes AST-149. * channels/chan_sip.c: Jon Bonilla (Manwe) pointed out on the -dev list: "I guess that having only ip-phones in mind is not a good approach. Since it is possible to have a sip proxy connected to asterisk we could receive a 407 (unauthorized) or 483 (too many hops) as response and dialog ending would not be a good behavior." So modified. 2008-12-02 23:58 +0000 [r160390-160411] Terry Wilson * res/res_features.c: Channel is masqueraded, don't keep alive * res/res_features.c: A situation like A calls B, A builtin_atxfers B to C, C parks B would lead to a crash. Thanks to file for telling me how to fix it! (closes issue #13854) Reported by: Adam Lee Tested by: otherwiseguy 2008-12-02 17:42 +0000 [r160297] Tilghman Lesher * channels/chan_sip.c: When the text does not match exactly (e.g. RTP/SAVP), then the %n conversion fails, and the resulting integer is garbage. Thus, we must initialize the integer and check it afterwards for success. (closes issue #14000) Reported by: folke Patches: asterisk-sipbg-sscanf-1.4.22.diff uploaded by folke (license 626) asterisk-sipbg-sscanf-1.6.0.1.diff uploaded by folke (license 626) asterisk-sipbg-sscanf-trunk-r159896.diff uploaded by folke (license 626) 2008-12-02 01:16 +0000 [r160266] Terry Wilson * include/asterisk/astmm.h: make compile with dev mode and malloc debug 2008-12-02 00:25 +0000 [r160207] Tilghman Lesher * include/asterisk/stringfields.h, apps/app_voicemail.c, main/pbx.c, main/frame.c: Ensure that Asterisk builds with --enable-dev-mode, even on the latest gcc and glibc. 2008-12-01 Tilghman Lesher * Released 1.4.23-rc2 2008-12-01 17:27 +0000 [r160003] Russell Bryant * channels/chan_iax2.c: Apply some logic used in iax2_indicate() to iax2_setoption(), as well, since they both have the potential to send control frames in the middle of call setup. We have to wait until we have received a message back from the remote end before we try to send any more frames. Otherwise, the remote end will consider it invalid, and we'll get stuck in an INVAL/VNAK storm. 2008-12-01 16:08 +0000 [r159976] Michiel van Baak * main/manager.c: Get rid of the useless format string and argument in the Bogus/ manager channelname. Noted by kpfleming and name Bogus/manager suggested by eliel 2008-12-01 14:52 +0000 [r159900] Russell Bryant * .cleancount: Force a "make clean" to avoid a bizarre build issue ... 2008-12-01 14:05 +0000 [r159897] Michiel van Baak * main/manager.c: make manager compile on OpenBSD. The last (10th) argument to ast_channel_alloc here should be a pointer and NULL is not really a pointer. 2008-11-29 16:58 +0000 [r159808] Kevin P. Fleming * main/enum.c, utils/frame.c, configure, res/res_agi.c, include/asterisk/module.h, main/logger.c, main/dns.c, include/asterisk/threadstorage.h, include/asterisk/utils.h, include/asterisk/devicestate.h, channels/chan_sip.c, include/asterisk/dundi.h, main/jitterbuf.c, channels/chan_agent.c, configure.ac, utils/astman.c, include/asterisk/cli.h, include/asterisk/channel.h, include/jitterbuf.h, include/asterisk/manager.h, main/ast_expr2.c, Makefile, include/asterisk/logger.h, include/asterisk/res_odbc.h, main/srv.c, channels/chan_misdn.c, include/asterisk/linkedlists.h, include/asterisk/lock.h, include/asterisk/strings.h, makeopts.in, include/asterisk/stringfields.h, utils/check_expr.c, channels/chan_vpb.cc, res/res_features.c, channels/chan_iax2.c: update dev-mode compiler flags to match the ones used by default on Ubuntu Intrepid, so all developers will see the same warnings and errors since this branch already had some printf format attributes, enable checking for them and tag functions that didn't have them format attributes in a consistent way 2008-11-26 20:21 +0000 [r159476-159571] Kevin P. Fleming * channels/chan_oss.c, channels/busy.h (removed), channels/ring_tone.h (added), channels/chan_alsa.c, channels/ringtone.h (removed), channels/busy_tone.h (added), channels/Makefile: rename these files so as to avoid conflicts when users update their working copies and have unversioned files already in place * channels, agi/Makefile, utils/Makefile, channels/busy.h (added), Makefile.moddir_rules, Makefile.rules, channels/ringtone.h (added), channels/Makefile: simplify (and slightly bug-fix) the recent developer-oriented COMPILE_DOUBLE mode add channels/busy.h and channels/ringtone.h to the repository instead of generating them repeatedtly; most users do not change the settings to build them, but the Makefile rules are still there if they wish to do so ensure that 'make clean' removes dependency files for .i files that are created in COMPILE_DOUBLE mode 2008-11-25 22:41 +0000 [r159316] Steve Murphy * main/cdr.c, channels/chan_iax2.c: (closes issue #12694) Reported by: yraber Patches: 12694.2nd.diff uploaded by murf (license 17) Tested by: murf, laurav Thanks to file (Joshua Colp) for his IAX fix. the change to cdr.c allows no-answer to percolate up into CDR's, and feels like the right place to locate this fix; if BUSY is done here, no-answer should be, too. 2008-11-25 21:56 +0000 [r159246-159269] Tilghman Lesher * channels/chan_iax2.c: Don't try to send a response on a NULL pvt. (closes issue #13919) Reported by: barthpbx Patches: chan_iax2.c.patch uploaded by eliel (license 64) Tested by: barthpbx * /, channels/chan_iax2.c: Merged revisions 159245 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r159245 | tilghman | 2008-11-25 15:37:06 -0600 (Tue, 25 Nov 2008) | 7 lines Regression fix for last security fix. Set the iseqno correctly. (closes issue #13918) Reported by: ffloimair Patches: 20081119__bug13918.diff.txt uploaded by Corydon76 (license 14) Tested by: ffloimair ........ 2008-11-25 17:34 +0000 [r159158] Russell Bryant * main/astobj2.c, include/asterisk/astobj2.h: Add ao2_trylock() to go along with ao2_lock() and ao2_unlock() 2008-11-25 16:23 +0000 [r159096] Terry Wilson * apps/app_festival.c: Add missing variable declaration in the PPC code 2008-11-25 04:50 +0000 [r159025] Tilghman Lesher * apps/app_rpt.c, configure, include/asterisk/autoconfig.h.in, configure.ac: System call ioperm is non-portable, so check for its existence in autoconf. (Closes issue #13863) 2008-11-22 00:04 +0000 [r158629] Jeff Peeler * include/asterisk/dahdi_compat.h, channels/chan_dahdi.c: (closes issue #13786) Reported by: tzafrir When compiling against Zaptel dahdi_compat will now only define all the DAHDI defines if the Zaptel define is present. Also, there is no such thing as DAHDI_PRI. 2008-11-21 23:14 +0000 [r158603] Steve Murphy * res/res_features.c: In reference to the fix made for 13871, I was merging the fix into 1.6.0 and realized I missed the code in the h-exten block, and didn't catch it because my test case had the h-exten commented out. So, this corrects the code I missed, as a preventative against another crash report. Tested with the h-exten defined, all is well. 2008-11-21 23:07 +0000 [r158600] Tilghman Lesher * main/pbx.c: The passed extension may not be the same in the list as the current entry, because we strip spaces when copying the extension into the structure. Therefore, use the copied item to place the item into the list. (found by lmadsen on -dev, fixed by me) 2008-11-21 22:05 +0000 [r158539] Russell Bryant * main/astobj2.c, include/asterisk/astobj2.h: When compiling with DEBUG_THREADS, report the real file/func/line for ao2_lock/ao2_unlock 2008-11-21 21:19 +0000 [r158483] Steve Murphy * res/res_features.c: (closes issue #13871) Reported by: mdu113 This one is totally my fault. The code doesn't even create a bridge if the channel CDR has POST_DISABLED. I didn't check for that at the end of the bridge. Fixed with a few small insertions. Tested. Looks good. No cdr generated, no crash, no unnecc. data objects created either. 2008-11-21 15:24 +0000 [r158053-158306] Mark Michelson * apps/app_queue.c: This change had somehow gotten reverted due to a completely unrelated commit. Thanks to Theo Belder on the Asterisk-dev list for pointing this out. * include/asterisk/file.h, main/frame.c, main/file.c, include/asterisk/frame.h: There was an issue when attempting to reference an embedded frame in a freed ast_filestream. This patch makes use of the ao2 functions to make sure that we do not free an ast_filestream structure until the embedded ast_frame has been "freed" as well. (closes issue #13496) Reported by: fst-onge Patches: filestream_frame_1_4.diff uploaded by putnopvut (license 60) Tested by: putnopvut Closes AST-89 * channels/chan_sip.c: We don't handle 4XX responses to BYE well. According to section 15 of RFC 3261, we should terminate a dialog if we receive a 481 or 408 in response to our BYE. Since I am aware of at least one phone manufacturer who may sometimes send a 404 as well, I am being liberal and saying that any 4XX response to a BYE should result in a terminated dialog. (closes issue #12994) Reported by: pabelanger Patches: 12994.patch uploaded by putnopvut (license 60) Closes AST-129 * apps/app_dial.c, channels/chan_sip.c: Make sure to set the hangup cause on the calling channel in the case that ast_call() fails. For incoming SIP channels, this was causing us to send a 603 instead of a 486 when the call-limit was reached on the destination channel. (closes issue #13867) Reported by: still_nsk Patches: 13867.diff uploaded by putnopvut (license 60) Tested by: blitzrage 2008-11-20 01:46 +0000 [r158010] Richard Mudgett * channels/chan_misdn.c: Merged revision 157977 from https://origsvn.digium.com/svn/asterisk/team/group/issue8824 ........ Fixes JIRA ABE-1726 The dial extension could be empty if you are using MISDN_KEYPAD to control ISDN provider features. 2008-11-19 21:34 +0000 [r157859] Kevin P. Fleming * main/stdtime/Makefile, codecs/gsm/src, main/db1-ast/btree, channels/misdn/Makefile, main/db1-ast/recno, pbx/ael, channels, main/db1-ast/Makefile, main/stdtime, main/db1-ast/hash, codecs/gsm/Makefile, main/db1-ast/db, Makefile.moddir_rules, channels/misdn, main/db1-ast/mpool, pbx/Makefile, Makefile.rules, res/snmp, res/Makefile: the gcc optimizer frequently finds broken code (use of uninitalized variables, unreachable code, etc.), which is good. however, developers usually compile with the optimizer turned off, because if they need to debug the resulting code, optimized code makes that process very difficult. this means that we get code changes committed that weren't adequately checked over for these sorts of problems. with this build system change, if (and only if) --enable-dev-mode was used and DONT_OPTIMIZE is turned on, when a source file is compiled it will actually be preprocessed (into a .i or .ii file), then compiled once with optimization (with the result sent to /dev/null) and again without optimization (but only if the first compile succeeded, of course). while making these changes, i did some cleanup work in Makefile.rules to move commonly-used combinations of flag variables into their own variables, to make the file easier to read and maintain 2008-11-18 22:47 +0000 [r157503] Mark Michelson * channels/chan_sip.c: Add some missing invite state changes necessary in the sip_write function. Not setting the invite state correctly on the call was resulting in the Record application leaving empty files. I also have updated the doxygen comment next to the declaration of the INV_EARLY_MEDIA constant to reflect that we also use this state when we *send* a 18X response to an INVITE. (closes issue #13878) Reported by: nahuelgreco Patches: sip-early-media-recording-1.4.22.patch uploaded by nahuelgreco (license 162) Tested by: putnopvut 2008-11-18 19:13 +0000 [r157365] Jeff Peeler * apps/app_meetme.c: (closes issue #13899) Reported by: akkornel This fix is the result of a bug fix in ast_app_separate_args r124395. If an argument does not exist it should always be set to a null string rather than a null pointer. 2008-11-18 18:25 +0000 [r157305] Mark Michelson * apps/app_dial.c, channels/chan_local.c, res/res_features.c, include/asterisk/channel.h, apps/app_followme.c: Fix a crash in the end_bridge_callback of app_dial and app_followme which would occur at the end of an attended transfer. The error occurred because we initially stored a pointer to an ast_channel which then was hung up due to a masquerade. This commit adds a "fixup" callback to the bridge_config structure to allow for end_bridge_callback_data to be changed in the case that a new channel pointer is needed for the end_bridge_callback. 2008-11-15 19:31 +0000 [r157104-157163] Kevin P. Fleming * Makefile, Makefile.rules: when an individual directory dist-clean is run, run clean in that directory first, and when running top-level dist-clean, do not run subdirectory clean operations twice * Makefile.moddir_rules: dist-clean should remove dependency information files as well * contrib/asterisk-ng-doxygen: major update to doxygen configuration file: 1) update to doxygen 1.5.x style file, as used in trunk 2) tell doxygen where are header files are, so include-file processing can be done 3) make all macros that are used to define variables/functions be expanded, so that doxygen will properly document the resulting variable/function 4) make all macros that are used to provide the contents of a variable (structure) be expanded, so that doxygen will be able to document the resulting fields 5) suppress compiler attributes (__attribute__(xxx)) from being seen by doxygen, so it will properly match up function definition and usage (for an example of th effect of this, look at the doxygen docs for ast_log() from before and afte this commit) 2008-11-14 15:18 +0000 [r156816] Mark Michelson * apps/app_voicemail.c: If the prompt to reenter a voicemail password timed out, it resulted in the password not being saved, even if the input matched what you gave when first prompted to enter a new password. This is because the return value of ast_readstring was checked, but not checked properly. This bug was discovered by Jared Smith during an Asterisk training course. Thanks for reporting it! 2008-11-14 00:41 +0000 [r156688-156755] Tilghman Lesher * apps/app_while.c: ast_waitfordigit() requires that the channel be up, for no good logical reason. This prevents While/EndWhile from working within the "h" extension. Reported by: jgalarneau (for ABE C.2) Fixed by: me * main/manager.c: Provide more space for all the data which can appear in an originating channel name. (closes issue #13398) Reported by: bamby Patches: manager.c.diff uploaded by bamby (license 430) 2008-11-13 11:58 +0000 [r156485-156510] Kevin P. Fleming * configure, autoconf/ast_gcc_attribute.m4: revert this change... non-functional changes don't belong here * configure, autoconf/ast_gcc_attribute.m4: correct minor syntax error... no functional change 2008-11-12 21:18 +0000 [r156386] Tilghman Lesher * apps/app_dial.c: When using call limits under 1 second, infinite call lengths are allowed, instead. (closes issue #13851) Reported by: ruddy 2008-11-12 19:36 +0000 [r156297] Steve Murphy * main/pbx.c: It turns out that the 0x0XX00 codes being returned for N, X, and Z are off by one, as per conversation with jsmith on #asterisk-dev; he was teaching a class and disconcerted that this published rule was not being followed, with patterns _NXX, _[1-8]22 and _[2-9]22... and NXX was winning, but [1-8] should have been. This change, tested on these 3 patterns now picks the proper one. However, this change may surprise users who set up dialplans based on previous behavior, which has been there for what, 2 and half years or so now. 2008-11-12 19:26 +0000 [r156294] Tilghman Lesher * apps/app_meetme.c: If the SLA thread is not started, then reload causes a memory leak. (closes issue #13889) Reported by: eliel Patches: app_meetme.c.patch uploaded by eliel (license 64) 2008-11-12 19:10 +0000 [r156289] Jeff Peeler * apps/app_meetme.c: For whatever reason, gcc only warned me about the possible use of an uninitialized variable when compiling 1.6.1. 2008-11-12 18:39 +0000 [r156229] Tilghman Lesher * channels/chan_iax2.c: Revert revision 132506, since it occasionally caused IAX2 HANGUP packets not to be sent, and instead, schedule a task to destroy the iax2 pvt structure 10 seconds later. This allows the IAX2 HANGUP packet to be queued, transmitted, and ACKed before the pvt is destroyed. (closes issue #13645) Reported by: dzajro Patches: 20081111__bug13645__3.diff.txt uploaded by Corydon76 (license 14) Tested by: vazir Reviewed: http://reviewboard.digium.com/r/51/ 2008-11-12 17:53 +0000 [r156178] Jeff Peeler * apps/app_meetme.c: (closes issue #13173) Reported by: pep This change adds an announce_thread responsible for playing announcements to an existing conference. This allows all announcing to be immediately stopped if necessary but more importantly allows other threads that need to play something to not block. There are multiple benefits to this, but the actual bug is for solving the scenario for a channel to be unusable after hang up for the entire duration of the parting announcement. The parting announcement can be extremely long depending on what the user recorded upon joining the conference. Reviewed by Russell on Review Board: http://reviewboard.digium.com/r/25/ 2008-11-12 17:38 +0000 [r156167] Mark Michelson * apps/app_dial.c: When doing some tests, I was having a crash at the end of every call if an attended transfer occurred during the call. I traced the cause to the CDR on one of the channels being NULL. murf suggested a check in the end bridge callback to be sure the CDR is non-NULL before proceeding, so that's what I'm adding. 2008-11-12 17:29 +0000 [r156164] Russell Bryant * main/asterisk.c: Move the sanity check that makes sure "always fork" is not set along with the console option to be after the code that reads options from asterisk.conf. This resolves a situation where Asterisk can start taking up 100% when misconfigured. (Thanks to Bryce Porter (x86 on IRC) for letting me log in to his system to figure out what was causing the 100% CPU problem.) 2008-11-10 21:07 +0000 [r155861] Mark Michelson * channels/chan_agent.c: Channel drivers assume that when their indicate callback is invoked, that the channel on which the callback was called is locked. This patch corrects an instance in chan_agent where a channel's indicate callback is called directly without first locking the channel. This was leading to some observed locking issues in chan_local, but considering that all channel drivers operate under the same expectations, the generic fix in chan_agent is the right way to go. AST-126 2008-11-10 20:49 +0000 [r155803] Tilghman Lesher * doc/valgrind.txt: I got tired of saying this in every single bugnote referring to this file. 2008-11-09 01:08 +0000 [r155553] Sean Bright * apps/app_dial.c, res/res_features.c, include/asterisk/channel.h, apps/app_followme.c: Use static functions here instead of nested ones. This requires a small change to the ast_bridge_config struct as well. To understand the reason for this change, see the following post: http://gcc.gnu.org/ml/gcc-help/2008-11/msg00049.html 2008-11-07 22:27 +0000 [r155398] Tilghman Lesher * channels/chan_sip.c: Clarify error message. (closes issue #13809) Reported by: denke Patches: 20081104__bug13809.diff.txt uploaded by Corydon76 (license 14) Tested by: denke 2008-11-06 19:45 +0000 [r155011] Mark Michelson * configs/voicemail.conf.sample: The documentation listed the ability to set 'maxmsg' per context. The truth is that you can only set this in the general section or per mailbox. Thus I am updating the sample config file to be more accurate. Thanks to sasargen on IRC for bringing up this issue. 2008-11-05 16:44 +0000 [r154724] Mark Michelson * channels/chan_agent.c: The logic of a strcasecmp call was reversed (closes issue #13841) Reported by: clegall_proformatique 2008-11-05 16:06 +0000 [r154685] Steve Murphy * main/channel.c: This fix was prompted by communication from user, who was seeing thousands of error logs... looks like EAGAIN. Made such uninteresting. 2008-11-04 20:49 +0000 [r154365] Tilghman Lesher * channels/chan_iax2.c: On busy systems, it's possible for the values checked within a single line of code to change, unless the structure is locked to ensure a consistent state. (closes issue #13717) Reported by: kowalma Patches: 20081102__bug13717.diff.txt uploaded by Corydon76 (license 14) Tested by: kowalma 2008-11-04 19:01 +0000 [r154266] Richard Mudgett * channels/chan_misdn.c: JIRA ABE-1703 mISDN sets the channel to the wrong state when it receives the indication AST_CONTROL_RINGING. 2008-11-04 18:58 +0000 [r154060-154263] Tilghman Lesher * channels/chan_h323.c: Make the monitor thread non-detached, so it can be joined (suggested by Russell on -dev list). * apps/app_voicemail.c: Attempting to expunge a mailbox when the mailstream is NULL will crash Asterisk. (Closes issue #13829) Reported by: jaroth Patch by: me (modified jaroth's patch) * main/rtp.c: Remove the potential for a division by zero error. (Closes issue #13810) 2008-11-03 13:01 +0000 [r153823] Kevin P. Fleming * channels/chan_oss.c, channels/chan_dahdi.c, funcs/func_odbc.c, main/file.c, main/http.c, main/utils.c, pbx/pbx_config.c, res/res_jabber.c: somehow missed a bunch of gcc 4.3.x warnings in this branch on the first pass 2008-11-02 19:51 +0000 [r153651] Russell Bryant * include/asterisk/features.h: features.h depends on linkedlists.h, so include it 2008-11-01 18:22 +0000 [r153337] Kevin P. Fleming * utils/frame.c, main/cli.c, utils/stereorize.c, main/channel.c, funcs/func_enum.c, channels/chan_dahdi.c, main/manager.c, channels/chan_skinny.c, main/ast_expr2f.c, res/res_agi.c, pbx/ael/ael_lex.c, main/http.c, channels/chan_alsa.c, pbx/ael/ael.flex, formats/format_gsm.c, apps/app_adsiprog.c, formats/format_wav.c, apps/app_festival.c, main/db1-ast/hash/hash_page.c, main/translate.c, res/res_crypto.c, agi/eagi-test.c, formats/format_ogg_vorbis.c, utils/astman.c, channels/chan_oss.c, agi/eagi-sphinx-test.c, pbx/ael/ael.tab.c, main/file.c, pbx/ael/ael.tab.h, apps/app_sms.c, pbx/pbx_dundi.c, res/res_indications.c, utils/streamplayer.c, apps/app_chanspy.c, main/asterisk.c, apps/app_voicemail.c, utils/muted.c, pbx/ael/ael.y, apps/app_authenticate.c, formats/format_wav_gsm.c, res/res_musiconhold.c, channels/chan_iax2.c: fix a bunch of potential problems found by gcc 4.3.x, primarily bare strings being passed to printf()-like functions and ignored results from read()/write() and friends 2008-10-31 22:36 +0000 [r153270] Terry Wilson * res/res_features.c, apps/app_followme.c: Add end_bridge_callback for app_follome and add AUTOLOOP flag to res_features 2008-10-31 Tilghman Lesher * Asterisk 1.4.23-rc1 released. 2008-10-31 16:30 +0000 [r153114] Tilghman Lesher * channels/chan_sip.c: Turn off qualify on uncached realtime peers. (Closes issue #13383) 2008-10-31 15:45 +0000 [r153095] Terry Wilson * apps/app_dial.c, res/res_features.c, include/asterisk/channel.h: Recent CDR fixes moved execution of the 'h' exten into the bridging code, so variables that were set after ast_bridge_call was called would not show up in the 'h' exten. Added a callback function to handle setting variables, etc. from w/in the bridging code. Calls back into a nested function within the function calling ast_bridge_call (closes issue #13793) Reported by: greenfieldtech 2008-10-30 20:58 +0000 [r152992] Sean Bright * bootstrap.sh: The -I argument to aclocal needs a space before the include directory name. 2008-10-30 20:33 +0000 [r152922-152958] Tilghman Lesher * channels/chan_h323.c: Cannot join detached threads. See http://www.opengroup.org/onlinepubs/000095399/functions/pthread_join.html (Closes issue #13400) * channels/chan_local.c: Unlock before returning, when extension doesn't exist. (closes issue #13807) Reported by: eliel Patches: chan_local.c.patch uploaded by eliel (license 64) 2008-10-30 16:53 +0000 [r152811] Kevin P. Fleming * main/cdr.c: instead of comparing the string pointer to 0, let's compare the value that was actually parsed out of the string (found by sparse) 2008-10-29 05:23 +0000 [r152539] Russell Bryant * channels/chan_sip.c: Fix an incorrect usage of sizeof() (closes issue #13795) Reported by: andrew53 Patches: chan_sip_sizeof.patch uploaded by andrew53 (license 519) 2008-10-29 05:19 +0000 [r152535-152538] Steve Murphy * configs/features.conf.sample, apps/app_dial.c, apps/app_queue.c: A little documentation cross-ref between features and dial and queue... I wasted some time (stupidly) trying to get the one-touch parking stuff working, because it didn't occur to me that I had to also have the corresponding options in the dial command! Duh! (In all this time, I never set this up before!) So, to keep some poor fool from suffering the same fate, I made the features.conf.sample file mention the corresponding opts in dial/queue; and the docs for dial/app specifically mention the corresponding decls in the feature.conf file. I hope this doesn't spoil some vast, eternal plan... * apps/app_dial.c, res/res_features.c, funcs/func_channel.c, include/asterisk/pbx.h, apps/app_queue.c: The magic trick to avoid this crash is not to try to find the channel by name in the list, which is slow and resource consuming, but rather to pay attention to the result codes from the ast_bridge_call, to which I added the AST_PBX_NO_HANGUP_PEER_PARKED value, which now are returned when a channel is parked. If you get AST_PBX_KEEPALIVE, then don't touch the channel pointer. If you get AST_PBX_NO_HANGUP_PEER, or AST_PBX_NO_HANGUP_PEER_PARKED, then don't touch the peer pointer. Updated the several places where the results from a bridge were not being properly obeyed, and fixed some code I had introduced so that the results of the bridge were not overridden (in trunk). All the places that previously tested for AST_PBX_NO_HANGUP_PEER now have to check for both AST_PBX_NO_HANGUP_PEER and AST_PBX_NO_HANGUP_PEER_PARKED. I tested this against the 4 common parking scenarios: 1. A calls B; B answers; A parks B; B hangs up while A is getting the parking slot announcement, immediately after being put on hold. 2. A calls B; B answers; A parks B; B hangs up after A has been hung up, but before the park times out. 3. A calls B; B answers; B parks A; A hangs up while B is getting the parking slot announcement, immediately after being put on hold. 4. A calls B; B answers; B parks A; A hangs up after B has been hung up, but before the park times out. No crash. I also ran the scenarios above against valgrind, and accesses looked good. 2008-10-28 22:32 +0000 [r152368-152463] Tilghman Lesher * apps/app_voicemail.c: Quoting in the wrong direction (Fixes AST-107) * apps/app_dial.c: Reset all DIAL variables back to blank, in case Dial is called multiple times per call (which could otherwise lead to inconsistent status reports). (closes issue #13216) Reported by: ruddy Patches: 20081014__bug13216.diff.txt uploaded by Corydon76 (license 14) Tested by: ruddy 2008-10-27 23:28 +0000 [r152286] Jeff Peeler * channels/chan_dahdi.c: Buffer policy setting for half is not needed. 2008-10-27 21:32 +0000 [r152215] Tilghman Lesher * channels/chan_local.c: Inherit ALL elements of CallerID across a local channel. (closes issue #13368) Reported by: Peter Schlaile Patches: 20080826__bug13368.diff.txt uploaded by Corydon76 (license 14) 2008-10-26 20:23 +0000 [r152059] Sean Bright * funcs/func_strings.c: Since passing \0 as the second argument to strchr is valid (and will match the trailing \0 of a string) we need to check that first, otherwise we end up with incorrect results. Fix suggested by reporter. (closes issue #13787) Reported by: meitinger 2008-10-25 10:59 +0000 [r151905] Russell Bryant * main/asterisk.c: Move AMI initialization to occur after loading modules. This prevents a deadlock when someone tries to initiate a module reload from the AMI just as Asterisk is starting. (closes issue #13778) Reported by: hotsblanc Fix suggested by hotsblanc 2008-10-23 16:04 +0000 [r151763] Terry Wilson * configs/features.conf.sample, res/res_features.c, CHANGES: Backport fix from 1.6.0 that allows you to set parkedcalltransfers=no|caller|callee|both, but default to both which would be the equivalent of the existing behaviour. The problem was that if someone parked a call, the callee and caller would both get assigned the builtin transfer feature, which would not only be potentially giving someone the ability to transfer themselves when they shouldn't have it, but would also dissallow reinviting the media off of the call. (closes issue #12854) Reported by: davidw Patches: parkingfix4.diff.txt uploaded by otherwiseguy Tested by: davidw, otherwiseguy 2008-10-20 04:57 +0000 [r151240-151241] Kevin P. Fleming * autoconf/ast_check_pwlib.m4, autoconf/ast_check_openh323.m4, configure.ac: rename this macro to properly reflect what it does * autoconf/ast_check_pwlib.m4 (added), autoconf (added), autoconf/acx_pthread.m4 (added), autoconf/ast_func_fork.m4 (added), configure, autoconf/ast_gcc_attribute.m4 (added), bootstrap.sh, autoconf/ast_check_gnu_make.m4 (added), autoconf/ast_ext_lib.m4 (added), autoconf/ast_prog_ld.m4 (added), autoconf/ast_c_compile_check.m4 (added), autoconf/ast_c_define_check.m4 (added), autoconf/ast_prog_egrep.m4 (added), autoconf/ast_check_openh323.m4 (added), autoconf/ast_prog_ld_gnu.m4 (added), autoconf/ast_prog_sed.m4 (added), acinclude.m4 (removed): break up acinclude.m4 into individual files, which will make it easier to maintain, easier to add new macros (less patching) and will ease maintenance of these macros across Asterisk branches 2008-10-19 19:51 +0000 [r151100-151167] BJ Weschke * main/asterisk.c: As per kpfleming's comments to the prior commit, I'm reverting some of the changes here. A comment was made in bug #13726 "3. The same mistake as in (2) is done in a few other places in the code that check for: #if defined(HAVE_ZAPTEL) || defined(HAVE_DAHDI) Harmless, but still incorrect." In the case of main/asterisk.c, this is not incorrect because without HAVE_ZAPTEL defined, we're missing the include for ioctl and the namespace that defines DAHDI_TIMERCONFIG which is still required when using Zaptel with the 1.4 branch. * main/asterisk.c: Fix the 1.4 branch compile again broken with r150557 when using with Zaptel and not DAHDI (closes issue #13740) reported by: jmls patch by: bweschke 2008-10-18 01:42 +0000 [r150816] BJ Weschke * main/manager.c: Using the GetVar handler in AMI is potentially dangerous (insta-crash [tm]) when you use a dialplan function that requires a channel and then you don't provide one or provide an invalid one in the Channel: parameter. We'll handle this situation exactly the same way it was handled in pbx.c back on r61766. We'll create a bogus channel for the function call and destroy it when we're done. If we have trouble allocating the bogus channel then we're not going to try executing the function call at all and run the risk of crashing. (closes issue #13715) reported by: makoto patch by: bweschke 2008-10-17 17:18 +0000 [r150637] Steve Murphy * res/res_features.c: Interesting crash. In this case, you exit the bridge with peer completely GONE. I moved the channel find call up to cover the whole peer CDR reset code segment. This appears to solve the crash without changing the logic at all. 2008-10-17 15:31 +0000 [r150557] Jason Parker * main/asterisk.c, main/channel.c, channels/chan_dahdi.c, configure, configure.ac: Correctly allow chan_dahdi to compile against older versions of Zaptel. Don't always define HAVE_ZAPTEL_CHANALARMS (since we check if it's defined..) Minor cleanup to make things clear. (closes issue #13726) Reported by: tzafrir Patches: dahdi_def.diff uploaded by tzafrir (license 46) 2008-10-16 23:40 +0000 [r150298-150304] Mark Michelson * main/manager.c: Reverting changes from commits 150298 and 150301 since I was mistakenly under the assumption that dialplan functions *always* required that a channel be present. I need to go home earlier, I think :) * main/manager.c: And don't forget to return on the error condition * main/manager.c: Don't try to call a dialplan function's read callback from the manager's GetVar handler if an invalid channel has been specified. Several dialplan functions, including CHANNEL and SIP_HEADER, do not check for NULL-ness of the channel being passed in. (closes issue #13715) Reported by: makoto 2008-10-16 15:56 +0000 [r150124] Richard Mudgett * channels/chan_misdn.c: Fix memory leak found by customer 2008-10-16 15:26 +0000 [r150056] Steve Murphy * cdr/cdr_odbc.c: This patch is relevant to: ABE-1628 and RYM-150398 and AST-103 in internal Digium bug trackers. These fixes address a really subtle memory corruption problem that would happen in machines heavily loaded in production environments. The corruption would always take the form of the STMT object getting nulled out and one of the unixODBC calls would crash trying to access statement->connection. It isn't fully proven yet, but the server has now been running 2.5 days without appreciable memory growth, or any gain of %cpu, and no crashes. Whether this is the problem or not on that server, these fixes are still warranted. As it turns out, **I** introduced these errors unwittingly, when I corrected another crash earlier. I had formed the build_query routine, and failed to remove mutex_unlock calls in 3 places in the transplanted code. These unlocks would only happen in error situations, but unlocking the mutex early set the code up for a catastrophic failure, it appears. It would happen only once every 100K-200K or more calls, under heavy load... but that is enough. If another crash occurs, with the same MO, I'll come back and remove my confession from the log, and we'll keep searching, but the fact that we have Asterisk dying from an asynchronous wiping of the STMT object, only on some connection error, and that the server has lived for 2.5 days on this code without a crash, sure make it look like this was the problem! Also, in several points, Statement handles are set to NULL after SQLFreeHandle. This was mainly for insurance, to guarantee a crash. As it turns out, the code does not appear to be attempting to use these freed pointers. Asterisk owes a debt of gratitude to Federico Alves and Frediano Ziglio for their untiring efforts in finding this bug, among others. 2008-10-15 21:34 +0000 [r149683-149840] BJ Weschke * CHANGES: Another documentation fix. (closes issue #13708) * configs/agents.conf.sample: An update to the documentation/example of agents.conf.sample with the correct parameter for this feature as defined in chan_agent.c (closes issue #13709) 2008-10-15 10:30 +0000 [r149452] Kevin P. Fleming * channels/chan_sip.c: fix some problems when parsing SIP messages that have the maximum number of headers or body lines that we support 2008-10-14 23:43 +0000 [r149130-149266] Mark Michelson * channels/chan_sip.c: Change this warning to an error message. Suggestion comes from Sean Bright. Thanks Sean! * channels/chan_sip.c: Call register_peer_exten even in the case that the peer's IP/port does not change. (closes issue #13309) Reported by: dimas Patches: v2-13309.patch uploaded by dimas (license 88) * include/asterisk/audiohook.h, main/audiohook.c: Add a tolerance period for sync-triggered audiohooks so that if packetization of audio is close (but not equal) we don't end up flushing the audiohooks over small inconsistencies in synchronization. Related to issue #13005, and solves the issue for most people who were experiencing the problem. However, a small number of people are still experiencing the problem on long calls, so I am not closing the issue yet * apps/app_queue.c: Update the queue with the correct number of calls and whether the call was completed within the service level when a transfer takes place. This way, we do not "break" the leastrecent and fewestcalls strategies by not logging a call until after the transferred call has ended. (closes issue #13395) Reported by: Marquis Patches: app_queue.c.transfer.patch uploaded by Marquis (license 32) * channels/chan_sip.c: Don't allow reserved characters to be used in register lines in sip.conf. (closes issue #13570) Reported by: putnopvut 2008-10-14 20:09 +0000 [r149061] Tilghman Lesher * apps/app_waitforsilence.c: Check correct values in the return of ast_waitfor(); also, get rid of a possible memory leak. (closes issue #13658) Reported by: explidous Patch by: me 2008-10-14 19:05 +0000 [r148990] Leif Madsen * CHANGES: Add in some missing updates to the CHANGES file for sip.conf (closes issue #13100) Reported and patch by: gknispel_proformatique 2008-10-14 19:03 +0000 [r148916-148987] Tilghman Lesher * apps/app_voicemail.c: Some compilers warn, some don't. Fixing. * apps/app_voicemail.c: Ensure that mail headers are 7-bit clean, even when UTF-8 characters are used in headers like 'Subject' and 'To'. Closes AST-107. 2008-10-14 17:33 +0000 [r148912] Mark Michelson * channels/chan_local.c: Deadlock prevention in chan_local. (closes issue #13676) Reported by: tacvbo Patches: 13676.patch uploaded by putnopvut (license 60) Tested by: tacvbo 2008-10-14 10:30 +0000 [r148611-148736] Kevin P. Fleming * Makefile: on Ubuntu (at least), recent versions of ld in binutils delete all debugging symbols when -x is supplied; since the reasons why -x is being passed are lost in the mists of time, remove it so debugging will work properly * main/translate.c: it would be nice if this message printing code had actually been tested before it was committed... 2008-10-10 16:25 +0000 [r147997-148257] Tilghman Lesher * apps/app_voicemail.c: User not notified of temporary greeting, if ODBC storage is in use. (closes issue #13659) Reported by: moliveras Patches: 20081009__bug13659.diff.txt uploaded by Corydon76 (license 14) Tested by: moliveras * apps/app_voicemail.c: When blank, callerid name and number should display "unknown caller" in voicemail emails. (Closes issue #13643) 2008-10-09 18:56 +0000 [r147941] Jeff Peeler * res/res_features.c: (closes issue #13139) Reported by: krisk84 Tested by: krisk84 This change prevents a call that is placed in the parkinglot to be picked up before the PBX is finished. If another extension dials the parking extension before the PBX thread has completed at minimum warnings will occur about the PBX not properly being terminated. At worst, a crash could occur. 2008-10-08 22:22 +0000 [r147681] Kevin P. Fleming * channels/chan_dahdi.c: when parsing a text configuration option, ensure that the buffer on the stack is actually large enough to hold the legal values of that option, and also ensure that sscanf() knows to stop parsing if it would overrun the buffer (without these changes, specifying "buffers=...,immediate" would overflow the buffer on the stack, and could not have worked as expected) 2008-10-08 14:51 +0000 [r147517] Joshua Colp * apps/app_speech_utils.c: If we receive DTMF make sure that the state of the speech structure goes back to being not ready. (issue #LUMENVOX-8) 2008-10-07 23:14 +0000 [r147429-147430] Kevin P. Fleming * channels/chan_dahdi.c: revert this change until i can understand why it results in locking order changes * channels/chan_dahdi.c: don't start a PBX on incoming PRI call channels until after we're done setting channel variables and other things on the channel, otherwise the channel might go away (if the dialplan hangs up quickly) before we are done, which results in a spectacular crash 2008-10-07 16:48 +0000 [r147193] Sean Bright * apps/app_voicemail.c: Make 'imapsecret' an alias to 'imappassword' in voicemail.conf. 2008-10-06 20:52 +0000 [r146711-146799] Tilghman Lesher * funcs/func_callerid.c, apps/app_speech_utils.c, funcs/func_curl.c, funcs/func_groupcount.c, res/res_smdi.c, channels/chan_sip.c, funcs/func_timeout.c, funcs/func_odbc.c, funcs/func_cdr.c, funcs/func_math.c, channels/chan_iax2.c: Dialplan functions should not actually return 0, unless they have modified the workspace. To signal an error (and no change to the workspace), -1 should be returned instead. (closes issue #13340) Reported by: kryptolus Patches: 20080827__bug13340__2.diff.txt uploaded by Corydon76 (license 14) * channels/chan_local.c: Check whether an extension exists in the _call method, rather than the _alloc method, because we need to evaluate the callerid (since that data affects whether an extension exists). (closes issue #13343) Reported by: efutch Patches: 20080915__bug13343.diff.txt uploaded by Corydon76 (license 14) Tested by: efutch 2008-10-06 15:57 +0000 [r146643] Kevin P. Fleming * channels/chan_dahdi.c: ensure that the private structure for pseudo channels is created without 'leaking' configuration data from other configured channels (closes issue #13555) Reported by: jeffg Patches: issue_13555.patch uploaded by kpfleming (license 421) Tested by: jeffg 2008-10-05 21:17 +0000 [r146448] Jason Parker * channels/chan_sip.c: Fix silly formatting. 2008-10-03 22:51 +0000 [r146244] Sean Bright * apps/app_rpt.c: Change some preprocessor macros to struct definitions so that we get app_rpt to build with DAHDI. (closes issue #13576) Reported by: blitzrage 2008-10-03 20:44 +0000 [r146129] Jeff Peeler * include/asterisk/features.h, res/res_features.c, res/res_agi.c: (closes issue #13425) Reported by: mdu113 Tested by: mdu113 Similar to r143204, masquerade the channel in the case of Park being called from AGI. 2008-10-03 17:12 +0000 [r146026] Steve Murphy * res/res_features.c: (closes issue #13579) Reported by: dwagner (closes issue #13584) Reported by: dwagner Tested by: murf, putnopvut The thought occurred to me that the res= from the extension spawn was ending up being returned from the bridge. "Thou shalt not poison the return value". Made the change and it appears to allow blind xfers to work as normal. If I'm wrong, reopen the bugs. But it looks good to me! Many thanks to putnopvut for helping me reproduce this! 2008-10-02 16:39 +0000 [r145751-145839] Tilghman Lesher * funcs/func_odbc.c: Backport support for some of the keyword modifications used in 1.6 (while warning that some options aren't really supported) and add some warning messages. Some credit to oej, who was complaining in #asterisk-dev. * res/res_odbc.c: Some sanity checks that may have led to prior crashes, found by codefreeze-lap (murf) on IRC. Also some cleanup of incorrectly-used constants. 2008-10-01 17:18 +0000 [r145479] Leif Madsen * contrib/scripts/realtime_pgsql.sql: Update the realtime_pgsql.sql script to create the setinterfacevar column. (closes issue #13549) Reported by: fiddur 2008-10-01 Russell Bryant * Asterisk 1.4.22 released. 2008-09-09 Russell Bryant * Asterisk 1.4.22-rc5 released. 2008-09-09 15:40 +0000 [r142063] Russell Bryant * res/res_features.c: Ensure that the stored CDR reference is still valid after the bridge before poking at it. Also, keep the channel locked while messing with this CDR. (fixes crashes reported in issue #13409) 2008-09-08 21:10 +0000 [r141809] Mark Michelson * channels/chan_sip.c: Fix pedantic mode of chan_sip to only check the remote tag of an endpoint once a dialog has been confirmed. Up until that point, it is possible and legal for the far-end to send provisional responses with a different To: tag each time. With this patch applied, these provisional messages will not cause a matching problem. (closes issue #11536) Reported by: ibc Patches: 11536v2.patch uploaded by putnopvut (license 60) 2008-09-08 21:02 +0000 [r141806] Russell Bryant * main/pbx.c: When doing an async goto, detect if the channel is already in the middle of a masquerade. This can happen when chan_local is trying to optimize itself out. If this happens, fail the async goto instead of bursting into flames. (closes issue #13435) Reported by: geoff2010 2008-09-08 Russell Bryant * Asterisk 1.4.22-rc4 released. 2008-09-08 20:15 +0000 [r141741] Jason Parker * Makefile, redhat (removed): Remove RPM package targets from Makefile (and all associated parts). This has never worked in 1.4, and we decided that it makes no sense to be done here. There are many distros out there that already have "proper" spec files that can be (re)used. Closes issue #13113 Closes issue #10950 Closes issue #10952 2008-09-08 16:26 +0000 [r141678] Russell Bryant * configure, configure.ac: Actually use Zaptel CFLAGS if using Zaptel instead of DAHDI This fixes building against Zaptel when using a custom path 2008-09-06 20:13 +0000 [r141565] Steve Murphy * channels/chan_sip.c: This fix comes from Joshua Colp The Brilliant, who, given the trace, came up with a solution. This will most likely will close 13235 and 13409. I'll wait till Monday to verify, and then close these bugs. 2008-09-06 15:23 +0000 [r141503] Tilghman Lesher * res/res_agi.c: Reverting behavior change (AGI should not exit non-zero on SUCCESS) (closes issue #13434) Reported by: francesco_r 2008-09-05 21:10 +0000 [r141217-141366] Mark Michelson * channels/chan_agent.c: Agent's should not try to call a channel's indicate callback if the channel has been hung up. It will likely crash otherwise ABE-1159 * apps/app_voicemail.c: Since greetings are not stored in IMAP, we should not be DISPOSE'ing of them the same way we do with other messages. (closes issue #13414) Reported by: mthomasslo Patches: 13414v2.patch uploaded by putnopvut (license 60) Tested by: mthomasslo * channels/chan_sip.c: Commit 140417 had a logic flaw in it which caused port 5060 to always be used when dialing a peer if no explicit port was specified. This broke the behavior of implicitly using the port from which the peer registered if no port is specified. This commit fixes the logic flaw. (closes issue #13424) Reported by: mdu113 Patches: 13424.patch uploaded by putnopvut (license 60) Tested by: mdu113 2008-09-05 14:15 +0000 [r141094-141156] Steve Murphy * main/channel.c: A small change to prevent double-posting of CDR's; thanks to Daniel Ferrer for bringing it to our attention * pbx/ael/ael-test/ref.ael-vtest25 (added), pbx/ael/ael-test/ael-vtest25/extensions.ael (added), pbx/ael/ael-test/ael-vtest25 (added), pbx/ael/ael_lex.c, pbx/ael/ael-test/ref.ael-test6, pbx/ael/ael.flex: (closes issue #13357) Reported by: pj Tested by: murf (closes issue #13416) Reported by: yarns Tested by: murf If you find this message overly verbose, relax, it's probably not meant for you. This message is meant for probably only two people in the whole world: me, or the poor schnook that has to maintain this code because I'm either dead or unavailable at the moment. This fix solves two reports, both having to do with embedding a function call in a ${} construct. It was tricky because the funccall syntax has parenthesis () in it. And up till now, the 'word' token in the flex stuff didn't allow that, because it would tend to steal the LP and RP tokens. To be truthful, the "word" token was the trickiest, most unstable thing in the whole lexer. I was lucky it made this long without complaints. I had to choose every character in the pattern with extreme care, and I knew that someday I'd have to revisit it. Well, the day has come. So, my brilliant idea (and I'm being modest), was to use the surrounding ${} construct to make a state machine and capture everything in it, no matter what it contains. But, I have to now treat the word token like I did with comments, in that I turn the whole thing into a state-machine sort of spec, with new contexts "curlystate", "wordstate", and "brackstate". Wait a minute, "brackstate"? Yes, well, it didn't take very many regression tests to point out if I do this for ${} constructs, I also have to do it with the $[] constructs, too. I had to create a separate pcbstack2 and pcbstack3 because these constructs can occur inside macro argument lists, and when we have two state machines operating on the same structures we'd get problems otherwise. I guess I could have stopped at pcbstack2 and had the brackstate stuff share it, but it doesn't hurt to be safe. So, the pcbpush and pcbpop routines also now have versions for "2" and "3". I had to add the {KEYWORD} construct to the initial pattern for "word", because previously word would match stuff like "default7", because it was a longer match than the keyword "default". But, not any more, because the word pattern only matches only one or two characters now, and it will always lose. So, I made it the winner again by making an optional match on any of the keywords before it's normal pattern. I added another regression test to make sure we don't lose this in future edits, and had to fix just one regression, where it no longer reports a 'cascaded' error, which I guess is a plus. I've given some thought as to whether to apply these fixes to 1.4 and the 1.6.x releases, vs trunk; I decided to put it in 1.4 because one of the bug reports was against 1.4; and it is unexpected that AEL cannot handle this situation. It actually reduced the amount of useless "cascade" error messages that appeared in the regressions (by one line, ehhem). There is a possible side-effect in that it does now do more careful checking of what's in those ${} constructs, as far as matching parens, and brackets are concerned. Some users may find a an insidious problem and correct it this way. This should be exceedingly rare, I hope. 2008-09-04 17:00 +0000 [r141028] Jeff Peeler * res/res_features.c, res/res_agi.c: (closes issue #11979) Fixes multiple parking problems: Crash when executing a park on an extension dialed by AGI due to not returning the proper return code. Crash when using a builtin feature that was a subset of a enabled dynamic feature. Crash due to always hanging up the peer despite the fact that the peer was supposed to be parked. 2008-09-03 Russell Bryant * Asterisk 1.4.22-rc3 released. 2008-09-03 14:29 +0000 [r140850] Mark Michelson * apps/app_voicemail.c: Fix voicemail forwarding when using ODBC storage. (closes issue #13387) Reported by: moliveras Patches: 13387.patch uploaded by putnopvut (license 60) Tested by: putnopvut, moliveras 2008-09-03 13:24 +0000 [r140816] Russell Bryant * main/poll.c: Don't freak out if the poll emulation receives NULL for the pollfds array (closes issue #13307) Reported by: jcovert 2008-09-02 23:47 +0000 [r140751] Mark Michelson * apps/app_voicemail.c: After adding the context checking to app_voicemail for IMAP storage, I left out a crucial place to copy the context to the vm_state structure. This is the correction. 2008-09-02 23:36 +0000 [r140670-140747] Steve Murphy * main/cdr.c: I am turning the warnings generated in ast_cdr_free and post_cdr into verbose level 2 messages. Really, they matter little to end users. You either get the CDR's you wanted, or you don't, and it is a bug. * main/channel.c: After reconsidering, with respect to 13409, ast_cdr_detach should be OK, better in fact, than ast_cdr_free, which generates lots of useless warnings that will undoubtably generate complaints. * main/channel.c, main/pbx.c: (closes issue #13409) Reported by: tomaso Patches: asterisk-1.6.0-rc2-cdrmemleak.patch uploaded by tomaso (license 564) I basically spent the day, verifying that this patch solves the problem, and doesn't hurt in non-problem cases. Why valgrind did not plainly reveal this leak absolutely mystifies and stuns me. Many, many thanks to tomaso for finding and providing the fix. 2008-09-02 18:14 +0000 [r140605] Sean Bright * channels/chan_iax2.c: Make sure to use the correct length of the mohinterpret and mohsuggest buffers when copying configuration values. (closes issue #13336) Reported by: decryptus_proformatique Patches: chan_iax2_mohinterpret_mohsuggest_general_settings.patch uploaded by decryptus (license 555) 2008-08-29 17:34 +0000 [r140417-140488] Mark Michelson * main/manager.c, apps/app_queue.c, channels/chan_iax2.c: After working on the ao2_containers branch, I noticed something a bit strange. In all cases where we provide a callback function to ao2_container_alloc, the callback function would only return 0 or CMP_MATCH. After inspecting the ao2_callback() code carefully, I found that if you're only looking for one specific item, then you should return CMP_MATCH | CMP_STOP. Otherwise, astobj2 will continue traversing the current bucket until the end searching for more matches. In cases like chan_iax2 where in 1.4, all the peers are shoved into a single bucket, this makes for potentially terrible performance since the entire bucket will be traversed even if the peer is one of the first ones come across in the bucket. All the changes I have made were for cases where the callback function defined was passed to ao2_container_alloc so that calls to ao2_find could find a unique instance of whatever object was being stored in the container. * apps/app_voicemail.c: Add context checking when retrieving a vm_state. This was causing a problem for people who had identically named mailboxes in separate voicemail contexts. This commit affects IMAP storage only. (closes issue #13194) Reported by: moliveras Patches: 13194.patch uploaded by putnopvut (license 60) Tested by: putnopvut, moliveras * channels/chan_sip.c: Fix SIP's parsing so that if a port is specified in a string to Dial(), it is not ignored. (closes issue #13355) Reported by: acunningham Patches: 13355v2.patch uploaded by putnopvut (license 60) Tested by: acunningham 2008-08-27 19:49 +0000 [r140299] Mark Michelson * channels/chan_sip.c: Fix tag checking in get_sip_pvt_byid_locked when in pedantic mode. The problem was that the wrong tags would be compared depending on the direction of the call. (closes issue #13353) Reported by: flefoll Patches: chan_sip.c.br14.139015.patch-refer-pedantic uploaded by flefoll (license 244) 2008-08-26 16:49 +0000 [r140115] Jeff Peeler * channels/chan_dahdi.c: add HAVE_PRI if define around dahdi_close_pri_fd 2008-08-26 16:07 +0000 [r140060] Russell Bryant * channels/chan_sip.c: Fix some bogus scheduler usage in chan_sip. This code used the return value of a completely unrelated function to determine whether the scheduler should be run or not. This would have caused the scheduler to not run in cases where it should have. Also, leave a note about another scheduler issue that needs to be addressed at some point. 2008-08-26 15:57 +0000 [r140056] Jeff Peeler * channels/chan_dahdi.c: (closes issue #12071) Reported by: tzafrir Patches: dahdi_close.diff uploaded by tzafrir (license 46) Tested by: tzafrir, jpeeler This patch fixes closing open file descriptors in the case of an error. 2008-08-26 15:27 +0000 [r140051] Russell Bryant * channels/chan_iax2.c: Fix a race condition with the IAX scheduler thread. A lock and condition are used here to allow newly scheduled tasks to wake up the scheduler just in case the new task needs to run sooner than the current wakeup time when the thread is sleeping. However, there was a race condition such that a newly scheduled task would not properly wake up the scheduler or affect the wake up period. The order of execution would have been: 1) Scheduler thread determines wake up time of N ms. 2) Another thread schedules a task and signals the condition, with an execution time of < N ms. 3) Scheduler thread locks and goes to sleep for N ms. By moving the sleep time determination to inside the critical section, this possibility is avoided. 2008-08-26 15:22 +0000 [r140050] Terry Wilson * Makefile: sounds/Makefile installs sounds using the "new" language directory structure, but languageprefix needs to be set = yes for sounds in subdirectories (digits/1, etc.) to play as the correct language. Fix the generation of asterisk.conf to include languageprefix=yes 2008-08-26 14:09 +0000 [r140029] Kevin P. Fleming * channels/chan_dahdi.c: correct a file location in an error message 2008-08-25 21:47 +0000 [r139927] Jeff Peeler * main/manager.c: Fix a typo I made. Lesson learned, apply the patch if one exists. 2008-08-25 21:31 +0000 [r139909] Sean Bright * build_tools/get_moduleinfo, build_tools/get_makeopts: Some versions of awk (nawk, for example) don't like empty regular expressions so be slightly more verbose. (closes issue #13374) Reported by: dougm Patches: 13374.diff uploaded by seanbright (license 71) Tested by: dougm 2008-08-25 20:46 +0000 [r139869] Terry Wilson * channels/chan_sip.c: Make SIPADDHEADER() propagate indefinitely 2008-08-25 15:52 +0000 [r139769] Mark Michelson * main/config.c: Fix the logic in config_text_file_save so that if an UpdateConfig manager action is issued and the file specified in DstFileName does not yet exist, an error is not returned. (closes issue #13341) Reported by: vadim Patches: 13341.patch uploaded by putnopvut (license 60) (with small modification from seanbright) 2008-08-25 15:33 +0000 [r139764] Steve Murphy * main/pbx.c, res/res_features.c: This patch reverts the changes made via 139347, and 139635, as users are seeing adverse difference. I will un-close 13251. Back to the drawing board/ concept/ beginning/ whatever! 2008-08-22 22:24 +0000 [r139635] Steve Murphy * res/res_features.c: I found some problems with the code I committed earlier, when I merged them into trunk, so I'm coming back to clean up. And, in the process, I found an error in the code I added to trunk and 1.6.x, that I'll fix using this patch also. 2008-08-22 21:36 +0000 [r139621] Jeff Peeler * main/manager.c: (closes issue #13359) Reported by: Laureano Patches: originate_channel_check.patch uploaded by Laureano (license 265) 2008-08-22 19:45 +0000 [r139456-139553] Mark Michelson * include/asterisk/threadstorage.h: Fix compilation when DEBUG_THREAD_LOCALS is selected (closes issue #13298) Reported by: snuffy Patches: bug13298_20080822.diff uploaded by snuffy (license 35) * main/frame.c: Remove show_frame_stats_deprecated since it is not used anywhere and causes build errors if building under dev-mode with TRACE_FRAMES selected in menuselect. (closes issue #13362) Reported by: snuffy * channels/chan_iax2.c: Fix the build. Thanks, mvanbaak! * channels/chan_iax2.c: Prevent a deadlock in chan_iax2 resulting from incorrect locking order between iax2_pvt and ast_channel structures. AST-13 2008-08-21 23:39 +0000 [r139387] Jeff Peeler * channels/chan_dahdi.c: Fixes loop that could possibly never exit in the event of a channel never being able to be opened or specify after a restart. (closes issue #11017) 2008-08-21 23:03 +0000 [r139347] Steve Murphy * main/pbx.c, res/res_features.c: (closes issue #13251) Reported by: sergee Tested by: murf THis is a bold move for a static release fix, but I wouldn't have made it if I didn't feel confident (at least a *bit* confident) that it wouldn't mess everyone up. The reasoning goes something like this: 1. We simply cannot do anything with CDR's at the current point (in pbx.c, after the __ast_pbx_run loop). It's way too late to have any affect on the CDRs. The CDR is already posted and gone, and the remnants have been cleared. 2. I was very much afraid that moving the running of the 'h' extension down into the bridge code (where it would be now practical to do it), would result in a lot more calls to the 'h' exten, so I implemented it as another exten under another name, but found, to my pleasant surprise, that there was a 1:1 correspondence to the running of the 'h' exten in the pbx_run loop, and the new spot at the end of the bridge. So, I ifdef'd out the current 'h' loop, and moved it into the bridge code. The only difference I can see is the stuff about the AST_PBX_KEEPALIVE, and hopefully, if this is still an important decision point, I can replicate it if there are complaints. To be perfectly honest, the KEEPALIVE situation is not totally clear to me, and how it relates to a post-bridge situation is less clear. I suspect the users will point out everything in total clarity if this steps on anyone's toes! 3. I temporarily swap the bridge_cdr into the channel before running the 'h' exten, which makes it possible for users to edit the cdr before it goes out the door. And, of course, with the endbeforehexten config var set, the users can also get at the billsec/duration vals. After the h exten finishes, the cdr is swapped back and processing continues as normal. Please, all who deal with CDR's, please test this version of Asterisk, and file bug reports as appropriate! 2008-08-21 10:11 +0000 [r139283] Philippe Sultan * channels/chan_gtalk.c: Apply fix for issue #13310 to branch 1.4, too. 2008-08-20 22:14 +0000 [r139213] Russell Bryant * apps/app_chanspy.c: Fix a crash in the ChanSpy application. The issue here is that if you call ChanSpy and specify a spy group, and sit in the application long enough looping through the channel list, you will eventually run out of stack space and the application with exit with a seg fault. The backtrace was always inside of a harmless snprintf() call, so it was tricky to track down. However, it turned out that the call to snprintf() was just the biggest stack consumer in this code path, so it would always be the first one to hit the boundary. (closes issue #13338) Reported by: ruddy 2008-08-20 19:52 +0000 [r139151] Shaun Ruffell * codecs/codec_dahdi.c: Fix bug where the samples were not accurate when in G723 mode, which would cause the timestamp field of the RTP header to be invalid. 2008-08-20 19:35 +0000 [r139145] Kevin P. Fleming * channels/chan_dahdi.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Backport support for Zaptel/DAHDI channel-level alarms from trunk/1.6, because not doing so just makes it difficult for people with channels that are in alarm when Asterisk starts up to get them going once the alarm is cleared (closes issue #12160) Reported by: tzafrir Patches: asterisk-chanalarms_14.patch uploaded by tzafrir (license 46) Tested by: tzafrir 2008-08-20 17:14 +0000 [r139074] Steve Murphy * main/cdr.c: (closes issue #13263) Reported by: brainy Tested by: murf The specialized reset routine is tromping on the flags field of the CDR. I made a change to not reset the DISABLED bit. This should get rid of this problem. 2008-08-20 15:37 +0000 [r139015] Mark Michelson * channels/chan_sip.c: sip_read should properly handle a NULL return from sip_rtp_read. (closes issue #13257) Reported by: travishein 2008-08-19 23:22 +0000 [r138949] Jeff Peeler * include/asterisk/dahdi_compat.h: add DAHDI_POLICY_WHEN_FULL compatability define for Zaptel 2008-08-19 23:17 +0000 [r138942] Mark Michelson * channels/chan_agent.c: Reset agent_pvt variables back to the values in agents.conf (from what the corresponding channel variables were set to) when the agent logs out. (closes issue #13098) Reported by: davidw Patches: 20080731__issue13098_agent_ackcall_not_reset.diff uploaded by bbryant (license 36) Tested by: davidw 2008-08-19 22:56 +0000 [r138938] Jeff Peeler * channels/chan_dahdi.c: Add configuration option to chan_dahdi.conf to allow buffering policy and number of buffers to be configured per channel. Syntax: buffers=, Where the number of buffers is some non-negative integer and the policy is either "full", "half", or "immediate". 2008-08-19 18:50 +0000 [r138685-138886] Mark Michelson * apps/app_chanspy.c: Add a lock and unlock prior to the destruction of the chanspy_ds lock to ensure that no other threads still have it locked. While this should not happen under normal circumstances, it appears that if the spyer and spyee hang up at nearly the same time, the following may occur. 1. ast_channel_free is called on the spyee's channel. 2. The chanspy datastore is removed from the spyee's channel in ast_channel_free. 3. In the spyer's thread, the spyer attempts to remove and destroy the datastore from the spyee channel, but the datastore has already been removed in step 2, so the spyer continues in the code. 4. The spyee's thread continues and calls the datastore's destroy callback, chanspy_ds_destroy. This involves locking the chanspy_ds. 5. Now the spyer attempts to destroy the chanspy_ds lock. The problem is that in step 4, the spyee has locked this lock, meaning that the spyer is attempting to destroy a lock which is currently locked by another thread. The backtrace provided in issue #12969 supports the idea that this is possible (and has even occurred). This commit does not close the issue, but should help in preventing one type of crash associated with the use of app_chanspy. * apps/app_queue.c: Change the inequalities used in app_queue with regards to timeouts from being strict to non-strict for more accuracy. (closes issue #13239) Reported by: atis Patches: app_queue_timeouts_v2.patch uploaded by atis (license 242) 2008-08-18 16:57 +0000 [r138663] Kevin P. Fleming * codecs/codec_dahdi.c: look for transcoder in proper place based on build against Zaptel or DAHDI 2008-08-18 11:57 +0000 [r138569] Sean Bright * channels/chan_dahdi.c: You know what's awesome? Code that compiles... ;) 2008-08-18 02:05 +0000 [r138516] Jeff Peeler * channels/chan_dahdi.c: fix compilation warnings 2008-08-16 01:12 +0000 [r138309-138360] Jeff Peeler * channels/chan_dahdi.c: fixes use count to properly decrement if an active dahdi channel is destroyed allowing module to be unloaded * channels/chan_dahdi.c: add forgotten locks around ss_thread_count in ss_thread for dahdi restart 2008-08-15 22:33 +0000 [r138258] Tilghman Lesher * channels/chan_sip.c, configs/sip.conf.sample: More fixes for realtime peers. (closes issue #12921) Reported by: Nuitari Patches: 20080804__bug12921.diff.txt uploaded by Corydon76 (license 14) 20080815__bug12921.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 2008-08-15 21:28 +0000 [r138119-138238] Jeff Peeler * channels/chan_dahdi.c: initialize condition variable ss_thread_complete using ast_cond_init * channels/chan_dahdi.c: declared static mutexes using AST_MUTEX_DEFINE_STATIC macro * channels/chan_dahdi.c: Fixes the dahdi restart functionality. Dahdi restart allows one to restart all DAHDI channels, even if they are currently in use. This is different from unloading and then loading the module since unloading requires the use count to be zero. Reloading the module is different in that the signalling is not changed from what it was originally configured. Also, this fixes not closing all the file descriptors for D-channels upon module unload (which would prevent loading the module afterwards). (closes issue #11017) 2008-08-15 15:07 +0000 [r138027] Russell Bryant * main/autoservice.c: Ensure that when a hangup occurs in autoservice, that a hangup frame gets properly deferred to be read from the channel owner when it gets taken out of autoservice. (closes issue #12874) Reported by: dimas Patches: v1-12874.patch uploaded by dimas (license 88) 2008-08-15 14:51 +0000 [r137847-138023] Tilghman Lesher * funcs/func_strings.c: Additional check for more string specifiers than arguments. (closes issue #13299) Reported by: adomjan Patches: 20080813__bug13299.diff.txt uploaded by Corydon76 (license 14) func_strings.c-sprintf.patch uploaded by adomjan (license 487) Tested by: adomjan * channels/chan_dahdi.c: Oops, wrong direction * channels/chan_dahdi.c: When creating the secondary subchannel name, it is necessary to compare to the existing channel name without the "Zap/" or "DAHDI/" prefix, since our test string is also without that prefix. (closes issue #13027) Reported by: dferrer Patches: chan_zap-1.4.21.1_fix2.patch uploaded by dferrer (license 525) (Slightly modified by me, to compensate for both names) 2008-08-14 14:05 +0000 [r137731] Russell Bryant * configs/sip.conf.sample: Comments in this config file were aligned only if your tab size was set to 8. So, convert tabs to spaces so that things should be aligned regardless of what tab size you use in your editor. 2008-08-14 02:03 +0000 [r137677-137679] Kevin P. Fleming * Zaptel-to-DAHDI.txt: forgot one module name that changed * include/asterisk/dahdi_compat.h, channels/chan_dahdi.c, build_tools/menuselect-deps.in, configure, configure.ac, codecs/codec_dahdi.c: add support for Zaptel versions that contain the new transcoder interface 2008-08-13 21:35 +0000 [r137580] Jeff Peeler * channels/chan_dahdi.c: Register DAHDISendKeypadFacility application if dahdi_chan_mode is set to DAHDI + Zap. Mark ZapSendKeypadFacility application as deprecated on usage. 2008-08-13 20:46 +0000 [r137527-137530] Kevin P. Fleming * Zaptel-to-DAHDI.txt (added): add document describing what users will need to be aware of when upgrading to this version and using DAHDI * apps/app_meetme.c: remove some more chan_zap references * doc/asterisk-conf.txt, channels/chan_dahdi.c: document dahdichanname option in doc/asterisk-conf.txt make chan_dahdi read its configuration from zapata.conf if dahdichanname has been set to 'no' 2008-08-13 14:33 +0000 [r137348-137405] Sean Bright * doc/cdrdriver.txt: Update docs to reflect the change to cdr_tds * cdr/cdr_tds.c: Bring cdr_tds in line with the other CDR backends and have it try to store CDR(userfield) if it is set. The new behavior is to check for the userfield column on module load, and if it exists, we will store CDR(userfield) when CDRs are written. A similar patch already went into trunk and 1.6.0. (closes issue #13290) Reported by: falves11 2008-08-11 13:33 +0000 [r137188] Kevin P. Fleming * apps/app_meetme.c: convert this module to be able to handle DAHDI or Zaptel (reported on asterisk-users, don't know how this got missed before) 2008-08-11 00:20 +0000 [r137138] Tilghman Lesher * res/res_odbc.c: Deallocate database connection handle on disconnect, as we allocate another one on connect. (closes issue #13271) Reported by: dveiga 2008-08-09 17:11 +0000 [r136999] Russell Bryant * configure, configure.ac: Ensure PBX_DAHDI_TRANSCODE will evaluate to 0 if not found instead of empty. pointed out by tzafrir on #asterisk-dev 2008-08-09 15:25 +0000 [r136946] Tilghman Lesher * /, include/asterisk/compat.h, include/asterisk/astobj2.h: Merged revisions 136945 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r136945 | tilghman | 2008-08-09 10:24:36 -0500 (Sat, 09 Aug 2008) | 2 lines Regression fixes for Solaris ........ 2008-08-08 00:15 +0000 [r136726] Steve Murphy * pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18, pbx/ael/ael-test/ref.ael-vtest13, pbx/ael/ael-test/ref.ael-ntest10, pbx/pbx_ael.c, include/asterisk/ael_structs.h: (closes issue #13236) Reported by: korihor Wow, this one was a challenge! I regrouped and ran a new strategy for setting the ~~MACRO~~ value; I set it once per extension, up near the top. It is only set if there is a switch in the extension. So, I had to put in a chunk of code to detect a switch in the pval tree. I moved the code to insert the set of ~~exten~~ up to the beginning of the gen_prios routine, instead of down in the switch code. I learned that I have to push the detection of the switches down into the code, so everywhere I create a new exten in gen_prios, I make sure to pass onto it the values of the mother_exten first, and the exten next. I had to add a couple fields to the exten struct to accomplish this, in the ael_structs.h file. The checked field makes it so we don't repeat the switch search if it's been done. I also updated the regressions. 2008-08-07 18:25 +0000 [r136560] Kevin P. Fleming * build_tools/menuselect-deps.in, configure, configure.ac: change the required dependency for codec_dahdi to only be satisfied by DAHDI and not Zaptel, as the new transcoder interface is only in DAHDI 2008-08-07 18:14 +0000 [r136544] Shaun Ruffell * codecs/codec_dahdi.c: Updated codec_dahdi to use the new transcoder interface in the first DAHDI release. Codec dahdi no longer functions with the transcoder interface in zaptel at this time (which the last zaptel release was 1.4.11). NOTE: Still needs an update to the configure script to make sure that codec_dahdi is only built if the new transcoder interface is present in the drivers. (Issue: DAHDI-42) 2008-08-07 16:50 +0000 [r136488] Tilghman Lesher * apps/app_queue.c: Update persistent state on all exit conditions. (closes issue #12916) Reported by: sgenyuk Patches: app_queue.patch.txt uploaded by neutrino88 (license 297) Tested by: sgenyuk, aragon 2008-08-07 16:30 +0000 [r136404-136484] Kevin P. Fleming * include/asterisk/doxyref.h: add a raw list of all libraries that any part of Asterisk links directly to * apps/app_voicemail.c: work around a bug in gcc-4.2.3 that incorrectly ignores the casting away of 'const' for pointers when the developer knows it is safe to do so * Makefile: remove config.cache during distclean, in case the user is using autoconf caching 2008-08-07 01:31 +0000 [r136304-136348] Tilghman Lesher * channels/chan_dahdi.c: Also, parse useincomingcalleridonzaptransfer (and add appropriate deprecation warnings). * channels/chan_dahdi.c: For backwards compatibility with previous 1.4 versions which used "zapchan" in users.conf, ensure that we still support it. 2008-08-06 21:18 +0000 [r136241] Richard Mudgett * channels/misdn_config.c, channels/chan_misdn.c, configs/misdn.conf.sample: * The allowed_bearers setting in misdn.conf misspelled one of its options: digital_restricted. * Fixed some other spelling errors and typos. 2008-08-06 20:42 +0000 [r136238] Mark Michelson * apps/app_queue.c: We only need to unregister the QueueStatus manager command once on an unload 2008-08-06 20:14 +0000 [r136190] Tilghman Lesher * contrib/init.d/rc.redhat.asterisk: -C option takes a filename, not a directory path. (closes issue #13007) Reported by: klaus3000 2008-08-06 18:58 +0000 [r136168] Russell Bryant * Makefile: Remove the use of --no-print-directory when compiling subdirectories. This allows vim :make functionality to work properly when errors have occurred in the build. Without printing the directories, vim did not know how to find the file that the error occurred in. If the extra bit of build noise annoys anyone, just let me know, and I'll make this optional. 2008-08-06 15:58 +0000 [r136062] Mark Michelson * main/rtp.c, channels/chan_skinny.c: Since adding the AST_CONTROL_SRCUPDATE frame type, there are places where ast_rtp_new_source may be called where the tech_pvt of a channel may not yet have an rtp structure allocated. This caused a crash in chan_skinny, which was fixed earlier, but now the same crash has been reported against chan_h323 as well. It seems that the best solution is to modify ast_rtp_new_source to not attempt to set the marker bit if the rtp structure passed in is NULL. This change to ast_rtp_new_source also allows the removal of what is now a redundant pointer check from chan_skinny. (closes issue #13247) Reported by: pj 2008-08-06 03:53 +0000 [r135899-135949] Tilghman Lesher * main/channel.c: Fix a longstanding bug in channel walking logic, and fix the explanation to make sense. (Closes issue #13124) * main/translate.c: Since powerof() can return an error condition, it's foolhardy not to detect and deal with that condition. (Related to issue #13240) * include/asterisk/threadstorage.h, include/asterisk/utils.h: 1) Bugfix for debugging code 2) Reduce compiler warnings for another section of debugging code (Closes issue #13237) 2008-08-06 00:29 +0000 [r135841-135850] Mark Michelson * /: Remove properties that should not be here * apps/app_skel.c: Revert inadvertent changes to app_skel that occurred when I was testing for a memory leak * include/asterisk/abstract_jb.h, main/channel.c, /, apps/app_skel.c, main/abstract_jb.c, main/fixedjitterbuf.h: Merging the issue11259 branch. The purpose of this branch was to take into account "burps" which could cause jitterbuffers to misbehave. One such example is if the L option to Dial() were used to inject audio into a bridged conversation at regular intervals. Since the audio here was not passed through the jitterbuffer, it would cause a gap in the jitterbuffer's timestamps which would cause a frames to be dropped for a brief period. Now ast_generic_bridge will empty and reset the jitterbuffer each time it is called. This causes injected audio to be handled properly. ast_generic_bridge also will empty and reset the jitterbuffer if it receives an AST_CONTROL_SRCUPDATE frame since the change in audio source could negatively affect the jitterbuffer. All of this was made possible by adding a new public API call to the abstract_jb called ast_jb_empty_and_reset. (closes issue #11259) Reported by: plack Tested by: putnopvut 2008-08-05 23:13 +0000 [r135799] Steve Murphy * apps/app_dial.c, main/cdr.c, main/channel.c, res/res_features.c, include/asterisk/cdr.h: (closes issue #12982) Reported by: bcnit Tested by: murf I discovered that also, in the previous bug fixes and changes, the cdr.conf 'unanswered' option is not being obeyed, so I fixed this. And, yes, there are two 'answer' times involved in this scenario, and I would agree with you, that the first answer time is the time that should appear in the CDR. (the second 'answer' time is the time that the bridge was begun). I made the necessary adjustments, recording the first answer time into the peer cdr, and then using that to override the bridge cdr's value. To get the 'unanswered' CDRs to appear, I purposely output them, using the dial cmd to mark them as DIALED (with a new flag), and outputting them if they bear that flag, and you are in the right mode. I also corrected one small mention of the Zap device to equally consider the dahdi device. I heavily tested 10-sec-wait macros in dial, and without the macro call; I tested hangups while the macro was running vs. letting the macro complete and the bridge form. Looks OK. Removed all the instrumentation and debug. 2008-08-05 21:34 +0000 [r135747] Tilghman Lesher * channels/chan_iax2.c: In a conversion to use ast_strlen_zero, the meaning of the flag IAX_HASCALLERID was perverted. This change reverts IAX2 to the original meaning, which was, that the callerid set on the client should be overridden on the server, even if that means the resulting callerid is blank. In other words, if you set "callerid=" in the IAX config, then the callerid should be overridden to blank, even if set on the client. Note that there's a distinction, even on realtime, between the field not existing (NULL in databases) and the field existing, but set to blank (override callerid to blank). 2008-08-05 13:25 +0000 [r135597] Sean Bright * main/cli.c: Use PATH_MAX for filenames 2008-08-04 20:15 +0000 [r135536] Russell Bryant * configs/chan_dahdi.conf.sample: fix a config sample typo 2008-08-04 17:07 +0000 [r135479-135482] Tilghman Lesher * contrib/init.d/rc.mandrake.asterisk: Define ASTSBINDIR for script * apps/app_voicemail.c: Memory leak on unload (closes issue #13231) Reported by: eliel Patches: app_voicemail.leak.patch uploaded by eliel (license 64) 2008-08-04 16:26 +0000 [r135473] Russell Bryant * configs/chan_dahdi.conf.sample: Add a minor clarification to the documentation of mohinterpret and mohsuggest 2008-08-01 11:43 +0000 [r135055-135058] Michiel van Baak * apps/app_ices.c: make app_ices compile on OpenBSD. * channels/chan_skinny.c: fix some potential deadlocks in chan_skinny (closes issue #13215) Reported by: qwell Patches: 2008080100_bug13215.diff.txt uploaded by mvanbaak (license 7) Tested by: mvanbaak 2008-07-31 22:18 +0000 [r134983] Kevin P. Fleming * main/http.c: accomodate users who seem to lack a sense of humor :-) 2008-07-31 21:53 +0000 [r134976] Tilghman Lesher * sample.call, main/manager.c, pbx/pbx_spool.c: Specify codecs in callfiles and manager, to allow video calls to be set up from callfiles and AMI. (closes issue #9531) Reported by: Geisj Patches: 20080715__bug9531__1.4.diff.txt uploaded by Corydon76 (license 14) 20080715__bug9531__1.6.0.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 2008-07-31 19:37 +0000 [r134915] Russell Bryant * apps/app_ices.c: Get app_ices working again (closes issue #12981) Reported by: dlogan Patches: 20080709__app_ices_v2_update_trunk.diff uploaded by bbryant (license 36) 20080709__app_ices_v2_update_14.diff uploaded by bbryant (license 36) Tested by: bbryant 2008-07-31 19:23 +0000 [r134883] Steve Murphy * res/res_features.c: (closes issue #11849) Reported by: greyvoip Tested by: murf OK, a few days of debugging, a bunch of instrumentation in chan_sip, main/channel.c, main/pbx.c, etc. and 5 solid notebook pages of notes later, I have made the small tweek necc. to get the start time right on the second CDR when: A Calls B B answ. A hits Xfer button on sip phone, A dials C and hits the OK button, A hangs up C answers ringing phone B and C converse B and/or C hangs up But does not harm the scenario where: A Calls B B answ. B hits xfer button on sip phone, B dials C and hits the OK button, B hangs up C answers ringing phone A and C converse A and/or C hangs up The difference in start times on the second CDR is because of a Masquerade on the B channel when the xfer number is sent. It ends up replacing the CDR on the B channel with a duplicate, which ends up getting tossed out. We keep a pointer to the first CDR, and update *that* after the bridge closes. But, only if the CDR has changed. I hope this change is specific enough not to muck up any current CDR-based apps. In my defence, I assert that the previous information was wrong, and this change fixes it, and possibly other similar scenarios. I wonder if I should be doing the same thing for the channel, as I did for the peer, but I can't think of a scenario this might affect. I leave it, then, as an exersize for the users, to find the scenario where the chan's CDR changes and loses the proper start time. 2008-07-31 16:45 +0000 [r134814] Russell Bryant * channels/iax2-parser.c: In case we have some processing threads that free more frames than they allocate, do not let the frame cache grow forever. (closes issue #13160) Reported by: tavius Tested by: tavius, russell 2008-07-31 15:56 +0000 [r134758] Mark Michelson * apps/app_queue.c: Add more timeout checks into app_queue, specifically targeting areas where an unknown and potentially long time has just elapsed. Also added a check to try_calling() to return early if the timeout has elapsed instead of potentially setting a negative timeout for the call (thus making it have *no* timeout at all). (closes issue #13186) Reported by: miquel_cabrespina Patches: 13186.diff uploaded by putnopvut (license 60) Tested by: miquel_cabrespina 2008-07-30 22:39 +0000 [r134704] Tilghman Lesher * main/sched.c, include/asterisk/sched.h: Oops, wrong define 2008-07-30 22:02 +0000 [r134652] Steve Murphy * pbx/pbx_ael.c: (closes issue #13197) Reported by: pj (closes issue #13051) Reported by: pj This patch substitutes commas in the expr supplied to the if () statement, as in if ( expr ) ... This solves both the bugs above, and makes the source symmetric with switch statements, which were earlier reported to need this sort of treatment. I tested this using the examples, both for the compiler and at run time. Looks good. 2008-07-30 21:38 +0000 [r134649] Tilghman Lesher * configure, configure.ac: Qwell pointed out, via IRC, that the previous fix only worked when explicitly set. When nothing is set, and the option is implied, it breaks, because configure sets the prefix to 'NONE'. Fixing. 2008-07-30 20:37 +0000 [r134540-134595] Russell Bryant * pbx/pbx_dundi.c: Reduce stack consumption by 12.5% of the max stack size to fix a crash when compiled with LOW_MEMORY. (closes issue #13154) Reported by: edantie * funcs/func_curl.c: Fix a memory leak in func_curl. Every thread that used this function leaked an allocation the size of a pointer. (reported by jmls in #asterisk-dev) 2008-07-30 19:47 +0000 [r134480-134536] Tilghman Lesher * configure, configure.ac: Only override sysconfdir and mandir when prefix=/usr (closes issue #13093) Reported by: pabelanger * res/res_agi.c: launch_netscript sometimes returns -1, which fails to set AGISTATUS. Map failure to -1, so that AGISTATUS is always set. (closes issue #13199) Reported by: smw1218 2008-07-30 18:31 +0000 [r134475] Mark Michelson * main/app.c: Fix a spot where a function could return without bringing a channel out of autoservice. 2008-07-30 15:29 +0000 [r134254-134352] Kevin P. Fleming * Makefile: use the proper method for building version.h * include/asterisk/dahdi_compat.h, apps/app_dahdibarge.c, channels/chan_dahdi.c, apps/app_meetme.c, apps/app_flash.c, apps/app_dahdiscan.c, apps/app_dahdiras.c, codecs/codec_dahdi.c: build against the now-typedef-free dahdi/user.h 2008-07-29 15:54 +0000 [r134223] Mark Michelson * apps/app_voicemail.c: Merging the imap_consistency branch. The main aim of this branch was to make the IMAP code function in the same manner as the ODBC code does, eliminating the need for so many IMAP-specific code chunks. The focal point of all of this work was to make the various macros (e.g. RETRIEVE, DISPOSE) functionally equivalent. While doing the above work, I also fixed a few bugs that I came across in my testing. Among these were 1. Fixed message forwarding. This was completely broken when using IMAP. 2. Fixed the inability to save new messages as old and vice versa. 3. Fixed the "delete" options in voicemail.conf when using IMAP storage. Even though a few bugs were fixed and the code is a lot more consistent, the one thing that was *not* improved in this branch was performance. The merge of this to trunk may not come immediately due to the amount of work it will probably involve. (closes issue #12764) Reported by: balsamcn 2008-07-28 21:50 +0000 [r134161] Tilghman Lesher * apps/app_voicemail.c: Detect when sox fails to raise the volume, because sox can't read the file. (closes issue #12939) Reported by: rickbradley Patches: 20080728__bug12939.diff.txt uploaded by Corydon76 (license 14) Tested by: rickbradley 2008-07-26 15:31 +0000 [r133980] Russell Bryant * main/asterisk.c, include/asterisk/doxyref.h: Add the licensing section to the docs in 1.4, as well, so that we can work on having an accurate list for each version of Asterisk that is supported 2008-07-25 18:00 +0000 [r133649-133709] Tilghman Lesher * apps/app_voicemail.c: Remove unnecessary mmap flag (Closes issue #13161) * main/channel.c, channels/chan_agent.c, main/devicestate.c: Fix some errant device states by making the devicestate API more strict in terms of the device argument (only without the unique identifier appended). (closes issue #12771) Reported by: davidw Patches: 20080717__bug12771.diff.txt uploaded by Corydon76 (license 14) Tested by: davidw, jvandal, murf 2008-07-25 15:00 +0000 [r133578] Russell Bryant * /, LICENSE: Merged revisions 133577 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r133577 | russell | 2008-07-25 10:00:13 -0500 (Fri, 25 Jul 2008) | 2 lines Fix the IAX2 URI for calling Digium ........ 2008-07-25 14:40 +0000 [r133572] Mark Michelson * channels/chan_sip.c: We need to make sure to null-terminate the "name" portion of SIP URI parameters so that there are no bogus comparisons. Thanks to bbryant for pointing this out. 2008-07-24 21:17 +0000 [r133361-133488] Tilghman Lesher * channels/chan_sip.c: Fix rtautoclear and rtcachefriends (Closes issue #12707) * /: Blocked revisions 133360 via svnmerge ........ r133360 | tilghman | 2008-07-23 22:46:01 -0500 (Wed, 23 Jul 2008) | 2 lines This part was not correctly patched for AST-2008-010. ........ 2008-07-23 21:49 +0000 [r133295] Jason Parker * channels/chan_dahdi.c: inbandrelease is gone - it's now inbanddisconnect 2008-07-23 21:05 +0000 [r133226-133237] Kevin P. Fleming * include/asterisk/stringfields.h, main/utils.c: revert an optimization that broke ABI... thanks russell! * apps/app_chanspy.c, include/asterisk/options.h, main/asterisk.c, apps/app_dahdibarge.c, channels/chan_dahdi.c, apps/app_dahdiras.c: make some more changes to the dahdi/zap channel name support stuff to ensure allthe globals are 'const', and clean up mmichelson's changes to app_chanspy to simplify the code 2008-07-23 19:39 +0000 [r132974-133169] Mark Michelson * apps/app_chanspy.c, include/asterisk/options.h, main/asterisk.c, channels/chan_dahdi.c: As suggested by seanbright, the PSEUDO_CHAN_LEN in app_chanspy should be set at load time, not at compile time, since dahdi_chan_name is determined at load time. Also changed the next_unique_id_to_use to have the static qualifier. Also added the dahdi_chan_name_len variable so that strlen(dahdi_chan_name) isn't necessary. Thanks to seanbright for the suggestion. * apps/app_chanspy.c: Zap/pseudo is ten characters, but DAHDI/pseudo is twelve. The strncmp call in next_channel should account for this. * apps/app_chanspy.c: Update the "last" channel in next_channel in app_chanspy so that the same pseudo channel isn't constantly returned. related to issue #13124 * channels/chan_dahdi.c: Small cleanup. Move the declaration of the DAHDI_SPANINFO variable to the block where it is used. This allows one less #ifdef HAVE_PRI to clutter things up. Thanks to Tzafrir for pointing this out on #asterisk-dev * channels/chan_dahdi.c: Fix building of chan_dahdi when HAVE_PRI is not defined. 2008-07-23 15:52 +0000 [r132872-132942] Kevin P. Fleming * channels/chan_dahdi.c: ensure that after a channel is created, if it happened to be in 'channel alarm' state, when that alarm clears we won't generate a spurious 'alarm cleared' message (closes issue #12160) Reported by: tzafrir * include/asterisk/stringfields.h, main/utils.c: minor optimization for stringfields: when a field is being set to a larger value than it currently contains and it happens to be the most recent field allocated from the currentl pool, it is possible to 'grow' it without having to waste the space it is currently using (or potentially even allocate a new pool) 2008-07-23 11:37 +0000 [r132826] Christian Richter * channels/misdn/isdn_lib.c: another Fix because of r119585, this commit has broken high frequented BRI Ports, there was a possibility that a channel, that was marked as in_use would be reused later, the corresponding port could got stuck then. So it is recommended to upgrade for chan_misdn users. 2008-07-22 22:14 +0000 [r132790] Mark Michelson * channels/chan_sip.c: Allow Spiraled INVITEs to work correctly within Asterisk. Prior to this change, a spiraled INVITE would cause a 482 Loop Detected to be sent to the caller. With this change, if a potential loop is detected, the Request-URI is inspected to see if it has changed from what was originally received. If pedantic mode is on, then this inspection is fully RFC 3261 compliant. If pedantic mode is not on, then a string comparison is used to test the equality of the two R-URIs. This has been tested by using OpenSER to rewrite the R-URI and send the INVITE back to Asterisk. (closes issue #7403) Reported by: stephen_dredge 2008-07-22 22:11 +0000 [r132784-132787] Kevin P. Fleming * include/asterisk/options.h, main/asterisk.c, apps/app_dahdibarge.c, channels/chan_dahdi.c, apps/app_flash.c, apps/app_dahdiras.c: fix up namespace pollution for dahdi_chan_mode enum correct registration of AMI actions in chan_dahdi; in zap-only mode, only register the Zap flavors of the actions (and use Zap prefixes for headers and acks), but in dahdi+zap mode, register both Zap and DAHDI flavors of actions * Makefile.rules: add rules to create preprocessor output... useful for debugging macros 2008-07-22 21:19 +0000 [r132713] Tilghman Lesher * configs/iax.conf.sample, /, channels/chan_iax2.c: Merged revisions 132711 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r132711 | tilghman | 2008-07-22 16:14:10 -0500 (Tue, 22 Jul 2008) | 2 lines Fixes for AST-2008-010 and AST-2008-011 ........ 2008-07-22 21:17 +0000 [r132704-132712] Kevin P. Fleming * channels/chan_dahdi.c: ensure that if any alarms exist at channel creation time, they are handled identically to if they occurred later, so that later alarm clearing will work properly and 'make sense' (closes issue #12160) Reported by: tzafrir * configure, configure.ac, acinclude.m4: make AST_C_COMPILE_CHECK able to print a 'pretty' description of what it is doing 2008-07-22 20:10 +0000 [r132645] Olle Johansson * channels/chan_sip.c, doc/sip-retransmit.txt (added): The most common question on the #asterisk iRC channel and on mailing lists seems to be in regards to an error message when retransmit fails. This is frequently misunderstood as a failure of Asterisk, not a failure of the network to reach the other party. This document tries to assist the Asterisk user in sorting out these issues by explaining the logic and pointing at some possible causes. Hopefully, we will get other questions now :-) 2008-07-22 19:57 +0000 [r132571-132642] Kevin P. Fleming * channels/chan_dahdi.c: correct wording in comment * channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, configure, include/asterisk/autoconfig.h.in, configure.ac: use renamed libpri API call for controlling this feature (was improperly named before) * channels/chan_dahdi.c: teach chan_dahdi how to find the D-channel on BRI spans, and don't attempt to use channel 24 as a D-channel on spans of unexpected sizes 2008-07-21 20:51 +0000 [r132506-132507] Brett Bryant * apps/app_sendtext.c: Fix a bug where SENDTEXTSTATUS isn't set properly when it isn't supported on a channel (yet _another_ useful patch by eliel). (issue #13081) Reported by: eliel Patches: app_sendtext1.4.c uploaded by eliel (license 64) Tested by: eliel * channels/chan_iax2.c: Fix a bug in 1.4 branch with iax2 channels not being removed when a call was rejected (from the calling box, not the box that denied the registration). Related to revisions 132466 in trunk, and 132467 in 1.6.0. Earlier I had accidently tested 1.4 with a backport from those revisions, so I didn't see this problem (oops). 2008-07-19 16:45 +0000 [r132311] Kevin P. Fleming * LICENSE: grant a license exception to allow distribution of Asterisk binaries that use the UW IMAP Toolkit (which is licensed under a non-GPL-compatible license) 2008-07-18 19:06 +0000 [r131970-132112] Tilghman Lesher * main/say.c: Fix for Taiwanese number syntax (closes issue #12319) Reported by: CharlesWang Patches: saynumber-tw-1.4.18.1.patch uploaded by CharlesWang (license 444) * main/config.c: Textual clarification (closes issue #13106) Reported by: flefoll Patches: config.c.br14.120173.patch-unknown-directive uploaded by flefoll (license 244) * include/asterisk/sched.h, channels/chan_iax2.c: Spinlock within the destroy, to allow a scheduled job to continue, if it's waiting on the mutex which the destroy thread has. * main/sched.c: Oops * main/sched.c, include/asterisk/sched.h: Preserve ABI compatibility with last change * main/sched.c, include/asterisk/sched.h, channels/chan_iax2.c: Make the ast_assert call within ast_sched_del report something useful. 2008-07-18 16:15 +0000 [r131921] Kevin P. Fleming * main/dlfcn.c (removed), main/loader.c, main/Makefile, include/asterisk/dlfcn-compat.h (removed): remove the dlfcn compatibility stuff, because no platforms that Asterisk currently runs on it use it, and it doesn't build anyway 2008-07-18 15:34 +0000 [r131915] Brett Bryant * res/res_features.c: Fix a bug in blind transfers where the BLINDTRANSFER variable isn't always set to the other end of the blind transfer. (closes issue #12586) 2008-07-17 20:35 +0000 [r131790] Tilghman Lesher * channels/chan_dahdi.c: Revert part of issue #5620 (revision 6965) as it appears that it was in error. This should fix talk call progress on analog lines. (closes issue #12178) Reported by: michael-fig Patches: 20080717__bug12178.diff.txt uploaded by Corydon76 (license 14) 2008-07-16 22:17 +0000 [r131491] Brett Bryant * channels/chan_iax2.c: Fix a bug in iax2 registration that allowed peers to register with case-insensitive names (user_cmp_cb and peer_cmp_cb are now both case-sensitive). (closes issue #13091) 2008-07-16 21:46 +0000 [r131480] Tilghman Lesher * channels/chan_iax2.c: Apparently, in certain cases, a callno is already destroyed when iax2_destroy is called. 2008-07-16 20:47 +0000 [r131421] Russell Bryant * channels/chan_iax2.c: Always ensure that the channel's tech_pvt reference is NULL after calling the destroy callback. (closes issue #13060) Reported by: jpgrayson Patches: chan_iax2_tech_pvt_crash.patch uploaded by jpgrayson (license 492) 2008-07-16 20:23 +0000 [r131299-131369] Mark Michelson * apps/app_queue.c: Move the init_queue call back to where it used to be (changed Sept 12 last year). It was moved then to prevent a memory leak. Since then, the same memory leak recurred and was fixed in a better way. Now it has been found that the placement of this init_queue call can cause problems if a realtime queue has values changed to an empty string. The problem is that the default value for that queue parameter would not be set. (closes issue #13084) Reported by: elbriga * apps/app_queue.c: Apparently, "thread safety" is important, whatever that means. :P (Thanks Russell!) * apps/app_queue.c: Make absolutely certain that the transfer datastore is removed from the calling channel once the caller is finished in the queue. This could have weird con- sequences when dialing local queue members when multiple transfers occur on a single call. Also fixed a memory leak that would occur when an attended transfer occurred from a queue member. (closes issue #13047) Reported by: festr 2008-07-16 17:53 +0000 [r131242] Steve Murphy * pbx/pbx_ael.c: (closes issue #13090) Reported by: murf The problem was that, esoteric as it is, because the hangerupper context immediately preceded the std-priv-extent macro, that the checking code accidentally would fall from traversing hangerupper into the std-priv-exten macro, where it would hit the hangerupper in the 'includes', and proceed into an infinite recursion. A small fix to traverse into the statements of the context instead of the context solves this issue. I also added some commented out printfs for debug, which were pretty handy in the face of a dorky gdb. This was a problem around since the package was first written; but evidently pretty rare in turning up in the field. 2008-07-15 17:47 +0000 [r131012] Michiel van Baak * main/cdr.c: remove 4 lines of redundant code. (closes issue #13080) Reported by: gknispel_proformatique Patches: trunk_ast_cdr_setapp.patch uploaded by gknispel (license 261) 2008-07-15 17:19 +0000 [r130889-130959] Tilghman Lesher * main/manager.c, channels/chan_sip.c: astman_send_error does not need a newline appended -- the API takes care of that for us. (closes issue #13068) Reported by: gknispel_proformatique Patches: asterisk_1_4_astman_send.patch uploaded by gknispel (license 261) asterisk_trunk_astman_send.patch uploaded by gknispel (license 261) * channels/chan_iax2.c: Override the callerid in all cases when the callerid is set in the user, not just when a remote callerid is set. Also, if not set in the user, allow the remote CallerID to pass through. (closes issue #12875) Reported by: dimas Patches: 20080714__bug12875.diff.txt uploaded by Corydon76 (license 14) 2008-07-14 17:50 +0000 [r130792] Mark Michelson * apps/app_dial.c: Add a check to the CAN_EARLY_BRIDGE macro in app_dial to be sure there are no audiohooks present on the channels involved. This fixed a one-way audio situation I had in my test setup. I couldn't find any open issues that suggested one-way audio with regards to mixmonitor (or other audiohook) usage, though. 2008-07-14 17:10 +0000 [r130735] Michiel van Baak * main/dnsmgr.c: notify the user that dnsmgr refresh wont work when dnsmgr is not enabled. Previously this command would automagically appear and disappear. This was confusing. (closes issue #12796) Reported by: chappell Patches: dnsmgr_refresh_3.diff uploaded by chappell (license 8) Tested by: russell, chappell, mvanbaak 2008-07-14 10:38 +0000 [r130634] Russell Bryant * main/audiohook.c: Bump up the debug level for a message. 2008-07-13 22:48 +0000 [r130573] Michiel van Baak * main/manager.c: fix memory leak when originate from manager cannot create a thread (closes issue #13069) Reported by: gknispel_proformatique Patches: asterisk_trunk_action_originate.patch uploaded by gknispel (license 261) Tested by: gknispel_proformatique, mvanbaak 2008-07-13 17:56 +0000 [r130514] Tilghman Lesher * channels/chan_iax2.c: Reverting 2 changesets, as it breaks incoming IAX2 calls (Related to issue #12963) Reported by: mvanbaak 2008-07-12 10:25 +0000 [r130373] Michiel van Baak * pbx/pbx_ael.c: in 1.4 the functions still have | as argument seperator. This commit fixes the use of RAND in the ael random function. (closes issue #13061) Reported by: danpwi 2008-07-11 22:23 +0000 [r130298-130317] Kevin P. Fleming * Makefile: forcibly remove the modules that are changing names * include/asterisk/options.h, main/asterisk.c, cdr/cdr_csv.c, Makefile, main/channel.c, apps/app_dahdibarge.c, channels/chan_dahdi.c, doc/hardware.txt, apps/app_flash.c, apps/app_dahdiras.c, main/file.c, contrib/utils/zones2indications.c, include/asterisk/channel.h, channels/chan_iax2.c: a whole pile of Zaptel/DAHDI compatibility work, with lots more to come... this tree is not yet ready for users to be easily upgrading or switching, but it needs to be :-) 2008-07-11 20:03 +0000 [r130173-130236] Mark Michelson * main/audiohook.c: Remove redundant logic * main/audiohook.c: Fix a typo in audiohook_read_frame_both. While this change has not been proven to fix any specific issue, it is incorrect and could cause unforeseen problems. 2008-07-11 18:51 +0000 [r130102-130169] Tilghman Lesher * channels/chan_iax2.c: Ensure that a destination callno of 0 will not match for frames that do not start a dialog (new, lagrq, and ping). (closes issue #12963) Reported by: russellb Patches: chan_iax2_dup_new_fix4.patch uploaded by jpgrayson (license 492) * channels/chan_agent.c: Pass the devicestate from an underlying channel up through the Agent channel. This should make the Agent always report the correct device state, even when the underlying channel is used for other purposes. (closes issue #12773) Reported by: davidw Patches: 20080710__bug12773.diff.txt uploaded by Corydon76 (license 14) Tested by: davidw 2008-07-11 16:08 +0000 [r130039-130042] Kevin P. Fleming * doc/configuration.txt, configs/extensions.conf.sample, configs/sla.conf.sample, configs/zapata.conf.sample (removed), contrib/scripts/autosupport, README, configs/chan_dahdi.conf.sample (added), channels/chan_dahdi.c, include/asterisk/doxyref.h, doc/sla.tex, doc/ael.txt, configs/extensions.ael.sample, configs/smdi.conf.sample: new installations should be using DAHDI instead of Zaptel, so the sample config file is now chan_dahdi.conf instead of zapata.conf also, convert remaining references to zapata.conf in various places * configs/zapata.conf.sample, channels/chan_dahdi.c, configure, include/asterisk/autoconfig.h.in, configure.ac: add support for a configuration parameter for 'inband audio during RELEASE', which is currently mandatory in libpri-1.4.4 but will become configurable in libpri-1.4.5 later today (related to issue #13042) 2008-07-11 14:18 +0000 [r129970] Russell Bryant * include/asterisk/astobj.h: add a simple ASTOBJ_TRYWRLOCK macro ... 2008-07-11 14:14 +0000 [r129907-129967] Kevin P. Fleming * main/astmm.c: simplify calculation * main/astmm.c: fix a flaw found while experimenting with structure alignment and padding; low-fence checking would not work properly on 64-bit platforms, because the compiler was putting 4 bytes of padding between the fence field and the allocation memory block added a very obvious runtime warning if this condition reoccurs, so the developer who broke it can be chastised into fixing it :-) * sounds/Makefile: don't attempt to set user/group ownership of extracted sound files (reported on asterisk-users) (closes issue #13059) 2008-07-10 21:57 +0000 [r129741-129803] Tilghman Lesher * channels/chan_iax2.c: Correctly deal with duplicate NEW frames (due to retransmission). Also, fixup the destination call number matching to be more strict and reliable. (closes issue #12963) Reported by: jpgrayson Patches: chan_iax2_dup_new_fix3.patch uploaded by jpgrayson (license 492) Tested by: jpgrayson, Corydon76 * res/res_config_odbc.c: Oops 2008-07-10 16:03 +0000 [r129567] Russell Bryant * sample.call: Note that pbx_spool.so is the module used for call files (inspired by a question in #asterisk) 2008-07-10 13:57 +0000 [r129505] Sean Bright * main/editline: Update svn:ignore 2008-07-09 19:32 +0000 [r129436] Mark Michelson * main/rtp.c: Fix a problem where inbound rfc2833 audio would be sent to the core instead of being P2P bridged. When the core regenerated the rfc2833 packet for the outbound leg, the SSRC would be different than the RTP audio on the call leg causing DTMF detection issues on the far end. (closes issue #12955) Reported by: tonyredstone Patches: dynamic_rtp.patch uploaded by tsearle (license 373) Tested by: tonyredstone 2008-07-09 13:41 +0000 [r129343] Sean Bright * main/editline/makelist (removed), main/editline/makelist.in (added), main/editline/configure, main/editline/Makefile.in, main/editline/configure.in: Look for the system installed awk instead of assuming it's at /usr/bin/awk. Pointed out by jmls via #asterisk-dev. 2008-07-08 21:31 +0000 [r129158-129208] Mark Michelson * doc/imapstorage.txt: Update documentation to have the correct option name * apps/app_voicemail.c, doc/imapstorage.txt: Backport TCP-related timeouts to IMAP voicemail in 1.4 since it should solve bugs people are experiencing. Specifically, there are times where communication with the IMAP server causes system calls to block forever. If this should happen when querying the mailbox so that chan_sip's do_monitor thread can send MWI to a phone, it means that SIP calls cannot be processed any more. The timeout options are outlined in doc/imapstorage.txt. Defaults for the timeouts are sixty seconds. (closes issue #12987) Reported by: mthomasslo 2008-07-08 20:27 +0000 [r129047-129149] Tilghman Lesher * apps/app_dial.c, channels/chan_sip.c, include/asterisk/causes.h: Cause SIP to return a 480 instead of a 404 when a sip peer exists, but is not registered. (closes issue #12885) Reported by: ibc Patches: 20080701__bug12885__2.diff.txt uploaded by Corydon76 (license 14) Tested by: ibc * channels/chan_iax2.c: Timestamp decoding for video mini-frames is bogus, because the timestamp only includes 15 bits, unlike voice frames, which contain a 16-bit timestamp. (closes issue #13013) Reported by: jpgrayson Patches: chan_iax2_unwrap_ts.patch uploaded by jpgrayson (license 492) 2008-07-08 09:52 +0000 [r128912-128950] Olle Johansson * channels/chan_sip.c: Don't hangup the call if we can't resolve the Contact if there's a proxy route set for the call. ---- This comment was added a while ago and today it hit me badly. /* OEJ: Possible issue that may need a check: If we have a proxy route between us and the device, should we care about resolving the contact or should we just send it? */ * channels/chan_sip.c: Fix issues where repeated messages where ignored, but retransmitted reliably instead of unreliably. Reported by: johan Patches: 12746.txt uploaded by oej (license 306) Tested by: johan (issue #12746) 2008-07-08 00:01 +0000 [r128812-128856] Tilghman Lesher * apps/app_voicemail.c: Check for non-NULL before stripping characters. (closes issue #12954) Reported by: bfsworks Patches: 20080701__bug12954.diff.txt uploaded by Corydon76 (license 14) Tested by: deti * apps/app_voicemail.c: Stop using deprecated method, as requested by Kevin. 2008-07-07 22:41 +0000 [r128795] Russell Bryant * channels/chan_iax2.c: Fix handling of when a pvt disappears. Properly return the pvt locked and don't hold the pvt lock while destroying the ast_channel. (closes issue #13014) Reported by: jpgrayson Patches: chan_iax2_ast_iax2_new2.patch uploaded by jpgrayson (license 492) 2008-07-07 20:47 +0000 [r128737] Sean Bright * channels/chan_iax2.c: Remove spurious trailing whitespace from log messages and fix a spelling error in a log message. (closes issue #13017) Reported by: jpgrayson Patches: chan_iax2_space_after_newline.patch uploaded by jpgrayson (license 492) chan_iax2_spelling.patch uploaded by jpgrayson (license 492) 2008-07-07 17:02 +0000 [r128639] Mark Michelson * channels/chan_iax2.c: By using the iaxdynamicthreadcount to identify a thread, it was possible for thread identifiers to be duplicated. By using a globally-unique monotonically- increasing integer, this is now avoided. (closes issue #13009) Reported by: jpgrayson Patches: chan_iax2_dyn_threadnum.patch uploaded by jpgrayson (license 492) 2008-07-07 16:51 +0000 [r128637] Kevin P. Fleming * configure, configure.ac: use tzafrir's patch to fix this problem properly... i made the previous set of changes without thoroughly testing them, doh! (closes issue #12911) Reported by: tzafrir Patches: custum_dahdi_configure_2.diff uploaded by tzafrir (license 46) Tested by: tzafrir 2008-07-04 16:11 +0000 [r127973-128029] Tilghman Lesher * pbx/pbx_config.c: Move the free down one * main/pbx.c, include/asterisk/pbx.h, pbx/pbx_config.c: Fix the 'dialplan remove extension' logic, so that it a) works with cidmatch, and b) completes contexts correctly when the extension is ambiguous. (closes issue #12980) Reported by: licedey Patches: 20080703__bug12980.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 2008-07-03 22:20 +0000 [r127754-127895] Kevin P. Fleming * apps/Makefile: remove this, it has been moved to the main Makefile * Makefile, main/editline/np/vis.c: a couple of small Solaris-related fixes (closes issue #11885) Reported by: snuffy, asgaroth * configure, main/Makefile, configure.ac, acinclude.m4: ensure that DAHDI_INCLUDE and ZAPTEL_INCLUDE are added in all the places needed improve AST_EXT_LIB_CHECK to accept (and remember) additional CFLAGS data like it does in trunk already (closes issue #12911) Reported by: tzafrir 2008-07-03 00:16 +0000 [r127663] Steve Murphy * main/cdr.c, main/channel.c, channels/chan_dahdi.c, main/pbx.c, channels/chan_sip.c, res/res_features.c, include/asterisk/cdr.h: The CDRfix4/5/6 omnibus cdr fixes. (closes issue #10927) Reported by: murf Tested by: murf, deeperror (closes issue #12907) Reported by: falves11 Tested by: murf, falves11 (closes issue #11849) Reported by: greyvoip As to 11849, I think these changes fix the core problems brought up in that bug, but perhaps not the more global problems created by the limitations of CDR's themselves not being oriented around transfers. Reopen if necc, but bug reports are not the best medium for enhancement discussions. We need to start a second-generation CDR standardization effort to cover transfers. (closes issue #11093) Reported by: rossbeer Tested by: greyvoip, murf 2008-07-02 20:47 +0000 [r127560] Mark Michelson * channels/chan_agent.c: Fix thread-safety of some of the pbx_builtin_getvar_helper calls 2008-07-02 19:47 +0000 [r127501] Tilghman Lesher * main/acl.c: Merged revisions 127466 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r127466 | tilghman | 2008-07-02 13:31:11 -0500 (Wed, 02 Jul 2008) | 6 lines Solaris fix (closes issue #12949) Reported by: snuffy Patches: bug_12949.diff uploaded by snuffy (license 35) ........ 2008-07-01 23:36 +0000 [r127244] Mark Michelson * apps/app_voicemail.c: Add error message to failed open(2) calls inside the copy() function of app_voicemail. This idea came as part of my work in helping to resolve issue #12764. 2008-07-01 20:25 +0000 [r126999-127133] Tilghman Lesher * build_tools/cflags.xml, channels/chan_iax2.c: Disable the old, slow search for matching callno in chan_iax2 (but allow it to be reenabled for debugging) * channels/chan_iax2.c: Oops * channels/chan_iax2.c: Change around how we schedule pings and lagrqs, and fix a reason why the jobs were not getting properly cancelled. (closes issue #12903) Reported by: stevedavies Patches: 20080620__bug12903__2.diff.txt uploaded by Corydon76 (license 14) Tested by: stevedavies * channels/chan_iax2.c: Suppress annoying warning by finding the remaining cases where the callno is not in the hash. 2008-07-01 14:59 +0000 [r126735-126902] Olle Johansson * channels/chan_sip.c: Use domain part of SIP uri in register= configuration as fromdomain. Reported by: one47 Patches: sip-reg-fromdom2.dpatch uploaded by one47 (license 23) (closes issue #12474) * channels/chan_sip.c: Handle escaped URI's in call pickups. Patch by oej and IgorG. Reported by: IgorG Patches: bug12299-11062-v2.patch uploaded by IgorG (license 20) Tested by: IgorG, oej (closes issue #12299) * configs/sip.conf.sample: Clear up documentation on "domain=" setting in sip.conf Reported by: davidw (closes issue #12413) * channels/chan_sip.c: Report 200 OK to all in-dialog OPTIONs requests (to confirm that the dialog exist). Don't bother checking the request URI. (closes issue #11264) Reported by: ibc * channels/chan_sip.c: Fix bad XML for hold notification. Reported by: gowen72 Patches: hold.patch uploaded by gowen72 (license 432) (closes issue #12942) 2008-06-30 23:11 +0000 [r126680] Jeff Peeler * channels/chan_dahdi.c: Load the proper channel configuration file based on which driver was detected. 2008-06-30 22:30 +0000 [r126674] Tilghman Lesher * configs/zapata.conf.sample: Add note about other names for EuroISDN 2008-06-30 16:05 +0000 [r126573] Russell Bryant * include/asterisk/lock.h: Fix a typo in the non-DEBUG_THREADS version of the recently added DEADLOCK_AVOIDANCE() macro. This caused the lock to not actually be released, and as a result, not avoid deadlocks at all. This resolves the issues reported in the last while about Asterisk locking up all over the place (and most commonly, in chan_iax2). (closes issue #12927) (closes issue #12940) (closes issue #12925) (potentially closes others ...) 2008-06-30 12:50 +0000 [r126516] Olle Johansson * channels/chan_sip.c: Send all responses to an INVITE reliably, so that we retransmit if we don't get an ACK and also fail if we don't get the very same precious ACK. Based on patch by tsearle, with my own additions. (closes issue #12951) Reported by: tsearle Patches: busy_retransmit.patch uploaded by tsearle (license 373) 2008-06-29 18:05 +0000 [r126395] Kevin P. Fleming * pbx/Makefile: ignore warnings for prototypes in GTK headers 2008-06-27 22:01 +0000 [r125740-126056] Tilghman Lesher * channels/chan_sip.c: When we get a 408 Timeout, don't stop trying to re-register. (closes issue #12863) Reported by: ricvil * include/asterisk/tonezone_compat.h: Since HAVE_DAHDI is defined to HAVE_ZAPTEL in dahdi_compat.h, we must first check for HAVE_ZAPTEL. (closes issue #12938) Reported by: opticron Patches: tonezone_compat.diff uploaded by opticron (license 267) * main/utils.c, include/asterisk/lock.h: In this debugging function, copy to a buffer instead of using potentially unsafe pointers. * channels/chan_local.c: Add proper deadlock avoidance. (closes issue #12914) Reported by: ozan Patches: 20080625__bug12914.diff.txt uploaded by Corydon76 (license 14) Tested by: ozan 2008-06-26 23:03 +0000 [r125587] Jason Parker * main/utils.c: Make sure to unlock the lock_info lock (huh?). Possible deadlock? 2008-06-26 22:52 +0000 [r125476-125585] Mark Michelson * apps/app_queue.c: Add the interface of a queue member to the output of the "queue show" command so that it can easily be associated with a queue member's name. This helps so that the appropriate queue member can be removed or paused since the interface is required, not the member's name. (closes issue #12783) Reported by: davevg Patches: app_queue.diff uploaded by davevg (license 209) with small mod from me * apps/app_queue.c: Backport of attended transfer queue_log patch from trunk. This patch allows for attended transfers to be logged in the queue_log the same way that blind transfers have always been. It was decided by popular opinion on the asterisk-dev mailing list that this should be backported to 1.4. Thanks to everyone who gave an opinion. * apps/app_queue.c: Prior to this patch, the "queue show" command used cached information for realtime queues instead of giving up-to-date info. Now realtime is queried for the latest and greatest in queue info. (closes issue #12858) Reported by: bcnit Patches: queue_show.patch uploaded by putnopvut (license 60) 2008-06-26 16:32 +0000 [r125384] Olle Johansson * channels/chan_sip.c: Add support for peer realm based auth (a few missing lines, the rest is well documented but never worked) 2008-06-26 15:30 +0000 [r125327] Kevin P. Fleming * channels/chan_dahdi.c: ensure that (whenever possible) if we generate a log message because an ioctl() call to DAHDI/Zaptel failed, that we include the reason it failed by including the stringified error number (issue AST-80) 2008-06-26 11:01 +0000 [r125218-125276] Tilghman Lesher * main/rtp.c: Check for rtcp structure before trying to delete schedule. (closes issue #12872) Reported by: destiny6628 Patches: 20080621__bug12872.diff.txt uploaded by Corydon76 (license 14) Tested by: destiny6628 * configs/agents.conf.sample: Document ackcall=always. (closes issue #12852) Reported by: davidw 2008-06-25 22:21 +0000 [r125132] Kevin P. Fleming * apps/app_rpt.c, include/asterisk/dahdi_compat.h, channels/chan_dahdi.c, configure, include/asterisk/tonezone_compat.h (added), configure.ac: allow tonezone to live in a different place than DAHDI/Zaptel, since dahdi-tools and dahdi-linux are now separate packages and can be installed in different places don't include tonezone.h in dahdi_compat.h, because only a couple of modules need it get app_rpt building again after the DAHDI changes (closes issue #12911) Reported by: tzafrir 2008-06-25 00:46 +0000 [r124908-124965] Tilghman Lesher * channels/chan_dahdi.c: Pvt deadlock causes some channels to get stuck in Reserved status. (closes issue #12621) Reported by: fabianoheringer Patches: 20080612__bug12621.diff.txt uploaded by Corydon76 (license 14) Tested by: fabianoheringer * apps/app_voicemail.c: Occasionally control characters find their way into CallerID. These need to be stripped prior to placing CallerID in the headers of an email. (closes issue #12759) Reported by: RobH Patches: 20080602__bug12759__2.diff.txt uploaded by Corydon76 (license 14) Tested by: RobH * channels/chan_sip.c: Don't access the pvt structure if unable to acquire the lock. (closes issue #12162) Reported by: norman Patches: 12162-lockfail.diff uploaded by qwell (license 4) 2008-06-23 21:22 +0000 [r124743] Kevin P. Fleming * channels/chan_iax2.c: emit a warning if the old IAX2 call searching code finds a call when the new code did not... so that we can get rid of the old code in 2-3 months 2008-06-22 02:54 +0000 [r124540] Steve Murphy * apps/app_forkcdr.c: (closes issue #12910) Reported by: chris-mac Sorry, my testing did not contain the simple case of forkCDR(v), I am much embarrassed to admit. If I had, I would have more solidly initialized the opts element for varset. 2008-06-20 23:12 +0000 [r124395-124450] Tilghman Lesher * apps/app_rpt.c: usleep with a value over 1,000,000 is nonportable. Changing to use sleep() instead. (closes issue #12814) Reported by: pputman Patches: app_rtp_sleep.patch uploaded by pputman (license 81) * main/app.c: If the last character in a string to be parsed is the delimiter, then we should count that final empty string as an additional argument. 2008-06-20 21:14 +0000 [r124372] Jeff Gehlbach * doc/asterisk-mib.txt, doc/digium-mib.txt: Fix issues in digium-mib.txt and asterisk-mib.txt to placate smilint - bug 12905 2008-06-20 20:16 +0000 [r124182-124315] Tilghman Lesher * channels/chan_local.c: When using a Local channel, started by a call file, with a destination of an AGI script, the AGI script does not always get notified of a hangup if the underlying channel hangs up early. (closes issue #11833) Reported by: IgorG Patches: local_hangup-v1.diff uploaded by IgorG (license 20) * channels/chan_dahdi.c: It's possible for a hangup to be received, even just after the initial cid spill. (closes issue #12453) Reported by: Alex728 Patches: 20080604__bug12453.diff.txt uploaded by Corydon76 (license 14) 2008-06-19 20:28 +0000 [r124112] Mark Michelson * apps/app_voicemail.c: Fix IMAP forwarding so that messages are sent to the proper mailbox. (closes issue #12897) Reported by: jaroth Patches: destination_forward.patch uploaded by jaroth (license 50) 2008-06-19 19:55 +0000 [r124066] Brett Bryant * main/utils.c: Merge revision 124064 from trunk. Add errors that report any locks held by threads when they are being closed. 2008-06-19 16:58 +0000 [r123710-123930] Tilghman Lesher * main/channel.c: Change informative messages to use the _multiple variant when multiple formats are possible. (Closes issue #12848) Reported by klaus3000 * build_tools/strip_nonapi: Only process 40 arguments (20 files) at once with xargs, because some older shells may force xargs to separate on an odd boundary. (Closes issue #12883) Reported by Nik Soggia * configs/sip.conf.sample: Correct description of notifyringing option. (Closes issue #12890) Reported by gminet * main/asterisk.c: The RDTSC instruction was introduced on the Pentium line of microprocessors, and is not compatible with certain 586 clones, like Cyrix. Hence, asking for i386 compatibility was always incorrect. See http://en.wikipedia.org/wiki/RDTSC (Closes issue #12886) Reported by tecnoxarxa * main/say.c, doc/lang (added), doc/lang/hebrew.ods (added): Add support for saying numbers in Hebrew. (closes issue #11662) Reported by: greenfieldtech Patches: say.c.patch-12042008 uploaded by greenfieldtech (license 369) Hebrew-Sounds.ods uploaded by greenfieldtech (with signficant changes to the spreadsheet by me) * pbx/pbx_spool.c: Set the variables top-down, so that if a script sets a variable more than once, the last one will take precedence. (closes issue #12673) Reported by: phber Patches: 20080519__bug12673.diff.txt uploaded by Corydon76 (license 14) 2008-06-17 20:26 +0000 [r123485] Mark Michelson * channels/chan_sip.c: Make chan_sip build under dev mode with compilers >= GCC 4.2 Thanks to jpeeler for alerting me of this 2008-06-17 18:56 +0000 [r123391] Tilghman Lesher * channels/chan_iax2.c: Fix 3 more places where not locking the structure could cause the wrong lock to be unlocked. (Closes issue #12795) 2008-06-17 18:09 +0000 [r123274-123333] Mark Michelson * channels/chan_sip.c: Cisco BTS sends SIP responses with a tab between the Cseq number and SIP request method in the Cseq: header. Asterisk did not handle this properly, but with this patch, all is well. (closes issue #12834) Reported by: tobias_e Patches: 12834.patch uploaded by putnopvut (license 60) Tested by: tobias_e * apps/app_queue.c: davidw pointed out that the holdtime calculation used by app_queue does not use "boxcar" filtering as the comments say. The term "boxcar" means that the number of samples used to calculate stays constant, with new samples replacing the oldest ones. The queue holdtime calculation uses all holdtime samples collected since the queue was loaded, so the comment has been changed to be accurate. (closes issue #12781) Reported by: davidw 2008-06-17 15:48 +0000 [r123271] Russell Bryant * main/astobj2.c: Fix a memory leak in astobj2 that was pointed out by seanbright. When a container got destroyed, the underlying bucket list entry for each object that was in the container at that time did not get free'd. 2008-06-16 19:50 +0000 [r123110-123113] Tilghman Lesher * channels/chan_mgcp.c, channels/chan_dahdi.c, channels/chan_skinny.c, channels/chan_h323.c, channels/chan_iax2.c: Port "hasvoicemail" change from SIP to other channel drivers * channels/chan_sip.c: People expect that if "hasvoicemail" is set in users.conf, even if "mailbox" isn't set, that SIP will detect a mailbox. (closes issue #12855) Reported by: PLL Patches: 20080614__bug12855__2.diff.txt uploaded by Corydon76 (license 14) Tested by: PLL 2008-06-16 12:31 +0000 [r122869-122919] Joshua Colp * channels/chan_sip.c: Only compare the first 15 characters so that even if the charset is specified we still accept it as SDP. (closes issue #12803) Reported by: lanzaandrea Patches: chan_sip.c.diff uploaded by lanzaandrea (license 496) * channels/chan_sip.c: Don't send a BYE on a dialog that is already gone during a REFER. (closes issue #12865) Reported by: flefoll Patches: chan_sip.c.br14.121495.patch-ALREADYGONE uploaded by flefoll (license 244) 2008-06-13 21:44 +0000 [r122713] Mark Michelson * main/autoservice.c: Short circuit the loop in autoservice_run if there are no channels to poll. If we continued, then the result would be calling poll() with a NULL pollfd array. While this is fine with POSIX's poll(2) system call, those who use Asterisk's internal poll mechanism (Darwin systems) would have a failed assertion occur when poll is called. (related to issue #10342) 2008-06-13 18:57 +0000 [r122663] Jeff Peeler * include/asterisk/dahdi_compat.h, res/res_musiconhold.c: fixed dahdi compatability header from assuming either dahdi or zaptel is installed (may not have either) 2008-06-13 17:45 +0000 [r122617] Terry Wilson * apps/app_dial.c: Remove extra option from previous solution attempt 2008-06-13 17:36 +0000 [r122613] Jeff Peeler * configure, configure.ac: (closes issue #12846) Reported by: Netview Tested by: jpeeler Use correct location to search for tonezone. 2008-06-13 16:29 +0000 [r122589] Terry Wilson * apps/app_dial.c, res/res_features.c: This should fix the behavior of the 'T' dial feature being passed incorrectly to the transferee when builtin_atxfers are used. Also, doing a builtin_atxfer to parking was broken and is fixed here as well. (closes issue #11898) Reported by: sergee Tested by: otherwiseguy 2008-06-12 19:08 +0000 [r122314] Jeff Peeler * main/indications.c, include/asterisk/dahdi_compat.h (added), main/loader.c, main/channel.c, channels/chan_dahdi.c (added), configure, apps/app_zapscan.c (removed), apps/app_zapras.c (removed), main/app.c, include/asterisk/options.h, apps/app_rpt.c, channels/chan_mgcp.c, apps/app_read.c, channels/chan_zap.c (removed), apps/app_page.c, include/asterisk/indications.h, apps/app_dahdiras.c (added), configure.ac, apps/app_disa.c, include/asterisk/channel.h, apps/app_getcpeid.c, apps/app_queue.c, apps/app_zapbarge.c (removed), channels/chan_misdn.c, apps/app_flash.c, build_tools/menuselect-deps.in, funcs/func_channel.c, main/file.c, res/snmp/agent.c, contrib/utils/zones2indications.c, codecs/codec_dahdi.c (added), res/res_indications.c, pbx/pbx_config.c, makeopts.in, apps/app_chanspy.c, main/asterisk.c, apps/app_dahdibarge.c (added), apps/app_meetme.c, include/asterisk/autoconfig.h.in, apps/app_dahdiscan.c (added), acinclude.m4, res/res_musiconhold.c, codecs/codec_zap.c (removed), channels/chan_iax2.c: Adds DAHDI support alongside Zaptel. DAHDI usage favored, but all Zap stuff should continue working. Release announcement to follow. 2008-06-12 18:50 +0000 [r122311] Mark Michelson * apps/app_queue.c: Properly play a holdtime message if the announce-holdtime option is set to "once." (closes issue #12842) Reported by: ramonpeek Patches: patch001.diff uploaded by ramonpeek (license 266) 2008-06-12 18:22 +0000 [r122259] Russell Bryant * channels/chan_iax2.c: Fix some race conditions that cause ast_assert() to report that chan_iax2 tried to remove an entry that wasn't in the scheduler 2008-06-12 15:46 +0000 [r122208] Jeff Peeler * apps/app_parkandannounce.c, res/res_features.c: (closes issue #12193) Reported by: davidw Patch by: Corydon76, modified by me to work properly with ParkAndAnnounce app 2008-06-12 15:18 +0000 [r122130-122137] Tilghman Lesher * apps/app_meetme.c: Flipflop the sections for two options, since the section for 'X' (exit context) may otherwise absorb keypresses meant for 's' (admin/user menu). (closes issue #12836) Reported by: blitzrage Patches: 20080611__bug12836.diff.txt uploaded by Corydon76 (license 14) Tested by: blitzrage * main/channel.c: Occasionally, the alertpipe loses its nonblocking status, so detect and correct that situation before it causes a deadlock. (Reported and tested by ctooley via #asterisk-dev) 2008-06-12 14:51 +0000 [r122127] Steve Murphy * main/cdr.c, apps/app_forkcdr.c: Arkadia tried to warn me, but the code added to ast_cdr_busy, _failed, and _noanswer was redundant. Didn't spot it until I was resolving conflicts in trunk. Ugh. Redundant code removed. It wasn't harmful. Just dumb. 2008-06-12 Russell Bryant * Asterisk 1.4.21 released. 2008-06-06 Russell Bryant * Asterisk 1.4.21-rc2 released. 2008-06-05 18:03 +0000 [r120731-120735] Russell Bryant * UPGRADE-1.2.txt: fix filename * UPGRADE-1.2.txt (added), UPGRADE.txt: Add the UPGRADE.txt file from Asterisk 1.2, for handy reference. 2008-06-05 16:56 +0000 [r120675] Philippe Sultan * res/res_jabber.c: Ignore appended resource when comparing JIDs. 2008-06-05 16:38 +0000 [r120671] Russell Bryant * doc/smdi.txt, res/res_smdi.c: It turns out that searching on the forwarding station isn't very useful for most people, so pull in the changes that allow searching for SMDI messages based on other components of the SMDI message. Also, update the SMDI documentation. 2008-06-04 22:05 +0000 [r120513] Mark Michelson * apps/app_queue.c: Make sure that the string we set will survive the unref of the queue member. Thanks to Russell, who pointed this out. 2008-06-04 18:35 +0000 [r120425] Tilghman Lesher * channels/chan_zap.c: If we fail to setup the PRI request channel, don't continue, exit with an error. (closes issue #11989) Reported by: Corydon76 Patches: 20080213__zap_memleak.diff.txt uploaded by Corydon76 (license 14) 2008-06-04 16:26 +0000 [r120371] Russell Bryant * pbx/pbx_config.c: Make the "dialplan remove include" CLI command actually work. Also, tweak some formatting, and make the success message a little bit more clear. (closes AST-52) 2008-06-04 14:11 +0000 [r120285] Mark Michelson * apps/app_queue.c: Tab completion when removing a member should give the member's interface, not the name, since the interface is what is expected for the command. (closes issue #12783) Reported by: davevg 2008-06-04 13:31 +0000 [r120282] Joshua Colp * main/pbx.c, pbx/pbx_config.c: Fix a log message and add a message for when the dialplan is done reloading. (closes issue #12716) Reported by: chappell Patches: dialplan_reload_2.diff uploaded by chappell (license 8) 2008-06-03 22:41 +0000 [r120226] Tilghman Lesher * pbx/pbx_loopback.c: Due to incorrect use of the AST_LIST_INSERT_HEAD() macro the loopback switch cannot perform any translation on the extension number before searching for it in the target context. (closes issue #12473) Reported by: chappell Patches: pbx_loopback.c.diff uploaded by chappell (license 8) 2008-06-03 22:15 +0000 [r120173] Jeff Peeler * main/config.c: (closes issue #11594) Reported by: yem Tested by: yem This change decreases the buffer size allocated on the stack substantially in config_text_file_load when LOW_MEMORY is turned on. This change combined with the fix from revision 117462 (making mkintf not copy the zt_chan_conf structure) was enough to prevent the crash. 2008-06-03 21:34 +0000 [r120168] Russell Bryant * channels/chan_iax2.c: Fix another place where peer->callno could change at a very bad time, and also fix a place where a peer was used after the reference was released. (inspired by rev 120001) 2008-06-03 Russell Bryant * Asterisk 1.4.21-rc1 released. 2008-06-03 18:23 +0000 [r120001-120061] Tilghman Lesher * main/manager.c: When listing the manager users, managers in users.conf are not shown, even though they are allowed to connect. (closes issue #12594) Reported by: bkruse Patches: 12594-managerusers-2.diff uploaded by qwell (license 4) Tested by: bkruse * channels/chan_iax2.c: Save the callno when we're poking, because our peer structure could change during deadlock avoidance (and thus we unlock the wrong callno, causing a cascade failure). (closes issue #12717) Reported by: gewfie Patches: 20080525__bug12717.diff.txt uploaded by Corydon76 (license 14) Tested by: gewfie 2008-06-03 15:26 +0000 [r119929-119966] Steve Murphy * pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18, pbx/ael/ael-test/ref.ael-vtest13, pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test3, pbx/ael/ael-test/ref.ael-test5, pbx/ael/ael-test/ref.ael-test15: Updated the regressions on AEL. Hadn't updated this for the changes I made to preserve ${EXTEN} in switches, which affected several tests because it adds extra priorities, and at least one needed to be updated because of the removal of the empty extension warning message. * pbx/pbx_ael.c: as per http://lists.digium.com/pipermail/asterisk-users/2008-June/212934.html, which is a message from Philipp Kempgen, requesting that the WARNING that an extension is empty be reduced to a NOTICE or less, as empty extensions are syntactically possible, and no big deal. With which I agree, and have removed that WARNING message entirely. I think it is not necessary to see this message. It didn't state that a NoOp() was inserted automatically on your behalf, and really, as users, who cares? Why freak out dialplan writers with unnecessary warnings? The details of the machinations a compiler goes thru to produce working assembly code is of little interest to most programmers-- we will follow the unix principal of doing our work silently. 2008-06-03 14:46 +0000 [r119926] Joshua Colp * channels/chan_sip.c: Treat ECONNREFUSED as an error that will stop further retransmissions. (issue #AST-58, patch from Switchvox) 2008-06-02 20:08 +0000 [r119742-119838] Russell Bryant * channels/chan_iax2.c: Revert a change made for issue #12479. This change caused a regression such that a dial string such as (IAX2/foo) did not automatically fall back to dialing the 's' extension anymore. (closes issue #12770) Reported by: dagmoller * main/manager.c: Improve CLI command blacklist checking for the command manager action. Previously, it did not handle case or whitespace properly. This made it possible for blacklisted commands to get executed anyway. (closes issue #12765) 2008-06-02 14:32 +0000 [r119740] Philippe Sultan * channels/chan_gtalk.c, res/res_jabber.c: Do not link the guest account with any configured XMPP client (in jabber.conf). The actual connection is made when a call comes in Asterisk. Fix the ast_aji_get_client function that was not able to retrieve an XMPP client from its JID. (closes issue #12085) Reported by: junky Tested by: phsultan 2008-06-02 12:30 +0000 [r119687] Russell Bryant * channels/chan_iax2.c: Even of the first PING or LAGRQ doesn't get sent because it comes up too soon, make sure to reschedule so it gets sent later. 2008-06-02 09:29 +0000 [r119585-119636] Christian Richter * channels/misdn/isdn_lib.c: fixed compile issue when dev-mode is enabled * channels/misdn/isdn_lib.c, channels/misdn/isdn_lib.h: Added counter for unhandled_bmsg Print, this prevents the logs to be flooded to fast and save CPU in this error scenario. Added 'last_used' element to bc structure, when a bchannel changes from used to free this exact time will be marked in last_used. When a new channel is requested the find_free_chan function will check if the new empty channel was used within the last second, if yes it will search for the next channel, if no it will return this channel. This simple mechanism has prooven to prevent race conditions where the NT and TE tried to allocate the exact same channel at the same time (RELEASE cause: 44). 2008-06-02 01:06 +0000 [r119530-119533] Russell Bryant * channels/chan_iax2.c: Change a debug message to an actual debug message * apps/app_dial.c: Fix another typo in documentation 2008-06-01 20:47 +0000 [r119478] Michiel van Baak * apps/app_dial.c: small typo fix 'retires' => 'retries' 2008-05-30 21:17 +0000 [r119404] Tilghman Lesher * apps/app_queue.c: When joinempty=strict, it only failed on join if there were busy members. If all members were logged out OR paused, then it (incorrectly) let callers join the queue. (closes issue #12451) Reported by: davidw 2008-05-30 19:46 +0000 [r119354] Joshua Colp * main/autoservice.c: Fix a bug I found while testing for another issue. 2008-05-30 16:44 +0000 [r119301] Michiel van Baak * contrib/scripts/safe_asterisk, contrib/init.d/rc.suse.asterisk, contrib/init.d/rc.debian.asterisk, contrib/init.d/rc.mandrake.asterisk, contrib/init.d/rc.redhat.asterisk, contrib/init.d/rc.gentoo.asterisk, contrib/init.d/rc.slackware.asterisk: dont use a bashism way to check the $VERSION variable. The rc/init.d scripts, and safe_asterisk work on normal sh now again. Tested on: OpenBSD 4.2 (me) Debian etch (me) Ubuntu Hardy (me and loloski) FC9 (loloski) (closes issue #12687) Reported by: loloski Patches: 20080529-12687-safe_asterisk-fixversion.diff.txt uploaded by mvanbaak (license 7) Tested by: loloski, mvanbaak 2008-05-30 12:55 +0000 [r119076-119238] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 119237 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r119237 | russell | 2008-05-30 07:49:39 -0500 (Fri, 30 May 2008) | 7 lines - Instead of only enforcing destination call number checking on an ACK, check all full frames except for PING and LAGRQ, which may be sent by older versions too quickly to contain the destination call number. (As suggested by Tim Panton on the asterisk-dev list) - Merge changes from team/russell/iax2-frame-race, which prevents PING and LAGRQ from being sent before the destination call number is known. ........ * main/autoservice.c: Fix a race condition in channel autoservice. There was still a small window of opportunity for a DTMF frame, or some other deferred frame type, to come in and get dropped. (closes issue #12656) (closes issue #12656) Reported by: dimas Patches: v3-12656.patch uploaded by dimas (license 88) -- with some modifications by me * include/asterisk/audiohook.h: Oddly enough, all of the contents of audiohook.h were in there twice. I have removed the second copy. 2008-05-29 20:24 +0000 [r119071] Tilghman Lesher * channels/chan_zap.c: Call waiting tone occurs too often, because it's getting serviced by both subchannels. (closes issue #11354) Reported by: cahen Patches: 20080512__bug11354.diff.txt uploaded by Corydon76 (license 14) 2008-05-29 19:04 +0000 [r118956-119012] Russell Bryant * apps/app_milliwatt.c: - Fix a typo in the argument to Playtones - use ast_safe_sleep() instead of calling the wait application (thanks to tilghman for pointing these out!) * /, channels/chan_iax2.c: Merged revisions 119008 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r119008 | russell | 2008-05-29 13:45:21 -0500 (Thu, 29 May 2008) | 7 lines Merge changes from team/russell/iax2-another-fix-to-the-fix As described in the following post to the asterisk-dev mailing list, only enforce destination call numbers when processing an ACK. http://lists.digium.com/pipermail/asterisk-dev/2008-May/033217.html (closes issue #12631) ........ * apps/app_milliwatt.c: - Mark app_milliwatt dependent on res_indications (thanks to jsmith) - fix a typo in a log message (thanks to qwell) * apps/app_milliwatt.c: Change milliwatt to use the proper tone by default (1004 Hz) instead of 1000 Hz. An option is there to use 1000 Hz for anyone that might want it. 2008-05-29 17:33 +0000 [r118953-118954] Tilghman Lesher * include/asterisk/lock.h: Define also when not DEBUG_THREADS * channels/chan_mgcp.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_agent.c, channels/chan_alsa.c, main/utils.c, include/asterisk/lock.h, channels/chan_iax2.c: Add some debugging code that ensures that when we do deadlock avoidance, we don't lose the information about how a lock was originally acquired. 2008-05-29 00:25 +0000 [r118858] Steve Murphy * main/cdr.c, apps/app_forkcdr.c: (closes issue #10668) (closes issue #11721) (closes issue #12726) Reported by: arkadia Tested by: murf These changes: 1. revert the changes made via bug 10668; I should have known that such changes, even tho they made sense at the time, seemed like an omission, etc, were actually integral to the CDR system via forkCDR. It makes sense to me now that forkCDR didn't natively end any CDR's, but rather depended on natively closing them all at hangup time via traversing and closing them all, whether locked or not. I still don't completely understand the benefits of setvar and answer operating on locked cdrs, but I've seen enough to revert those changes also, and stop messing up users who depended on that behavior. bug 12726 found reverting the changes fixed his changes, and after a long review and working on forkCDR, I can see why. 2. Apply the suggested enhancements proposed in 10668, but in a completely compatible way. ForkCDR will behave exactly as before, but now has new options that will allow some actions to be taken that will slightly modify the outcome and side-effects of forkCDR. Based on conversations I've had with various people, these small tweaks will allow some users to get the behavior they need. For instance, users executing forkCDR in an AGI script will find the answer time set, and DISPOSITION set, a situation not covered when the routines were first written. 3. A small problem in the cdr serializer would output answer and end times even when they were not set. This is now fixed. 2008-05-28 16:10 +0000 [r118716] Brett Bryant * channels/chan_iax2.c: merge revision 118702 from trunk to 1.4 -- Fixes a bug in chan_iax that uses send_command to poke a peer while a channel is unlocked in some cases, and because it can cause seemingly random failures could be related to some bugs in the tracker... 2008-05-28 14:23 +0000 [r118558-118646] Joshua Colp * channels/chan_sip.c, configs/sip.conf.sample, CHANGES: Add an option to use the source IP address of RTP as the destination IP address of UDPTL when a specific option is enabled. If the remote side is properly configured (ports forwarded) then UDPTL will flow. (closes issue #10417) Reported by: cstadlmann * channels/chan_sip.c: Fix an issue where codec preferences were not set on dialogs that were not authenticated via a user or peer and allow framing to work without rtpmap in the SDP. (closes issue #12501) Reported by: slimey 2008-05-27 19:15 +0000 [r118551] Tilghman Lesher * main/cli.c: When showing an error message for a command, don't shorten the command output, as it tends to confuse the user (it's fine for suggesting other commands, however). Reported by: seanbright (on #asterisk-dev) Fixed by: me 2008-05-27 19:07 +0000 [r118509] Mark Michelson * apps/app_chanspy.c: Russell noted to me that in the case that separate threads use their own addressing system, the fix I made for issue 12376 does not guarantee uniqueness to the datastores' uids. Though I know of no system that works this way, I am going to change this right now to prevent trying to track down some future bug that may occur and cause untold hours of debugging time to track down. The change involves using a global counter which increases with each new chanspy_ds which is created. This guarantees uniqueness. 2008-05-27 18:58 +0000 [r118465] Tilghman Lesher * main/asterisk.c: NULL character should terminate only commands back to the core, not log messages to the console. (closes issue #12731) Reported by: seanbright Patches: 20080527__bug12731.diff.txt uploaded by Corydon76 (license 14) Tested by: seanbright 2008-05-27 17:17 +0000 [r118416] Michiel van Baak * apps/app_voicemail.c: small update to the g() option of app_voicemail to note that gain changes only work on zap channels right now. issue #12578 shows it's not clear right now. 2008-05-27 16:38 +0000 [r118365] Mark Michelson * apps/app_chanspy.c: Add a unique id to the datastore allocated in app_chanspy since it is possible that multiple spies may be listening to the same channel. (closes issue #12376) Reported by: DougUDI Patches: 12376_chanspy_uid.diff uploaded by putnopvut (license 60) Tested by: destiny6628 (closes issue #12243) Reported by: atis 2008-05-27 15:45 +0000 [r118358] Tilghman Lesher * configs/queues.conf.sample: Add a note that pbx_config.so is needed for Local channels. (Closes issue #12671) 2008-05-25 16:02 +0000 [r118251] Tilghman Lesher * channels/chan_sip.c: Realtime flag affects construction in multiple ways, so consulting whether rtcachefriends was set was done too soon (needed to be done inside build_peer, not just as a flag to build_peer). Also, fullcontact needed to be reconstructed, because realtime separates the embedded ';' into multiple fields. (closes issue #12722) Reported by: barthpbx Patches: 20080525__bug12722.diff.txt uploaded by Corydon76 (license 14) Tested by: barthpbx (Much of the discussion happened on #asterisk-dev for diagnosing this issue) 2008-05-23 21:21 +0000 [r118163] Jeff Peeler * channels/chan_zap.c: Fix a few things I missed to ensure zt_chan_conf structure is not modified in mkintf 2008-05-23 13:18 +0000 [r118052-118055] Tilghman Lesher * include/asterisk/utils.h: Add format type checking for recently de-inlined function * doc/cli.txt (added), doc/00README.1st: Add information on using the Asterisk console, including tab command line completion. (Closes issue #12681) 2008-05-23 12:30 +0000 [r118048] Russell Bryant * include/asterisk/utils.h, main/utils.c: Don't declare a function that takes variable arguments as inline, because it's not valid, and on some compilers, will emit a warning. http://gcc.gnu.org/onlinedocs/gcc/Inline.html#Inline (closes issue #12289) Reported by: francesco_r Patches by Tilghman, final patch by me 2008-05-22 18:53 +0000 [r117809-117899] Tilghman Lesher * main/asterisk.c: Also remove preamble from asynchronous events (reported by jsmith on #asterisk-dev) * funcs/func_realtime.c: Take into account the length of delimiters when calculating result string length. (closes issue #12696) Reported by: adomjan Patches: func_realtime.c-longdelimiter.patch uploaded by adomjan (license 487) 2008-05-21 20:11 +0000 [r117582] Jeff Peeler * channels/chan_zap.c: Ensure that passed in zt_chan_conf structure is not modified in mkintf. 2008-05-21 19:38 +0000 [r117574] Joshua Colp * channels/chan_sip.c: Apply the autoframing setting to dialogs that do not get matched against a user or peer. 2008-05-21 18:44 +0000 [r117519-117523] Tilghman Lesher * pbx/pbx_spool.c: Revert accidental commit of the last change * main/asterisk.c, pbx/pbx_spool.c: Strip the preamble from the output also when -rx is not being used (Related to issue #12702) 2008-05-21 18:28 +0000 [r117479-117514] Russell Bryant * main/asterisk.c: Don't filter the magic character in the network verboser. It gets filtered once it reaches the client. (related to issue #12702, pointed out by tilghman) * main/asterisk.c, pbx/pbx_gtkconsole.c: 1) Don't print the verbose marker in front of every message from ast_verbose() being sent to remote consoles. 2) Fix pbx_gtkconsole to filter out the verbose marker. (related to issue #12702) * main/asterisk.c: Don't display the verbose marker for calls to ast_verbose() that do not include a VERBOSE_PREFIX in front of the message. (closes issue #12702) Reported by: johnlange Patched by me 2008-05-21 16:58 +0000 [r117462] Jeff Peeler * channels/chan_zap.c: Pass a pointer for the conf parameter to the function mkintf rather than the whole zt_chan_conf structure. 2008-05-20 Russell Bryant * Asterisk 1.4.20 released. 2008-05-14 Russell Bryant * Asterisk 1.4.20-rc3 released. 2008-05-14 12:51 +0000 [r116230] Olle Johansson * channels/chan_sip.c: Accept text messages even with Content-Type: text/plain;charset=Södermanländska 2008-05-13 23:47 +0000 [r116088] Mark Michelson * main/channel.c, include/asterisk/lock.h: A change to the way channel locks are handled when DEBUG_CHANNEL_LOCKS is defined. After debugging a deadlock, it was noticed that when DEBUG_CHANNEL_LOCKS is enabled in menuselect, the actual origin of channel locks is obscured by the fact that all channel locks appear to happen in the function ast_channel_lock(). This code change redefines ast_channel_lock to be a macro which maps to __ast_channel_lock(), which then relays the proper file name, line number, and function name information to the core lock functions so that this information will be displayed in the case that there is some sort of locking error or core show locks is issued. 2008-05-13 21:17 +0000 [r115990-116038] Russell Bryant * channels/chan_local.c: Fix a deadlock involving channel autoservice and chan_local that was debugged and fixed by mmichelson and me. We observed a system that had a bunch of threads stuck in ast_autoservice_stop(). The reason these threads were waiting around is because this function waits to ensure that the channel list in the autoservice thread gets rebuilt before the stop() function returns. However, the autoservice thread was also locked, so the autoservice channel list was never getting rebuilt. The autoservice thread was stuck waiting for the channel lock on a local channel. However, the local channel was locked by a thread that was stuck in the autoservice stop function. It turned out that the issue came down to the local_queue_frame() function in chan_local. This function assumed that one of the channels passed in as an argument was locked when called. However, that was not always the case. There were multiple cases in which this channel was not locked when the function was called. We fixed up chan_local to indicate to this function whether this channel was locked or not. The previous assumption had caused local_queue_frame() to improperly return with the channel locked, where it would then never get unlocked. (closes issue #12584) (related to issue #12603) * main/autoservice.c: Fix an issue that I noticed in autoservice while mmichelson and I were debugging a different problem. I noticed that it was theoretically possible for two threads to attempt to start the autoservice thread at the same time. This change makes the process of starting the autoservice thread, thread-safe. 2008-05-13 20:28 +0000 [r115944] Joshua Colp * channels/chan_alsa.c: Use the right flag to open the audio in non-blocking. (closes issue #12616) Reported by: nicklewisdigiumuser 2008-05-13 18:36 +0000 [r115884] Tilghman Lesher * main/asterisk.c: If the socket dies (read returns 0=EOF), return immediately. (Closes issue #12637) 2008-05-12 17:51 +0000 [r115735] Mark Michelson * main/utils.c: If a thread holds no locks, do not print any information on the thread when issuing a core show locks command. This will help to de-clutter output somewhat. Russell said it would be fine to place this improvement in the 1.4 branch, so that's why it's going here too. 2008-05-09 16:34 +0000 [r115579] Joshua Colp * configure, include/asterisk/autoconfig.h.in, configure.ac: Improve res_ninit and res_ndestroy autoconf logic on the Darwin platform. 2008-05-08 19:19 +0000 [r115545-115568] Russell Bryant * channels/chan_iax2.c: Remove debug output. * /, channels/chan_iax2.c: Merged revisions 115564 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r115564 | russell | 2008-05-08 14:14:04 -0500 (Thu, 08 May 2008) | 25 lines Fix a race condition that bbryant just found while doing some IAX2 testing. He was running Asterisk trunk running IAX2 calls through a few Asterisk boxes, however, the audio was extremely choppy. We looked at a packet trace and saw a storm of INVAL and VNAK frames being sent from one box to another. It turned out that what had happened was that one box tried to send a CONTROL frame before the 3 way handshake had completed. So, that frame did not include the destination call number, because it didn't have it yet. Part of our recent work for security issues included an additional check to ensure that frames that are supposed to include the destination call number have the correct one. This caused the frame to be rejected with an INVAL. The frame would get retransmitted for forever, rejected every time ... This race condition exists in all versions that got the security changes, in theory. However, it is really only likely that this would cause a problem in Asterisk trunk. There was a control frame being sent (SRCUPDATE) at the _very_ beginning of the call, which does not exist in 1.2 or 1.4. However, I am fixing all versions that could potentially be affected by the introduced race condition. These changes are what bbryant and I came up with to fix the issue. Instead of simply dropping control frames that get sent before the handshake is complete, the code attempts to wait a little while, since in most cases, the handshake will complete very quickly. If it doesn't complete after yielding for a little while, then the frame gets dropped. ........ * channels/chan_sip.c: Don't give up on attempting an outbound registration if we receive a 408 Timeout. (closes issue #12323) * contrib/scripts/postgres_cdr.sql (removed): remove postgres_cdr.sql, as the CDR schema is in realtime_pgsql.sql, as well (closes issue #9676) * contrib/init.d/rc.debian.asterisk: Don't exit the script if Asterisk is not running. (closes issue #12611) * main/pbx.c: Don't use a channel before checking for channel allocation failure. (closes issue #12609) Reported by: edantie * contrib/init.d/rc.debian.asterisk: Use the same method for executing Asterisk as the rest of the script. (closes issue #12611) Reported by: b_plessis 2008-05-07 Russell Bryant * Asterisk 1.4.20-rc2 released. 2008-05-07 18:17 +0000 [r115512-115517] Russell Bryant * channels/chan_sip.c: Track peer references when stored in the sip_pvt struct as the peer related to a qualify ping or a subscription. This fixes some realtime related crashes. (closes issue #12588) (closes issue #12555) 2008-05-06 19:55 +0000 [r115418-115422] Jason Parker * /, contrib/scripts/get_ilbc_source.sh: Merged revisions 115421 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r115421 | qwell | 2008-05-06 14:54:57 -0500 (Tue, 06 May 2008) | 7 lines read requires an argument on some non-bash shells (closes issue #12593) Reported by: bkruse Patches: getilbc.sh_12593_v1.diff uploaded by bkruse (license 132) ........ * res/res_musiconhold.c: Switch to using ast_random() rather than just rand(). This does not fix the bug reported, but I believe it is correct. (from issue #12446) Patches: bug_12446.diff uploaded by snuffy (license 35) 2008-05-06 19:31 +0000 [r115415] Tilghman Lesher * main/asterisk.c: Don't print the terminating NUL. (Closes issue #12589) 2008-05-06 13:54 +0000 [r115341] Joshua Colp * configure, configure.ac: Add in missing argument. 2008-05-05 22:50 +0000 [r115333] Tilghman Lesher * main/asterisk.c, main/logger.c: Separate verbose output from CLI output, by using a preamble. (closes issue #12402) Reported by: Corydon76 Patches: 20080410__no_verbose_in_rx_output.diff.txt uploaded by Corydon76 (license 14) 20080501__no_verbose_in_rx_output__1.4.diff.txt uploaded by Corydon76 (license 14) 2008-05-05 22:10 +0000 [r115327] Joshua Colp * build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, codecs/codec_speex.c, configure.ac: Make sure that either the main speex library contains preprocess functions or that speexdsp does. If both fail then speex stuff can not be built. 2008-05-05 21:41 +0000 [r115320] Mark Michelson * apps/app_queue.c: Don't consider a caller "handled" until the caller is bridged with a queue member. There was too much of an opportunity for the member to hang up (either during a delay, announcement, or overly long agi) between the time that he answered the phone and the time when he actually was bridged with the caller. The consequence of this was that if the member hung up in that interval, then proper abandonment details would not be noted in the queue log if the caller were to hang up at any point after the member hangup. (closes issue #12561) Reported by: ablackthorn 2008-05-05 20:17 +0000 [r115308-115312] Tilghman Lesher * Makefile: Reverse order, such that user configs override default selections * include/asterisk/res_odbc.h: Err, the documentation on the return value of ast_odbc_backslash_is_escape is exactly backwards. 2008-05-05 19:49 +0000 [r115297-115304] Russell Bryant * channels/chan_sip.c: Avoid putting opaque="" in Digest authentication. This patch came from switchvox. It fixes authentication with Primus in Canada, and has been in use for a very long time without causing problems with any other providers. (closes issue AST-36) 2008-05-05 03:22 +0000 [r115285] Tilghman Lesher * contrib/scripts/safe_asterisk, contrib/init.d/rc.suse.asterisk, contrib/init.d/rc.debian.asterisk, contrib/init.d/rc.mandrake.asterisk, contrib/init.d/rc.redhat.asterisk, contrib/init.d/rc.gentoo.asterisk, contrib/init.d/rc.slackware.asterisk: When starting Asterisk, bug out if Asterisk is already running. (closes issue #12525) Reported by: explidous Patches: 20080428__bug12525.diff.txt uploaded by Corydon76 (license 14) Tested by: mvanbaak 2008-05-04 02:09 +0000 [r115276-115282] Joshua Colp * configure, acinclude.m4: Expand the test function for GCC attributes so that more complex attributes are properly recognized. * include/asterisk/compiler.h: For my next trick I will make these work with what our autoconf header file gives us. * configure, acinclude.m4: Treat warnings as errors when checking if a GCC attribute exists. We have to do this as GCC will just ignore the attribute and pop up a warning, it won't actually fail to compile. 2008-05-02 20:25 +0000 [r115257] Brett Bryant * channels/chan_zap.c, configure, include/asterisk/autoconfig.h.in, configure.ac, CHANGES: Add new "pri show version" command to show the libpri version for support reasons. 2008-05-02 14:28 +0000 [r115196] Mark Michelson * include/asterisk/sched.h: Clarify a comment that was, well, just wrong. It turns out that ignoring the way that macros expand. Instead, I have clarified in the comment why the macro will work even if the scheduler id for the task to be deleted changes during the execution of the macro. 2008-05-01 23:20 +0000 [r115017-115102] Tilghman Lesher * include/asterisk/res_odbc.h: Change the comment of deprecated to an actual compiler deprecation * main/utils.c: '#' is another reserved character for URIs that also needs to be escaped. (closes issue #10543) Reported by: blitzrage Patches: 20080418__bug10543.diff.txt uploaded by Corydon76 (license 14) 2008-05-01 Russell Bryant * Asterisk 1.4.20-rc1 released. 2008-04-30 16:30 +0000 [r114891] Russell Bryant * include/asterisk/dlinkedlists.h (added), channels/chan_iax2.c: Merge changes from team/russell/iax2_find_callno and iax2_find_callno_1.4 These changes address a critical performance issue introduced in the latest release. The fix for the latest security issue included a change that made Asterisk randomly choose call numbers to make them more difficult to guess by attackers. However, due to some inefficient (this is by far, an understatement) code, when Asterisk chose high call numbers, chan_iax2 became unusable after just a small number of calls. On a small embedded platform, it would not be able to handle a single call. On my Intel Core 2 Duo @ 2.33 GHz, I couldn't run more than about 16 IAX2 channels. Ouch. These changes address some performance issues of the find_callno() function that have bothered me for a very long time. On every incoming media frame, it iterated through every possible call number trying to find a matching active call. This involved a mutex lock and unlock for each call number checked. So, if the random call number chosen was 20000, then every media frame would cause 20000 locks and unlocks. Previously, this problem was not as obvious since Asterisk always chose the lowest call number it could. A second container for IAX2 pvt structs has been added. It is an astobj2 hash table. When we know the remote side's call number, the pvt goes into the hash table with a hash value of the remote side's call number. Then, lookups for incoming media frames are a very fast hash lookup instead of an absolutely insane array traversal. In a quick test, I was able to get more than 3600% more IAX2 channels on my machine with these changes. 2008-04-30 16:23 +0000 [r114890] Olle Johansson * channels/chan_sip.c: Don't crash on bad SIP replys. Fix created in Huntsville together with Mark M (putnopvut) (closes issue #12363) Reported by: jvandal Tested by: putnopvut, oej 2008-04-30 14:46 +0000 [r114875-114880] Kevin P. Fleming * channels/iax2.h, channels/chan_iax2.c: use the ARRAY_LEN macro for indexing through the iaxs/iaxsl arrays so that the size of the arrays can be adjusted in one place, and change the size of the arrays from 32768 calls to 2048 calls when LOW_MEMORY is defined * Makefile.rules: pay attention to *all* header files for dependency tracking, not just the local ones (inspired by r578 of asterisk-addons by tilghman) 2008-04-29 19:40 +0000 [r114848] Mark Michelson * apps/app_queue.c: Use the MACRO_CONTEXT and MACRO_EXTEN channel variables instead of the channel's macrocontext and macroexten fields. This is needed because if macros are daisy-chained, the incorrect context and extension are placed on the new channel. I also added locking to the channel prior to accessing these variables as noted in trunk's janitor project file. (closes issue #12549) Reported by: darren1713 Patches: app_queue.c.macroextenpatch uploaded by darren1713 (license 116) (with modifications from me) Tested by: putnopvut 2008-04-29 17:08 +0000 [r114829] Jason Parker * res/res_config_pgsql.c: Change warning message to debug, since there are cases where 0 results is perfectly fine. 2008-04-29 12:53 +0000 [r114823] Kevin P. Fleming * /, contrib/scripts/get_ilbc_source.sh: Merged revisions 114822 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r114822 | kpfleming | 2008-04-29 07:52:32 -0500 (Tue, 29 Apr 2008) | 2 lines stop script from appending source code if run multiple times ........ 2008-04-28 04:47 +0000 [r114708] Tilghman Lesher * apps/app_voicemail.c, channels/chan_gtalk.c: When modules are embedded, they take on a different name, without the ".so" extension. Specifically check for this name, when we're checking if a module is loaded. (Closes issue #12534) 2008-04-27 01:26 +0000 [r114695] Sean Bright * configure, configure.ac: When we don't explicitly pass a path to the --with-tds configure option, we may end up finding tds.h in /usr/local/include instead of /usr/include. If this happens, the grep that looks for the version (from tdsver.h) will fail and we'll have some problems during the build. 2008-04-26 13:15 +0000 [r114689] Tilghman Lesher * contrib/scripts/vmail.cgi: Clicking forward without selecting a message leaves an errant .lock file. (closes issue #12528) Reported by: pukepail Patches: patch.diff uploaded by pukepail (license 431) 2008-04-25 21:54 +0000 [r114673] Russell Bryant * channels/chan_iax2.c: Use consistent logic for checking to see if a call number has been chosen yet. Also, remove some redundant logic I recently added in a fix. 2008-04-25 19:32 +0000 [r114662] Mark Michelson * apps/app_chanspy.c: Move the unlock of the spyee channel to outside the start_spying() function so that the channel is not unlocked twice when using whisper mode. 2008-04-25 15:53 +0000 [r114649] Tilghman Lesher * configs/zapata.conf.sample, configs/iax.conf.sample, configs/iaxprov.conf.sample, configs/sip.conf.sample: Reference documentation files that actually exist. (closes issue #12516) Reported by: linuxmaniac Patches: diff_rev114611.patch uploaded by linuxmaniac (license 472) 2008-04-24 21:35 +0000 [r114624-114632] Mark Michelson * channels/chan_sip.c: Re-invite RTP during a masquerade so that, for instance, an AMI redirect of two channels which are natively bridged will preserve audio on both channels. This prevents a problem with Asterisk not re-inviting due to one of the channels having being a zombie. (closes issue #12513) Reported by: mneuhauser Patches: asterisk-1.4-114602_restore-RTP-on-fixup.patch uploaded by mneuhauser (license 425) * apps/app_queue.c: Output of channel variables when eventwhencalled=vars was set was being truncated two characters. This patch corrects the problem. (closes issue #12493) Reported by: davidw * channels/chan_local.c: Resolve a deadlock in chan_local by releasing the channel lock temporarily. (closes issue #11712) Reported by: callguy Patches: 11712.patch uploaded by putnopvut (license 60) Tested by: acunningham 2008-04-24 19:53 +0000 [r114621] Tilghman Lesher * channels/chan_local.c: Ensure that when we set the accountcode, it actually shows up in the CDR. (Fix for AMI Originate) (Closes issue #12007) 2008-04-24 15:55 +0000 [r114608] Russell Bryant * channels/chan_iax2.c: Fix a silly mistake in a change I made yesterday that caused chan_iax2 to blow up very quickly. (issue #12515) 2008-04-24 14:55 +0000 [r114603] Olle Johansson * channels/chan_sip.c: Only have one max-forwards header in outbound REFERs. Discovered in the Asterisk SIP Masterclass in Orlando. Thanks Joe! 2008-04-23 22:18 +0000 [r114597-114600] Russell Bryant * main/http.c: Improve some broken cookie parsing code. Previously, manager login over HTTP would only work if the mansession_id cookie was first. Now, the code builds a list of all of the cookies in the Cookie header. This fixes a problem observed by users of the Asterisk GUI. (closes AST-20) * apps/app_chanspy.c, main/http.c: Fix an issue that caused getting the correct next channel to not always work. Also, remove setting the amount of time to wait for a digit from 5 seconds back down to 1/10 of a second. I believe this was so the beep didn't get played over and over really fast, but a while back I put in another fix for that issue. (closes issue #12498) Reported by: jsmith Patches: app_chanspy_channel_walk.trunk.patch uploaded by jsmith (license 15) 2008-04-23 18:28 +0000 [r114594] Jason Parker * res/res_musiconhold.c: Fix reload/unload for res_musiconhold module. (closes issue #11575) Reported by: sunder Patches: M11575_14_rev3.diff uploaded by junky (license 177) bug11575_trunk.diff.txt uploaded by jamesgolovich (license 176) 2008-04-23 17:55 +0000 [r114587-114591] Russell Bryant * main/manager.c, include/asterisk/manager.h: Store the manager session ID explicitly as 4 byte ID instead of a ulong. The mansession_id cookie is coded to be limited to 8 characters of hex, and this could break logins from 64-bit machines in some cases. (inspired by AST-20) * channels/chan_iax2.c: Fix find_callno_locked() to actually return the callno locked in some more cases. 2008-04-23 16:51 +0000 [r114584] Olle Johansson * channels/chan_sip.c: Add 502 support for both directions, not only one... (see r114571) 2008-04-23 14:54 +0000 [r114579] Joshua Colp * main/pbx.c: Instead of stopping dialplan execution when SayNumber attempts to say a large number that it can not print out a message informing the user and continue on. (closes issue #12502) Reported by: bcnit 2008-04-22 23:51 +0000 [r114571] Tilghman Lesher * channels/chan_sip.c: Treat a 502 just like a 503, when it comes to processing a response code 2008-04-22 22:15 +0000 [r114522-114558] Russell Bryant * channels/chan_iax2.c: When we receive a full frame that is supposed to contain our call number, ensure that it has the correct one. (closes issue #10078) (AST-2008-006) * main/rtp.c, main/channel.c, formats/format_pcm.c, main/file.c: I thought I was going to be able to leave 1.4 alone, but that was not the case. I ran into some problems with G.722 in 1.4, so I have merged in all of the fixes in this area that I have made in trunk/1.6.0, and things are happy again. * res/res_musiconhold.c: Trivial change to read the number of samples from a frame before calling ast_write() * res/res_features.c: After a parked call times out, allow the call back to the parker to time out. (closes issue #10890) * channels/chan_iax2.c: If the dial string passed to the call channel callback does not indicate an extension, then consider the extension on the channel before falling back to the default. (closes issue #12479) Reported by: darren1713 Patches: exten_dial_fix_chan_iax2.c.patch uploaded by darren1713 (license 116) * channels/chan_sip.c, include/asterisk/sched.h: Merge changes from team/russell/issue_9520 These changes make sure that the reference count for sip_peer objects properly reflects the fact that the peer is sitting in the scheduler for a scheduled callback for qualifying peers or for expiring registrations. Without this, it was possible for these callbacks to happen at the same time that the peer was being destroyed. This was especially likely to happen with realtime peers, and for people making use of the realtime prune CLI command. (closes issue #9520) Reported by: kryptolus Committed patch by me 2008-04-21 14:39 +0000 [r114322] Joshua Colp * channels/chan_sip.c: Only drop audio if we receive it without a progress indication. We allow other frames through such as DTMF because they may be needed to complete the call. (closes issue #12440) Reported by: aragon 2008-04-19 13:57 +0000 [r114297-114299] Tilghman Lesher * apps/app_playback.c: Ensure that help text terminates with a newline * res/res_musiconhold.c: MOH usage information needs a terminating newline, or else "asterisk -rx 'help moh reload'" will hang. Reported via -dev list, fixed by me. 2008-04-18 21:48 +0000 [r114275-114284] Russell Bryant * main/manager.c: Don't destroy a manager session if poll() returns an error of EAGAIN. * Makefile: ensure directories are created before we try to install stuff into them * Makefile: SUBDIRS_INSTALL is already listed as a subtarget for bininstall 2008-04-18 17:44 +0000 [r114257] Mark Michelson * channels/chan_zap.c, main/callerid.c: Clearing up error messages so they make a bit more sense. Also removing a redundant error message. Issue AST-15 2008-04-18 15:24 +0000 [r114248] Russell Bryant * channels/chan_agent.c: Ensure that we don't ast_strdupa(NULL) (closes issue #12476) Reported by: davidw Patch by me 2008-04-18 13:33 +0000 [r114245] Sean Bright * channels/chan_sip.c: Only complete the SIP channel name once for 'sip show channel ' 2008-04-18 06:49 +0000 [r114242] Tilghman Lesher * apps/app_setcallerid.c: For consistency sake, ensure that the values that ${CALLINGPRES} returns are valid as an input to SetCallingPres. (Closes issue #12472) 2008-04-17 22:15 +0000 [r114230] Russell Bryant * main/autoservice.c: Remove redundant safety net. The check for the autoservice channel list state accomplishes the same goal in a better way. (issue #12470) Reported By: atis 2008-04-17 21:03 +0000 [r114207-114226] Mark Michelson * apps/app_chanspy.c: Declaration of the peer channel in this scope was making it so the peer variable defined in the outer scope was never set properly, therefore making iterating through the channel list always restart from the beginning. This bug would have affected anyone who called chanspy without specifying a first argument. (closes issue #12461) Reported by: stever28 * main/frame.c, include/asterisk/dsp.h: Add prototype for ast_dsp_frame_freed. I'm not sure how this was compiling before... * main/dsp.c, main/frame.c, include/asterisk/frame.h: It was possible for a reference to a frame which was part of a freed DSP to still be referenced, leading to memory corruption and eventual crashes. This code change ensures that the dsp is freed when we are finished with the frame. This change is very similar to a change Russell made with translators back a month or so ago. (closes issue #11999) Reported by: destiny6628 Patches: 11999.patch uploaded by putnopvut (license 60) Tested by: destiny6628, victoryure 2008-04-17 16:23 +0000 [r114204] Russell Bryant * Makefile: Fix the bininstall target to install from subdirs, as well. (closes issue AST-8, patch from bmd at switchvox) 2008-04-17 13:42 +0000 [r114198] Philippe Sultan * res/res_jabber.c: Use keepalives effectively in order diagnose bug #12432. 2008-04-17 12:56 +0000 [r114195] Tilghman Lesher * res/res_agi.c: Add special case for when the agi cannot be executed, to comply with the documentation that we return failure in that case. (closes issue #12462) Reported by: fmueller Patches: 20080416__bug12462.diff.txt uploaded by Corydon76 (license 14) Tested by: fmueller 2008-04-17 10:51 +0000 [r114191] Sean Bright * apps/app_chanspy.c: Make sure we have enough room for the recording's filename. 2008-04-16 20:46 +0000 [r114184] Kevin P. Fleming * channels/chan_zap.c: use the ZT_SET_DIALPARAMS ioctl properly by initializing the structure to all zeroes in case it contains fields that we don't write values into (which it does as of Zaptel 1.4.10) (closes issue #12456) Reported by: fnordian 2008-04-16 19:59 +0000 [r114180] Tilghman Lesher * channels/chan_vpb.cc: Backport revisions for latest vpb drivers to 1.4 (Closes issue #12457) 2008-04-16 17:30 +0000 [r114173] Jason Parker * channels/chan_zap.c: Fix "fallthrough" behavior here, so config options in a previously configured user don't override settings in general. (closes issue #12458) Reported by: tzafrir Patches: chanzap_users_sections.diff uploaded by tzafrir (license 46) 2008-04-16 14:10 +0000 [r114167] Joshua Colp * apps/app_meetme.c: Include the proper headers for using mkdir on FreeBSD. (closes issue #12430) Reported by: ys Patches: app_meetme.c.diff uploaded by ys (license 281) 2008-04-15 20:26 +0000 [r114148] Olle Johansson * channels/chan_sip.c: Handle subscribe queues in all situations... Thanks to festr_ on irc for telling me about this bug. 2008-04-15 17:17 +0000 [r114120-114138] Jason Parker * contrib/scripts/autosupport: Update Digium autosupport script, for more useful information. (closes issue #12452) Reported by: angler Patches: autosupport.diff uploaded by angler (license 106) * apps/app_queue.c: Allow autofill to work in the general section of queues.conf. Additionally, don't try to (re)set options when they have empty values in realtime (all unset columns would have an empty value). (closes issue #12445) Reported by: atis Patches: 12445-autofill.diff uploaded by qwell (license 4) * channels/chan_h323.c: The call_token on the pvt can occasionally be NULL, causing a crash. If it is NULL, we can skip this channel, since it can't the one we're looking for. (closes issue #9299) Reported by: vazir 2008-04-14 17:41 +0000 [r114106-114117] Mark Michelson * main/channel.c: Increase the retry count when attempting to show channels. This apparently cleared an issue someone was seeing when attempting to show channels when the load was high. (closes issue #11667) Reported by: falves11 Patches: 11677.txt uploaded by russell (license 2) Tested by: falves11 * apps/app_dial.c, apps/app_queue.c: If the datastore has been moved to another channel due to a masquerade, then freeing the datastore here causes an eventual double free when the new channel hangs up. We should only free the datastore if we were able to successfully remove it from the channel we are referencing (i.e. the datastore was not moved). (closes issue #12359) Reported by: pguido * main/channel.c: Save a local copy of the generate callback prior to unlocking the channel in case the generate callback goes NULL on us after the channel is unlocked. Thanks to Russell for pointing this need out to me. 2008-04-14 14:52 +0000 [r114100-114103] Joshua Colp * channels/chan_sip.c: It is possible for the remote side to say they want T38 but not give any capabilities. (closes issue #12414) Reported by: MVF * main/rtp.c: Don't change the SSRC when a new source comes into play, this might happen quite often and depending on the remote side... they might not like this. (closes issue #12353) Reported by: dimas 2008-04-11 22:32 +0000 [r114083] Terry Wilson * channels/chan_iax2.c: Several places in the code called find_callno() (which releases the lock on the pvt structure) and then immediately locked the call and did things with it. Unfortunately, the call can disappear between the find_callno and the lock, causing Bad Stuff(tm) to happen. Added find_callno_locked() function to return the callno withtout unlocking for instances that it is needed. (issue #12400) Reported by: ztel 2008-04-11 21:35 +0000 [r114072] Jason Parker * main/pbx.c: It's possible that a channel can have an async goto on the successful execution of an application as well. Closes issue #12172. 2008-04-11 15:44 +0000 [r114045-114063] Mark Michelson * res/res_features.c: Fix a race condition that may happen between a sip hangup and a "core show channel" command. This patch adds locking to prevent the resulting crash. (closes issue #12155) Reported by: tsearle Patches: show_channels_crash2.patch uploaded by tsearle (license 373) Tested by: tsearle * main/utils.c, include/asterisk/lock.h: Fix 1.4 build when LOW_MEMORY is enabled. * channels/chan_sip.c: Be sure that we're not about to set bridgepvt NULL prior to dereferencing it. (closes issue #11775) Reported by: fujin 2008-04-10 17:26 +0000 [r114035] Jason Parker * main/file.c: Only try to prefix language if we are not using an absolute path (suffix it otherwise). en/var/lib/asterisk/sounds/blah.gsm is a very silly path. (closes issue #12379) Reported by: kuj Patches: 12379-absolutepath.diff uploaded by qwell (license 4) Tested by: kuj, qwell 2008-04-10 15:58 +0000 [r114021-114032] Joshua Colp * apps/app_voicemail.c: Forgot the 1.4 branch for russian language fix. (closes issue #12404) Reported by: IgorG Patches: voicemail_ru_hardcoded-v1.patch uploaded by IgorG (license 20) * apps/app_meetme.c: Create the directory where name recordings will go if it does not exist. (closes issue #12311) Reported by: rkeene Patches: 12311-mkdir.diff uploaded by qwell (license 4) * channels/chan_sip.c: Don't add custom URI options if they don't exist OR they are empty. (closes issue #12407) Reported by: homesick Patches: uri_options-1.4.diff uploaded by homesick (license 91) 2008-04-09 20:54 +0000 [r113927] Mark Michelson * channels/chan_sip.c: We need to set the persistant_route [sic] parameter for the sip_pvt during the initial INVITE, no matter if we're building the route set from an INVITE request or response. (closes issue #12391) Reported by: benjaminbohlmann Tested by: benjaminbohlmann 2008-04-09 18:57 +0000 [r113874] Tilghman Lesher * cdr/cdr_csv.c, configs/cdr.conf.sample: If the [csv] section does not exist in cdr.conf, then an unload/load sequence is needed to correct the problem. Track whether the load succeeded with a variable, so we can fix this with a simple reload event, instead. 2008-04-09 16:50 +0000 [r113784] Joshua Colp * channels/chan_iax2.c: If we receive an AUTHREQ from the remote server and we are unable to reply (for example they have a secret configured, but we do not) then queue a hangup frame on the Asterisk channel. This will cause the channel to hangup and a HANGUP to be sent via IAX2 to the remote side which is the proper thing to do in this scenario. (closes issue #12385) Reported by: viraptor 2008-04-09 14:40 +0000 [r113681] Mark Michelson * channels/chan_sip.c: If Asterisk receives a 488 on an INVITE (not a reinvite), then we should not send a BYE. (closes issue #12392) Reported by: fnordian Patches: chan_sip.patch uploaded by fnordian (license 110) with small modification from me 2008-04-09 01:34 +0000 [r113596] Terry Wilson * channels/chan_iax2.c: Initialize fr->cacheable to make valgrind happy 2008-04-08 19:07 +0000 [r113507] Mark Michelson * apps/app_parkandannounce.c: Fix potential buffer overflow that could happen if more than 100 announce files were specified when calling ParkAndAnnounce. This overflow is not exploitable remotely and so there is no need for a security advisory. (closes issue #12386) Reported by: davidw 2008-04-08 18:48 +0000 [r113402-113504] Jason Parker * channels/chan_skinny.c: Add a little more that is required for previously added devices. * channels/chan_skinny.c: Add support for several new(ish) devices - most notably, 7942/7945, 7962/7965, 7975. Thanks to Greg Oliver for providing me the required information. * main/asterisk.c: Work around some silliness caused by sys/capability.h - this should fix compile errors a number of users have been experiencing. 2008-04-08 16:51 +0000 [r113348-113399] Tilghman Lesher * contrib/scripts/astgenkey.8: Add security note on astgenkey's manpage. (closes issue #12373) Reported by: lmamane Patches: 20080406__bug12373.diff.txt uploaded by Corydon76 (license 14) * channels/chan_sip.c: Move check for still-bridged channels out a little further, to avoid possible deadlocks. (Closes issue #12252) Reported by: callguy Patches: 20080319__bug12252.diff.txt uploaded by Corydon76 (license 14) Tested by: callguy 2008-04-08 15:03 +0000 [r113296] Joshua Colp * include/asterisk/slinfactory.h, main/slinfactory.c, main/audiohook.c: If audio suddenly gets fed into one side of a channel after a lapse of frames flush the other factory so that old audio does not remain in the factory causing the sync code to not execute. (closes issue #12296) Reported by: jvandal 2008-04-07 21:34 +0000 [r113240] Jeff Peeler * channels/chan_sip.c: (closes issue #12362) [redo of 113012] This fixes a for loop (in realtime_peer) to check all the ast_variables the loop was intending to test rather than just the first one. The change exposed the problem of calling memcpy on a NULL pointer, in this case the passed in sockaddr_in struct which is now checked. 2008-04-07 18:00 +0000 [r113118] Jason Parker * channels/chan_skinny.c, configs/skinny.conf.sample: Allow playback with noanswer (and add earlyrtp option). (closes issue #9077) Reported by: pj Patches: earlyrtp.diff uploaded by wedhorn (license 30) Tested by: pj, qwell, DEA, wedhorn 2008-04-07 17:51 +0000 [r113117] Tilghman Lesher * funcs/func_strings.c: Force ast_mktime() to check for DST, since strptime(3) does not. (Closes issue #12374) 2008-04-07 16:08 +0000 [r113065] Mark Michelson * main/channel.c: This fix prevents a deadlock that was experienced in chan_local. There was deadlock prevention in place in chan_local, but it would not work in a specific case because the channel was recursively locked. By unlocking the channel prior to calling the generator's generate callback in ast_read_generator_actions(), we prevent the recursive locking, and therefore the deadlock. (closes issue #12307) Reported by: callguy Patches: 12307.patch uploaded by putnopvut (license 60) Tested by: callguy 2008-04-07 15:16 +0000 [r113012] Jeff Peeler * channels/chan_sip.c: (closes issue #12362) (closes issue #12372) Reported by: vinsik Tested by: tecnoxarxa This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one. 2008-04-04 19:26 +0000 [r112766-112820] Philippe Sultan * channels/chan_gtalk.c: Free newly allocated channel before returning * channels/chan_gtalk.c: Prevent call connections when codecs don't match. (closes issue #10604) Reported by: keepitcool Patches: branch-1.4-10604-2.diff uploaded by phsultan (license 73) Tested by: phsultan 2008-04-04 00:52 +0000 [r112709-112711] Joshua Colp * main/Makefile: Pass in the path to Zaptel for systems that install Zaptel headers in a separate location. * main/asterisk.c: One thing at a time... let's get 1.4 building. 2008-04-03 23:57 +0000 [r112689] Dwayne M. Hubbard * main/asterisk.c: add a Zaptel timer check to verify the timer is responding when Zaptel support is compiled into Asterisk and Zaptel drivers are loaded. This will help people not waste their valuable time debugging side effects. 2008-04-03 14:32 +0000 [r112393-112599] Mark Michelson * channels/chan_zap.c: Fix the testing of the "res" variable so that it is more logically correct and makes the correct warning and debug messages print. (closes issue #12361) Reported by: one47 Patches: chan_zap_deferred_digit.patch uploaded by one47 (license 23) * main/manager.c: Fix a race condition in the manager. It is possible that a new manager event could be appended during a brief time when the manager is not waiting for input. If an event comes during this period, we need to set an indicator that there is an event pending so that the manager doesn't attempt to wait forever for an event that already happened. (closes issue #12354) Reported by: bamby Patches: manager_race_condition.diff uploaded by bamby (license 430) (comments added by me) * apps/app_queue.c: Ensure that there is no timeout if none is specified. (closes issue #12349) Reported by: johnlange 2008-04-01 Russell Bryant * Asterisk 1.4.19 released. 2008-03-28 Russell Bryant * Asterisk 1.4.19-rc4 released. 2008-03-28 16:19 +0000 [r111658] Jason Parker * formats/format_wav_gsm.c: The file size of WAV49 does not need to be an even number. (closes issue #12128) Reported by: mdu113 Patches: 12128-noevenlength.diff uploaded by qwell (license 4) Tested by: qwell, mdu113 2008-03-28 14:35 +0000 [r111442-111605] Tilghman Lesher * doc/valgrind.txt: Update debugging text, since Valgrind eliminated the --log-file-exactly option. (Closes issue #12320) * main/acl.c: For FreeBSD, at least, the ifa_addr element could be NULL. (closes issue #12300) Reported by: festr Patches: acl.c.patch uploaded by festr (license 443) 2008-03-27 13:03 +0000 [r111341-111391] Steve Murphy * apps/app_playback.c, main/pbx.c: These small documentation updates made in response to a query in asterisk-users, where a user was using Playback, but needed the features of Background, and had no idea that Background existed, or that it might provide the features he needed. I thought the best way to avert these kinds of queries was to provide "See Also" references in all three of "Background", "Playback", "WaitExten". Perhaps a project to do this with all related apps is in order. * pbx/pbx_ael.c, include/asterisk/ael_structs.h: (closes issue #12302) Reported by: pj Tested by: murf These changes will set a channel variable ~~EXTEN~~ just before generating code for a switch, with the value of ${EXTEN}. The exten is marked as having a switch, and ever after that, till the end of the exten, we substitute any ${EXTEN} with ${~~EXTEN~~} instead in application arguments; (and the ${EXTEN: also). The reason for this, is that because switches are coded using separate extensions to provide pattern matching, and jumping to/from these switch extensions messes up the ${EXTEN} value, which blows the minds of users. 2008-03-27 00:25 +0000 [r111245-111280] Jason Parker * main/frame.c: Put this flag back so we don't change the API. * main/frame.c: Remove excessive smoother optimization that was causing audio glitches (small "pops") after (about 200ms later) an "incorrectly" sized frame was received. While it would be very nice to keep this as optimized as possible, it makes no sense for the smoother to be dropping random bits of audio like this. Isn't that the whole point of a smoother? Closes issue #12093. 2008-03-26 19:55 +0000 [r111129] Joshua Colp * contrib/scripts/autosupport: Update autosupport script. (closes issue #12310) Reported by: angler Patches: autosupport.diff uploaded by angler (license 106) 2008-03-26 19:51 +0000 [r111126] Kevin P. Fleming * /, UPGRADE.txt: Merged revisions 111125 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r111125 | kpfleming | 2008-03-26 14:49:30 -0500 (Wed, 26 Mar 2008) | 2 lines update UPGRADE notes to document usage of the script ........ 2008-03-26 19:37 +0000 [r111049-111121] Mark Michelson * apps/app_voicemail.c: This code change is made just for clarification. It does exactly the same thing as before. It just doesn't look as wrong. * apps/app_voicemail.c: Add a lock to the vm_state structure and use the lock around mail_open calls to prevent concurrent access of the same mailstream. This, along with trunk's ability to configure TCP timeouts for IMAP storage will help to prevent crashes and hangs when using voicemail with IMAP storage. (closes issue #10487) Reported by: ewilhelmsen 2008-03-26 19:06 +0000 [r111024] Kevin P. Fleming * codecs/ilbc, /, contrib/scripts/get_ilbc_source.sh (added): Merged revisions 111019 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r111019 | kpfleming | 2008-03-26 13:58:37 -0500 (Wed, 26 Mar 2008) | 2 lines add a script to make getting the iLBC source code simple for end users ........ 2008-03-26 19:04 +0000 [r111014-111020] Joshua Colp * channels/chan_sip.c: If we are requested to authenticate a reinvite make sure that it contains T38 SDP if need be. (closes issue #11995) Reported by: fall * channels/chan_iax2.c: Make sure that full video frames are sent whenever the 15 bit timestamp rolls over. (closes issue #11923) Reported by: mihai Patches: asterisk-fullvideo.patch uploaded by mihai (license 94) 2008-03-26 17:43 +0000 [r110880-110962] Kevin P. Fleming * UPGRADE.txt: add note that the user will need to enable codec_ilbc to get it to build * codecs/ilbc/StateConstructW.h (removed), codecs/ilbc/libilbc.vcproj (removed), codecs/ilbc/packing.h (removed), codecs/ilbc/getCBvec.c (removed), codecs/ilbc/LPCdecode.c (removed), codecs/ilbc/enhancer.c (removed), codecs/ilbc/lsf.c (removed), codecs/ilbc/iLBC_encode.c (removed), codecs/ilbc/getCBvec.h (removed), codecs/ilbc/LPCdecode.h (removed), codecs/ilbc/enhancer.h (removed), codecs/ilbc/FrameClassify.c (removed), codecs/ilbc/iLBC_define.h (removed), codecs/ilbc/lsf.h (removed), codecs/ilbc/iLBC_encode.h (removed), codecs/ilbc/FrameClassify.h (removed), codecs/ilbc/helpfun.c (removed), codecs/ilbc/doCPLC.c (removed), codecs/ilbc/anaFilter.c (removed), codecs/ilbc/helpfun.h (removed), codecs/ilbc/createCB.c (removed), codecs/ilbc/doCPLC.h (removed), codecs/ilbc/anaFilter.h (removed), UPGRADE.txt, codecs/ilbc/iLBC_decode.c (removed), codecs/ilbc/constants.c (removed), codecs/ilbc/createCB.h (removed), CHANGES, codecs/ilbc/iLBC_decode.h (removed), codecs/ilbc/constants.h (removed), codecs/Makefile, codecs/ilbc/iCBSearch.c (removed), codecs/ilbc/filter.c (removed), codecs/ilbc/hpInput.c (removed), codecs/ilbc/gainquant.c (removed), codecs/ilbc/hpOutput.c (removed), codecs/ilbc/iCBSearch.h (removed), codecs/ilbc/filter.h (removed), codecs/ilbc/hpInput.h (removed), codecs/ilbc/gainquant.h (removed), codecs/ilbc/LPCencode.c (removed), codecs/ilbc/hpOutput.h (removed), codecs/ilbc/StateSearchW.c (removed), codecs/codec_ilbc.c, codecs/ilbc/LPCencode.h (removed), codecs/ilbc/StateSearchW.h (removed), codecs/ilbc/iCBConstruct.c (removed), codecs/ilbc/syntFilter.c (removed), /, codecs/ilbc/iCBConstruct.h (removed), codecs/ilbc/syntFilter.h (removed), codecs/ilbc/StateConstructW.c (removed), codecs/ilbc/packing.c (removed): Merged revisions 110869 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r110869 | kpfleming | 2008-03-26 08:53:46 -0700 (Wed, 26 Mar 2008) | 2 lines due to licensing restrictions, we cannot distribute the source code for iLBC encoding and decoding... so remove it, and add instructions on how the user can obtain it themselves ........ 2008-03-25 22:51 +0000 [r110779] Jason Parker * cdr/cdr_custom.c: Make file access in cdr_custom similar to cdr_csv. Fixes issue #12268. Patch borrowed from r82344 2008-03-25 20:03 +0000 [r110727] Jeff Peeler * channels/chan_sip.c: This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one. 2008-03-25 15:40 +0000 [r110635] Mark Michelson * channels/chan_sip.c: When reverting a commit, I accidentally left in this bit which was an experiment to see what would happen. It passed the compile test, and I didn't notice I had left this change in too. So this is a revert of a revert...sort of. 2008-03-25 14:37 +0000 [r110628] Joshua Colp * include/asterisk/options.h, main/asterisk.c, Makefile, main/app.c: Add an option (transmit_silence) which transmits silence during both Record() and DTMF generation. The reason this is an option is that in order to transmit silence we have to setup a translation path. This may not be needed/wanted in all cases. (closes issue #10058) Reported by: tracinet 2008-03-24 19:17 +0000 [r110618] Mark Michelson * channels/chan_sip.c: This is a revert for revision 108288. The reason is that that revision was not for an actual bug fix per se, and so it really should not have been in 1.4 in the first place. Plus, people who compile with DO_CRASH are more likely to encounter a crash due to this change. While I think the usage of DO_CRASH in ast_sched_del is a bit absurd, this sort of change is beyond the scope of 1.4 and should be done instead in a developer branch based on trunk so that all scheduler functions are fixed at once. I also am reverting the change to trunk and 1.6 since they also suffer from the DO_CRASH potential. (closes issue #12272) Reported by: qq12345 2008-03-24 17:34 +0000 [r110614] Russell Bryant * channels/chan_iax2.c: Turn a NOTICE into a DEBUG message. 2008-03-21 14:32 +0000 [r110474] Jason Parker * codecs/gsm/Makefile: Don't attempt to do optimizations of gsm on mips platforms either. (closes issue #12270) Reported by: zandbelt Patches: 026-gsm-mips.patch uploaded by zandbelt (license 33) 2008-03-20 23:13 +0000 [r110163-110395] Russell Bryant * main/autoservice.c: Shorten the ast_waitfor() timeout from 500 ms to 50 ms in the autoservice thread. This really should not make a difference except in very rare cases. That case would be that all of the channels in autoservice are not generating any frames. In that case, this change reduces the potential amount of time that a thread waits in ast_autoservice_stop() for the autoservice thread to wrap back around to the beginning of its loop. (closes issue #12266, reported by dimas) * /, channels/chan_sip.c, channels/chan_iax2.c: Merged revisions 110335 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r110335 | russell | 2008-03-20 16:53:27 -0500 (Thu, 20 Mar 2008) | 6 lines Fix some very broken code that was introduced in 1.2.26 as a part of the security fix. The dnsmgr is not appropriate here. The dnsmgr takes a pointer to an address structure that a background thread continuously updates. However, in these cases, a stack variable was passed. That means that the dnsmgr thread would be continuously writing to bogus memory. ........ * apps/app_meetme.c: Fix a bug where when calls on the trunk side hang up while on hold, the state is not properly reflected. (closes issue #11990, reported by anakaoka, patched by me) 2008-03-19 20:33 +0000 [r110083] Mark Michelson * apps/app_chanspy.c: Add a missing unlock in the case that memory allocation fails in app_chanspy. Thanks to Russell for confirming that this was an issue. 2008-03-19 19:11 +0000 [r110019-110035] Joshua Colp * res/res_musiconhold.c: Add sanity checking for position resuming. We *have* to make sure that the position does not exceed the total number of files present, and we have to make sure that the position's filename is the same as previous. These values can change if a music class is reloaded and give unpredictable behavior. (closes issue #11663) Reported by: junky * main/rtp.c: Make sure that the mark bit does not incorrectly cause video frame timestamps to be calculated as if they are audio frames. (closes issue #11429) Reported by: sperreault Patches: 11429-frametype.diff uploaded by qwell (license 4) 2008-03-19 17:12 +0000 [r109973] Jason Parker * Makefile, build_tools/cflags.xml, build_tools/cflags-devmode.xml (added): People report bugs about Asterisk crashing with DO_CRASH enabled was getting a little silly... Now we only show certain cflags when you run configure with --enable-dev-mode (corresponding menuselect change to follow) 2008-03-19 15:41 +0000 [r109908] Steve Murphy * main/config.c: (closes issue #11442) Reported by: tzafrir Patches: 11442.patch uploaded by murf (license 17) Tested by: murf I didn't give tzafrir very much time to test this, but if he does still have remaining issues, he is welcome to re-open this bug, and we'll do what is called for. I reproduced the problem, and tested the fix, so I hope I am not jumping by just going ahead and committing the fix. The problem was with what file_save does with templates; firstly, it tended to print out multiple options: [my_category](!)(templateref) instead of [my_category](!,templateref) which is fixed by this patch. Nextly, the code to suppress output of duplicate declarations that would occur because the reader copies inherited declarations down the hierarchy, was not working. Thus: [master-template](!) mastervar = bar [template](!,master-template) tvar = value [cat](template) catvar = val would be rewritten as: ;! ;! Automatically generated configuration file ;! Filename: experiment.conf (/etc/asterisk/experiment.conf) ;! Generator: Manager ;! Creation Date: Tue Mar 18 23:17:46 2008 ;! [master-template](!) mastervar = bar [template](!,master-template) mastervar = bar tvar = value [cat](template) mastervar = bar tvar = value catvar = val This has been fixed. Since the config reader 'explodes' inherited vars into the category, users may, in certain circumstances, see output different from what they originally entered, but it should be both correct and equivalent. 2008-03-19 04:06 +0000 [r109763-109838] Russell Bryant * main/utils.c: Tweak spacing in a recent change because I'm very picky. * apps/app_chanspy.c: Fix one place where the chanspy datastore isn't removed from a channel. (issue #12243, reported by atis, patch by me) 2008-03-18 20:52 +0000 [r109713] Mark Michelson * apps/app_queue.c: This patch makes it so that all queue member status changes are handled through device state code. This removes several problems people were seeing where their queue members would get into an "unknown" state. Huge props go to atis on this one since he was the one who found the code section that was causing the problem and proposed the solution. I just wrote what he suggested :) (closes issue #12127) Reported by: atis Patches: 12127v3.patch uploaded by putnopvut (license 60) Tested by: atis, jvandal 2008-03-18 19:23 +0000 [r109648] Jason Parker * codecs/log2comp.h: Allow codecs that use log2comp (g726) to compile correctly on x86 with gcc4 optimizations. (closes issue #12253) Reported by: fossil Patches: log2comp.patch uploaded by fossil (license 140) 2008-03-18 17:58 +0000 [r109575] Mark Michelson * channels/chan_agent.c: Make sure an agent doesn't try to send dtmf to a NULL channel closes issue #12242 Reported by Yourname 2008-03-18 Russell Bryant * Asterisk 1.4.19-rc3 released. 2008-03-18 16:25 +0000 [r109482] Terry Wilson * include/asterisk/astobj.h: Fix character string being treated ad format string 2008-03-18 15:10 +0000 [r109393] Jason Parker * /, channels/chan_sip.c: Merged revisions 109391 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r109391 | qwell | 2008-03-18 10:08:41 -0500 (Tue, 18 Mar 2008) | 3 lines Do not return with a successful authentication if the From header ends up empty. (AST-2008-003) ........ 2008-03-18 14:58 +0000 [r109386] Joshua Colp * main/rtp.c, channels/chan_sip.c: Put a maximum limit on the number of payloads accepted, and also make sure a given payload does not exceed our maximum value. (AST-2008-002) 2008-03-18 06:37 +0000 [r109309] Steve Murphy * pbx/ael/ael-test/ael-ntest23 (added), pbx/ael/ael-test/ael-ntest23/t1/a.ael (added), pbx/ael/ael-test/ael-ntest23/t1/b.ael (added), pbx/ael/ael-test/ael-ntest23/t1/c.ael (added), pbx/ael/ael-test/ael-ntest23/t2/d.ael (added), pbx/ael/ael-test/ael-ntest23/t2/e.ael (added), pbx/ael/ael-test/ael-ntest23/t2/f.ael (added), pbx/ael/ael-test/ref.ael-ntest23 (added), pbx/ael/ael_lex.c, pbx/ael/ael-test/ael-ntest23/t3/g.ael (added), pbx/ael/ael-test/ael-ntest23/t3/h.ael (added), pbx/ael/ael-test/ael-ntest23/t3/i.ael (added), pbx/ael/ael.flex, pbx/ael/ael-test/ael-ntest23/t3/j.ael (added), pbx/ael/ael-test/ael-ntest23/qq.ael (added), pbx/ael/ael-test/ael-ntest23/t1 (added), pbx/ael/ael-test/ael-ntest23/t2 (added), pbx/ael/ael-test/ael-ntest23/t3 (added), pbx/ael/ael-test/ael-ntest23/extensions.ael (added): (closes issue #11903) Reported by: atis Many thanks to atis for spotting this problem and reporting it. The fix was to straighten out how items are placed on and removed from the file stack. Regressions as well as the provided test case helped to straighten out all code paths. valgrind was used to make sure all memory allocated was freed. Sorry for not solving this earlier. I got distracted. Added the ntest23 regression test, which is mainly a copy of ntest22, but with a few juicy errors thrown in, to replicate the kind of error that atis spotted. 2008-03-17 22:05 +0000 [r109226] Mark Michelson * main/utils.c: Fix a logic flaw in the code that stores lock info which is displayed via the "core show locks" command. The idea behind this section of code was to remove the previous lock from the list if it was a trylock that had failed. Unfortunately, instead of checking the status of the previous lock, we were referencing the index immediately following the previous lock in the lock_info->locks array. The result of this problem, under the right circumstances, was that the lock which we currently in the process of attempting to acquire could "overwrite" the previous lock which was acquired. While this does not in any way affect typical operation, it *could* lead to misleading "core show locks" output. 2008-03-17 17:55 +0000 [r109171] Michiel van Baak * channels/chan_skinny.c: Update the directory of placed calls on skinny phones when dialing a channel that does not provide progress (analog ZAP lines) The phone does handle the double update on calls to channels that do provide progress and wont insert duplicate items (closes issue #12239) Reported by: DEA Patches: chan_skinny-call-log.txt uploaded by DEA (license 3) 2008-03-17 16:24 +0000 [r109107] Joshua Colp * channels/chan_sip.c: 200 OKs in response to a reinvite need to be sent reliably. If the remote side does not receive one the dialog will be torn down. (closes issue #12208) Reported by: atrash 2008-03-17 15:15 +0000 [r109057] Jason Parker * main/file.c: Backport revision 106439 from trunk. I didn't realize this was broken in 1.4 as well. Closes issue #12222. 2008-03-17 14:18 +0000 [r109012] Mark Michelson * apps/app_chanspy.c: Make sure that we release the lock on the spyee channel if the spyee or spy has hung up (closes issue #12232) Reported by: atis 2008-03-16 21:47 +0000 [r108961] Michiel van Baak * main/dial.c: add missing break to case AST_CONTROL_SRCUPDATE (closes issue #12228) Reported by: andrew Patches: SRC.patch uploaded by andrew (license 240) 2008-03-14 20:09 +0000 [r108792-108796] Russell Bryant * channels/chan_oss.c: Fix a channel name issue. chan_oss registers the "Console" channel type, but it created channels with an "OSS" prefix. (closes issue #12194, reported by davidw, patched by me) * contrib/init.d/rc.suse.asterisk: Update the SuSE init script to start networking before asterisk, as well. (closes issue #12200, reported by and change suggested by reinerotto) 2008-03-14 16:44 +0000 [r108737] Mark Michelson * channels/chan_sip.c: Fix a race condition in the SIP packet scheduler which could cause a crash. chan_sip uses the scheduler API in order to schedule retransmission of reliable packets (such as INVITES). If a retransmission of a packet is occurring, then the packet is removed from the scheduler and retrans_pkt is called. Meanwhile, if a response is received from the packet as previously transmitted, then when we ACK the response, we will remove the packet from the scheduler and free the packet. The problem is that both the ACK function and retrans_pkt attempt to acquire the same lock at the beginning of the function call. This means that if the ACK function acquires the lock first, then it will free the packet which retrans_pkt is about to read from and write to. The result is a crash. The solution: 1. If the ACK function fails to remove the packet from the scheduler and the retransmit id of the packet is not -1 (meaning that we have not reached the maximum number of retransmissions) then release the lock and yield so that retrans_pkt may acquire the lock and operate. 2. Make absolutely certain that the ACK function does not recursively lock the lock in question. If it does, then releasing the lock will do no good, since retrans_pkt will still be unable to acquire the lock. (closes issue #12098) Reported by: wegbert (closes issue #12089) Reported by: PTorres Patches: 12098-putnopvutv3.patch uploaded by putnopvut (license 60) Tested by: jvandal 2008-03-14 14:29 +0000 [r108682] Jason Parker * res/res_musiconhold.c: Fix a potential segfault if chan (or chan->music_state) is NULL. Closes issue #12210, credit to edantie for pointing this out. 2008-03-13 21:38 +0000 [r108469-108583] Russell Bryant * apps/app_chanspy.c, main/channel.c, include/asterisk/channel.h: Fix another issue that was causing crashes in chanspy. This introduces a new datastore callback, called chan_fixup(). The concept is exactly like the fixup callback that is used in the channel technology interface. This callback gets called when the owning channel changes due to a masquerade. Before this was introduced, if a masquerade happened on a channel being spyed on, the channel pointer in the datastore became invalid. (closes issue #12187) (reported by, and lots of testing from atis) (props to file for the help with ideas) * channels/chan_sip.c: Make a tweak that gets the LEDs on polycom phones to blink when an extension that has been subscribed to goes on hold. Otherwise, they just stay on like it does when an extension is in use. (closes issue #11263) Reported by: russell Patches: notify_hold.rev1.txt uploaded by russell (license 2) Tested by: russell * apps/app_followme.c: Fix a couple uses of sprintf. The second one could actually cause an overflow of a stack buffer. It's not a security issue though, it only depends on your configuration. 2008-03-12 21:53 +0000 [r108227-108288] Mark Michelson * channels/chan_sip.c: Change AST_SCHED_DEL use to ast_sched_del for autocongestion in chan_sip. The scheduler callback will always return 0. This means that this id is never rescheduled, so it makes no sense to loop trying to delete the id from the scheduler queue. If we fail to remove the item from the queue once, it will fail every single time. (Yes I realize that in this case, the macro would exit early because the id is set to -1 in the callback, but it still makes no sense to use that macro in favor of calling ast_sched_del once and being done with it) This is the first of potentially several such fixes. * include/asterisk/sched.h: Added a large comment before the AST_SCHED_DEL macro to explain its purpose as well as when it is appropriate and when it is not appropriate to use it. I also removed the part of the debug message that mentions that this is probably a bug because there are some perfectly legitimate places where ast_sched_del may fail to delete an entry (e.g. when the scheduler callback manually reschedules with a new id instead of returning non-zero to tell the scheduler to reschedule with the same idea). I also raised the debug level of the debug message in AST_SCHED_DEL since it seems like it could come up quite frequently since the macro is probably being used in several places where it shouldn't be. Also removed the redundant line, file, and function information since that is provided by ast_log. 2008-03-12 19:57 +0000 [r108135] Russell Bryant * apps/app_chanspy.c, main/channel.c: (closes issue #12187, reported by atis, fixed by me after some brainstorming on the issue with mmichelson) - Update copyright info on app_chanspy. - Fix a race condition that caused app_chanspy to crash. The issue was that the chanspy datastore magic that was used to ensure that spyee channels did not disappear out from under the code did not completely solve the problem. It was actually possible for chanspy to acquire a channel reference out of its datastore to a channel that was in the middle of being destroyed. That was because datastore destruction in ast_channel_free() was done near the end. So, this left the code in app_chanspy accessing a channel that was partially, or completely invalid because it was in the process of being free'd by another thread. The following sort of shows the code path where the race occurred: ============================================================================= Thread 1 (PBX thread for spyee chan) || Thread 2 (chanspy) --------------------------------------||------------------------------------- ast_channel_free() || - remove channel from channel list || - lock/unlock the channel to ensure || that no references retrieved from || the channel list exist. || --------------------------------------||------------------------------------- || channel_spy() - destroy some channel data || - Lock chanspy datastore || - Retrieve reference to channel || - lock channel || - Unlock chanspy datastore --------------------------------------||------------------------------------- - destroy channel datastores || - call chanspy datastore d'tor || which NULL's out the ds' || - Operate on the channel ... reference to the channel || || - free the channel || || || - unlock the channel --------------------------------------||------------------------------------- ============================================================================= 2008-03-12 19:16 +0000 [r108086] Kevin P. Fleming * channels/chan_sip.c: if we receive an INVITE with a Content-Length that is not a valid number, or is zero, then don't process the rest of the message body looking for an SDP closes issue #11475 Reported by: andrebarbosa 2008-03-12 18:26 +0000 [r108083] Joshua Colp * apps/app_mixmonitor.c, include/asterisk/audiohook.h, main/audiohook.c: Add a trigger mode that triggers on both read and write. The actual function that returns the combined audio frame though will wait until both sides have fed in audio, or until one side stops (such as the case when you call Wait). (closes issue #11945) Reported by: xheliox 2008-03-12 16:59 +0000 [r108031] Russell Bryant * main/channel.c: Destroy the channel lock after the channel datastores. (inspired by issue #12187) 2008-03-12 01:52 +0000 [r107877] Tilghman Lesher * contrib/scripts/iax-friends.sql, contrib/scripts/sip-friends.sql: Document all of the possible realtime fields 2008-03-11 23:37 +0000 [r107714-107826] Jason Parker * doc/voicemail_odbc_postgresql.txt: Update documentation for pgsql ODBC voicemail. (closes issue #12186) Reported by: jsmith Patches: vm_pgsql_doc_update.patch uploaded by jsmith (license 15) * channels/chan_gtalk.c: Copy voicemail dependency logic for res_adsi to chan_gtalk (for jabber). (closes issue #12014) Reported by: junky 2008-03-11 20:48 +0000 [r107713] Kevin P. Fleming * Makefile.rules, channels/Makefile: get chan_vpb to build properly in dev mode 2008-03-11 20:47 +0000 [r107712] Jason Parker * apps/app_voicemail.c: Add a newline on a log 2008-03-11 19:20 +0000 [r107582-107646] Joshua Colp * res/res_features.c: Make sure the visible indication is on the right channel so when the masquerade happens the proper indication is enacted. (closes issue #11707) Reported by: iam * apps/app_meetme.c: Add an additional check for setting conference parameter when using the marked user options. It was possible for it to return to a no listen/no talk state if a masquerade happened. (closes issue #12136) Reported by: aragon * apps/app_exec.c: Fix a minor spelling error. (closes issue #12183) Reported by: darrylc 2008-03-11 Russell Bryant * Asterisk 1.4.19-rc2 released. 2008-03-11 15:18 +0000 [r107352-107472] Kevin P. Fleming * apps/app_rpt.c: backport a fix from trunk * channels/misdn/isdn_lib.c, codecs/Makefile, channels/chan_misdn.c: fix various other problems found by gcc 4.3 * configure, include/asterisk/autoconfig.h.in, configure.ac, apps/app_sms.c: stop checking for mktime() in the configure script... we don't use it, and the test is buggy under gcc 4.3 * configure, main/Makefile, configure.ac, makeopts.in: check for compiler support for -fno-strict-overflow before using it (tested with Debian's gcc 4.3, 4.1 and 3.4) (closes issue #12179) Reported by: Netview * configure, configure.ac: fix small bug in IMAP toolkit testing * main/udptl.c, utils/Makefile, main/Makefile, main/editline/readline.c, pbx/Makefile: fix up various compiler warnings found with gcc-4.3: - the output of flex includes a static function called 'input' that is not used, so for the moment we'll stop having the compiler tell us about unused variables in the flex source files (a better fix would be to improve our flex post-processing to remove the unused function) - main/stdtime/localtime.c makes assumptions about signed integer overflow, and gcc-4.3's improved optimizer tries to take advantage of handling potential overflow conditions at compile time; for now, suppress these optimizations until we can fiure out if the code needs improvement - main/udptl.c has some references to uninitialized variables; in one case there was no bug, but in the other it was certainly possibly for unexpected behavior to occur - main/editline/readline.c had an unused variable 2008-03-11 00:59 +0000 [r107290] Terry Wilson * channels/chan_sip.c: If we fail to alloc a channel, we should re-lock the pvt structure before returning. 2008-03-10 21:32 +0000 [r107230] Tilghman Lesher * main/pbx.c: Use non-global storage for eswitch 2008-03-10 20:27 +0000 [r107173] Jason Parker * channels/chan_zap.c: Make sure to reenable echo can after a "failed" (canceled, etc) three-way call. (closes issue #11335) Reported by: rebuild 2008-03-10 20:17 +0000 [r107099-107161] Russell Bryant * main/pbx.c: Fix another bug specifically related to asynchronous call origination. Once the PBX is started on the channel using ast_pbx_start(), then the ownership of the channel has been passed on to another thread. We can no longer access it in this code. If the channel gets hung up very quickly, it is possible that we could access a channel that has been free'd. (inspired by BE-386) * main/pbx.c: Fix some bugs related to originating calls. If the code failed to start a PBX on the channel (such as if you set a call limit based on the system's load average), then there were cases where a channel that has already been free'd using ast_hangup() got accessed. This caused weird memory corruption and crashes to occur. (fixes issue BE-386) (much debugging credit goes to twilson, final patch written by me) * main/channel.c: Resolve a compiler warning. * main/channel.c: Fix a race condition where the generator can go away (closes issue #12175, reported by edantie, patched by me) 2008-03-10 14:33 +0000 [r107016] Joshua Colp * apps/app_dial.c, main/cdr.c, include/asterisk/cdr.h: Move where unanswered CDRs are dropped to the CDR core, not everything uses app_dial. (closes issue #11516) Reported by: ys Patches: branch_1.4_cdr.diff uploaded by ys (license 281) Tested by: anest, jcapp, dartvader 2008-03-08 15:59 +0000 [r106945] Kevin P. Fleming * channels/chan_zap.c: don't generate D-Channel "up" and "down" messages unless the channel state is actually changing; also, generate the "up" message when an implicit "up" occurs due to reception of a normal event when we thought the channel was "down" 2008-03-07 22:51 +0000 [r106895] Russell Bryant * apps/app_meetme.c: Only start the SLA thread if SLA has actually been configured. 2008-03-07 22:14 +0000 [r106842] Jason Parker * main/editline/Makefile.in: Fix hardcoded grep in editline, were GNU grep is required. (closes issue #12124) Reported by: dmartin 2008-03-07 19:32 +0000 [r106788] Joshua Colp * main/channel.c: Ignore source update control frame. (closes issue #12168) Reported by: plack 2008-03-07 17:16 +0000 [r106704] Russell Bryant * include/asterisk/sched.h: Change a warning message to a debug message. This is happening quite frequently, and it is not worth spamming users with these messages unless we are pretty confident that it should never happen. As it stands today, it _will_ and _does_ happen and until that gets cleaned up a reasonable amount on the development side, let's not spam the logs of everyone else. (closes issue #12154) 2008-03-07 16:22 +0000 [r106552-106635] Tilghman Lesher * apps/app_voicemail.c: Warn the user when a temporary greeting exists (Closes issue #11409) * main/rtp.c: Properly initialize rtp->schedid (Closes issue #12154) * apps/app_chanspy.c, apps/app_rpt.c, main/asterisk.c, apps/app_speech_utils.c, apps/app_voicemail.c, main/channel.c, funcs/func_enum.c, channels/chan_misdn.c, main/frame.c, main/manager.c: Safely use the strncat() function. (closes issue #11958) Reported by: norman Patches: 20080209__bug11958.diff.txt uploaded by Corydon76 (license 14) 2008-03-06 22:10 +0000 [r106437] Mark Michelson * main/pbx.c: Quell an annoying message that is likely to print every single time that ast_pbx_outgoing_app is called. The reason is that __ast_request_and_dial allocates the cdr for the channel, so it should be expected that the channel will have a cdr on it. Thanks to joetester on IRC for pointing this out 2008-03-06 04:40 +0000 [r106328] Tilghman Lesher * sounds/Makefile: Upgrade to the next release of sounds 2008-03-05 22:37 +0000 [r106237] Russell Bryant * channels/chan_iax2.c: Fix a potential deadlock and a few different potential crashes. (closes issue #12145, reported by thiagarcia, patched by me) 2008-03-05 22:32 +0000 [r106235] Joshua Colp * channels/chan_oss.c, main/rtp.c, channels/chan_mgcp.c, apps/app_dial.c, main/channel.c, channels/chan_phone.c, main/dial.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_skinny.c, channels/chan_h323.c, main/file.c, channels/chan_alsa.c, apps/app_followme.c, include/asterisk/frame.h: Add a control frame to indicate the source of media has changed. Depending on the underlying technology it may need to change some things. (closes issue #12148) Reported by: jcomellas 2008-03-05 21:12 +0000 [r106178] Michiel van Baak * doc/realtime.txt: document var_metric so no bugreports will come in when it's actually a configuration issue. (issue #12151) Reported and patched by: caio1982 1.4 patch by me 2008-03-05 15:32 +0000 [r106038] Kevin P. Fleming * channels/chan_zap.c: when a PRI call must be moved to a different B channel at the request of the other endpoint, ensure that any DSP active on the original channel is moved to the new one (closes issue #11917) Reported by: mavetju Tested by: mavetju 2008-03-05 15:17 +0000 [r106015] Tilghman Lesher * channels/chan_sip.c, include/asterisk/sched.h: Correctly initialize retransid in SIP, and ensure that the warning when failing to delete a schedule entry can actually hit the log. (closes issue #12140) Reported by: slavon Patches: sch2.patch uploaded by slavon (license 288) (Patch slightly modified by me) 2008-03-05 01:52 +0000 [r105932] Russell Bryant * main/rtp.c, main/translate.c, include/asterisk/frame.h: Fix a bug that I just noticed in the RTP code. The calculation for setting the len field in an ast_frame of audio was wrong when G.722 is in use. The len field represents the number of ms of audio that the frame contains. It would have set the value to be twice what it should be. 2008-03-04 18:10 +0000 [r105674-105676] Joshua Colp * main/rtp.c: In addition to setting the marker bit let's change our ssrc so they know for sure it is a different source. * main/rtp.c, channels/chan_sip.c, include/asterisk/rtp.h: When a new source of audio comes in (such as music on hold) make sure the marker bit gets set. (closes issue #10355) Reported by: wdecarne Patches: 10355.diff uploaded by file (license 11) (closes issue #11491) Reported by: kanderson 2008-03-04 Russell Bryant * Asterisk 1.4.19-rc1 released. 2008-03-04 04:31 +0000 [r105591] Russell Bryant * main/pbx.c: Backport a minor bug fix from trunk that I found while doing random code cleanup. Properly break out of the loop when a context isn't found when verify that includes are valid. 2008-03-03 18:06 +0000 [r105572] Jason Parker * res/snmp/agent.c: Fix type for astNumChannels. (closes issue #12114) Reported by: jeffg Patches: 12114.patch uploaded by jeffg (license 192) 2008-03-03 17:16 +0000 [r105563-105570] Russell Bryant * channels/chan_local.c: In the case of an ast_channel allocation failure, take the local_pvt out of the pvt list before destroying it. * channels/chan_local.c: Fix a potential memory leak of the local_pvt struct when ast_channel allocation fails. Also, in passing, centralize the code necessary to destroy a local_pvt. * main/autoservice.c: Update the copyright information for autoservice. Most of the code in this file now is stuff that I have written recently ... * main/asterisk.c, main/channel.c, include/asterisk.h, main/autoservice.c: Merge in some changes from team/russell/autoservice-nochans-1.4 These changes fix up some dubious code that I came across while auditing what happens in the autoservice thread when there are no channels currently in autoservice. 1) Change it so that autoservice thread doesn't keep looping around calling ast_waitfor_n() on 0 channels twice a second. Instead, use a thread condition so that the thread properly goes to sleep and does not wake up until a channel is put into autoservice. This actually fixes an interesting bug, as well. If the autoservice thread is already running (almost always is the case), then when the thread goes from having 0 channels to have 1 channel to autoservice, that channel would have to wait for up to 1/2 of a second to have the first frame read from it. 2) Fix up the code in ast_waitfor_nandfds() for when it gets called with no channels and no fds to poll() on, such as was the case with the previous code for the autoservice thread. In this case, the code would call alloca(0), and pass the result as the first argument to poll(). In this case, the 2nd argument to poll() specified that there were no fds, so this invalid pointer shouldn't actually get dereferenced, but, this code makes it explicit and ensures the pointers are NULL unless we have valid data to put there. (related to issue #12116) 2008-03-03 15:28 +0000 [r105557-105560] Joshua Colp * main/channel.c: It is possible for no audio to pass between the current digit and next digit so expand logic that clears emulation to AST_FRAME_NULL. (closes issue #11911) Reported by: edgreenberg Patches: v1-11911.patch uploaded by dimas (license 88) Tested by: tbsky * channels/chan_sip.c: Add a comment to describe some logic. (closes issue #12120) Reported by: flefoll Patches: chan_sip.c.br14.patch-just-a-comment uploaded by flefoll (license 244) 2008-02-29 23:34 +0000 [r105409] Russell Bryant * main/autoservice.c: Fix a major bug in autoservice. There was a race condition in the handling of the list of channels in autoservice. The problem was that it was possible for a channel to get removed from autoservice and destroyed, while the autoservice thread was still messing with the channel. This led to memory corruption, and caused crashes. This explains multiple backtraces I have seen that have references to autoservice, but do to the nature of the issue (memory corruption), could cause crashes in a number of areas. (fixes the crash in BE-386) (closes issue #11694) (closes issue #11940) The following issues could be related. If you are the reporter of one of these, please update to include this fix and try again. (potentially fixes issue #11189) (potentially fixes issue #12107) (potentially fixes issue #11573) (potentially fixes issue #12008) (potentially fixes issue #11189) (potentially fixes issue #11993) (potentially fixes issue #11791) 2008-02-29 14:47 +0000 [r105326] Philippe Sultan * res/res_jabber.c: Fix a potential memory leak 2008-02-29 14:34 +0000 [r105296] Tilghman Lesher * apps/app_voicemail.c: If the message file does not exist, just return harmlessly, instead of crashing. (Closes issue #12108) 2008-02-29 13:48 +0000 [r105261] Joshua Colp * apps/app_voicemail.c: Bump up the size of the uniqueid variable. (closes issue #12107) Reported by: asgaroth 2008-02-29 13:05 +0000 [r105209] Philippe Sultan * res/res_jabber.c: Automatically create new buddy upon reception of a presence stanza of type subscribed. (closes issue #12066) Reported by: ffadaie Patches: branch-1.4-12066-1.diff uploaded by phsultan (license 73) trunk-12066-1.diff uploaded by phsultan (license 73) Tested by: ffadaie, phsultan 2008-02-28 22:23 +0000 [r105116] Russell Bryant * main/utils.c, include/asterisk/lock.h: Fix a bug in the lock tracking code that was discovered by mmichelson. The issue is that if the lock history array was full, then the functions to mark a lock as acquired or not would adjust the stats for whatever lock is at the end of the array, which may not be itself. So, do a sanity check to make sure that we're updating lock info for the proper lock. (This explains the bizarre stats on lock #63 in BE-396, thanks Mark!) 2008-02-28 21:56 +0000 [r105113] Tilghman Lesher * contrib/init.d/rc.debian.asterisk: Update init script for LSB compat (closes issue #9843) Reported by: ibc Patches: rc.debian.asterisk.patch uploaded by ibc (license 211) Tested by: paravoid 2008-02-28 20:11 +0000 [r105059] Mark Michelson * apps/app_queue.c: When using autofill, members who are in use should be counted towards the number of available members to call if ringinuse is set to yes. Thanks to jmls who brought this issue up on IRC 2008-02-28 19:20 +0000 [r104920-105005] Jason Parker * main/cdr.c, main/pbx.c: Make pbx_exec pass an empty string into applications, if we get NULL. This protects against possible segfaults in applications that may try to use data before checking length (ast_strdupa'ing it, for example) (closes issue #12100) Reported by: foxfire Patches: 12100-nullappargs.diff uploaded by qwell (license 4) * channels/chan_skinny.c: According to a video at www.cisco.com, the 7921G supports 6 line appearances. 2008-02-28 00:05 +0000 [r104868] Tilghman Lesher * main/Makefile, build_tools/strip_nonapi: Compatibility fix for PPC64 (closes issue #12081) Reported by: jcollie Patches: asterisk-1.4.18-funcdesc.patch uploaded by jcollie (license 412) Tested by: jcollie, Corydon76 2008-02-27 21:49 +0000 [r104841] Mark Michelson * main/dial.c: Two fixes: 1. Make the list of ast_dial_channels a lockable list. This is because in some cases, the ast_dial may exist in multiple threads due to asynchronous execution of its application, and I found some cases where race conditions could exist. 2. Check in ast_dial_join to be sure that the channel still exists before attempting to lock it, since it could have gotten hung up but the is_running_app flag on the ast_dial_channel may not have been cleared yet. (closes issue #12038) Reported by: jvandal Patches: 12038v2.patch uploaded by putnopvut (license 60) Tested by: jvandal 2008-02-27 20:56 +0000 [r104787] Joshua Colp * apps/app_chanspy.c: Don't loop around infinitely trying to spy on our own channel, and don't forget to free/detach the datastore upon hangup of the spy. 2008-02-27 20:36 +0000 [r104783] Mark Michelson * main/file.c: Bump a couple of more buffers up by 2 so that annoying warnings aren't generated like crazy on every fileexists_core call. 2008-02-27 18:15 +0000 [r104704] Tilghman Lesher * main/manager.c: Ensure the session ID can't be 0. 2008-02-27 17:41 +0000 [r104665] Joshua Colp * main/file.c: Bump up the buffer by 2. 2008-02-27 17:33 +0000 [r104625] Russell Bryant * apps/app_chanspy.c: Fix a problem in ChanSpy where it could get stuck in an infinite loop without being able to detect that the calling channel hung up. (closes issue #12076, reported by junky, patched by me) 2008-02-27 17:26 +0000 [r104598] Jason Parker * res/res_features.c: Inherit language from the transfering channel on a blind transfer. (closes issue #11682) Reported by: caio1982 Patches: local_atxfer_lang3-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, victoryure 2008-02-27 17:07 +0000 [r104596] Joshua Colp * main/loader.c: Use the lock (which already existed, it just wasn't used) on the updaters list to protect the contents instead of the overall module list lock. (closes issue #12080) Reported by: ChaseVenters 2008-02-27 16:53 +0000 [r104593] Kevin P. Fleming * main/file.c: fallback to standard English prompts properly when using new prompt directory layout (closes issue #11831) Reported by: IgorG Patches: fallbacken.v1.diff uploaded by IgorG (license 20) (modified by me to improve code and conform rest of function to coding guidelines) 2008-02-27 16:45 +0000 [r104591] Russell Bryant * channels/chan_zap.c: When we receive a known alarm, make sure that the unknown alarm flag is not still set to make sure that when we come back out of alarm, it gets reported in the log and manager interface (after discussion with tzafrir on the -dev list) 2008-02-27 15:52 +0000 [r104536] Joshua Colp * res/res_smdi.c: Only stop the MWI monitor thread if it was actually started. (closes issue #12086) Reported by: francesco_r 2008-02-27 01:15 +0000 [r104332-104334] Russell Bryant * apps/app_chanspy.c: Avoid some recursion in the cleanup code for the chanspy datastore (closes issue #12076, reported by junky, patched by me) * channels/chan_zap.c: Zaptel 1.4 now exposes FXO battery state as an alarm. However, Asterisk 1.4 does not know what to do with these alarms. Only Asterisk 1.6 cares about it. So, if we get an unknown alarm in chan_zap, don't generate confusing log messages about it. 2008-02-26 18:26 +0000 [r104132-104141] Jason Parker * Makefile: Add badshell to .PHONY target (thanks Kevin) * Makefile: Since all shells aren't as awesome as bash, we have to fail if somebody tries to use a literal "~" in DESTDIR. * sounds/Makefile: Revert previous abspath change. ...abspath is new in GNU make 3.81. I feel so...defeated. Must find new fix! * sounds/Makefile: Fix a very bizarre issue we were seeing with our buildbot when using a DESTDIR that wasn't an absolute path (such as DESTDIR=~/asterisk-1.4). Apparently what was happening, was that some of the targets were being expanded to the full path, so $@ ended up being /root/asterisk-1.4/[...]/ rather than ~/asterisk-1.4/[...]/ It appears that this may be a new "feature" in GNU make. (*cough* http://en.wikipedia.org/wiki/Principle_of_least_surprise *cough*) 2008-02-26 00:25 +0000 [r104119] Russell Bryant * include/asterisk/smdi.h, apps/app_voicemail.c, channels/chan_zap.c, res/res_smdi.c, configs/smdi.conf.sample: Merge changes from team/russell/smdi-1.4 This commit brings in a significant set of changes to the SMDI support in Asterisk. There were a number of bugs in the current implementation, most notably being that it was very likely on busy systems to pop off the wrong message from the SMDI message queue. So, this set of changes fixes the issues discovered as well as introducing some new ways to use the SMDI support which are required to avoid the bugs with grabbing the wrong message off of the queue. This code introduces a new interface to SMDI, with two dialplan functions. First, you get an SMDI message in the dialplan using SMDI_MSG_RETRIEVE() and then you access details in the message using the SMDI_MSG() function. A side benefit of this is that it now supports more than just chan_zap. For example, with this implementation, you can have some FXO lines being terminated on a SIP gateway, but the SMDI link in Asterisk. Another issue with the current implementation is that it is quite common that the station ID that comes in on the SMDI link is not necessarily the same as the Asterisk voicemail box. There are now additional directives in the smdi.conf configuration file which let you map SMDI station IDs to Asterisk voicemail boxes. Yet another issue with the current SMDI support was related to MWI reporting over the SMDI link. The current code could only report a MWI change when the change was made by someone calling into voicemail. If the change was made by some other entity (such as with IMAP storage, or with a web interface of some kind), then the MWI change would never be sent. The SMDI module can now poll for MWI changes if configured to do so. This work was inspired by and primarily done for the University of Pennsylvania. (also related to issue #9260) 2008-02-26 00:03 +0000 [r104111] Jason Parker * channels/chan_h323.c: IPTOS_MINCOST is not defined on Solaris. (closes issue #12050) Reported by: asgaroth Patches: 12050.patch uploaded by putnopvut (license 60) 2008-02-25 23:42 +0000 [r104102-104106] Russell Bryant * apps/app_chanspy.c: This patch fixes some pretty significant problems with how app_chanspy handles pointers to channels that are being spied upon. It was very likely that a crash would occur if the channel being spied upon hung up. This was because the current ast_channel handling _requires_ that the object is locked or else it could disappear at any time (except in the owning channel thread). So, this patch uses some channel datastore magic on the spied upon channel to be able to detect if and when the channel goes away. (closes issue #11877) (patch written by me, but thanks to kpfleming for the idea, and to file for review) * main/utils.c: Improve the lock tracking code a bit so that a bunch of old locks that threads failed to lock don't sit around in the history. When a lock is first locked, this checks to see if the last lock in the list was one that was failed to be locked. If it is, then that was a lock that we're no longer sitting in a trylock loop trying to lock, so just remove it. (inspired by issue #11712) 2008-02-25 21:37 +0000 [r104095] Joshua Colp * channels/chan_sip.c: Make it so a users.conf user creates both a SIP peer and a SIP user. The user will be used for inbound authentication for the device, and peer will be used for placing calls to the device. (closes issue #9044) Reported by: queuetue Patches: sip-gui-friend.diff uploaded by qwell (license 4) 2008-02-25 21:31 +0000 [r104094] Tilghman Lesher * apps/app_voicemail.c: If the destination folder is full, don't delete a message when exiting. (closes issue #12065) Reported by: selsky Patch by: (myself) 2008-02-25 20:49 +0000 [r104092] Jason Parker * main/config.c: Allow the use of #include and #exec in situations where the max include depth was only 1. Specifically, this fixes using #include and #exec in extconfig.conf. This was basically caused because the config file itself raises the include level to 1. I opted not to raise the include limit, because recursion here could cause very bizarre behavior. Pointed out, and tested by jmls (closes issue #12064) 2008-02-25 18:38 +0000 [r104086] Russell Bryant * channels/chan_agent.c: Ensure that the channel doesn't disappear in agent_logoff(). If it does, it could cause a crash. (fixes the crash reported in BE-396) 2008-02-25 16:16 +0000 [r104082-104084] Joshua Colp * channels/chan_sip.c: If a resubscription comes in for a dialog we no longer know about tell the remote side that the dialog does not exist so they subscribe again using a new dialog. (closes issue #10727) Reported by: s0l4rb03 Patches: 10727-2.diff uploaded by file (license 11) * channels/chan_sip.c: Due to recent changes tag will no longer be NULL if not present so we have to use ast_strlen_zero to see if it's actually blank. (closes issue #12061) Reported by: flefoll Patches: chan_sip.c.br14.patch_pedantic_no_totag uploaded by flefoll (license 244) 2008-02-22 22:45 +0000 [r104037] Tilghman Lesher * channels/chan_sip.c: Backwards debug message. (closes issue #12052) Reported by: flefoll Patches: chan_sip.c.br14.patch_found-notfound uploaded by flefoll (license 244) 2008-02-21 21:05 +0000 [r104026-104027] Mark Michelson * channels/chan_zap.c: And as a followup to revision 104026, completely remove event-related calls from a section of code where we know there was no event to handle or get. * channels/chan_zap.c: Remove an incorrect debug message. It reported that it had received a specific event and tried to report which event was received. What actually was happening was that it was reporting the number of bytes returned from a call to read(). Thanks to Jared Smith for bringing the issue up on IRC 2008-02-21 14:33 +0000 [r104015] Kevin P. Fleming * main/manager.c: reduce the likelihood that HTTP Manager session ids will consist of primarily '1' bits 2008-02-20 22:32 +0000 [r103956] Mark Michelson * apps/app_queue.c: Clear up confusion when viewing the QUEUE_WAITING_COUNT of a "dead" realtime queue. Since from the user's perspective, the queue does exist, we shouldn't tell them we couldn't find the queue. Instead since it is a dead queue, report a 0 waiting count This issue was brought up on IRC by jmls 2008-02-20 22:06 +0000 [r103953] Joshua Colp * channels/chan_zap.c: Don't wait for additional digits when overlap dialing is enabled if the setup message contains the sending_complete information element. (closes issue #11785) Reported by: klaus3000 Patches: sending_complete_overlap_asterisk-1.4.17.patch.txt uploaded by klaus3000 (license 65) 2008-02-20 21:40 +0000 [r103904] Mark Michelson * channels/chan_local.c: Fix a crash if the channel becomes NULL while attempting to lock it. (closes issue #12039) Reported by: danpwi 2008-02-20 17:53 +0000 [r103845] Tilghman Lesher * main/stdtime/localtime.c: Compat fix for Solaris (closes issue #12022) Reported by: asgaroth Patches: 20080219__bug12022.diff.txt uploaded by Corydon76 (license 14) Tested by: asgaroth 2008-02-19 20:28 +0000 [r103823] Joshua Colp * channels/h323/ast_h323.cxx: Send CallerID Name in setup message. (closes issue #11241) Reported by: tusar Patches: h323id_as_callerid_name.patch uploaded by tusar (license 344) 2008-02-19 20:02 +0000 [r103821] Russell Bryant * channels/chan_local.c: Account for the fact that the "other" channel can disappear while the local pvt is not locked. (fixes a problem introduced in rev 100581) (closes issue #12012) Reported by: stevedavies Patch by me 2008-02-19 17:31 +0000 [r103807-103812] Joshua Colp * configure, configure.ac: Don't look for launchd when cross compiling. (closes issue #12029) Reported by: ovi * channels/chan_sip.c: Fix building of chan_sip. 2008-02-19 10:27 +0000 [r103806] Olle Johansson * channels/chan_sip.c: Make sure we send error replies correctly by checking the via header. 2008-02-18 23:56 +0000 [r103801] Joshua Colp * main/channel.c: Ensure that emulated DTMFs do not get interrupted by another begin frame. (closes issue #11740) Reported by: gserra Patches: v1-11740.patch uploaded by dimas (license 88) (closes issue #11955) Reported by: tsearle (closes issue #10530) Reported by: xmarksthespot 2008-02-18 22:28 +0000 [r103790-103795] Jason Parker * channels/chan_zap.c: Fix previous commit so that we actually disable echocanbridged if echocancel is off. * channels/chan_zap.c: Correct a message when echocancelwhenbridged is on, but echocancel is not. Issue #12019 2008-02-18 20:52 +0000 [r103786] Mark Michelson * main/app.c: There was an invalid assumption when calculating the duration of a file that the filestream in question was created properly. Unfortunately this led to a segfault in the situation where an unknown format was specified in voicemail.conf and a voicemail was recorded. Now, we first check to be sure that the stream was written correctly or else assume a zero duration. (closes issue #12021) Reported by: jakep Tested by: putnopvut 2008-02-18 17:31 +0000 [r103780] Tilghman Lesher * main/rtp.c, channels/chan_sip.c: When a SIP channel is being auto-destroyed, it's possible for it to still be in bridge code. When that happens, we crash. Delay the RTP destruction until the bridge is ended. (closes issue #11960) Reported by: norman Patches: 20080215__bug11960__2.diff.txt uploaded by Corydon76 (license 14) Tested by: norman 2008-02-18 16:37 +0000 [r103770] Mark Michelson * channels/chan_zap.c: Fix a linked list corruption that under the right circumstances could lead to a looped list, meaning it will traverse forever. (closes issue #11818) Reported by: michael-fig Patches: 11818.patch uploaded by putnopvut (license 60) Tested by: michael-fig 2008-02-18 16:11 +0000 [r103763-103768] Joshua Colp * main/asterisk.c: Backport fix from issue #9325. (closes issue #11980) Reported by: rbrunka * channels/chan_sip.c: Don't care if the extension given doesn't exist for subscription based MWI. 2008-02-15 23:31 +0000 [r103726-103741] Russell Bryant * channels/chan_iax2.c: Fix a crash in chan_iax2 due to a race condition (closes issue #11780) Reported by: guillecabeza Patches: bug_iax2_jb_1.4.patch uploaded by guillecabeza (license 380) bug_iax2_jb_trunk.patch uploaded by guillecabeza (license 380) * main/loader.c: In the case that you try to directly reload a module has returned AST_MODULE_LOAD_DECLINE, log a message indicating that the module is not fully initialized and must be initialized using "module load". * main/loader.c: Don't attempt to execute the reload callback for a module that returned AST_MODULE_LOAD_DECLINE. This fixes a crash that was reported against chan_console in trunk. (closes issue #11953, reported by junky, fixed by me) 2008-02-15 17:26 +0000 [r103688-103722] Mark Michelson * doc/imapstorage.txt, configure, configure.ac: Final round of changes for configure script logic for IMAP Now if a directory is specified, then we will search that directory for a source installation of the IMAP toolkit. If none is found, then we will use that directory as the basis for detecting a package installation of the IMAP c-client. If that check fails, then configure will fail. * configure, configure.ac: Fix a bit of wrong logic in the configure script that caused problems when trying to configure without IMAP. Patch suggestion from phsultan, but I modified it slightly. (closes issue #12003) Reported by: pj Tested by: putnopvut * doc/imapstorage.txt, configure, configure.ac: I apparently misunderstood one of the requirements of this configure change. Now, if a source directory is specified with the --with-imap option, and a valid source installation is not detected there, then configure will fail and will not check for a package installation. * doc/imapstorage.txt: Make a small clarification in the documentation * doc/imapstorage.txt: Update documentation regarding configuration of IMAP * apps/app_voicemail.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Change to the configure logic regarding IMAP. Prior to this commit, if you wished to configure Asterisk with IMAP support, you would use the --with-imap configure switch in one of the following two ways: --with-imap=/some/directory would look in the directory specified for a UW IMAP source installation --with-imap would assume that you had imap-2004g installed in .. relative to the Asterisk source With this set of changes the two above options still work the same, but there are two new behaviors, too. --with-imap=system will assume that you have -libc-client.so where you store your shared objects and will attempt to find c-client headers in your include path either in the imap or c-client directory. If either of the two original methods of specifying the imap option should fail, then the check for --with-imap =system will be performed in addition. It is only after this "system" check that failure can happen. * apps/app_voicemail.c: Fix build for non-IMAP builds * apps/app_voicemail.c: Fix the new message count if delete=yes when using IMAP storage. (closes issue #11406) Reported by: jaroth Patches: deleteflag_v2.patch uploaded by jaroth (license 50) Tested by: jaroth 2008-02-14 19:51 +0000 [r103683-103684] Jason Parker * funcs/func_cdr.c: swap location for this.. * funcs/func_cdr.c: Document the 'l' option to the CDR() function. (Thanks voipgate for pointing out the option, and Leif for providing text for it.) Closes issue #11695. 2008-02-13 06:25 +0000 [r103556-103607] Tilghman Lesher * channels/chan_agent.c: We aren't talking to ourselves; we're talking to someone else. (closes issue #11771) Reported by: msetim Patches: ami_agent_talkingto-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, msetim * apps/app_voicemail.c: Refuse to load app_voicemail if res_adsi is not loaded (which is a symbol dependency) (closes issue #11760) Reported by: non-poster Patches: 20080114__bug11760.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, non-poster, jamesgolovich 2008-02-12 22:24 +0000 [r103503-103504] Jason Parker * main/asterisk.c: revert accidental change from last commit. oops * contrib/scripts/safe_asterisk, main/asterisk.c: Remove condition that was impossible. 2008-02-12 15:09 +0000 [r103324-103385] Joshua Colp * channels/chan_sip.c: Even if no CallerID name or number has been provided by the remote party still use the configured sip.conf ones. (closes issue #11977) Reported by: pj * apps/app_meetme.c: If entering a conference with the 'w' option ensure that we can't listen or speak until the marked user appears. (closes issue #11835) Reported by: alanmcmillan 2008-02-11 17:05 +0000 [r103315] Kevin P. Fleming * configs/zapata.conf.sample: improve 2BCT documentation a bit (thanks Jared) 2008-02-09 06:23 +0000 [r103197] Tilghman Lesher * apps/app_voicemail.c: Commit fix for being unable to send voicemail from VoiceMailMain Reported by: William F Acker (via the -users mailing list) Patch by: Corydon76 (license 14) 2008-02-08 18:48 +0000 [r103070-103120] Mark Michelson * apps/app_queue.c: Prevent a potential three-thread deadlock. Also added a comment block to explicitly state the locking order necessary inside app_queue. (closes issue #11862) Reported by: flujan Patches: 11862.patch uploaded by putnopvut (license 60) Tested by: flujan * channels/chan_iax2.c: Yield the thread and return -1 if the ioctl fails for Zaptel timing device. (closes issue #11891) Reported by: tzafrir 2008-02-08 15:08 +0000 [r102968] Joshua Colp * channels/chan_iax2.c: Make sure the presence of dbsecret is factored into user scoring. (closes issue #11952) Reported by: bbhoss 2008-02-07 19:53 +0000 [r102858] Jason Parker * res/res_features.c: Specify which digit string was matched in debug message. (closes issue #11949) Reported by: dimas Patches: v1-feature-debug.patch uploaded by dimas (license 88) 2008-02-07 16:41 +0000 [r102807] Kevin P. Fleming * configs/zapata.conf.sample: document usage of 'transfer' configuration option for ISDN PRI switch-side transfers 2008-02-06 17:59 +0000 [r102653-102725] Joshua Colp * channels/chan_sip.c: Only consider a T.38-only INVITE compatible if we have both a joint capability between us and them and if they provided T.38. * main/global_datastores.c: Add missing header file and ASTERISK_FILE_VERSION usage. (closes issue #11936) Reported by: snuffy 2008-02-06 15:19 +0000 [r102651] Russell Bryant * configs/features.conf.sample: Clarify setting DYNAMIC_FEATURES so that it gets inherited by outbound channels. (due to a discussion between me and a user via email) 2008-02-06 11:48 +0000 [r102627] Kevin P. Fleming * pbx/Makefile, res/Makefile: ensure that all remaining multi-object modules are built using their proper CFLAGS and include directory paths 2008-02-06 00:26 +0000 [r102576] Tilghman Lesher * apps/app_voicemail.c: Move around some defines to unbreak ODBC storage. (closes issue #11932) Reported by: snuffy 2008-02-05 20:02 +0000 [r102453] Mark Michelson * channels/chan_mgcp.c: Clear the DTMF buffer on hangup. (closes issue #11919) Reported by: eferro Patches: mgcp_dtmfclean_on_hangup.diff uploaded by eferro (license 337) Tested by: eferro 2008-02-05 19:52 +0000 [r102450] Joshua Colp * channels/chan_sip.c: If a REGISTER attempt comes in that is a retransmission of a previous REGISTER do not create a new nonce value. (issue #BE-381) 2008-02-05 17:15 +0000 [r102425] Kevin P. Fleming * channels/Makefile: ensure that components of chan_misdn.so are built using any special build options that the configure script generated (reported by Philipp Kempgen on asterisk-dev) 2008-02-05 15:09 +0000 [r102378] Joshua Colp * res/res_clioriginate.c: Perform dialing asynchronously when using the originate CLI command so the CLI does not appear to block. (closes issue #11927) Reported by: bbhoss 2008-02-04 21:06 +0000 [r102214-102323] Tilghman Lesher * main/asterisk.c, utils/muted.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Cross-platform fix: OS X now deprecates the use of the daemon(3) API. (closes issue #11908) Reported by: oej Patches: 20080204__bug11908.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 * funcs/func_strings.c: Missing braces. (closes issue #11912) Reported by: dimas Patches: sprintf.patch uploaded by dimas (license 88) 2008-02-03 16:38 +0000 [r102090-102142] Olle Johansson * channels/chan_sip.c: Use the same CSEQ on CANCEL as on INVITE (according to RFC 3261) (closes issue #9492) Reported by: kryptolus Patches: bug9492.txt uploaded by oej (license 306) Tested by: oej * channels/chan_sip.c: Handle ACK and CANCEL in an invite transaction - even if we get INFO transactions during the actual call setup. (closes issue #10567) Reported by: jacksch Tested by: oej Patch by: oej inspired by suggestions from neutrino88 in the bug tracker 2008-02-01 23:06 +0000 [r101989] Russell Bryant * channels/chan_sip.c: Change the SDP_SAMPLE_RATE macro. It turns out that even though G.722 is 16 kHz, it is supposed to specified as 8 kHz in the RTP, and RTP timestamps are supposed to be calculated based on 8 kHz. (Apparently this is due to a bug in a spec, but people follow it anyway, because it's the spec ...) 2008-02-01 21:54 +0000 [r101894-101942] Tilghman Lesher * apps/app_voicemail.c: Fix the VM_DUR variable for forwarded voicemail, and fixed several other bugs while I'm in the area. (closes issue #11615) Reported by: jamessan Patches: 20071226__bug11615__2.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, jamessan * configure, include/asterisk/autoconfig.h.in, configure.ac, acinclude.m4: Change detection of getifaddrs to use AST_C_COMPILE_CHECK, backported from trunk (as suggested by kpfleming) 2008-02-01 17:41 +0000 [r101822] Jason Parker * apps/app_authenticate.c: Remove a needless (and incorrect) call to feof() after fgets(). This would have exited the loop early if you had an authentication file with no newline at the end. 2008-02-01 17:27 +0000 [r101818-101820] Russell Bryant * apps/app_authenticate.c: off by one error * apps/app_authenticate.c: Don't overwrite the last character of a line if it's not a newline. This would happen if the last line in the file doesn't have a newline. (pointed out by Qwell) 2008-02-01 15:55 +0000 [r101772] Tilghman Lesher * configure, include/asterisk/autoconfig.h.in, configure.ac, main/acl.c: Compatibility fix for OpenWRT (reported by Brian Capouch via the mailing list) 2008-02-01 00:32 +0000 [r101693] Russell Bryant * channels/chan_iax2.c: Add some more sanity checking on IAX2 dial strings for the case that no peer or hostname was provided, which is the one part of the dial string that is absolutely required. If it's not there, bail out. (closes issue #11897) Reported by sokhapkin Patch by me 2008-02-01 00:06 +0000 [r101649] Mark Michelson * apps/app_amd.c: From bugtracker: "fix totalAnalysisTime to handle periods of no channel activity" (closes issue #9256) Reported by: cmaj Patches: amd-dont-wait-too-long-for-frames-take3.diff.txt uploaded by cmaj (license 111) Tested by: cmaj, skygreg, ZX81, rjain 2008-01-31 Russell Bryant * Asterisk 1.4.18 released. 2008-01-31 23:10 +0000 [r101601] Russell Bryant * main/translate.c, main/file.c: Fix a couple of places where ast_frfree() was not called on a frame that came from a translator. This showed itself by g729 decoders not getting released. Since the flag inside the translator frame never got unset by freeing the frame to indicate it was no longer in use, the translators never got destroyed, and thus the g729 licenses were not released. (closes issue #11892) Reported by: xrg Patches: 11892.diff uploaded by russell (license 2) Tested by: xrg, russell 2008-01-31 21:00 +0000 [r101531] Mark Michelson * res/res_monitor.c: 1. Prevent the addition of an extra '/' to the beginning of an absolute pathname. 2. If ast_monitor_change_fname is called and the new filename is the same as the old, then exit early and don't set the filename_changed field in the monitor structure. Setting it in this case was causing ast_monitor_stop to erroneously delete them. (closes issue #11741) Reported by: garlew Tested by: putnopvut 2008-01-31 19:52 +0000 [r101482] Jason Parker * channels/chan_sip.c, channels/chan_iax2.c: Solaris compat fixes for struct in_addr funkiness. Issue #11885, patch by snuffy. 2008-01-31 19:30 +0000 [r101480] Steve Murphy * main/pbx.c: closes issue #11845; that's the one where there's a 1004 byte cdr leak with every AMI Redirect to a zap channel 2008-01-31 19:17 +0000 [r101413-101433] Russell Bryant * channels/chan_agent.c: Add more missing locking of the agents list ... * channels/chan_agent.c: Move the locking from find_agent() into the agent dialplan function handler to ensure that the agent doesn't disappear while we're looking at it. * channels/chan_agent.c: Add missing locking to the find_agent() function. 2008-01-30 15:41 +0000 [r101222] Joshua Colp * main/slinfactory.c: Fix an issue where if a frame of higher sample size preceeded a frame of lower sample size and ast_slinfactory_read was called with a sample size of the combined values or higher a crash would happen. (closes issue #11878) Reported by: stuarth 2008-01-30 15:34 +0000 [r101219] Jason Parker * configs/extensions.conf.sample: Change default config to use descending channel order of groups, rather than ascending. Fixes a potential source of confusion in glare-type situations. Issue 11875, reported by JimVanM. 2008-01-30 15:23 +0000 [r101216] Mark Michelson * apps/app_queue.c: Fix a logic error with regards to autofill. Prior to this change, it was possible for a caller to go out of turn if autofill were enabled and callers ahead in the queue were attempting to call a member. This change fixes this. 2008-01-30 11:20 +0000 [r101152] Olle Johansson * channels/chan_sip.c: Stop musiconhold on attended transfer. (closes issue #11872) Reported by: gareth Patches: svn-101018.patch uploaded by gareth (license 208) 2008-01-29 23:50 +0000 [r101080] Dwayne M. Hubbard * build_tools/make_version: updated build_tools to handle the autotag directory structure changes; changes related to BE-353. Patch by The Russell and reviewed by The Me. 2008-01-29 23:02 +0000 [r100973-101035] Mark Michelson * apps/app_queue.c: Remove a memory leak from updating realtime queues * apps/app_queue.c: Fixing an erroneous return value returned when attempting to pause or unpause a queue member fails. Fixes BE-366, thanks to John Bigelow for writing the patch. 2008-01-29 17:57 +0000 [r100934] Joshua Colp * apps/app_mixmonitor.c: Don't forget to record the channel so we know whether it is bridged or not later. (closes issue #11811) Reported by: slavon 2008-01-29 17:43 +0000 [r100932] Russell Bryant * main/Makefile: Fix the last couple of issues related to building from a path that contains spaces. (closes issue #11834) 2008-01-29 17:41 +0000 [r100930] Jason Parker * channels/misdn_config.c: Initialize an array to 0s if config option not specified. (closes issue #11860) Patches: misdn_get_config.v1.diff uploaded by IgorG (license 20) 2008-01-29 17:21 +0000 [r100882-100922] Russell Bryant * Makefile: Use GNU make magic instead of shell magic to escape spaces in the working directory. (related to issue #11834) * Makefile: Fix building Asterisk when the working path has spaces in it. (closes issue #11834) Reported by: spendergrass Patched by: me 2008-01-29 16:10 +0000 [r100835] Jason Parker * channels/chan_zap.c: Allow zap groups above 30 to work properly. (closes issue #11590) Reported by: tbsky 2008-01-29 10:36 +0000 [r100793] Christian Richter * channels/chan_misdn.c: fixed potential segfault in misdn show channels CLI command 2008-01-29 08:26 +0000 [r100740] Olle Johansson * channels/chan_sip.c: (closes issue #11736) Reported by: MVF Patches: bug11736-2.diff uploaded by oej (license 306) Tested by: oej, MVF, revolution (russellb: This was the showstopper for the release.) 2008-01-28 21:02 +0000 [r100675] Tilghman Lesher * main/pbx.c: WaitExten didn't handle AbsoluteTimeout properly (went to 't' instead of 'T') 2008-01-28 20:55 +0000 [r100673] Mark Michelson * channels/chan_vpb.cc, UPGRADE.txt: Undoing the deprecation of chan_vpb. It is alive and well. 2008-01-28 20:42 +0000 [r100672] Jason Parker * apps/app_voicemail.c: When using ODBC_STORAGE, make sure we put greeting files into the database like we do with the others. Issue #11795 Reported by: dimas Patches: vmgreet.patch uploaded by dimas (license 88) 2008-01-28 18:34 +0000 [r100626-100629] Russell Bryant * channels/chan_sip.c: For some reason, the use of this strdupa() is leading to memory corruption on freebsd sparc64. This trivial workaround fixes it. (closes issue #10300, closes issue #11857, reported by mattias04 and Home-of-the-Brave) * res/res_features.c: Fix a crash in ast_masq_park_call() (issue #11342) Reported by: DEA Patches: res_features-park.txt uploaded by DEA (license 3) 2008-01-28 18:23 +0000 [r100624] Jason Parker * channels/chan_zap.c: Correct a comment which made little/no sense. 2008-01-28 17:15 +0000 [r100581] Russell Bryant * main/channel.c, channels/chan_local.c, include/asterisk/channel.h: Make some deadlock related fixes. These bugs were discovered and reported internally at Digium by Steve Pitts. - Fix up chan_local to ensure that the channel lock is held before the local pvt lock. - Don't hold the channel lock when executing the timing function, as it can cause a deadlock when using chan_local. This actually changes the code back to be how it was before the change for issue #10765. But, I added some other locking that I think will prevent the problem reported there, as well. 2008-01-27 21:59 +0000 [r100465] Tilghman Lesher * main/rtp.c, channels/chan_mgcp.c, main/cdr.c, channels/chan_misdn.c, main/dnsmgr.c, channels/chan_sip.c, channels/chan_h323.c, include/asterisk/sched.h, main/file.c, pbx/pbx_dundi.c, channels/chan_iax2.c: When deleting a task from the scheduler, ignoring the return value could possibly cause memory to be accessed after it is freed, which causes all sorts of random memory corruption. Instead, if a deletion fails, wait a bit and try again (noting that another thread could change our taskid value). (closes issue #11386) Reported by: flujan Patches: 20080124__bug11386.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, flujan, stuarth` 2008-01-25 22:32 +0000 [r100418] Mark Michelson * channels/chan_vpb.cc, UPGRADE.txt: Deprecating chan_vpb. It is now preferred that users of Voicetronix products use chan_zap in combination with their zaptel drivers. 2008-01-25 21:24 +0000 [r100378] Jason Parker * channels/chan_sip.c: This would have never been true, since we're passing (sizeof(req.data) - 1) as the len to recvfrom(). 2008-01-24 21:57 +0000 [r100264] Kevin P. Fleming * include/asterisk/app.h: make these macros not assume that the only other field in the structure is 'argc'... this is true when someone uses AST_DECLARE_APP_ARGS, but it's perfectly reasonable to define your own structure as long as it has the right fields 2008-01-24 17:22 +0000 [r100164] Russell Bryant * main/asterisk.c: Update main Asterisk copyright info to 2008 2008-01-24 16:41 +0000 [r100138] Jason Parker * main/acl.c: Fix compilation on Solaris. (closes issue #11832) Patches: bug-11832.diff uploaded by snuffy (license 35) 2008-01-23 21:07 +0000 [r99977-99978] Olle Johansson * channels/chan_sip.c: Second attempt. Don't change invitestate when receiving 18x messages in CANCEL state. (issue #11736) Reported by: MVF Patch by oej. * channels/chan_sip.c: Make sure we don't cancel destruction on calls in CANCEL state, even if we get 183 while waiting for answer on our CANCEL. (issue #11736) Reported by: MVF Patches: bug11736.txt uploaded by oej (license 306) Tested by: MVF 2008-01-23 20:25 +0000 [r99975] Mark Michelson * apps/app_externalivr.c: Fixing a typo. 2008-01-23 17:46 +0000 [r99923] Russell Bryant * apps/app_chanspy.c: ChanSpy issues a beep when it starts at the beginning of a list of channels to potentially spy on. However, if there were no matching channels, it would beep at you over and over, which is pretty annoying. Now, it will only beep once in the case that there are no channels to spy on, but it will still beep again once it reaches the beginning of the channel list again. (closes issue #11738, patched by me) 2008-01-23 16:18 +0000 [r99878] Mark Michelson * channels/chan_sip.c: These flag tests were illogical. They were testing sip_peer flags on a sip_pvt. Thanks to Russell for helping to get this odd problem figured out. 2008-01-23 04:31 +0000 [r99718-99777] Tilghman Lesher * apps/app_voicemail.c: When we reset the password via an external command, we should also reset the password stored in the in-memory list, too (otherwise it doesn't really take effect). (closes issue #11809) Reported by: davetroy Patches: fix_externpass.diff uploaded by davetroy (license 384) * res/res_odbc.c: Oops, should have checked for a NULL obj, here, too * main/acl.c: Just confirmed that all current platforms need this header file 2008-01-22 20:56 +0000 [r99652] Olle Johansson * channels/chan_sip.c: Thanks to Russell's education I realize that BUFSIZ has changed since I learned the C language over 20 years ago... Resetting chan_sip to the size of BUFSIZ that I expected in my old head to avoid to heavy memory allocations on some systems. 2008-01-22 20:34 +0000 [r99643] Tilghman Lesher * main/acl.c: Fix the defines for OS X (and Solaris, too) 2008-01-22 17:41 +0000 [r99592-99594] Olle Johansson * channels/chan_local.c, res/res_features.c, channels/chan_agent.c, apps/app_followme.c: Add more dependencies on chan_local and add a note to the description of chan_local so that people don't disable it in menuselect just to clean up. * apps/app_dial.c: Add dependency on chan_local to app_dial. Dial still runs without chan_local, but will be missing forwarding functionality. 2008-01-22 16:54 +0000 [r99540] Tilghman Lesher * main/acl.c: Ensure that we can get an address even when we don't have a default route. (closes issue #9225) Reported by: junky Patches: 20080122__bug9225.diff.txt uploaded by Corydon76 (license 14) Tested by: oej, loloski, sergee 2008-01-22 15:08 +0000 [r99501] Olle Johansson * channels/chan_sip.c: Cleaning up some documentation that led to confusion in a bug report 2008-01-21 23:55 +0000 [r99426] Mark Michelson * channels/chan_local.c: Fixing an issue wherein monitoring local channels was not possible. During a channel masquerade, the monitors on the two channels involved are swapped. In 99% of the cases this results in the desired effect. However, if monitoring a local channel, this caused the monitor which was on the local channel to get moved onto a channel which is immediately hung up after the masquerade has completed. By swapping the monitors prior to the masquerade, we avoid the problem by tricking the masquerade into placing the monitor back onto the channel where we want it. During the investigation of the issue, the channel's monitor was the only thing that was swapped in such a manner which did not make sense to have done. All other variable swapping made sense. 2008-01-21 18:11 +0000 [r99341] Tilghman Lesher * res/res_odbc.c, configs/res_odbc.conf.sample, include/asterisk/res_odbc.h: Permit the user to specify number of seconds that a connection may remain idle, which fixes a crash on reconnect with the MyODBC driver. (closes issue #11798) Reported by: Corydon76 Patches: 20080119__res_odbc__idlecheck.diff.txt uploaded by Corydon76 (license 14) Tested by: mvanbaak 2008-01-21 16:01 +0000 [r99301] Joshua Colp * channels/chan_sip.c: Bump the buffer size for Via headers up to 512. There are some exceptionally large Via headers out there. (closes issue #11783) Reported by: ofirroval 2008-01-19 10:05 +0000 [r99187] Russell Bryant * main/slinfactory.c: Fix a couple of memory leaks with frame handling. Specifically, ast_frame_free() needed to be called on the frame that came from the translator to signed linear. 2008-01-18 22:57 +0000 [r99127] Joshua Colp * include/asterisk/channel.h: Remove the __ in front of the unused variable. This causes some compilers to freak out. 2008-01-18 21:37 +0000 [r99079-99081] Russell Bryant * include/asterisk/translate.h, main/frame.c: Revert adding the packed attribute, as it really doesn't make sense why that would do any good. Fix the real bug, which is to do the check to see if the frame came from a translator at the beginning of ast_frame_free(), instead of at the end. This ensures that it always gets checked, even if none of the parts of the frame are malloc'd, and also ensures that we aren't looking at free'd memory in the case that it is a malloc'd frame. (closes issue #11792, reported by explidous, patched by me) * include/asterisk/translate.h: Since we're relying on the offset between the frame and the beginning of the translator pvt struct, set the packed attribute to make sure we get to the right place. (potential fix for issue #11792) 2008-01-18 17:13 +0000 [r99032] Terry Wilson * res/res_features.c: This should at least temporarily fix a problem where the 't' Dial option is incorrectly passed to the transferee when built-in attended transfers are used. There is still a problem with 'T', but better to fix some problems than no problems while we work on it. (closes issue #7904) Reported by: k-egg Patches: transfer-fix-b14-r97657.diff uploaded by sergee (license 138) Tested by: sergee, otherwiseguy 2008-01-17 23:42 +0000 [r99007-99014] Pari Nannapaneni * configs/cdr.conf.sample: doh! revert a revert of a revert (changed by mistake in 99010) * main/manager.c, configs/cdr.conf.sample: missed that one while reverting * main/manager.c: reverting 99001 - We need the Max-Age for extending the life of cookie mansession_id 2008-01-17 22:37 +0000 [r99004] Russell Bryant * main/frame.c, channels/chan_iax2.c, include/asterisk/frame.h: Have IAX2 optimize the codec translation path just like chan_sip does it. If the caller's codec is in our codec list, move it to the top to avoid transcoding. (closes issue #10500) Reported by: stevedavies Patches: iax-prefer-current-codec.patch uploaded by stevedavies (license 184) iax-prefer-current-codec.1.4.patch uploaded by stevedavies (license 184) Tested by: stevedavies, pj, sheldonh 2008-01-17 21:31 +0000 [r99001] Kevin P. Fleming * main/manager.c: we should only send the Set-Cookie header to the browser on the first response after creating a manager session, not on every response (doing so causes the browser to clear any local cookies it may have associated with the session) 2008-01-17 16:19 +0000 [r98991] Jason Parker * configs/zapata.conf.sample: Add a clarification about the immediate= option of zapata.conf Issue 11784, patch by klaus3000. 2008-01-16 22:36 +0000 [r98982] Russell Bryant * .cleancount, include/asterisk/channel.h: Add an unused pointer to the ast_channel struct. This makes the ast_channel structure retain the same size as it had in previous 1.4 releases. Also, all of the offsets for members in the structure are still the same (except for the two pointers that got replaced for the new spy/whisper architecture.) 2008-01-16 20:34 +0000 [r98966-98973] Joshua Colp * .cleancount: Bump up cleancount due to previous commit that changed the channel structure. * apps/app_chanspy.c, apps/app_mixmonitor.c, main/rtp.c, main/channel.c, apps/app_meetme.c, include/asterisk/audiohook.h (added), main/Makefile, include/asterisk/chanspy.h (removed), include/asterisk/channel.h, main/audiohook.c (added): Replace current spy architecture with backport of audiohooks. This should take care of current known spy issues. * channels/chan_iax2.c: Add missing NULLs at end of two ast_load_realtimes. (closes issue #11769) Reported by: tequ Patches: chaniax.patch uploaded by dimas (license 88) 2008-01-16 17:20 +0000 [r98964] Mark Michelson * channels/chan_local.c: Fix a deadlock in chan_local in local_hangup. There was contention because the local_pvt was held and it was attempting to lock a channel, which is the incorrect locking order. (closes issue #11730) Reported by: UDI-Doug Patches: 11730.patch uploaded by putnopvut (license 60) Tested by: UDI-Doug 2008-01-16 15:08 +0000 [r98951-98960] Joshua Colp * main/dial.c: Introduce a lock into the dialing API that protects it when destroying the structure. (closes issue #11687) Reported by: callguy Patches: 11687.diff uploaded by file (license 11) * main/rtp.c: Add two more SDP names for ulaw and alaw. (closes issue #11777) Reported by: tootai * channels/chan_sip.c: Don't drop the old record route information when dealing with packets related to a reinvite. (closes issue #11545) Reported by: kebl0155 Patches: reinvite-patch.txt uploaded by kebl0155 (license 356) * build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, codecs/codec_speex.c, configure.ac, makeopts.in: Add autoconf logic for speexdsp. Later versions use a separate library for some things so we need to use it if present in codec_speex. (closes issue #11693) Reported by: yzg 2008-01-15 23:50 +0000 [r98943-98946] Russell Bryant * channels/chan_sip.c: Change a buffer in check_auth() to be a thread local dynamically allocated buffer, instead of a massive buffer on the stack. This fixes a crash reported by Qwell due to running out of stack space when building with LOW_MEMORY defined. On a very related note, the usage of BUFSIZ in various places in chan_sip is arbitrary and careless. BUFSIZ is a system specific define. On my machine, it is 8192, but by definition (according to google) could be as small as 256. So, this buffer in check_auth was 16 kB. We don't even support SIP messages larger than 4 kB! Further usage of this define should be avoided, unless it is used in the proper context. * main/rtp.c, include/asterisk/translate.h, main/frame.c, main/translate.c, main/abstract_jb.c, channels/chan_iax2.c, codecs/codec_zap.c, include/asterisk/frame.h: Commit a fix for some memory access errors pointed out by the valgrind2.txt output on issue #11698. The issue here is that it is possible for an instance of a translator to get destroyed while the frame allocated as a part of the translator is still being processed. Specifically, this is possible anywhere between a call to ast_read() and ast_frame_free(), which is _a lot_ of places in the code. The reason this happens is that the channel might get masqueraded during this time. During a masquerade, existing translation paths get destroyed. So, this patch fixes the issue in an API and ABI compatible way. (This one is for you, paravoid!) It changes an int in ast_frame to be used as flag bits. The 1 bit is still used to indicate that the frame contains timing information. Also, a second flag has been added to indicate that the frame came from a translator. When a frame with this flag gets released and has this flag, a function is called in translate.c to let it know that this frame is doing being processed. At this point, the flag gets cleared. Also, if the translator was requested to be destroyed while its internal frame still had this flag set, its destruction has been deffered until it finds out that the frame is no longer being processed. Admittedly, this feels like a hack. But, it does fix the issue, and I was not able to think of a better solution ... 2008-01-15 20:08 +0000 [r98894-98934] Joshua Colp * channels/chan_sip.c: Based on the boundary found move over the correct amount. (closes issue #11750) Reported by: tasker * channels/chan_sip.c: Accept "; boundary=" not just ";boundary=" in the multipart mixed content type. (closes issue #11750) Reported by: tasker 2008-01-14 20:59 +0000 [r98849] Mark Michelson * apps/app_voicemail.c: Adding in appropriate unlocks for the locks I added. Thanks to joetester on IRC for pointing this out. 2008-01-14 17:38 +0000 [r98774] Russell Bryant * main/translate.c: Revert a change that introduces an unacceptable performance hit and is causing memory leaks ... (from rev 97973) 2008-01-14 16:35 +0000 [r98733-98737] Mark Michelson * apps/app_queue.c: Fixing another compilation error. I'm a bit off today :( * apps/app_queue.c: Oops. Last commit had compilation error. * apps/app_queue.c: Adding explicit defaults for missing options to init_queue. This is necessary because if a user either removes or comments one of these options and reloads their queues, the option will not reset to its default, instead maintaining the value from prior to the reload. Thanks to John Bigelow for pointing this error out to me. 2008-01-12 00:05 +0000 [r98467] Tilghman Lesher * res/res_odbc.c: Add a connection timeout attribute, as that was what was intended with the login timeout, but ODBC divides it up into 2 different timeouts. (Closes issue #11745) 2008-01-11 22:46 +0000 [r98390] Russell Bryant * pbx/pbx_dundi.c: Fix up setting the EID on BSD based systems. (closes issue #11646) Reported by: caio1982 Patches: dundi_osx_eid6.diff.txt uploaded by caio1982 (license 22) dundi_osx_eid6-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, mvanbaak 2008-01-11 21:28 +0000 [r98372] Pari Nannapaneni * main/http.c: Comment explaining how to force browser to always read some html files from server. 2008-01-11 19:51 +0000 [r98317-98325] Joshua Colp * main/rtp.c: If the incoming RTP stream changes codec force the bridge to break if the other side does not support it. (closes issue #11729) Reported by: tsearle Patches: new_codec_patch_udiff.patch uploaded by tsearle (license 373) * res/res_agi.c: If the channel is hungup during RECORD FILE send a result code of -1 to be uniform with everything else. (closes issue #11743) Reported by: davevg Patches: res_agi.diff uploaded by davevg (license 209) 2008-01-11 19:10 +0000 [r98315] Mark Michelson * main/channel.c: Properly report the hangup cause as no answer when someone does not answer (closes issue #10574, reported by boch, patched by moy) 2008-01-11 18:25 +0000 [r98266] Tilghman Lesher * codecs/gsm/Makefile: Add another exception (which doesn't work) for -march optimization flag. Reported by: thomasmebes Patch by: tilghman (Closes issue #11563) 2008-01-11 18:25 +0000 [r98265] Russell Bryant * doc/security.txt, main/asterisk.c, configure, include/asterisk/autoconfig.h.in, main/Makefile, configure.ac, makeopts.in: Backport the ability to set the ToS bits on Linux when not running as root. Normally, we would not backport features into 1.4, but, I was convinced by the justification supplied by the supplier of this patch. He pointed out that this patch removes a requirement for running as root, thus reducing the potential impacts of security issues. (closes issue #11742) Reported by: paravoid Patches: libcap.diff uploaded by paravoid (license 200) 2008-01-11 17:22 +0000 [r98219] Joshua Colp * apps/app_followme.c: Ensure the return value of ast_bridge_call is passed back up as the application return value. This is needed for transfers to function so the PBX core knows to continue execution. (closes issue #10327) Reported by: kkiely 2008-01-11 15:52 +0000 [r98164] Tilghman Lesher * channels/chan_sip.c: Back out changes from revision 97077, since it wasn't perfect 2008-01-11 03:39 +0000 [r97976-98082] Russell Bryant * main/frame.c: Fix samples vs. length calculations for g722 * main/translate.c: Simplify this code with a suggestion from Luigi on the asterisk-dev list. Instead of using is16kHz(), implement a format_rate() function. * main/translate.c: Fix various timing calculations that made assumptions that the audio being processed was at a sample rate of 8 kHz. 2008-01-10 23:08 +0000 [r97973] Tilghman Lesher * channels/chan_sip.c, main/translate.c: 1) When we get a translated frame out, clone it, because if the translator pvt is freed before we use the frame, bad things happen. 2) Getting a failure from ast_sched_delete means that the schedule ID is currently running. Don't just ignore it. (Closes issue #11698) 2008-01-10 21:57 +0000 [r97925] Mark Michelson * apps/app_voicemail.c: Let us leave a voicemail for ourself if we have logged into VoiceMailMain and chosen to leave a message. (closes issue #11735, reported and patched by jamessan) 2008-01-10 21:37 +0000 [r97849-97889] Steve Murphy * pbx/ael/ael_lex.c, pbx/Makefile, pbx/ael/ael.flex: Applied the same fixes for ael.flex as was done in 97849 for ast_expr2.fl; overrode the normally generate yyfree func with our own version that checks the pointer for non-null before passing to free(). Also takes care of a little problem with 2.5.33 and the use of the __STDC_VERSION__ macro. * main/ast_expr2.fl, main/Makefile, main/ast_expr2f.c: This is a fix for 2 things: a problem Terry was having in OSX with null pointers, which was my fault, as I probably forgot to run the sed script last time I made mods. So, I moved the fix into the flex input itself. Then, I found when I used flex 2.5.33, that it was using __STDC_VERSION__, and that's not real good; so I added back in a DIFFERENT sed script to fix that little mess. Tested everything, a couple different ways. Hope I did no harm, at the least. 2008-01-10 20:12 +0000 [r97847] Jason Parker * include/asterisk/frame.h: Fix a comment that is no longer true. 2008-01-10 16:19 +0000 [r97734-97753] Russell Bryant * pbx/pbx_kdeconsole.h (removed), configs/modules.conf.sample, pbx/kdeconsole_main.cc (removed): Remove other remnants of pbx_kdeconsole * pbx/pbx_kdeconsole.cc (removed), build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Remove pbx_kdeconsole from the tree. It hasn't worked in ages, and nobody has complained. (closes issue #11706, reported by caio1982) 2008-01-10 15:07 +0000 [r97697] Joshua Colp * funcs/func_groupcount.c: Don't try to copy the category from the group if no category exists. (closes issue #11724) Reported by: IgorG Patches: group_count.v1.patch uploaded by IgorG (license 20) 2008-01-09 23:01 +0000 [r97640-97645] Russell Bryant * pbx/pbx_gtkconsole.c: Strip terminal sequences from the verbose messages * pbx/pbx_gtkconsole.c: Make pbx_gtkconsole build ... but doesn't actually load on my system still (related to issue #11706) 2008-01-09 20:28 +0000 [r97618-97622] Jason Parker * main/cli.c: Correctly display a message if a command could not be found. Also fix a comment which may have led to this happening. Issue 11718, reported by kshumard. * main/cli.c: Fix some locking and return value funkiness. We really shouldn't be unlocking this lock inside of a function, unless we locked it there too. 2008-01-09 18:48 +0000 [r97575] Mark Michelson * apps/app_queue.c: Part 2 of app_queue doxygen improvements. Some smaller functions this time 2008-01-09 18:02 +0000 [r97529] Russell Bryant * res/res_features.c: Fix saying the parking space number to the caller doing the parking ... 2008-01-09 17:21 +0000 [r97491] Kevin P. Fleming * codecs/codec_zap.c: report the same message whether Zaptel does not have transcoder support loaded or no transcoders were found 2008-01-09 16:44 +0000 [r97489] Philippe Sultan * channels/chan_gtalk.c: Set the caller id within the gtalk_alloc function. As underlined in issue #10437 by Josh, we need to prevent a possible memory leak. We only set the name part of the caller id, the number part is not relevant when dealing with JIDs. Closes issue #11549. 2008-01-09 16:11 +0000 [r97450] Joshua Colp * apps/app_meetme.c: Don't do conferencing totally in Zaptel if Monitor is running on the channel. (closes issue #11709) Reported by: BigJimmy Patches: patch-meetmerec uploaded by BigJimmy (license 371) 2008-01-09 15:43 +0000 [r97410-97448] Kevin P. Fleming * channels/chan_zap.c: pass the right variable to get an error string... oops * channels/chan_zap.c: add error number output to ioctl failure messages to help with debugging 2008-01-09 00:44 +0000 [r97350] Tilghman Lesher * main/cli.c, main/editline/readline.c: Allow filename completion on zero-length modules, remove a memory leak, remove a file descriptor leak, and make filename completion thread-safe. Patched and tested by tilghman. (Closes issue #11681) 2008-01-09 00:17 +0000 [r97206-97308] Mark Michelson * apps/app_queue.c: use the \retval doxygen command properly * apps/app_queue.c: Part 1 of N of adding doxygen comments to app_queue. I picked some of the most common functions used (which also happen to be some the biggest/ugliest functions too) to document first. I'm pretty new to doxygen so criticism is welcome. * apps/app_queue.c: Some coding guidelines-related cleanup 2008-01-08 20:48 +0000 [r97195] Joshua Colp * channels/chan_mgcp.c: Fix various DTMF issues in chan_mgcp. (closes issue #11443) Reported by: eferro Patches: dtmf_control_hybrid-inband-mode.patch uploaded by eferro (license 337) 2008-01-08 20:47 +0000 [r97194] Tilghman Lesher * main/autoservice.c, main/utils.c: Increase constants to where we're less likely to hit them while debugging. (Closes issue #11694) 2008-01-08 20:42 +0000 [r97192] Mark Michelson * apps/app_voicemail.c: Making some changes designed to not allow for a corrupted mailstream for a vm_state. 1. Add locking to the vm_state retrieval functions so that no linked list corruption occurs. 2. Make sure to always grab the persistent vm_state when mailstream access is necessary. 3. Correct an incorrect return value in the init_mailstream function. (closes issue #11304, reported by dwhite) 2008-01-08 19:53 +0000 [r97093-97152] Joshua Colp * funcs/func_groupcount.c: If no group has been provided to the GROUP_COUNT dialplan function then use the first one specific to the channel. (closes issue #11077) Reported by: m4him * apps/app_queue.c: Make app_queue calls work with directed pickup. (closes issue #11700) Reported by: jbauer 2008-01-08 18:02 +0000 [r97077] Tilghman Lesher * main/asterisk.c, channels/chan_sip.c: Apply multiple crash fixes, found in issue #11386, but not completely closing that issue. 2008-01-07 20:47 +0000 [r96884-96932] Russell Bryant * configs/extensions.conf.sample, /: Merged revisions 96931 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r96931 | russell | 2008-01-07 14:46:22 -0600 (Mon, 07 Jan 2008) | 2 lines Change misery.digium.com to pbx.digium.com ........ * res/res_smdi.c: Don't crash if something happens when setting up an SMDI interface and it gets destroyed before the SMDI port handling thread gets created. 2008-01-07 14:34 +0000 [r96797-96815] Philippe Sultan * res/res_jabber.c: Indentation fix, makes the code easier to read * res/res_jabber.c: Compute the base64 value over the [authzid]\0authcid\0password string, thus excluding the trailing NULL byte. This change has already been committed to trunk, see #11644. 2008-01-05 02:09 +0000 [r96644] Russell Bryant * main/devicestate.c: Don't pass an empty string as the device name. 2008-01-04 23:03 +0000 [r96575] Tilghman Lesher * main/devicestate.c: Fix the problem of notification of a device state change to a device with a '-' in the name. Could probably do with a better fix in trunk, but this bug has been open way too long without a better solution. Reported by: stevedavies Patch by: tilghman (Closes issue #9668) 2008-01-04 22:55 +0000 [r96573] Jason Parker * res/res_features.c: Properly continue in the dialplan if using PARKINGEXTEN and the slot is full. Issue 11237, patch by me. 2008-01-04 19:27 +0000 [r96525] Tilghman Lesher * channels/chan_sip.c: If you change the bindaddr in sip.conf to a non-bound address and reload, sip goes kablooie. Reported and patched by: one47 (Closes issue #11535) 2008-01-04 16:19 +0000 [r96394-96449] Russell Bryant * channels/chan_zap.c: Make use of the temporary channel pointer while the pvt is unlocked. (closes issue #11675) Reported by: flefoll Patches: chan_zap.c.patch-store-owner-before-unlock uploaded by flefoll (license 244) * channels/chan_iax2.c: Don't crash if the iax2 pvt structure has been destroyed before we get to this point (closes issue #11672, reported by snuffy, patched by me) 2008-01-03 21:37 +0000 [r96318] Tilghman Lesher * res/res_config_pgsql.c: Missed initialization caused crash. Reported and fixed by: tiziano (Closes issue #11671) 2008-01-03 12:12 +0000 [r96198-96199] Christian Richter * channels/chan_misdn.c: make sure frame is completely clean, before we send it to asterisk as DTMF. If we don't make it clean, it happens that one way audio occurs.. * channels/chan_misdn.c: when overlapdial was used and no number was dialed, the call was dropped, now we just jump into the s extension, which makes a lot more sense. 2008-01-02 23:46 +0000 [r96102] Mark Michelson * apps/app_queue.c: We need to reset the membername to NULL on each iteration of this loop, otherwise the result is that multiple members can have the same name, since the variable was not reset on each iteration of the loop. 2008-01-02 22:14 +0000 [r96020-96024] Russell Bryant * pbx/pbx_config.c: Convert locks of the contexts list in pbx_config to the appropriate rdlock or wrlock * pbx/pbx_dundi.c: pbx_dundi only needs a rdlock on the contexts list. * apps/app_macro.c: app_macro only needs a rdlock on the contexts list. 2008-01-02 Russell Bryant * Asterisk 1.4.17 released. 2008-01-02 20:24 +0000 [r95946] Joshua Colp * channels/chan_sip.c: Allocate a SIP refer structure when performing a transfer using BYE with Also so that the transfer information is properly stored. (AST-2008-028) (closes issue #11637) Reported by: greyvoip 2008-01-02 17:51 +0000 [r95890] Mark Michelson * apps/app_queue.c: A change to improve the accuracy of queue logging in the case where a member does not answer during the specified timeout period. Prior to this change, there was a small chance that the member name recorded in this case would be blank. Also prior to this change, if using the ringall strategy, if no one answered the call during the specified timeout, the member name listed in the queue log would randomly be one of the members that was rung. (closes issue #11498, reported and tested by hloubser, patched by me) 2007-12-31 23:43 +0000 [r95577] Mark Michelson * main/pbx.c: Avoiding a potentially bad locking situation. ast_merge_contexts_and_delete writelocks the conlock, then calls ast_hint_extension, which attempts to readlock the same lock. Recursion with read-write locks is dangerous, so the inner lock needs to be removed. I did this by copying the "guts" of ast_hint_extension into ast_merge_contexts_and_delete (sans the extra lock). (this change is inspired by the locking problems seen in issue #11080, but I have no idea if this is the problematic area experienced by the reporters of that issue) 2007-12-31 20:27 +0000 [r95470] Tilghman Lesher * funcs/func_env.c: Allow the default "0" to be returned if the STAT fails (Closes issue #11659) 2007-12-28 18:24 +0000 [r95191] Russell Bryant * channels/chan_sip.c: Remove duplicate increment of the header count in the add_header() function. (closes issue #11648) Reported by: makoto Patch provided by sergee, committed patch by me, inspired by comments from putnopvut 2007-12-28 00:16 +0000 [r95095] Mark Michelson * apps/app_queue.c: I found a bug while browsing the queue code and managed to reproduce it in a small setup. If a queue uses the ringall strategy, it was possible through unfortunate coincidence for a single member at a given penalty level to make app_queue think that all members at that penalty level were unavailable and cause the members at the next penalty level to be rung. With this patch, we will only move to the next penalty level if ALL the members at a given penalty level are unreachable. 2007-12-27 21:40 +0000 [r95024] Russell Bryant * main/channel.c: Don't report a syntax error when an empty string is passed to ast_get_group. Just return 0. (closes issue #11540) Reported by: tzafrir Patches: group_empty.diff uploaded by tzafrir (license 46) -- slightly changed by me 2007-12-27 20:09 +0000 [r94977] Mark Michelson * main/io.c: Fixing a typo in a comment. 2007-12-27 17:32 +0000 [r94905-94924] Joshua Colp * channels/chan_h323.c: Include types.h in chan_h323 as without it it can not be compiled on some operating systems like FreeBSD to name one. (closes issue #11585) Reported by: sobomax Patches: chan_h323.c.diff uploaded by sobomax (license 359) * channels/chan_sip.c: Use ast_strlen_zero to see if our_contact is set or not on the dialog. It is possible for it to be a pointer to NULL. (closes issue #11557) Reported by: FuriousGeorge 2007-12-27 15:16 +0000 [r94828-94831] Russell Bryant * main/pbx.c: Now that the contexts lock is a read/write lock, it should not be locked here in ast_hint_state_changed(). This makes it get locked recursively which now causes a deadlock. (closes issue #11080, thanks to callguy for the access to a deadlocked machine) * include/asterisk/translate.h, main/translate.c: Use the constant that I really meant to use here ... * main/translate.c: Change ast_translator_best_choice() to only pay attention to audio formats. This fixes a problem where Asterisk claims that a translation path can not be found for channels involving video. (closes issue #11638) Reported by: cwhuang Tested by: cwhuang Patch suggested by cwhuang, with some additional changes by me. 2007-12-27 01:01 +0000 [r94824] Kevin P. Fleming * main/manager.c: make this comment explain the situation in an even more explicit fashion 2007-12-26 20:43 +0000 [r94808] Tilghman Lesher * main/manager.c: Workaround for what is probably a glibc bug (but we'll see this crop up again and again, if we don't add the workaround). Reported by: rolek Patch by: tilghman (Closes issue #11601, closes issue #11426) 2007-12-26 19:04 +0000 [r94789-94801] Russell Bryant * main/autoservice.c: Just in case the AST_FLAG_END_DTMF_ONLY flag was already set before starting autoservice, remember it and ensure that the channel has the same setting when autoservice gets stopped. (pointed out by d1mas, patched up by me) * main/autoservice.c: When a channel is in autoservice, mark a flag on the channel that says that we only care about the END of a digit. That way, no magic digit emulation stuff will happen when all we're doing is queueing up END frames. * res/res_features.c: Don't try to send a parked call back to itself. (closes issue #11622, reported by djrodman, patched by me) * main/autoservice.c: Don't store DTMF BEGIN frames while a channel is in autoservice. It's just going to make ast_read() do a lot of extra work when the channel comes back out of autoservice. (closes issue #11628, patched by me) * Makefile: List include/asterisk/version.h as a .PHONY target because we want the commands listed for this target to be executed regardless of whether the file exists or not. This fixes having the version not up to date when running from svn. (closes issue #11619, reported by plack, fixed by me) 2007-12-25 02:27 +0000 [r94769] Joshua Colp * channels/chan_sip.c: file says... build on the builders. 2007-12-24 19:36 +0000 [r94763-94767] Tilghman Lesher * main/channel.c: Race: we need to wait to queue a NewChannel event until after the channel is inserted into the channel list. The reason is because some manager users immediately queue requests from the channel when they see that event and are confused when Asterisk reports no such channel. (Closes issue #11632) * channels/chan_sip.c: More deadlock avoidance code (this time between sip_monitor and sip_hangup) Reported by: apsaras Patch by: tilghman (Closes issue #11413) * channels/chan_sip.c: Another bit of bad logic in realtime_peer Reported by: dimas Patch by: dimas (Closes issue #11631) 2007-12-23 01:21 +0000 [r94660] Tilghman Lesher * channels/chan_sip.c: Argh... I suppose third time's the charm. 2007-12-21 20:21 +0000 [r94468-94543] Mark Michelson * apps/app_voicemail.c: Bunch of coding guidelines cleanup * apps/app_voicemail.c: Better quota support for using IMAP storage voicemail (closes issue #11415, reported by jaroth) (closes issue #11152, reported by selsky) Patch provided by jaroth * apps/app_voicemail.c: The mail_copy c-client function does not expect a full imap mailbox string, just the name of the mailbox. (closes issue #11419, reported and patched by jaroth, with additional patchwork from me) * main/dial.c: Since we are freeing list elements within a list traversal, we need to use the safe traversal and remove the item from the list before freeing it. (closes issue 11612, reported by dtyoo) 2007-12-21 16:37 +0000 [r94466] Russell Bryant * main/pbx.c, include/asterisk/pbx.h: Convert the contexts lock to a read/write lock to resolve a deadlock. This has a nice side benefit of improving performance. :) (closes issue #11609) (closes issue #11080) 2007-12-21 16:11 +0000 [r94420-94464] Mark Michelson * apps/app_queue.c: Removing a debug message I accidentally just committed * main/say.c, apps/app_queue.c: Fixing Portuguese syntax for saying dates and times. Also some coding guidelines cleanup. (closes issue #11599, reported and patched by caio1982, coding guidelines cleanup by me) 2007-12-21 15:07 +0000 [r94418] Tilghman Lesher * main/asterisk.c: Fix for restart-as-user problem reported via the -dev list 2007-12-20 Russell Bryant * Asterisk 1.4.16.2 released. 2007-12-20 20:22 +0000 [r94215-94256] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 94255 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r94255 | russell | 2007-12-20 14:21:41 -0600 (Thu, 20 Dec 2007) | 5 lines Fix another potential seg fault ... (closes issue #11606) Reported by: dimas ........ * channels/chan_zap.c: Fix a deadlock in d-channel handling in chan_zap. This deadlock was introduced by the fix to ensure that channels are properly locked when handling channel variables. There were sections of this code where the channel pvt was locked before the channel lock, when in fact it _must_ be the other way around. (closes issue #11582) Reported by: bugi 2007-12-19 23:02 +0000 [r94122] Mark Michelson * res/res_monitor.c: Sox versions 13.0.0 and newer do not have "soxmix" and instead use sox -m. res_monitor needs to use this if the user does not have soxmix. (closes issue #11589, reported by amessina, patch inspired by amessina but with a flourish from me) 2007-12-19 22:48 +0000 [r94077] Russell Bryant * configure, include/asterisk/autoconfig.h.in, configure.ac: Check for the existence of the soxmix application on the target platform and have the result available in autoconfig.h. (part of issue #11589) 2007-12-19 Russell Bryant * Asterisk 1.4.16.1 released. 2007-12-19 17:29 +0000 [r93955] Joshua Colp * channels/chan_iax2.c: Make the 1.4 builders happy, ensure var is NULL. 2007-12-19 17:04 +0000 [r93949] Tilghman Lesher * channels/chan_iax2.c: Avoid segfault in chan_iax when peer isn't defined (Closes issue #11602) 2007-12-18 22:42 +0000 [r93764] Jason Parker * channels/chan_skinny.c: FreeBSD also does not have byte swap functions. Issue 11586, patch by sobomax. 2007-12-18 Russell Bryant * Asterisk 1.4.16 released. 2007-12-18 18:45 +0000 [r93668-93676] Tilghman Lesher * /, channels/chan_sip.c, channels/chan_iax2.c: Merged revisions 93667 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r93667 | tilghman | 2007-12-18 12:23:06 -0600 (Tue, 18 Dec 2007) | 2 lines Fixing AST-2007-027 (Closes issue #11119) ........ 2007-12-18 17:02 +0000 [r93625] Mark Michelson * main/channel.c: Rework deadlock avoidance used in ast_write, since it meant that agent channels which were being monitored had one audio file recorded and one empty audio file saved. (closes issue #11529, reported by atis patched by me) 2007-12-17 22:56 +0000 [r93381-93420] Jason Parker * main/translate.c: What was I thinking when I wrote this masterpiece? -1 + 1 = 0.. who woulda thunk it?. 2007-12-17 22:28 +0000 [r93377] Joshua Colp * main/utils.c: Do not try to access information about a lock when printing out a trylock attempt. It is possible for the lock that it references to no longer be valid. This would have caused segfaults or deadlocks. (issue #BE-263) (closes issue #11080) Reported by: callguy (closes issue #11100) Reported by: callguy 2007-12-17 21:12 +0000 [r93336] Tilghman Lesher * include/asterisk/time.h: Today is tomorrow's yesterday, and yesterday's tomorrow is today, and tomorrow's tomorrow is the day after tomorrow, so who cares if you recycle anyway? If this confuses you, that's nothing compared to what this fixes. ;-) 2007-12-17 19:53 +0000 [r93291] Mark Michelson * apps/app_voicemail.c: We need to create the directory for a voicemail user even if they are using IMAP storage since greetings are stored in the filesystem. (closes issue #11388, reported by spditner, patch by me inspired by a patch by spditner) 2007-12-17 18:05 +0000 [r93250] Joshua Colp * channels/chan_zap.c: If a call is received with a called number IE containing nothing go to the 's' extension. (closes issue #9099) Reported by: kb1_kanobe2 Patches: 20070906__9099.diff.txt uploaded by Corydon76 (license 14) 2007-12-17 07:21 +0000 [r93183] Kevin P. Fleming * funcs/Makefile, codecs/Makefile, cdr/Makefile, pbx/Makefile, res/Makefile, channels/Makefile, formats/Makefile: fix some copy-and-paste leftovers 2007-12-17 07:15 +0000 [r93182] Olle Johansson * channels/chan_mgcp.c, channels/chan_zap.c, channels/chan_sip.c, apps/app_queue.c, channels/chan_iax2.c: Issue 11574: Add dependencies on res_monitor and res_features. I wonder if Asterisk can run at all without res_features. My guess is that there's propably a lot of more modules and the core that depends on it. Reported by: caio1982 (closes issue #11574) 2007-12-17 06:44 +0000 [r93180] Kevin P. Fleming * formats, Makefile, codecs/Makefile, funcs, apps/Makefile, configure, cdr/Makefile, build_tools/prep_tarball, makeopts.in, formats/Makefile, pbx, res, channels, funcs/Makefile, codecs, include/asterisk/autoconfig.h.in, build_tools/make_version, apps, configure.ac, Makefile.moddir_rules, build_tools/prep_moduledeps (removed), res/Makefile, pbx/Makefile, cdr, channels/Makefile: In http://lists.digium.com/pipermail/asterisk-dev/2007-December/031145.html, rizzo brought up some issues related to the way that the metadata required for menuselect and the rest of the build system is extracted from the source files. Since I had a few hours to kill on an airplane today, I decided to improve this situation... so now the system caches the extracted metadata and uses it to build the menuselect 'tree' as much as it can. The result of this is that when a single source file is changed, only the metadata for that file needs to be extracted again, and the rest is used from the cache files. I also reduced the number of forked processes required to do the metadata extraction; it was actually possible to do most of what we needed in the Makefiles themselves without using any shell scripts at all! On my laptop, these changes resulted in an 80% decrease in the time required for the 'menuselect.makeopts' automatic check to occur after editing a single source file. While doing this work I also cleaned up a few minor things in the Makefiles, adding a check for 'awk' to the configure script and changed all remaining places we use 'grep' or 'awk' to use the ones found by the configure script, and changed the 'prep_tarball' script to build the menuselect metadata so that tarballs of Asterisk will include it and won't require the user to wait while it is extracted after unpacking. 2007-12-14 17:36 +0000 [r93000] Russell Bryant * main/config.c: There are a lot of existing systems that #include non-existent files. So, to make the transition to treating this as an error a bit less painless, just issue a huge error message for now. Then, later, we can reinstate the code that treats it as a failure. (Thanks to philippel for the feedback) 2007-12-14 15:16 +0000 [r92937] Joshua Colp * channels/chan_sip.c: Up the length of the format on the SIP channel since it can now be rather long. (closes issue #11552) Reported by: francesco_r 2007-12-14 15:05 +0000 [r92934] Christian Richter * channels/chan_misdn.c: fixed the sequencing of WAITING_4DIGS state setting and overlap_task thread starting. 2007-12-14 15:01 +0000 [r92933] Tilghman Lesher * res/res_agi.c: Change help documentation to match actual behavior (FAILURE vs FAILED). Reported by: angeloxx-sir Patch by: tilghman (Closes issue #11548) 2007-12-14 01:24 +0000 [r92875] Mark Michelson * include/asterisk/lock.h: When compiling with DETECT_DEADLOCKS, don't spam the CLI with messages about possible deadlocks. Instead just print the intended single message every five seconds. (closes issue 11537, reported and patched by dimas) 2007-12-13 21:28 +0000 [r92815] Tilghman Lesher * channels/chan_zap.c: Properly initialize polarity statuses, so that they are detected properly. Reported by: julianjm Patch by: julianjm (Closes issue #10238) 2007-12-13 20:13 +0000 [r92809] Jason Parker * main/pbx.c: Make application help text a little more clear about the use of extensions in a filename. 2007-12-13 20:03 +0000 [r92803-92807] Mark Michelson * apps/app_voicemail.c: Prevent another potential fd leak * apps/app_voicemail.c: Prevent a possible fd leak. 2007-12-13 00:11 +0000 [r92696] Jason Parker * main/config.c, channels/chan_sip.c, channels/chan_h323.c, channels/chan_iax2.c: If a typo is found in a config file, we previous continued on with what was already loaded. We do not want to do this (see bug below for details). This makes it so that if a [ is found without a ], the entire config will fail, and nothing in it will be loaded. Isue #10690. 2007-12-12 22:00 +0000 [r92656] Kevin P. Fleming * codecs/codec_zap.c: emit a warning message when we drop a G.729B CNG frame destined for the transcoder 2007-12-12 21:15 +0000 [r92617] Jason Parker * apps/app_meetme.c: Don't increment user count until after name has been recorded (if enabled). Issue 11048, tested by pep. 2007-12-12 19:40 +0000 [r92556] Russell Bryant * res/res_features.c: resolve compiler warning 2007-12-12 17:46 +0000 [r92510] Mark Michelson * res/res_features.c: Correctly detect where a dynamic feature was activated. Before this patch, the channel which initiated the bridge was always assumed to have been the one which activated the dynamic feature. This patch corrects this. (closes issue #11529, reported and patched by nic_bellamy) 2007-12-12 16:52 +0000 [r92463] Tilghman Lesher * configure, include/asterisk/autoconfig.h.in, configure.ac: Test directly for the API that fixed AST-2007-026, to ensure that older versions of PostgreSQL are no longer acceptable. (Closes issue #11526) 2007-12-12 16:08 +0000 [r92443] Mark Michelson * apps/app_queue.c: Removing an unused variable. 2007-12-11 19:51 +0000 [r92363] Joshua Colp * main/global_datastores.c: Fix potential memory leak with the dialed interfaces list if another memory allocation fails. (closes issue #11507) Reported by: eliel Patches: global_datastores.c.patch uploaded by eliel (license 64) 2007-12-11 17:42 +0000 [r92323] Mark Michelson * apps/app_queue.c: Fixing autofill to be more accurate. Specifically, if calls ahead of the current caller were ringing members (but not yet bridged) there could be available members and waiting callers who would not get matched up. The member availability checker was correctly determining the number of available members in this scenario, but the queue itself did not parallelly reflect this status on the pending calls. This commit corrects the issue. (closes issue #11459, reported by equissoftware, patched by me) 2007-12-10 16:36 +0000 [r92204] Joshua Colp * main/rtp.c: Add G729A as another possible payload name for G729. Some devices use this instead of G729, which is perfectly normal since the payload number itself is defined and can't be used by anything else so the name doesn't matter that much. (closes issue #11483) Reported by: revolution Patches: rtp.diff uploaded by revolution (license 346) 2007-12-10 16:29 +0000 [r92202] Mark Michelson * apps/app_queue.c: If there are no members in a queue, then the loop where the datastore for detecting duplicate dialed numbers will be skipped, meaning the datastore isn't created. This means that when we try to free it, there's a crash. This stops that crash from occurring. (closes issue #11499, reported by slavon, patched by eliel) 2007-12-10 16:13 +0000 [r92200] Joshua Colp * channels/chan_sip.c: It is possible for nativeformats to contain more then one codec, so print out multiple ones. (closes issue #11366) Reported by: ovi 2007-12-10 14:04 +0000 [r92158] Olle Johansson * channels/chan_sip.c: Avoid reinvite race situations with two Asterisks trying to reinvite each other in 1.4 and trunk. This patch implements support for the 491 error code that Asterisk 1.4 generates on situations where we get an incoming INVITE and already has one in progress. Thanks to mavetju for reporting and to Raj Jain for an excellent explanation of the problem. Patch by myself. Tested with 8 Asterisk servers connected to each other in a training network. Closes issue #10481 2007-12-07 23:29 +0000 [r91890] Jason Parker * main/dsp.c: We need to make sure we free the input frame if we return a different frame in ast_dsp_process. Issue 11273, pointed out by dimas, with a patch by eliel. 2007-12-07 22:30 +0000 [r91870] Kevin P. Fleming * codecs/codec_zap.c: even though Asterisk explicitly requests that endpoints using G.729 do *not* use Annex B (silence detection and comfort noise generation) some do anyway; the transcoder card interface does not currently work properly with CNG frames, so trim off the CNG before sending the data 2007-12-07 21:24 +0000 [r91777-91830] Russell Bryant * main/utils.c: Make the lock protecting each thread's list of locks it currently holds recursive. I think that this will fix the situation where some people have said that "core show locks" locks up the CLI. (related to issue #11080) * include/asterisk/lock.h: Fix another bug in the DEBUG_THREADS code. The ast_mutex_init() function had the mutex attribute object marked as static. This means that multiple threads initializing locks at the same time could step on each other and end up with improperly initialized locks. (found when tracking down locking issues related to issue #11080) * include/asterisk/lock.h: I love fixing lock related errors in the lock debugging code. That's about as ironic as it gets in Asterisk programming land. Anyway, I spotted this bug while trying to track down why systems are locking up and acting weird in issue #11080. The mutex attribute object was marked as static in this function when it should not have been. * apps/app_dial.c: * Add channel locking around datastore operations that expect the channel to be locked. * Document why we don't record Local channels in the dialed interfaces list. * Remove the dialed variable as it isn't needed. * Restructure some code for clarity and coding guidelines stuff * apps/app_queue.c: * Add channel locking around datastore operations that expect the channel to be locked. * Document why we don't record Local channels in the dialed interfaces list. * Handle memory allocation failure. * Remove the dialed variable, as it wasn't actually needed. * Tweak some formatting to conform to coding guidelines. * main/autoservice.c: * Add a bit more of a verbose comment as to why a hangup frame needs to be queued up if autoservice gets a NULL return from ast_read(). * Make the process of queueing the hangup frame more efficient by putting the frame where it is going to end up and avoiding some locking and extra memory allocations and freeing. 2007-12-07 15:39 +0000 [r91737] Mark Michelson * main/autoservice.c: Hangups that happen during autoservice were not processed appropriately. This is because a hangup actually causes a NULL frame to be received, not a hangup frame. Queueing a hangup if we receive a NULL frame during autoservice corrects this problem (closes issue #11467, reported by jmls, patched by me) 2007-12-07 02:51 +0000 [r91675-91693] Russell Bryant * apps/app_dial.c: Don't unlock the dialed_interfaces list until we're done messing with the iterator. * apps/app_dial.c, apps/app_queue.c: Allow dialing local channels from Queue() and Dial() again. There was a slight flaw in the code to prevent call forwards from looping that caused this problem. (related to issue #11486) * apps/app_queue.c: Fix in an issue in the call forwarding handling code that was causing crashes on every call into a queue. I'm not entirely sure about the logic in this part of the code, so I want to look at it some more tomorrow. However, this makes it safe and keeps it from crashing. (closes issue #11486, reported by adamg, patched by me) 2007-12-07 00:52 +0000 [r91637] Tilghman Lesher * main/rtp.c: At the end of a call, when we're reporting, RTCP may already be partially torn down, so check for NULL dereference Reported by: blitzrage Patch by: tilghman (Closes issue #11450) 2007-12-06 20:25 +0000 [r91541] Mark Michelson * apps/app_voicemail.c: IMAP storage did not honor the maxmsg setting in voicemail.conf, and it also had the possibility of crashing if a user had more than 256 messages in their voicemail. This patch kills two birds with one stone by adding maxmsg support and also setting a hard limit on the number of messages at 255 so that the crashes cannot happen. (closes issue #11101, reported by Skavin, patched by me) 2007-12-06 19:11 +0000 [r91501] Russell Bryant * main/loader.c, include/asterisk/module.h: Add a new module flag to indicate that a build sum is present. Modules built against older Asterisk 1.4 headers will now load properly with just a warning indicating that they are old and may cause problems. (patch by paravoid) 2007-12-06 16:49 +0000 [r91439-91450] Joshua Colp * main/udptl.c: Fix various in the udptl implementation. It could return empty modem frames, have an incorrect sequence number on packets, and display the wrong sequence number in the debug messages. (closes issue #11228) Reported by: Cache Patches: udptl-4.patch uploaded by dimas (license 88) * channels/chan_sip.c: Add support for accepting and sending T.38 in the initial INVITE. (closes issue #9402) Reported by: thdei 2007-12-06 12:54 +0000 [r91366] Olle Johansson * main/loader.c, include/asterisk/logger.h, main/logger.c: Make sure logger is reloaded at general reload in the cli. (Discovered during Asterisk training in Portugal) 2007-12-05 22:57 +0000 [r91273-91292] Mark Michelson * apps/app_voicemail.c: Reverting extra stuff I didn't mean to commit * apps/app_voicemail.c, apps/app_dial.c: The 'G' option for Dial() did not properly handle the case where only a label was provided. This was due to the fact that the answering channel did not have an extension set, so ast_parseable_goto would fail. This fix eliminates the call to ast_parseable_goto on the answering channel since it is a wasteful call. The answering channel and the calling channel are both directed to the same extension and context, just different priorities, so we can just copy the values from the calling channel to the answering channel and increment the answering channel's priority. (closes issue #11382, reported by jon, patch by me with correction by jon) 2007-12-05 21:38 +0000 [r91237] Tilghman Lesher * sounds/Makefile: Upgrade to the latest version of extra sounds 2007-12-05 17:31 +0000 [r90967-91192] Russell Bryant * main/threadstorage.c: Make the lock in the threadstorage debugging code untracked to avoid a deadlock on thread destruction. (closes issue #11207) Reported by: ys Patches: threadstorage.c.diff uploaded by ys (license 281) Also fixes an open bug report: (closes issue #11446) * main/utils.c: When DEBUG_THREADS is enabled, we only have the details about who is holding a lock that we are waiting on for a mutex, not rwlocks. This should fix the problem where people have reported "core show locks" crashing sometimes. * include/asterisk/lock.h: Fix some crashes in chan_iax2 that were reported as happening on Mac systems. It turns out that the problem was the Mac version of the ast_atomic_fetchadd_int() function. The Mac atomic add function returns the _new_ value, while this function is supposed to return the old value. So, the crashes happened on unreferencing objects. If the reference count was decreased to 1, ao2_ref() thought that it had been decreased to zero, and called the destructor. However, there was still an outstanding reference around. (closes issue #11176) (closes issue #11289) * include/asterisk/file.h, configure, include/asterisk/autoconfig.h.in, configure.ac, include/asterisk/compiler.h: Modify file.h to maintain API compatibility with earlier versions. If a recent compiler is being used, then a warning will show up for any modules still using the old name "private" instead of "_private". (patch suggested by paravoid) * main/pbx.c: Make some changes to some additions I made recently for doing channel autoservice when looking up extensions. This code was added to handle the case where a dialplan switch was in use that could block for a long time. However, the way that I added it, it did this for all extension lookups. However, lookups in the in-memory tree of extensions should _not_ take long enough to matter. So, move the autoservice stuff to be only around executing a switch. 2007-12-04 17:28 +0000 [r90876] Jason Parker * main/channel.c: If we fail to create a channel after allocating a timing fd, we need to make sure to close it. Issue 11454, patch by eliel. 2007-12-04 05:29 +0000 [r90798] Joshua Colp * apps/app_dial.c: Fix build issue on the build cluster. 2007-12-03 23:50 +0000 [r90736-90753] Tilghman Lesher * include/asterisk/compat.h: Solaris requires the inclusion of sys/loadavg.h for getloadavg(). Reported by: snuffy Patch by: snuffy,tilghman (Closes issue #11430) * res/res_config_pgsql.c: If both dbhost and dbsock were not set, a NULL deref could result Reported by: xrg Patch by: tilghman (Closes issue #11387) 2007-12-03 23:12 +0000 [r90735] Mark Michelson * apps/app_dial.c, main/channel.c, main/global_datastores.c (added), channels/chan_local.c, main/Makefile, include/asterisk/channel.h, include/asterisk/global_datastores.h (added), apps/app_queue.c: A big one... This is the merge of the forward-loop branch. The main change here is that call-forwards can no longer loop. This is accomplished by creating a datastore on the calling channel which has a linked list of all devices dialed. If a forward happens, then the local channel which is created inherits the datastore. If, through this progression of forwards and datastore inheritance, a device is attempted to be dialed a second time, it will simply be skipped and a warning message will be printed to the CLI. After the dialing has been completed, the datastore is detached from the channel and destroyed. This change also introduces some side effects to the code which I shall enumerate here: 1. Datastore inheritance has been backported from trunk into 1.4 2. A large chunk of code has been removed from app_dial. This chunk is the section of code which handles the call forward case after the channel has been requested but before it has been called. This was removed because call-forwarding still works fine without it, it makes the code less error-prone should it need changing, and it made this set of changes much less painful to just have the forwarding handled in one place in each module. 3. Two new files, global_datastores.h and .c have been added. These are necessary since the datastore which is attached to the channel may be created and attached in either app_dial or app_queue, so they need a common place to find the datastore info. This approach was taken in case similar datastores are needed in the future, there will be a common place to add them. 2007-12-03 22:06 +0000 [r90696] Jason Parker * apps/app_meetme.c: Make sure we always close the conference fd if we have an open one. Issue 11383, reported by markmhy, patch by eliel. 2007-12-03 20:59 +0000 [r90639] Mark Michelson * channels/chan_mgcp.c: Changing some bad logic when calculating the interdigit timeout. (closes issue #11402, reported and patched by eferro) 2007-12-03 20:51 +0000 [r90607] Jason Parker * res/res_features.c: Fix crash in ParkAndAnnounce application. Issue #11436, reported by lytledd, patch by eliel. 2007-12-03 20:05 +0000 [r90548-90588] Joshua Colp * main/rtp.c: Do not create a smoother for G723.1 frames, they need to be left alone to their native 20/24 byte size. * .cleancount, main/channel.c, include/asterisk/channel.h: Preserve the indication currently playing on a channel when a masquerade operation happens. (issue #BE-88) 2007-12-03 18:20 +0000 [r90546] Jason Parker * channels/chan_iax2.c: Only log debug messages if debug is enabled. Closes issue #11416, patch by casper. 2007-12-02 18:18 +0000 [r90470] Russell Bryant * apps/app_queue.c: The other day when I went through making changes as a result of the ao2_link() change, I added some code to set pointers to NULL after they were unreferenced. This pointed out that in this place, the object was unreferenced before the code was done using it. So, move the unref down a little bit. (crash reported by jmls on IRC) 2007-12-02 09:34 +0000 [r90432] Tilghman Lesher * main/autoservice.c: Clarify the return value on autoservice. Specifically, if you started autoservice and autoservice was already on, it would erroneously return an error. Reported by: adiemus Patch by: dimas (Closes issue #11433) 2007-11-30 19:26 +0000 [r90310-90348] Russell Bryant * main/astobj2.c, main/manager.c, include/asterisk/astobj2.h, apps/app_queue.c, channels/chan_iax2.c: Change the behavior of ao2_link(). Previously, in inherited a reference. Now, it automatically increases the reference count to reflect the reference that is now held by the container. This was done to be more consistent with ao2_unlink(), which automatically releases the reference held by the container. It also makes it so it is no longer possible for a pointer to be invalid after ao2_link() returns. * include/asterisk/astobj2.h: Add some notes on the behavior of ao2_unlink() after a discussion with Tilghman 2007-11-30 14:43 +0000 [r90269] Joshua Colp * channels/chan_sip.c: Fix locking issues under one legged replaces scenarios. (closes issue #11420) Reported by: irroot Patches: chan_sip_oneleg.patch uploaded by irroot (license 52) 2007-11-30 00:16 +0000 [r90231] Mark Michelson * channels/chan_mgcp.c: Clear the DTMF buffer if the call times out. (closes issue #11418, reported and patched by eferro) 2007-11-29 Russell Bryant * Asterisk 1.4.15 released. 2007-11-29 19:48 +0000 [r90166] Tilghman Lesher * cdr/cdr_pgsql.c: Properly escape cdr->src and cdr->dst and ensure we use thread-safe escaping (Fixes AST-2007-026) 2007-11-29 19:38 +0000 [r90163] Mark Michelson * apps/app_queue.c: This patch handles the case where a queue member with a negative penalty is added via the manager. If a negative value is submitted for a member penalty, we set it to 0. (closes issue #11411, reported and patched by Laureano) 2007-11-29 19:24 +0000 [r90154-90160] Tilghman Lesher * res/res_config_pgsql.c: Properly escape input buffers (Fixes AST-2007-025) * formats/format_g726.c, include/asterisk/file.h, formats/format_wav.c, formats/format_pcm.c, formats/format_ogg_vorbis.c, main/file.c, formats/format_h263.c, formats/format_h264.c, formats/format_wav_gsm.c: Use of "private" as a field name in a header file messes with C++ projects Reported by: chewbacca Patch by: casper (Closes issue #11401) * sounds/Makefile: Upgrade the core sounds release version 2007-11-29 00:36 +0000 [r90142-90147] Russell Bryant * funcs/func_callerid.c: fix some formatting i accidentally changed * funcs/func_callerid.c, main/channel.c, include/asterisk/channel.h: This set of changes is to make some callerID handling thread-safe. The ast_set_callerid() function needed to lock the channel. Also, the handlers for the CALLERID() dialplan function needed to lock the channel when reading or writing callerid values directly on the channel structure. * include/asterisk/file.h, main/file.c: Merge a change from team/russell/chan_refcount ... This makes ast_stopstream() thread-safe. 2007-11-28 22:59 +0000 [r90101] Joshua Colp * apps/app_queue.c: Fix a few memory leaks. (closes issue #11405) Reported by: eliel Patches: load_realtime.patch uploaded by eliel (license 64) 2007-11-28 22:30 +0000 [r90098] Kevin P. Fleming * configs/users.conf.sample, main/manager.c: it is impossible to set permissions for manager accounts created by users.conf (reported internally, patched by me) 2007-11-28 22:08 +0000 [r89999-90059] Mark Michelson * main/pbx.c: Removing some seemingly pointless code. This sets a channel variable for every priority executed in the dialplan if you have debug set to anything non-zero. This seems pointless due to the fact that these channel variables are not referenced anywhere else in the code and their names are esoteric enough that they would not be practical to reference in the dialplan. Plus the fact that this behavior isn't documented anywhere means that the change is not likely to cause any disruption. If anything, this may actually cause a slight performance increase if running with debug on. The motivating influence for this code change is the eventwhencalled option for queues. If set to vars, all channel variables will be output to the manager. These unnecessary channel variables make the output a lot more difficult to deal with. * apps/app_voicemail.c: Recording greetings when using IMAP storage was causing zero-length files to be stored. Since greetings are not retrieved from IMAP anyway, it is pointless to attempt storing them there. (closes issue #11359, reported by spditner, patched by me) 2007-11-28 00:20 +0000 [r89839-89893] Russell Bryant * main/pbx.c, include/asterisk/pbx.h: - update documentation for some of the goto functions to note that they handle locking the channel as needed - update ast_explicit_goto() to lock the channel as needed * main/autoservice.c: Don't do frame processing if ast_read() returned NULL. * apps/app_queue.c: Instead of depending on the return value of ast_true(), explicitly set the eventwhencalled variable to 1. * main/pbx.c: Don't start/stop autoservice in pbx_extension_helper() unless a channel exists 2007-11-27 23:10 +0000 [r89837] Mark Michelson * apps/app_queue.c: Two changes with regards to the 'eventwhencalled' option of queues.conf 1) Due to some signed vs. unsigned silliness, setting 'eventwhencalled' to 'vars' or 'yes' did exactly the same thing. Thus the sign change of the ast_true call. 2) The vars2manager function overwrote a \n for every channel variable it parsed, resulting in bizarre output for the channel variables. This patch remedies this. (related to issue #11385, however I'm not sure if this will actually be enough to close it) 2007-11-27 21:45 +0000 [r89790] Russell Bryant * main/autoservice.c, main/pbx.c: Merge changes from team/russell/autoservice_1.4 This set of changes fixes an issue that was reported to me on IRC yesterday. The user, d1mas, was using chan_zap for incoming calls and was having DTMF recognition issues in some situations. Specifically, he noticed that the problem occurred when using DISA or WaitExten. He also noticed that when using Read, the problem did not occur. His system also used DUNDi for dialplan lookups. So, he theorized that if the DUNDi lookups blocked for some period of time, that audio from the zap channel could get lost. If the audio got lost, then it wouldn't be run through the DTMF detector, and digits could get lost. He was correct, and the following set of changes fixes the problem. However, the changes go a little bit further than what was necessary to fix this exact problem. 1) I updated pbx_extension_helper() to autoservice the associated channel to handle cases where extension lookups may take a long time. This would normally be a dialplan switch that does some lookup over the network, such as the DUNDi or IAX2 switches. This ensures that even while a DUNDi lookup is blocking, the channel will be continuously serviced. 2) I made a change to the autoservice code. This is actually something that has bothered me for a long time. When a channel is in autoservice, _all_ frames get thrown away. However, some frames really shouldn't be thrown away. The most notable examples are signalling (CONTROL) frames, and DTMF. So, this patch queues up important frames while a channel is in autoservice. When autoservice is stopped on the channel, the queued up frames get stuck back on the channel so that they can get processed instead of thrown away. 3) I made another change to the autoservice code to handle the case where autoservice is started on channels recursively. Previously, you could call ast_autoservice_start() multiple times on a channel, and it would stop the first time ast_autoservice_stop() gets called. Now, it will ensure that autoservice doesn't actually stop until the final call to ast_autoservice_stop(). 2007-11-27 20:22 +0000 [r89727] Mark Michelson * res/res_config_pgsql.c: Changing some calls from free() to ast_free() since they were allocated with ast_calloc(). (closes issue #11390, reported and patched by Laureano) 2007-11-27 20:16 +0000 [r89701-89709] Kevin P. Fleming * main/app.c: on second thought... revert all the other changes i've made in app options parsing leaving only one: if an empty argument is supplied for an option, set that argument pointer to point to an empty string rather than NULL, so that the application can do normal checks on it without worrying about it being NULL * main/app.c: generate a warning when an application option that requires an argument is ignored due to lack of an argument 2007-11-27 16:12 +0000 [r89634] Russell Bryant * configs/voicemail.conf.sample: Add a note to the sample voicemail config noting that when using IMAP storage, only the first format specified will be attached to the message. 2007-11-27 15:38 +0000 [r89631] Tilghman Lesher * funcs/func_env.c: Default result of STAT should be "0" not "". Reported via the -users mailing list, fixed by me. 2007-11-27 15:23 +0000 [r89624-89630] Olle Johansson * main/rtp.c, channels/chan_sip.c, include/asterisk/rtp.h: If we get a codec offer using a well-known payload type, but using it for another codec that we don't know, Asterisk did not remove that codec from the list. With this patch, we remove the codec from audio and video rtp objects and deny it ever existed. Thanks to lasse for testing. (closes issue #11376) Reported by: lasse Patches: bug11376.txt uploaded by oej (license 306) Tested by: lasse * configs/sip.conf.sample: Clarify limitonpeers=yes (closes issue #11304) Reported by: pj 2007-11-27 06:24 +0000 [r89622] Steve Murphy * apps/app_dial.c, main/cdr.c, configs/cdr.conf.sample, include/asterisk/cdr.h: closes issue #11379; OK, this is an attempt to make both sides happy. To the cdr.conf file, I added the option 'unanswered', which defaults to 'no'. In this mode, you will see a cdr for a call, whether it was answered or not. The disposition will be NO ANSWER or ANSWERED, as appropriate. The src is as you'd expect, the destination channel will be one of the channels from the Dial() call, usually the last in the list if more than one chan was specified. With unanswered set to 'yes', you will still see this cdr entry in both cases. But in the case where the dial timed out, you will also see a cdr for each line attempted, marked NO ANSWER, with no destination channel name. The new option defaults to 'no', so you don't see the pesky extra cdr's by default, and you will not see the irritating 'not posted' messages. 2007-11-26 23:10 +0000 [r89616-89618] Mark Michelson * apps/app_playback.c: After issuing a "say load new", if a caller hangs up during the middle of playback of a number, app_playback will continue to try to play the remaining files. With this change, no more files will be played back upon hangup. (closes issue #11345, reported and patched by IgorG) * apps/app_playback.c: After issuing a "say load new" tons of warning messages are printed out to the CLI every time do_say in app_playback is called. Removing these warnings 2007-11-26 21:10 +0000 [r89599-89610] Joshua Colp * main/dial.c: Fix issues with async dialing with an application executing. The application has to be terminated and control returned to the thread before hanging things up. (issue #BE-252) * res/res_features.c: Add module counting removal for error conditions. (closes issue #11333) Reported by: Laureano Patches: res_features_v2.c.patch uploaded by Laureano (license 265) 2007-11-26 17:41 +0000 [r89594] Russell Bryant * main/pbx.c: Add channel locking to a function that needed to be doing it. This is just a little something I noticed while working on a completely unrelated issue. 2007-11-26 17:36 +0000 [r89587-89592] Joshua Colp * pbx/pbx_config.c: Use ast_free to free memory, or else we shall implode if MALLOC_DEBUG is enabled. (closes issue #11347) Reported by: ys Patches: pbx.pbx_config.c.diff uploaded by ys (license 281) * apps/app_mixmonitor.c: Close the audio file before sending it to the post processing application. (closes issue #11357) Reported by: reformed Patches: mixmonitor.patch uploaded by reformed (license 330) 2007-11-26 17:20 +0000 [r89586] Kevin P. Fleming * main/app.c: when parsing application options that take arguments, don't indicate that the option was supplied unless a non-zero-length argument was found for it 2007-11-26 15:48 +0000 [r89580] Mark Michelson * apps/app_voicemail.c: Revert vmu->email back to an empty string if it was empty when imap_store_file was called. This prevents sending a duplicate e-mail. (closes issue #11204, reported by spditner, patched by me) 2007-11-26 15:34 +0000 [r89571-89577] Joshua Colp * main/channel.c: If channel allocation fails because the alert pipe could not be created also free the scheduler context. (closes issue #11355) Reported by: eliel Patches: main.channel.c.patch uploaded by eliel (license 64) * apps/app_meetme.c: When unloading app_meetme destroy any auto created contexts created by SLA. (closes issue #11367) Reported by: eliel 2007-11-25 17:17 +0000 [r89559] Tilghman Lesher * res/res_odbc.c, configs/res_odbc.conf.sample, include/asterisk/res_odbc.h, res/res_config_odbc.c: We previously attempted to use the ESCAPE clause to set the escape delimiter to a backslash. Unfortunately, this does not universally work on all databases, since on databases which natively use the backslash as a delimiter, the backslash itself needs to be delimited, but on other databases that have no delimiter, backslashing the backslash causes an error. So the only solution that I can come up with is to create an option in res_odbc that explicitly specifies whether or not backslash is a native delimiter. If it is, we use it natively; if not, we use the ESCAPE clause to make it one. Reported by: elguero Patch by: tilghman (Closes issue #11364) 2007-11-24 16:59 +0000 [r89534-89545] Tilghman Lesher * res/res_adsi.c: Free some frames that would otherwise leak on error. Reported by: Laureano Patch by: Laureano,tilghman (Closes issue #11351) * apps/app_voicemail.c, main/app.c: Currently, zero-length voicemail messages cause a hangup in VoicemailMain. This change fixes the problem, with a multi-faceted approach. First, we do our best to avoid these messages from being created in the first place, and second, if that fails, we detect when the voicemail message is zero-length and avoid exiting at that point. Reported by: dtyoo Patch by: gkloepfer,tilghman (Closes issue #11083) * main/manager.c: Up until this point, the XML output of the manager has been technically invalid, due to the repetition of certain parameters in a single event. This caused various issues for XML parsers, some of which refused to parse at all, given the invalidity of the rendered XML. So this commit fixes the XML output, ensuring that each entity parameter has a unique name, thus ensuring valid XML. Reported by: msetim Patch by: tilghman (Closes issue #10220) * res/res_config_odbc.c: Use ESCAPE clause for the first parameter, not just 2nd-Nth parameters. Reported by: apsaras Patch by: tilghman (Closes issue #11353) 2007-11-22 17:29 +0000 [r89527] Russell Bryant * configs/agents.conf.sample: mvanbaak pointed out a spelling error in this sample configuration file. While I was at it, I went ahead and tweaked it a little bit more. 2007-11-21 19:27 +0000 [r89493-89495] Mark Michelson * apps/app_queue.c: Fix a small error I made in my previous commit * apps/app_queue.c: Changing an inaccurate debug message to be less inaccurate. Under the circumstances, this message would always report that there were 0 members available, even though that may not be true. 2007-11-21 18:59 +0000 [r89491] Terry Wilson * res/res_features.c: If a channel gets masqueraded in the middle of a park, don't play the announcement to the masqueraded channel, and dial back to the original channel on timeout. 2007-11-20 19:16 +0000 [r89461-89462] Kevin P. Fleming * include/asterisk/module.h: re-doxygen some comments * main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: bring back compile-option checking when loading modules, only this time use a string-based storage and comparison mechanism because it is easier to support on other platforms 2007-11-20 17:50 +0000 [r89457] Mark Michelson * main/pbx.c: According to comments in main/pbx.c, it is essential that if we are going to lock the conlock as well as the hints lock, it must be locked in that respective order. In order to prevent a potential deadlock, we need to lock the conlock prior to locking the hints lock in ast_hint_state_changed (see the call stack example on issue #11323 for how this can happen). (closes issue #11323, reported by eelcob, suggestion for patch by eelcob, patch by me) 2007-11-20 15:22 +0000 [r89450] Steve Murphy * doc/queues-with-callback-members.txt: closes issue #11324; break statements missing in switch cases. 2007-11-20 13:40 +0000 [r89445] Christian Richter * channels/chan_misdn.c: added RR patch from iroot #10908, thanks. 2007-11-19 15:53 +0000 [r89416-89419] Joshua Colp * res/res_features.c: Print out the correct filename (features.conf) in the log message when parkpos options are incorrect. (closes issue #11295) Reported by: Laureano Patches: res_features.c.patch uploaded by Laureano (license 265) * doc/localchannel.txt: Clarify documentation a bit, include that a frame has to pass through the core in order for the Local channel optimization to happen. (closes issue #11246) Reported by: jon 2007-11-16 Russell Bryant * Asterisk 1.4.14 released. 2007-11-16 22:26 +0000 [r89339] Russell Bryant * main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: Temporarily revert revision 89325, which added md5 magic for keeping track of what build options were used. We agreed that we should remove this before making a 1.4 release, and then we can put it back in. Then, we can take a month or so to play around with it to get it how we want it. 2007-11-16 16:47 +0000 [r89325] Kevin P. Fleming * main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: To help combat problems where people build external modules (asterisk-addons or others) and then change the build options of the Asterisk build in a way that makes the incompatible without warning, this commit introduces an MD5 signature of the important build-time options and includes that signature into modules when they are built. When the loader loads one of these modules and notices the problem, it will emit a warning to console and refuse to initialize the module, as doing so could cause the system to be unstable or even crash. If you upgrade to this version of Asterisk, you must rebuild *all* of your modules that came from other sources before trying to run this version. If you are using Digium's G.729 binary codec module, you will need v33 or newer. 2007-11-16 15:28 +0000 [r89323] Mark Michelson * apps/app_queue.c: Make realtime queues accessible from the QUEUE_MEMBER_COUNT function. (closes issue #11271, reported and patched by atis, with small modifications from me) 2007-11-15 18:37 +0000 [r89298-89302] Tilghman Lesher * Makefile: Start Asterisk in Debian at a more reasonable time (since zaptel is at level 20) * channels/misdn/isdn_lib.c: Fix an uninitialized memory read found by valgrind * channels/chan_iax2.c: Yet another memory corruption issue. Reported by: atis Patch by: tilghman Fixes issue #10923 2007-11-15 17:19 +0000 [r89296] Russell Bryant * apps/app_meetme.c: Update the SLAStation application to account for the case where the SLA thread has a call out to the station, but the user has pressed a line button to answer the call instead of picking up the handset. If they do, the phone sends out a new INVITE. So, the SLAStation app must check to see if it is picking up a ringing trunk, and ensure that the other stations stop ringing. (reported internally, patched by me, tested by mogorman) 2007-11-15 14:57 +0000 [r89286-89288] Mark Michelson * main/manager.c: Undoing previous commit since I realize it was wrong * main/manager.c: Adding a missing mutex unlock. (closes issue 11256, reported and patched by ys) 2007-11-15 11:26 +0000 [r89280-89281] Olle Johansson * channels/chan_sip.c: Don't send re-invites during pending INVITE transactions. Patch by one47 - thanks! Closes issue #9305 * channels/chan_sip.c: Improve support for multipart messages. Code by gasparz, changes by me (mostly formatting). Thanks, gasparz! Closes issue #10947 2007-11-14 23:23 +0000 [r89275] Tilghman Lesher * main/app.c: When a recording ends with '#', we are improperly trimming an extra 200ms from the recording. Reported by: sim Patch by: tilghman Closes issue #11247 2007-11-14 01:15 +0000 [r89260] Joshua Colp * main/srv.c: Return the proper value when the srv_callback function executes properly. (closes issue #11240) Reported by: jtodd 2007-11-13 21:07 +0000 [r89248-89254] Jason Parker * channels/chan_zap.c, channels/chan_iax2.c: Fix building on newer systems which require a third arg to open() when using O_CREAT. Issue 11238, reported by puzzled. * res/res_features.c: Revert change from revision 67064. It is documented behavior that if a parking extension already exists while using PARKINGEXTEN, dialplan execution will continue. If blind transferring to a Park with PARKINGEXTEN, you must keep this in mind, and handle the failure yourself. Issue 11237, reported by jon. 2007-11-13 17:34 +0000 [r89246] Tilghman Lesher * channels/chan_sip.c: If we set a value for qualify, we should actually pay attention to it, instead of overriding the value 2007-11-13 16:02 +0000 [r89241] Mark Michelson * apps/app_mixmonitor.c: Reverting commit made in revision 89205 since it is unnecessary. Thanks to Kevin for pointing this out 2007-11-13 13:51 +0000 [r89239] Tilghman Lesher * main/utils.c: Debugging is running into the 16-lock limit. Increase to avoid. (This define is only effective when debugging is turned on, so there's no effect for most installations.) 2007-11-13 00:56 +0000 [r89205] Mark Michelson * apps/app_mixmonitor.c: Some sanity checking for MixMonitor. If only 1 argument is given, then the args.options and args.post_process strings are uninitialized and could contain garbage. This change handles this situation properly by only using arguments that we have parsed. 2007-11-12 20:46 +0000 [r89194] Jason Parker * main/pbx.c: Fix a typo pointed out by De_Mon on #asterisk-dev 2007-11-12 20:16 +0000 [r89184-89191] Tilghman Lesher * main/config.c: If two config writes collide, file corruption could result. Use a mkstemp() file, instead. Reported by: paravoid Patch by: tilghman Closes issue #10781 * main/channel.c, channels/chan_sip.c: Fix two cases of memory corruption caused by background threads. Reported by: atis Patch by: tilghman Fixes issue #10923 2007-11-12 11:26 +0000 [r89169-89173] Christian Richter * channels/chan_misdn.c, configs/misdn.conf.sample: if we're NT and no number was dialed and overlapdial is set, we wait for the ISDN timeout instead of starting our own timer. added a comment for the misdn.conf.sample for the overlapdial config option. * channels/misdn/isdn_lib.c, channels/misdn/isdn_lib_intern.h, channels/chan_misdn.c, channels/misdn/isdn_msg_parser.c: added restart all interfaces Restart_Indicator, to automatically send a RESTART after the L2 of a PTP Port comes up. Also fixed some places where we have send a RELEASE without need for it. * channels/misdn/isdn_lib.c, channels/chan_misdn.c: fixed a state/event issue with overlapdial=yes when no extension matched. removed the general sending of a RELEASE_COMPLETE when we receive a RELEASE, this is done by mISDNuser/mISDN. This makes it possible to use asterisk-1.4 with mISDN trunk, but requires users of mISDN/mISDNuser-1.1.X to upgrade to at least mISDNuser-1.1.6 (when using the NT mode at all) * channels/misdn/isdn_lib.c: fixed the support for CW and therefore for the reject_cause option. * channels/misdn/isdn_lib.c, channels/misdn_config.c, channels/misdn/isdn_lib.h, channels/chan_misdn.c, channels/misdn/chan_misdn_config.h, configs/misdn.conf.sample: aded ntkeepcalls option, to avoid droÃpping calls when the L2 goes down on a PTP link. There are some pbx which do turn off the L1 for a very short while and restart it immediately. normally T310 should be started and after 10 seconds or so the calls should be dropped, this is a simple fix wihtout this timer. 2007-11-08 23:52 +0000 [r89125] Jason Parker * main/say.c: Properly say the seconds here.. Issue 11203, fix described by vma. 2007-11-08 21:00 +0000 [r89119] Mark Michelson * channels/chan_sip.c: Rework of the commit I made yesterday to use the already built-in ast_uri_decode function as opposed to my home-rolled one. Also added comments. Thanks to oej for pointing me in the right direction 2007-11-08 18:45 +0000 [r89115] Jason Parker * configs/res_odbc.conf.sample: Avoid warnings on load when using sample configuration files. Issue 11195, patch by eliel. 2007-11-08 16:47 +0000 [r89111] Mark Michelson * apps/app_voicemail.c: I made this same adjustment in trunk to fix a bug, and it makes sense to do it in 1.4 as well. If an imapfolder is specified in voicemail.conf, don't ever explicitly connect to INBOX since it may not exist. 2007-11-08 05:26 +0000 [r89105] Kevin P. Fleming * main/srv.c: fix a glaring bug in the new SRV record handling that would cause incorrect weight sorting 2007-11-08 04:55 +0000 [r89103] Tilghman Lesher * doc/valgrind.txt: Typo 2007-11-08 02:26 +0000 [r89095-89101] Joshua Colp * channels/chan_sip.c: Do not add a sip: to the beginning of the To URI unless needed. (closes issue #10756) Reported by: goestelecom * channels/chan_sip.c: Improve the devicestate logic for multiple devices. If any are available then the extension is considered available. (closes issue #10164) Reported by: nic_bellamy Patches: sip-hinting-svn-branch-1.4.patch uploaded by nic (license 299) * channels/chan_sip.c: Add support for allowing one outgoing transaction. This means if a response comes back out of order chan_sip will still handle it. I dream of a chan_sip with real transaction support. (closes issue #10946) Reported by: flefoll (closes issue #10915) Reported by: ramonpeek (closes issue #9567) Reported by: atca_pres * channels/chan_sip.c: If callerid is configured in sip.conf use that for checking the presence of an extension in the dialplan. (closes issue #11185) Reported by: spditner 2007-11-07 23:39 +0000 [r89093] Tilghman Lesher * apps/app_queue.c: The member refcount must be incremented, to avoid using it after deallocation. A huge thanks go to lvl- for patiently providing the necessary valgrind output that was necessary to finding this problem of memory corruption. Reported by: lvl- Patch by: tilghman Closes issue #11174 2007-11-07 22:40 +0000 [r89090] Mark Michelson * channels/chan_sip.c: This patch makes it possible for SIP phones to dial extensions defined with '#' characters in extensions.conf AND maintain their escaped characters when forming URI's (closes issue #10681, reported by cahen, patched by me, code review by file) 2007-11-07 21:40 +0000 [r89088] Steve Murphy * cdr/cdr_tds.c, pbx/pbx_ael.c, res/res_jabber.c: In response to 10578, I just ran 1.4 thru valgrind; some of the config leakage I've already fixed, but it doesn't hurt to double check. I found and fixed leaks in res_jabber, cdr_tds, pbx_ael. Nothing major, tho. 2007-11-07 15:56 +0000 [r89085] Mark Michelson * main/manager.c: Fixing a segfault in the manager "core show channels concise" command. (closes issue #11183, reported by arnd and patched by ys) 2007-11-07 04:07 +0000 [r89079] Tilghman Lesher * configs/extensions.ael.sample: Suppress AEL warnings on load. Reported by: eliel Patch by: eliel Closes issue #11178 2007-11-06 20:18 +0000 [r89053] Russell Bryant * res/res_musiconhold.c: Fix init_classes() so that classes that actually do have files loaded aren't treated as empty, and immediately destroyed ... 2007-11-06 19:09 +0000 [r89046] Jason Parker * codecs/codec_zap.c: Correctly set the total number of channels from a zaptel transcoder board. SPD-49, patch by Matthew Nicholson. 2007-11-06 19:09 +0000 [r89045] Tilghman Lesher * include/asterisk/lock.h: We went to the trouble of creating a method of tracking failed trylocks, then never turned it on (oops). 2007-11-06 18:53 +0000 [r89042] Olle Johansson * main/tdd.c: Bug fixes to tdd support in zaptel. 2007-11-06 18:20 +0000 [r89037] Russell Bryant * res/res_musiconhold.c: If someone were to delete the files used by an existing MOH class, and then issue a reload, further use of that class could result in a crash due to dividing by zero. This set of changes fixes up some places to prevent this from happening. (closes issue #10948) Reported by: jcomellas Patches: res_musiconhold_division_by_zero.patch uploaded by jcomellas (license 282) Additional changes added by me. 2007-11-06 17:52 +0000 [r89036] Steve Murphy * main/config.c: closes issue #8786 - where the [catname](!) and [catname](othercat1,othercat2,...) notation gets dropped across a ConfigUpdate (or any other thing that would cause a config file to be written). While I was at it, I also cleaned up some of the destroy routines to free up comments, which was not being done. Made sure the new struct I introduced is also cleaned up properly at destruction time. My code handles multiple template inclusions. Many thanks to ssokol for his patch, which, while not literally used in the final merge, served as a foundation for the fix. 2007-11-06 17:08 +0000 [r88994-89032] Joshua Colp * channels/chan_sip.c: Make it so that if a peer is determined to be unreachable using qualify their devicestate will report back unavailable. (closes issue #11006) Reported by: pj * channels/chan_zap.c: Fix improbable but possible memory leaks in chan_zap. (closes issue #11166) Reported by: eliel Patches: chan_zap.c.patch uploaded by eliel (license 64) 2007-11-06 13:50 +0000 [r88931] Russell Bryant * include/asterisk/lock.h: Remove some checks to see if locks are initialized from the non-DEBUG_THREADS versions of the lock routines. These are incorrect for a number of reasons: - It breaks the build on mac. - If there is a problem with locks not getting initialized, then the proper fix is to find that place and fix the code so that it does get initialized. - If additional debug code is needed to help find the problem areas, then this type of things should _only_ be put in the DEBUG_THREADS wrappers. 2007-11-06 02:52 +0000 [r88862] Kevin P. Fleming * include/asterisk/srv.h: update comment to match the state of the code 2007-11-05 23:29 +0000 [r88826] Mark Michelson * main/channel.c: Reworked deadlock avoidance in __ast_read. Restored audio to callback agents. (closes issue #11071, reported by callguy, patched by me, tested by callguy and Ted Brown) 2007-11-05 22:07 +0000 [r88709-88805] Russell Bryant * main/pbx.c, include/asterisk/pbx.h: After seeing crashes related to channel variables, I went looking around at the ways that channel variables are handled. In general, they were not handled in a thread-safe way. The channel _must_ be locked when reading or writing from/to the channel variable list. What I have done to improve this situation is to make pbx_builtin_setvar_helper() and friends lock the channel when doing their thing. Asterisk API calls almost all lock the channel for you as necessary, but this family of functions did not. (closes issue #10923, reported by atis) (closes issue #11159, reported by 850t) * channels/chan_sip.c: When traversing the list of channel variables here in transmit_invite(), the asterisk channel must be locked, as this data may change at any time. (I have seen numerous reports of crashes related to the handling of channel variables. There are a couple of issues on the bug tracker related to it, but it has also been noted on IRC and mailing lists. So, I am finding and fixing some places where channel variables are handled improperly.) * channels/chan_sip.c: Fix up some indentation. * main/srv.c, include/asterisk/srv.h: Merge changes from asterisk/team/kpfleming/SRV-priority-handling Previously, the SRV record support in Asterisk was broken. There was no guarantee on what record Asterisk would choose to actually use. This set of changes improves the situation by ensuring that Asterisk will choose the highest priority record. * main/channel.c: Merge the last bit of changes from asterisk/team/russell/readq-1.4 The issue here is that the channel frame readq handling got broken when the code was converted to use the linked list macros. It caused corruption of the list head and tail pointers. So, I fixed up the usage of the linked list macros and in passing, simplified the code. I also documented what the code is doing, as it was a bit difficult to figure out at first. This bug showed itself with crashes showing messed up head/tail pointers for the readq. However, there are a couple of crashes that aren't quite as obvious, but I think may be related. So, if your bug gets closed by this commit, but you still have a problem, please reopen or create a new bug report. (closes issue #10936) (closes issue #10595) (closes issue #10368) (closes issue #11084) (closes issue #10040) (closes issue #10840) 2007-11-05 18:47 +0000 [r88671] Joshua Colp * channels/chan_sip.c: If a SIP channel is put on hold multiple times do not keep incrementing the onHold value. (closes issue #11085) Reported by: francesco_r Tested by: blitzrage (closes issue #10474) Reported by: acennami 2007-11-05 17:46 +0000 [r88624] Russell Bryant * main/channel.c: Fix up datastore handling in ast_do_masquerade(). The code is intended to move any channel datastores from the old channel to the new one. However, it did not use the linked list macros properly to accomplish the task. The existing code would only work if there was only a single datastore on the old channel. 2007-11-05 17:19 +0000 [r88585] Jason Parker * channels/chan_sip.c: Make sure we destroy the config structure on configuration failure. Issue 11163, patch by eliel. 2007-11-05 16:20 +0000 [r88539] Tilghman Lesher * res/res_odbc.c: Don't check used pooled connections for connection status, as it will cause issues for prepared queries. Reported by: Nick Gorham (via -dev list) Patch by: tilghman 2007-11-04 22:38 +0000 [r88471] Luigi Rizzo * include/asterisk/stringfields.h, main/channel.c, apps/app_meetme.c, channels/chan_sip.c, channels/chan_iax2.c: Rename ast_string_field_free_pool to ast_string_field_free_memory, and ast_string_field_free_all to ast_string_field_reset_all to avoid misuse (due to too similar names and an error in documentation). Fix two related memory leaks in app_meetme. No need to merge to trunk, different fix already applied there. Not applicable to 1.2 2007-11-02 20:49 +0000 [r88328-88366] Joshua Colp * channels/chan_sip.c: Make subscribecontext behave as advertised. It will now look for the presence of a hint in the given context (be it subscribecontext or context). (closes issue #10702) Reported by: slavon * channels/chan_sip.c: If an INFO request within a dialog is received with a content length of 0 simply send back a 200 OK. It is valid to do this and the remote side is probably using it to make sure the signalling is still alive. (closes issue #5747) Reported by: chandi Patches: infofix-81430-1.patch uploaded by IgorG (license 20) 2007-11-02 16:51 +0000 [r88283] Jason Parker * main/say.c: We need to make sure to specify a language to ast_fileexists, otherwise it may fail for anything besides en Issue 11147, fix discovered by both citats and myself (independently), with input from Corydon76 2007-11-02 13:03 +0000 [r88116-88210] Tilghman Lesher * include/asterisk/lock.h: Fix build on Solaris Reported by: snuffy Patch by: ys Closes issue #11143 * doc/valgrind.txt (added): Add some notes on using valgrind 2007-11-01 16:21 +0000 [r88078] Jason Parker * channels/chan_zap.c: Make sure we set the poll fds to NULL after free()ing it. Part of issue 11017, patch by tzafrir. 2007-11-01 13:27 +0000 [r87970-88026] Joshua Colp * apps/app_meetme.c: Fix up commit for my Zap channel with spies in Meetme fix. (thanks Tony Mountifield!) * apps/app_meetme.c: If a Zap channel contains a spy or a spy is added take it out of the conference in kernel space and make it go through Asterisk so the spy gets audio from both sides. (closes issue #10060) Reported by: mparker 2007-10-31 21:23 +0000 [r87906-87908] Jason Parker * res/res_jabber.c: Make sure we free some allocated memory before returning. Issue 11131, patch by eliel. * channels/chan_gtalk.c: Don't try to allocate memory that we're just going to re-allocate later anyways. Issue 11130, patch by eliel. 2007-10-31 18:03 +0000 [r87852] Tilghman Lesher * Makefile: Create samples for ALL of the available options in asterisk.conf 2007-10-31 17:49 +0000 [r87775-87849] Steve Murphy * pbx/pbx_config.c: closes issue #11108 -- where the 'dialplan save' cli command saves a file where the semicolon is not escaped. Fixed this; User also wanted comments to be preserved across dialplan save, but this is impossible at this point in time, because comments are not stored in the dialplan. They are 'compiled' out of extensions.conf. The only way to preserve those comments is to use the config file reader/writer that the GUI uses to allow online user edits. extensions.conf is first and foremost, a config file, and is read in by the normal config-file reading routines. Then, it is processed into a dialplan (context/exten structs). * pbx/pbx_ael.c: Included some verbage in the check_includes func, to inform the user that included contexts that have no match in the AEL, might be OK, as AEL cannot check in the extensions.conf or the in-memory contexts, as they may not be there at the time of the check. 2007-10-30 23:02 +0000 [r87739] Tilghman Lesher * include/asterisk/lock.h: Fix for uninitialized mutexes on *BSD Reported by: ys Fixed by: ys Closes issue #11116 2007-10-30 21:19 +0000 [r87686] Russell Bryant * channels/chan_iax2.c: Merge the changes from team/russell/iax2_poke_fix and iax2-poke-fix-trunk There was a race condition related to the handling of POKEing peers. Essentially, a reference to a peer is held by the scheduler when there are pending callbacks, but the reference count didn't reflect it. So, it was possible for a peer to hit a reference count of zero and have its destructor begin to be called at the same time that the scheduler thread ran a POKE related callback. If that happened, a crash would likely occur. (closes issue #11082, closes issue #11094) 2007-10-30 20:29 +0000 [r87650] Jason Parker * channels/Makefile: Only try to clean out h323/ if the h323/Makefile exists. 2007-10-30 16:13 +0000 [r87571] Joshua Colp * res/res_features.c: Add two more checks before printing out a warning message about bridging. If either channel has hungup of course the bridge will have failed. (closes issue #10009) Reported by: dimas 2007-10-30 15:45 +0000 [r87567] Jason Parker * main/editline/np/vis.c: Fix build of editline on Solaris. Issue 11113, patch by snuffy. 2007-10-30 15:10 +0000 [r87534] Joshua Colp * apps/app_followme.c: Return 1.4 to a state where it builds. Changing the arguments to a function and not changing where they are used is bad, mmmk? 2007-10-30 14:31 +0000 [r87514] BJ Weschke * apps/app_followme.c: Fix issue where the recorded name wasn't getting removed correctly. (closes issue #11115) Reported by: davevg Patches: followme-v3.diff 2007-10-29 22:13 +0000 [r87460-87465] Kevin P. Fleming * codecs/gsm: missed one directory * codecs/ilbc, formats, utils/Makefile, agi/Makefile, funcs, codecs/lpc10, main/db1-ast, main/editline, main, codecs/ilbc/Makefile, pbx, res, channels, main/db1-ast/Makefile, codecs/lpc10/Makefile, utils, codecs, agi, main/editline/Makefile.in, apps, Makefile.moddir_rules, cdr: clean up (and ignore) assembler and preprocessor intermediate files if any are created during the build * Makefile: don't put '-pipe' into ASTCFLAGS if '-save-temps' is already there (used when debugging preprocessor issues) because the compiler will whine about each compile command 2007-10-29 21:06 +0000 [r87427] Mark Michelson * apps/app_voicemail.c: Removing a completely unnecessary quota check from IMAP code. 2007-10-29 20:22 +0000 [r87373-87396] Russell Bryant * main/utils.c, include/asterisk/lock.h: Add some more details to the output of "core show locks". When a thread is waiting for a lock, this will now show the details about who currently has it locked. (inspired by issue #11100) * main/astmm.c: Remove a lock that doesn't make any sense. The regions lock needs to be held when traversing the list of allocated chunks so that they can be printed out to the CLI. (Thanks to eliel on #asterisk-dev for pointing this out!) 2007-10-29 17:20 +0000 [r87342] Joshua Colp * channels/chan_sip.c: Fix issue where if both sides of the dialog cancelled the dialog at the same time chan_sip could kepe retransmitting a response for no reason. (closes issue #9566) Reported by: atca_pres Patches: bug9566.patch uploaded by oej 2007-10-29 17:13 +0000 [r87340] Jason Parker * funcs/func_realtime.c, funcs/func_cut.c: Allow some function modules to compile under dev mode. Issue 11104, patch by andrew. 2007-10-29 14:23 +0000 [r87294] Joshua Colp * main/utils.c: Fix issue with ast_unescape_semicolon going into an endless loop. (closes issue #10550) Reported by: ramonpeek Patches: unescape-85177-1.patch uploaded by IgorG (license 20) 2007-10-28 13:46 +0000 [r87262] Tilghman Lesher * funcs/func_realtime.c, funcs/func_odbc.c, funcs/func_strings.c, funcs/func_cut.c: Add autoservice to several more functions which might delay in their responses. Also, make sure that func_odbc functions have a channel on which to set variables. Reported by russell Fixed by tilghman Closes issue #11099 2007-10-26 16:34 +0000 [r87168] Steve Murphy * pbx/ael/ael-test/ref.ael-test19, pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/ael/ael_lex.c, pbx/pbx_ael.c, include/asterisk/ael_structs.h, pbx/ael/ael.tab.h, utils/ael_main.c, pbx/ael/ael-test/ref.ael-test16, pbx/ael/ael.flex: closes issue #11086 where a user complains that references to following contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config, 2007-10-26 13:54 +0000 [r87120] Tilghman Lesher * funcs/func_curl.c: The addition of autoservice to func_curl additionally made func_curl dependent on the existence of a channel, with no real reason. This should make func_curl once again work without a channel. Reported by jmls. Fixed by tilghman. Closes issue #11090 2007-10-25 23:03 +0000 [r87069] Kevin P. Fleming * main/channel.c, include/asterisk/linkedlists.h: appending one list to another should leave the first list empty, and not require the user to do that 2007-10-25 22:53 +0000 [r87067] Tilghman Lesher * funcs/func_cut.c: Backport alternate encoding of newline delimiters from trunk to 1.4, as approved by Russell Reported by blitzrage Closes issue #10903 2007-10-24 20:56 +0000 [r86982] Jason Parker * channels/chan_zap.c: Correctly respect hidecalleridname configuration option. Simplify code slightly in the process. Issue 11079, reported by ddv2005 2007-10-24 04:14 +0000 [r86880-86936] Steve Murphy * pbx/ael/ael.tab.c, pbx/ael/ael.y: closes issue #11037 -- unable to specify app:spec in hint arguments * funcs/func_logic.c: closes issue #11052 -- where nothing after the ? will allow un-initialized variable values to corrupt and crash asterisk on 64-bit platforms * main/Makefile: this update to Makefile corrects how ast_expr2f.c should be generated * main/ast_expr2f.c: This should get rid of a really, really irritating warning generated by some 64-bit platforms from libc, where free(0) is frowned upon 2007-10-22 21:36 +0000 [r86836] Russell Bryant * include/asterisk/lock.h: If lock tracking is not enabled, then we can not attempt to log any mutex failures. If so, we could end up in infinite recursion. The only lock that is affected by this is a mutex in astmm.c used when MALLOC_DEBUG is enabled. (closes issue #11044) Reported by: ys Patches: lock.h.diff uploaded by ys (license 281) 2007-10-22 17:38 +0000 [r86787] Tilghman Lesher * main/astmm.c: Minor FreeBSD build fix 2007-10-22 16:35 +0000 [r86754-86756] Joshua Colp * channels/chan_sip.c: After reading online I have confirmed that Record-Route headers should be copied to 1xx responses as well. (closes issue #10113) Reported by: makoto * apps/app_controlplayback.c: Make sure res is a positive value before performing the check to determine whether the user stopped it or not. (closes issue #11023) Reported by: cfc 2007-10-22 15:52 +0000 [r86726-86750] Russell Bryant * main/channel.c: Don't leak a frame in the case that an END frame is received and the time since the BEGIN is less than that of the defined minimum DTMF duration. (closes issue #11051) Reported by: casper Patches: channel.c.86664.diff uploaded by casper (license 55) * include/asterisk/lock.h: Update the static mutex initializer to include the initialization of the internal mutex used to protect the lock debugging data. (closes issue #11044, patch suggested by Ivan) 2007-10-22 14:48 +0000 [r86694] Mark Michelson * apps/app_voicemail.c: Account for the fact that sometimes headers may be terminated with \r\n instead of just \n (closes issue #11043, reported by yehavi) 2007-10-22 14:27 +0000 [r86630-86663] Joshua Colp * main/channel.c: Move log message to before the frame it references is freed. (closes issue #11050) Reported by: slavon Patches: channel.c.86662.diff uploaded by casper (license 55) * pbx/pbx_dundi.c: Fix tab completion for dundi show peer. (closes issue #11041) Reported by: jsmith Patches: asterisk-dundicomplete.diff.txt uploaded by jamesgolovich (license 176) * main/loader.c: Fixes for building under OpenSolaris. (closes issue #11047) Reported by: snuffy Patches: 11047-fixes.diff uploaded by snuffy (license 35) 2007-10-22 09:21 +0000 [r86598] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: we send DISCONNECT instead of RELEASE/RELEASE_COMPLETE if the dialplan does not match after an overlap call. Also added out_cause=1 2007-10-19 16:38 +0000 [r86469-86502] Joshua Colp * main/app.c: When returning a DTMF digit from ast_control_streamfile cast it as a char so that 0 does not overlap with the success return code. (closes issue #11023) Reported by: cfc * channels/chan_sip.c: Fix two issues with domains and transfers. If a port was given in the hostname it was treated as part of the hostname. If domains were configured but external domains were not enabled all transfers would be considered remote. (closes issue #11027) Reported by: ramonpeek Patches: 11027-1.diff uploaded by ramonpeek (license 266) * channels/chan_sip.c: Set port number in received as information for registrations as well. (closes issue #11028) Reported by: brad-x 2007-10-19 01:45 +0000 [r86438] TransNexus OSP Development * apps/app_osplookup.c: Fixed OSP module did not report source/devinfo IP in correct format. 2007-10-18 22:01 +0000 [r86405-86406] Jason Parker * Makefile: Correct documentation. I removed the wrong line.. * Makefile: Add documentation for options in asterisk.conf Issue 11029, patch by eserra 2007-10-18 21:16 +0000 [r86330-86372] Russell Bryant * configs/iax.conf.sample, channels/chan_iax2.c: Revert erroneous commit. * configs/iax.conf.sample, channels/chan_iax2.c: Add support for setting the maximum trunk size for IAX2 trunking * main/channel.c, include/asterisk/channel.h: The channel needs to stay locked while running timer callbacks, as they access and modify channel data that may change elsewhere. I went through every timer callback in the source tree to make sure that none of them did any additional locking that could introduce deadlocks, and all is well. (closes issue #10765) Reported by: Ivan Patches: ast_1_4_11_svn_patch_channel_rc.diff uploaded by Ivan (license 229) 2007-10-18 17:38 +0000 [r86328] Mark Michelson * apps/app_queue.c: If a non-existent file is specified to be played either as a periodic announcement or as a hold/position announcement, the caller would be kicked out of the queue. No longer does this happen. 2007-10-18 15:45 +0000 [r86237-86296] Russell Bryant * codecs/codec_zap.c: Execute the RELEASE operation on transcoder channels in the destroy callback. (patch from jsloan) * main/utils.c: Revert a change that I made for issue #10979 which, as has been pointed out to me in issue #11018, doesn't really make sense. There is no reason to have the base64 decode function force a '\0' terminated buffer, when the result is almost always binary, anyway. In fact, this caused some breakage, as some code in res_crypto passed in a buffer exactly the right size to get its binary result, which got stomped on by this patch. (closes issue #11018, reported by dimas) 2007-10-17 21:39 +0000 [r86202] Mark Michelson * apps/app_queue.c: Changing the strategy field of the call_queue struct to be signed instead of unsigned, since the code attempts to set the strategy to -1 if you specify a bogus strategy. While this isn't a huge issue in 1.4, it could be a problem for someone who, say, tries to use the roundrobin strategy in trunk (despite all the deprecation warnings in 1.4). 2007-10-17 17:57 +0000 [r86149] Russell Bryant * channels/chan_sip.c: If Asterisk is in the middle of shutting down, respond to OPTIONS with 503 Unavailable. (closes issue #10994) Reported by: eserra Patches: sip-options-503.patch uploaded by eserra (license 45) 2007-10-17 16:58 +0000 [r86117] Joshua Colp * channels/chan_sip.c: Whoops, forgot to remove the original sip_scheddestroy. (closes issue #11010) Reported by: vadim 2007-10-17 15:23 +0000 [r86066] Tilghman Lesher * main/asterisk.c: When runuser/rungroup is specified, a remote console could only be attained by root (Closes issue #9999) 2007-10-17 15:06 +0000 [r86063] Joshua Colp * channels/chan_sip.c: Don't schedule dialog destruction if a MESSAGE is received using an existing dialog. (closes issue #11010) Reported by: vadim 2007-10-16 23:35 +0000 [r86028-86032] Mark Michelson * configs/queues.conf.sample: Since monitor-join is deprecated now, remove the example from the sample queues.conf file * UPGRADE.txt: Updating UPGRADE.txt to reflect the deprecation of the monitor-join queue option * apps/app_queue.c: Adding deprecated warning to monitor-join option, since the plan is to no longer support this in favor of monitor-type = mixmonitor (related to issue #10885) 2007-10-16 22:36 +0000 [r85994-85997] Russell Bryant * include/asterisk/lock.h: really picky formatting tweak ... * include/asterisk/lock.h: Some locking errors exposed the fact that the lock debugging code itself was not thread safe. How ironic! Anyway, these changes ensure that the code that is accessing the lock debugging data is thread-safe. Many thanks to Ivan for finding and fixing the core issue here, and also thanks to those that tested the patch and provided test results. (closes issue #10571) (closes issue #10886) (closes issue #10875) (might close some others, as well ...) Patches: (from issue #10571) ivan_ast_1_4_12_rel_patch_lock.h.diff uploaded by Ivan (license 229) - a few small changes by me 2007-10-16 21:14 +0000 [r85958] Mark Michelson * apps/app_queue.c: Trying to remove a non-dynamic queue member via dynamic means can lead to some interesting (read nasty) situations. This patch clears up the issue by making only dynamic queue members removable via dynamic methods. 2007-10-16 19:41 +0000 [r85921] Tilghman Lesher * main/stdtime/localtime.c: Also set up gmtoff (this is used in the %z gnu extension to strftime) Reported and fixed by jcmoore Closes issue #11002 2007-10-16 19:10 +0000 [r85896] Russell Bryant * apps/app_voicemail.c: Remove a pointless lock. 2007-10-16 15:21 +0000 [r85852] Mark Michelson * apps/app_queue.c: Fixing a double free which happens in the statechange thread. (closes issue #10987, reported by andrew) 2007-10-16 14:52 +0000 [r85818-85850] Joshua Colp * apps/app_hasnewvoicemail.c: Check to make sure a value has been given to the VMCOUNT dialplan function. (closes issue #10996) Reported by: marsosa * main/threadstorage.c: Fix memory allocation issue in threadstorage. (closes issue #10995) Reported by: snuffy Patches: new-patch.diff uploaded by snuffy (license 35) 2007-10-16 10:46 +0000 [r85800] Philippe Sultan * channels/chan_gtalk.c: Fix the output for this channel help CLI command 2007-10-15 21:10 +0000 [r85717-85720] Russell Bryant * apps/app_queue.c: Ensure that no pending state changes are leaked when the device state change thread gets stopped on module unload. * apps/app_queue.c: Previously, app_queue created a thread to handle every single device state change. I changed this a while ago in trunk for performance reasons. However, bug 8407 points out that it is actually a race condition, causing device state changes to get processed in random order. So, I backported my changes from trunk to 1.4. (closes issue #8407, patch provided by tim_ringenbach, committed patch by me) 2007-10-15 20:29 +0000 [r85687] Tilghman Lesher * apps/app_stack.c: Don't execute a gosub if the arguments is zero-len (not just NULL) Reported by davevg Fixed by me Closes issue #10985 2007-10-15 20:21 +0000 [r85686] Russell Bryant * main/say.c: Add a small fix for the tw version of saying dates. (closes issue #7827) Reported by: sharkey Patches: say.nits.patch uploaded by sharkey (license 172) 2007-10-15 20:15 +0000 [r85684] Jason Parker * Makefile: Properly use DESTDIR in 'config' target. Do not try to run chkconfig or similar if using DESTDIR. Issue 10938, patch by cabal95. 2007-10-15 19:22 +0000 [r85604-85649] Russell Bryant * main/utils.c: Be pedantic about handling memory allocation failure. * main/utils.c: The loop in the handler for the "core show locks" could potentially block for some amount of time. Be a little bit more careful and prepare all of the output in an intermediary buffer while holding a global resource. Then, after releasing it, send the output to ast_cli(). * channels/chan_sip.c: Make the default for the srvlookup option to be yes. It doesn't really make sense for it to default to off. The default configuration file has it on, and proper RFC behavior, as indicated by a comment in the code, is for it to be on. So, let's have it on by default to make lives easier. (closes issue #10954, suggested by jtodd) 2007-10-15 16:39 +0000 [r85571] Joshua Colp * configs/features.conf.sample: Document that DTMF based features only work when two channels are bridged together. (closes issue #10773) Reported by: pbayley 2007-10-15 16:34 +0000 [r85561] Russell Bryant * include/asterisk/strings.h: Make a few changes so that characters in the upper half of the ISO-8859-1 character set don't get stripped when reading configuration. (closes issue #10982, dandre) 2007-10-15 16:22 +0000 [r85559] Joshua Colp * main/rtp.c: Bring both DTMF begin and end frames up through to the core for DTMF feature handling. (closes issue #10826) Reported by: dimas 2007-10-15 15:40 +0000 [r85556] Russell Bryant * pbx/pbx_dundi.c: Ensure the buffer passed to ast_canmatch_extension() is properly initialized so that it is null terminated. (issue #10977) Reported by: dimas Patches: pbxdundi.patch uploaded by dimas (license 88) - small mods by me 2007-10-15 14:55 +0000 [r85552] Joshua Colp * main/rtp.c: If Monitor or a spy was added to a P2P or native bridged channel bring the channel back to the generic bridging core so the monitor or spy operations work. (closes issue #10943) Reported by: julianjm 2007-10-15 13:16 +0000 [r85540-85548] Russell Bryant * main/db.c: Suppress a LOG_DEBUG message if debug is not enabled. (closes issue #10980) Reported by: casper Patches: db.c.84633.diff uploaded by casper (license 55) * main/asterisk.c: Make sure remote consoles unmute themselves again after reconnecting. (closes issue #10847) Reported by: atis Patches: console_unmute_on_reconnect.patch uploaded by atis (license 242) * main/utils.c: Make sure that the base64 decoder returns a terminated string. (closes issue #10979) Reported by: ys Patches: util.c.diff uploaded by ys (license 281) - small mods by me * pbx/pbx_config.c: Don't create the context for users in users.conf until we know at least one user exists. (closes issue #10971) Reported by: dimas Patches: pbxconfig.patch uploaded by dimas (license 88) 2007-10-13 15:26 +0000 [r85536] Tilghman Lesher * configs/extensions.ael.sample: Remove deprecated syntax from sample ael file Reported and patched by: dimas Closes issue #10967 2007-10-13 05:48 +0000 [r85532-85533] Russell Bryant * main/asterisk.c, main/cli.c, include/asterisk/logger.h: Fix an issue with console verbosity when running asterisk -rx to execute a command and retrieve its output. The issue was that there was no way for the main Asterisk process to know that the remote console was connecting in the -rx mode. The way that James has fixed this is to have all remote consoles muted by default. Then, regular remote consoles automatically execute a CLI command to unmute themselves when they first start up. (closes issue #10847) Reported by: atis Patches: asterisk-consolemute.diff.txt uploaded by jamesgolovich (license 176) * main/asterisk.c, main/cli.c, include/asterisk/cli.h: Properly handle the case where read() may return the text for more than one CLI command at once for a remote console. (closes issue #10888) Reported by: jamesgolovich Patches: asterisk-climultiple.diff.txt uploaded by jamesgolovich (license 176) 2007-10-12 18:30 +0000 [r85523] Tilghman Lesher * doc/asterisk-mib.txt, doc/PEERING, LICENSE: Change Digium address 2007-10-12 15:45 +0000 [r85515-85517] Russell Bryant * res/res_smdi.c: Fix a spelling error in a log message. SMDI, not SDMI. (closes issue #10959) * pbx/pbx_realtime.c: Fix the potential use of an uninitialized buffer in a log message. (closes issue #10958) Reported by: dimas Patches: realtime.patch uploaded by dimas (license 88) 2007-10-11 15:26 +0000 [r85397] Joshua Colp * channels/chan_sip.c: When creating a new packet don't try to stop retransmission of it. It was just allocated/created so it's impossible for it to have already been scheduled. (closes issue #10945) Reported by: flefoll Patches: chan_sip.c.br14.85280.xmit_reliable-patch uploaded by flefoll (license 244) 2007-10-11 04:35 +0000 [r85356] Tilghman Lesher * main/pbx.c: A dollar sign by itself, not indicating a start of a variable or expression prematurely ends substitution (closes issue #10939) 2007-10-10 Russell Bryant * Asterisk 1.4.13 released. 2007-10-10 15:56 +0000 [r85316] Russell Bryant * include/asterisk/file.h: I introduced a new member to the ast_filestream struct in 1.4.12, but put it in the middle of the struct, instead of at the end. One of the Debian folks, paravoid, pointed out that this breaks binary compatability with modules compiled against older headers. So, I'm moving the new member to the end of the struct to resolve the situation. 2007-10-10 15:51 +0000 [r85315] Mark Michelson * main/utils.c: The thread ID should be unsigned. 2007-10-10 14:42 +0000 [r85277-85280] Joshua Colp * channels/chan_sip.c: If devicestate is passed a port number strip it out. (closes issue #10930) Reported by: ibc * channels/chan_sip.c: Add support for handling a 182 Queued response. (closes issue #10924) Reported by: ramonpeek Patches: queued-182.diff uploaded by ramonpeek (license 266) 2007-10-10 14:26 +0000 [r85276] Mark Michelson * apps/app_voicemail.c: A bunch of changes from sprintf to snprintf. See security advisory AST-2002-022 2007-10-10 14:14 +0000 [r85242] Joshua Colp * apps/app_voicemail.c: Close voicemail message description file if duration did not meet the minimum, or else we will eventually run out of file descriptors. (closes issue #10918) Reported by: brak2718 Patches: vm1.4.12.1.patch uploaded by brak2718 (license 279) 2007-10-10 06:24 +0000 [r85195] Kevin P. Fleming * include/asterisk/frame.h: use a macro instead of an inline function, so that backtraces will report the caller of ast_frame_free() properly 2007-10-09 21:55 +0000 [r85158] Tilghman Lesher * main/channel.c, main/utils.c, include/asterisk/lock.h: This commit fixes the following issues: - Deadlock in ast_write (issue #10406) - Deadlock in ast_read (issue #10406) - Possible mutex initialization error in lock.h (issue #10571) 2007-10-09 14:30 +0000 [r84990-85093] Joshua Colp * channels/chan_sip.c: Don't perform a reinvite if a transfer is in progress. (issue #10915) Reported by: ramonpeek * main/rtp.c: Only update codec information if the channel has a technology private structure. (issue #10915) Reported by: ramonpeek * main/rtp.c: Update codec information as well as address when doing hold reinvites. (issue #10868) Reported by: mavince * main/channel.c: Don't keep trying to native bridge if either of the channels are involved in a masquerade operation to be done. (closes issue #10696) Reported by: tbelder 2007-10-08 03:28 +0000 [r84957] Russell Bryant * Makefile.rules: Enable file dependency tracking for _all_ builds, and not just for builds with dev-mode enabled. I have seen enough problems caused by this that I don't think it's worth keeping. I want to continue to encourage anybody that is interested to continue to run Asterisk from svn. Furthermore, I do not want their systems to break when we change a structure definition in a header file. :) 2007-10-07 16:15 +0000 [r84890-84902] Philippe Sultan * res/res_jabber.c: Presence packets from a client who's connected with our Jabber ID are valid, therefore, those clients must be considered as buddies. The resource string helps us make the distinction between clients. Closes issue #10707, reported by yusufmotiwala. * res/res_jabber.c: Prevent Asterisk from crashing when receiving a presence packet without resource from a buddy that is known to have a resource list. Revert a change I previously made, where Asterisk could point to a freed memory location. 2007-10-05 19:42 +0000 [r84851] Tilghman Lesher * main/db.c: Log exactly why we can't open the database, if we fail (closes issue #10887) 2007-10-05 18:55 +0000 [r84818] Joshua Colp * main/rtp.c: Update the remembered RTP peer information when putting an endpoint on hold or taking it off hold so that the RTP stack does not initiate a needless reinvite. (closes issue #10868) Reported by: mavince 2007-10-05 16:44 +0000 [r84783] Russell Bryant * channels/chan_zap.c: Do deadlock avoidance in a couple more places. You can't lock two channels at the same time without doing extra work to make sure it succeeds. (closes issue #10895, patch by me) 2007-10-05 Russell Bryant * Asterisk 1.4.12.1 released. (This is mainly to include the app_queue fix for a memory leak on reload, but includes a couple of other bug fixes, as well.) 2007-10-05 01:39 +0000 [r84742] Russell Bryant * main/manager.c: Fix a copy/paste error in the description of UpdateConfig that was pointed out by JerJer on #asterisk-dev 2007-10-04 21:57 +0000 [r84692] Mark Michelson * apps/app_queue.c: Don't allocate space for queue members unless it's needed. You end up deleting dynamic members on a reload. Not good. closes issue (#10879, reported by dazza76, patched by me) 2007-10-04 21:36 +0000 [r84690] Kevin P. Fleming * channels/chan_zap.c: callers of sig2str already add the word 'signalling' in the appropriate place, so don't duplicate it 2007-10-04 14:51 +0000 [r84637] Joshua Colp * apps/app_queue.c: Create a duplicate of the channel's member name as the tab completion stuff will free it. (closes issue #10884) Reported by: adamg 2007-10-03 22:59 +0000 [r84581] Tilghman Lesher * main/rtp.c: When an RFC 2833 event is sent that we don't recognize, ignore it, don't queue a NULL digit (closes issue #10877) 2007-10-03 18:20 +0000 [r84511-84544] Steve Murphy * pbx/pbx_ael.c: closes issue #10870 ; where a CUT() function call in a switch expr doesn't execute correctly, because the commas in the function args are not converted to vertbars before the func is called. I modified just the switch code to convert the commas to vertbars if there, but if more of these sort of probs are found, I may have to resort to something a little more fundamental. We'll see, I guess. * pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18, pbx/ael/ael-test/ref.ael-vtest13, pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test3, pbx/pbx_ael.c, pbx/ael/ael-test/ref.ael-test5: closes issue #10834 ; where a null input to a switch statement results in a hangup; since switch is implemented with extensions, and the default case is implemented with a '.', and the '.' matches 1 or more remaining characters, the case where 0 characters exist isn't matched, and the extension isn't matched, and the goto fails, and a hangup occurs. Now, when a default case is generated, it also generates a single fixed extension that will match a null input. That extension just does a goto to the default extension for that switch. I played with an alternate solution, where I just tack an extra char onto all the patterns and the goto, but not the default case's pattern. Then even a null input will still have at least one char in it. But it made me nervous, having that extra char in , even if that's a pretty secret and low-level issue. 2007-10-02 Russell Bryant * Asterisk 1.4.12 released. 2007-10-02 20:06 +0000 [r84474] Russell Bryant * Makefile, build_tools/prep_tarball: * Don't build the menuselect-tree for the tarball, as it requires running the configure script first * Change the Makefile to note that menuselect-tree depends on the configure script. 2007-10-02 19:01 +0000 [r84410-84437] Jason Parker * res/res_features.c: Fix some odd formatting I missed.. * res/res_features.c: Finish up on transferee channel before return on failure. Issue 10821, patch by Ivan 2007-10-02 14:12 +0000 [r84370] Russell Bryant * channels/chan_sip.c: Use snprintf instead of sprintf in one place. There is no vulnerability here due to various buffer sizes around the code, but I still didn't like seeing a non length-limited copy of data coming off of the wire into a stack buffer, as this would be a problem in the future if buffer sizes elsewhere got changed or size limitations removed ... 2007-10-02 09:48 +0000 [r84345] Christian Richter * channels/chan_misdn.c: terminate USERUSER String with 0 2007-10-01 21:52 +0000 [r84291] Jason Parker * Makefile, Makefile.rules, channels/Makefile: Add dist-clean support for subdirs. Change h323 to only remove the Makefile on a dist-clean, rather than a clean. This fixes a bug I found with trying to run make after a make clean 2007-10-01 21:25 +0000 [r84274] Dwayne M. Hubbard * main/channel.c, main/manager.c, channels/chan_agent.c: moved get_base_channel() code from action_redirect to ast_channel_masquerade() for issue 7706 and BE-160 2007-10-01 21:18 +0000 [r84273] Steve Murphy * pbx/pbx_ael.c: Anything to keep gcc 4.2 happy... 2007-10-01 21:07 +0000 [r84271] Russell Bryant * main/utils.c, include/asterisk/lock.h: Fulfull a feature request from Qwell on the "core show locks" output. It will now note the lock type for each lock that a thread holds. (mutex, rdlock, or wrlock) 2007-10-01 20:27 +0000 [r84239] Steve Murphy * pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/pbx_ael.c: closes issue #10777 -- by returning a null for the parse tree when there's really nothing there, and making sure we don't try to do checking on a null tree. 2007-10-01 19:56 +0000 [r84166-84236] Russell Bryant * res/res_agi.c: Add another sanity check in the AGI read loop. We really don't care about EAGAIN unless we didn't read an entire line. If there is a newline at the end if the read buffer, break, because we got the whole thing. (reported and patched by bmd) * include/asterisk/lock.h: Show rwlocks in the "core show locks" output. Before, it only showed mutexes. * channels/Makefile: Remove another file in "make clean". (closes issue #10814, paravoid) * apps/app_dial.c: Simplify the CAN_EARLY_BRIDGE macro a bit. 2007-10-01 14:10 +0000 [r84158-84163] Joshua Colp * configs/usbradio.conf.sample (removed): Remove chan_usbradio config file from tree, it is not present in here. (closes issue #10839) Reported by: casper * res/res_musiconhold.c: Fix randomness. save_pos was being set to 0 initially instead of -1, causing it to jump to position 0 when moh started. (closes issue #10859) Reported by: jamesgolovich Patches: asterisk-mohpos2.diff.txt uploaded by jamesgolovich (license 176) * apps/app_dial.c: Only attempt early bridging if the options given to Dial() permit it. (closes issue #10861) Reported by: peekyb 2007-09-30 20:02 +0000 [r84146] Russell Bryant * include/asterisk/module.h: Fix the AST_MODULE_INFO macro for C++ modules. The load and reload parameters were in the wrong place. (closes issue #10846, alebm) 2007-09-29 23:00 +0000 [r84133-84135] Steve Murphy * pbx/ael/ael-test/ael-ntest22/t1/a.ael (added), pbx/ael/ael-test/ael-ntest22/t1/b.ael (added), pbx/ael/ael-test/ael-ntest22/t1/c.ael (added), pbx/ael/ael-test/ael-ntest22/t2/d.ael (added), pbx/ael/ael-test/ael-ntest22/t2/e.ael (added), pbx/ael/ael-test/ael-ntest22/t2/f.ael (added), pbx/ael/ael-test/ref.ael-test2, pbx/ael/ael-test/ref.ael-ntest22 (added), pbx/ael/ael-test/ael-ntest22/t3/g.ael (added), pbx/ael/ael-test/ref.ael-test3, pbx/ael/ael-test/ael-ntest22/t3/h.ael (added), pbx/ael/ael-test/ref.ael-test4, pbx/ael/ael-test/ael-ntest22/t3/i.ael (added), pbx/ael/ael-test/ael-ntest22/t3/j.ael (added), pbx/ael/ael-test/ael-ntest22/qq.ael (added), pbx/ael/ael-test/ael-ntest22/t1 (added), pbx/ael/ael-test/ael-ntest22/t2 (added), pbx/ael/ael-test/ael-ntest22/t3 (added), pbx/ael/ael-test/ael-ntest22/extensions.ael (added), pbx/ael/ael-test/ael-ntest22 (added): This is a regression update that matches what I did in 84134 for AEL regressions. * pbx/ael/ael_lex.c, pbx/ael/ael.flex: This issue sort of closes 10786; All config files support #include with globbing (you know, *,[chars],?,{list,list},etc), so I've updated the AEL system to support this also. 2007-09-28 14:13 +0000 [r84049-84078] Tilghman Lesher * main/say.c: Correct pronunciations of numbers for .nl (Closes issue #10837) * main/channel.c: Avoid a deadlock with ALL of the locks in the masquerade function, not just the pairs of channels. (Closes issue #10406) 2007-09-27 23:12 +0000 [r84018] Dwayne M. Hubbard * main/manager.c, channels/chan_agent.c, include/asterisk/channel.h: if an Agent is redirected, the base channel should actually be redirected. This was causing multiple issues, especially issue 7706 and BE-160 2007-09-27 00:01 +0000 [r83976] Russell Bryant * pbx/pbx_dundi.c: remove a todo item that has been completed 2007-09-26 23:53 +0000 [r83974] Kevin P. Fleming * channels/chan_alsa.c: avoid the weird usage of assert() in the ALSA header files that gcc 4.2 wants to complain about 2007-09-26 21:35 +0000 [r83910-83943] Russell Bryant * channels/chan_sip.c: I changed my mind ... I think this should be a LOG_NOTICE. * channels/chan_sip.c: Add a log message that was requested by the masses in the developer tutorial session at Astricon. chan_sip did not output any message when a call was rejected because the extension was not found. This adds a verbose message (at verbose level 3) to note when this happens. * channels/chan_misdn.c: Fix building chan_misdn under dev-mode. (please run the configure script with --enable-dev-mode so this doesn't happen again ...) 2007-09-26 18:35 +0000 [r83879] Tilghman Lesher * channels/chan_zap.c: Remove unused 4k of memory on the program stack (closes issue #10827) 2007-09-25 14:13 +0000 [r83637-83773] Tilghman Lesher * main/app.c: jmls pointed out that unsetting the group and setting the group to the blank string aren't quite the same. * build_tools/make_defaults_h: In the source, keys are relative to the datadir, not varlib (which is the same in most cases, but it's good to be accurate). Closes issue #10811 * doc/realtime.txt: Oops. Removed the unworkable workaround. This note should never have been in the release. * main/app.c: Making change to group splitting, as discussed on the -dev list. The main effect of this will be to permit Set(GROUP([cat])=), i.e. unsetting a group. 2007-09-24 07:54 +0000 [r83620] Christian Richter * channels/chan_misdn.c: fixed round_robin group dial method, this never worked well on BRI Ports (2 channels) 2007-09-22 19:39 +0000 [r83558-83589] Steve Murphy * pbx/pbx_ael.c: This closes issue #10788 -- The exact same fixes are made here for the first arg in the for(arg1; arg2; arg3) {} statement, as were done for the 3rd arg. It can now be an assignment that will embedded in a Set() app, or a macro call, or an app call. * pbx/pbx_ael.c: This closes issue #10788 -- the 3rd arg in the for statement is now wrapped in Set() only if there's an '=' in that string. Otherwise, if it begins with '&', then a Macro call is generated; otherwise it is made into an app call. A bit more accomodating, keeps the new guys happy, and the guys with ael-1 code should be happy, too 2007-09-21 14:37 +0000 [r83432] Russell Bryant * main/rtp.c, channels/misdn_config.c, main/cdr.c, main/channel.c, channels/chan_misdn.c, pbx/ael/ael.tab.c, main/ast_expr2f.c, main/file.c, include/asterisk/sched.h, channels/chan_h323.c, pbx/pbx_dundi.c, utils/ael_main.c, main/ast_expr2.fl, channels/chan_mgcp.c, main/sched.c, res/res_config_pgsql.c, main/dnsmgr.c, channels/chan_sip.c, pbx/ael/ael.y, main/db1-ast/hash/hash.c, include/asterisk/channel.h, channels/chan_iax2.c: gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set of changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2. (closes issue #10774, patch from qwell) 2007-09-21 13:34 +0000 [r83400] Joshua Colp * channels/chan_sip.c: Fix video under certain circumstances. It would have been possible for the formats on the channel to not contain the video format. (closes issue #10782) Reported by: cwhuang 2007-09-20 21:16 +0000 [r83316-83348] Russell Bryant * main/asterisk.c: When daemonizing, don't change working directory to "/". It makes it not be able to do a core dump when not running as uid=root. (closes issue #10766, xrg) * contrib/scripts/safe_asterisk: Change safe_asterisk to explicitly ask for /bin/bash, as it uses bashisms. (closes issue #10772, reported by culrich) 2007-09-20 17:09 +0000 [r83246] Jason Parker * apps/app_disa.c: If # is pressed after dialing an extension in DISA, stop trying to collect more digits. (issue #10754) Reported by: atis Patches: app_disa.c.branch.patch uploaded by atis (license 242) app_disa.c.trunk.patch uploaded by atis (license 242) 2007-09-20 16:25 +0000 [r83230-83232] Joshua Colp * channels/chan_sip.c: Make sure the minimum T1 timer value is obeyed in all cases. (closes issue #10768) Reported by: flefoll Patches: chan_sip.c.trunk.83071.retrans-patch uploaded by flefoll (license 244) chan_sip.c.br14.83070.retrans-patch uploaded by flefoll (license 244) * channels/chan_sip.c: Fix a minor spelling error. (closes issue #10769) Reported by: flefoll Patches: chan_sip.c.trunk.83071.inita-patch uploaded by flefoll (license 244) chan_sip.c.br14.83070.inita-patch uploaded by flefoll (license 244) 2007-09-19 19:50 +0000 [r83121-83179] Russell Bryant * apps/app_system.c: The System() and TrySystem() applications can take a substantial amount of time to execute while not servicing the channel. So, put the channel in autoservice while the command is being executed. (closes issue #10726, reported by mnicholson) * funcs/func_curl.c: Using curl can take a substantial amount of time, so the channel should be autoserviced while waiting for it to complete. (closes issue #10725, reported by mnicholson) * channels/chan_iax2.c: When handling a reload of chan_iax2, don't use an ao2_callback() to POKE all peers. Instead, use an iterator. By using an iterator, the peers container is not locked while the POKE is being done. It can cause a deadlock if the peers container is locked because poking a peer will try to lock pvt structs, while there is a lot of other code that will hold a pvt lock when trying to go lock the peers container. (reported to me directly by Loic Didelot. Thank you for the debug info!) * main/manager.c: Fix up another potential race condition. Do the loop decrementing use count on events with the eventq protected from being changed. (reported on IRC by Ivan) 2007-09-19 13:47 +0000 [r83070-83074] Joshua Colp * apps/app_queue.c: Protect the CDR record from modification by pbx_exec so that the application data contains the Queue data. (closes issue #10761) Reported by: snar Patches: app-queue-mixmonitor.patch uploaded by snar (license 245) * channels/chan_sip.c: (closes issue #10760) Reported by: dimas Patches: chan_sip.patch uploaded by dimas (license 88) Read in subscribecontext option in general to be the default. 2007-09-19 09:32 +0000 [r83023-83024] Christian Richter * channels/chan_misdn.c: removed comment which violates the coding guidelines. * channels/misdn_config.c, channels/chan_misdn.c, channels/misdn/chan_misdn_config.h: added 'astdtmf' option to allow configuring the asterisk dtmf detector instead of the mISDN_dsp ones. also added the patch from irroot #10190, so that dtmf tones detected by the asterisk detector are passed outofband to asterisk, to make any use of dtmf tones at all. 2007-09-19 00:19 +0000 [r82992] Russell Bryant * apps/app_flash.c: Change the description of app_flash to note how it can be a useful tool instead of just saying that it is generally a worthless feature. (Thanks to Jim Van Meggelen for pointing it out and providing the proposed text) 2007-09-18 23:41 +0000 [r82961] Joshua Colp * apps/app_queue.c: Initialize a variable to NULL to make the world happy. 2007-09-18 22:42 +0000 [r82929] Russell Bryant * include/asterisk/agi.h, res/res_agi.c: Add a new patch to handle interrupting the fgets() call when using FastAGI. This version of the patch maintains the original behavior of the code when not using FastAGI. (closes issue #10553) Reported by: juggie Patches: res_agi_fgets-4.patch uploaded by juggie (license 24) res_agi_fgets_1.4svn.patch uploaded by juggie (license 24) Slight mods by me Tested by: juggie, festr 2007-09-18 21:49 +0000 [r82887-82913] Doug Bailey * main/manager.c: Corrected patch applied in revision r82887. * main/manager.c: Fixed a bug where http manager sessions prevented the eventq from being cleaned out because http manager sessions do not have a valid file descriptor. 2007-09-18 20:56 +0000 [r82867] Russell Bryant * main/manager.c: Fix a memory leak that can occur on systems under higher load. The issue is that when events are appended to the master event queue, they use the number of active sessions as a use count so it will know when all active sessions at the time the event happened have consumed it. However, the handling of the number of sessions was not properly synchronized, so the use count was not always correct, causing an event to disappear early, or get stuck in the event queue for forever. (closes issue #9238, reported by bweschke, patch from Ivan, modified by me) 2007-09-18 20:09 +0000 [r82865] Mark Michelson * apps/app_queue.c: Moving the logic for handling an empty membername to the create_member function so that there is a common place where this occurs instead of being spread out to several different places. 2007-09-18 18:59 +0000 [r82834] Kevin P. Fleming * apps/app_queue.c: there is no need for conditional logic to select ->interface or ->membername, snince ->membername will always be populated 2007-09-18 16:31 +0000 [r82802] Russell Bryant * pbx/pbx_dundi.c: When copying the contents from the wildcard peer, do a deep copy instead of shallow copy so that it doesn't crash when beging destroyed. (closes issue #10546, patch by me) 2007-09-18 15:28 +0000 [r82751] Jason Parker * configs/sip.conf.sample: Correct the allowexternaldomains option in SIP sample config. Issue 10753 2007-09-17 20:16 +0000 [r82594-82676] Russell Bryant * apps/app_voicemail.c, main/stdtime/localtime.c: Put a memset in ast_localtime() instead of a couple places in app_voicemail to prevent the problem everywhere instead of just a couple of places. (related to issue #10746) * apps/app_voicemail.c: Initialize some memory to fix crashes when leaving voicemail. This problem was fixed by running Asterisk under valgrind. (closes issue #10746, reported by arcivanov, patched by me) *** IMPORTANT NOTE: We need to check to see if this same bug exists elsewhere. * res/res_features.c: Handle the case where there are multiple dynamic features with the same digit mapping, but won't always match the activated on/by access controls. In that case, the code needs to keep trying features for a match. (reported by Atis on the asterisk-dev list, patched by me) 2007-09-17 16:40 +0000 [r82590-82592] Kevin P. Fleming * channels/chan_iax2.c: revert a change that wasn't supposed to be committed... doh! * apps/app_queue.c, channels/chan_iax2.c: fix a couple of places where a logical member name (if specified) was not used, but instead the direct interface was listed 2007-09-17 02:00 +0000 [r82514] Joshua Colp * main/pbx.c: (closes issue #10734) Reported by: asgaroth Instead of passing a NULL pointer into snprintf pass "". It makes Solaris much happier. 2007-09-14 21:19 +0000 [r82444] Steve Murphy * main/cdr.c: closes issue #10668; thanks to arkadia for his patch; had to leave out the bit about ending the previous cdr in the fork; it would destroy current implementations. 2007-09-14 21:17 +0000 [r82435] Russell Bryant * configs/zapata.conf.sample: Add a note to help clarify the value set with the echocancel option. (inspired by Malcolm's blog post on blogs.digium.com about HPEC) 2007-09-14 18:35 +0000 [r82396-82398] Mark Michelson * apps/app_queue.c: Crap, I broke the build. Fixed. * apps/app_queue.c: Adding member name field to manager events where they were missing before (closes issue #10721, reported by snar) 2007-09-14 17:48 +0000 [r82394] Jason Parker * channels/chan_zap.c: If a channel does not have an owner, do not try to set a channel variable. This will end up making the channel variable global, which is not right. Closes issue #10720, patch by flefoll. 2007-09-14 15:50 +0000 [r82382-82385] Russell Bryant * build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Add checking for libusb here, so nobody has to deal with conflicts in the chan_usbradio-1.4 branch every time the configure script gets changed * channels/chan_usbradio.c (removed), channels/xpmr (removed), channels/Makefile: Remove chan_usbradio from the main 1.4 branch. It can't live here because we have a strict policy to not include new features in release branches. However, I'm going to merge it into trunk, and I also have a special 1.4 based branch that includes this module. svn co http://svn.digium.com/svn/asterisk/team/jdixon/chan_usbradio-1.4 2007-09-14 14:42 +0000 [r82376] Mark Michelson * doc/CODING-GUIDELINES: Fixing a typo in the coding guidelines (closes issue #10717, reported and patched by leedm777) 2007-09-14 01:24 +0000 [r82368] Jim Dixon * apps/app_rpt.c: Fixed problem with changes made to cdr functionality 2007-09-14 00:52 +0000 [r82367] Kevin P. Fleming * channels/chan_usbradio.c: this new driver may not live in this branch for long (since it is a new feature), but it definitely should not be built by default 2007-09-14 00:34 +0000 [r82366] Jim Dixon * apps/app_rpt.c, channels/xpmr/xpmr_coef.h (added), channels/chan_usbradio.c (added), channels/xpmr/xpmr.h (added), channels/xpmr (added), channels/xpmr/LICENSE (added), channels/xpmr/sinetabx.h (added), configs/usbradio.conf.sample (added), channels/Makefile, channels/xpmr/xpmr.c (added): Added channel driver for USB Radio device and support thereof. 2007-09-13 23:11 +0000 [r82358] Jason Parker * pbx/pbx_spool.c: Fix a small typo. retrytime > waittime 2007-09-13 20:16 +0000 [r82346] Mark Michelson * apps/app_queue.c: Preemptively fixing a possible segfault. It is possible that queuename is NULL (meaning pause ALL queues), so use q->name instead. 2007-09-13 20:11 +0000 [r82344] Jason Parker * cdr/cdr_csv.c: Fix a crash that could occur in cdr_csv when mutliple threads tried to close the same file. Do we actually need the locking here? What happens if you open the same file twice, and two threads try to write to it at the same time? Is fputs() going to write out the entire line at once? I suspect that it could be possible for the second fopen to run during the first fputs, so the position could be in the middle of the previously written line... Issue 10347, initial patch by explidous (but I removed all of the paranoia stuff..) 2007-09-13 18:57 +0000 [r82337-82339] Russell Bryant * main/astobj2.c: resolve a warning when not building under dev mode * main/astobj2.c, main/asterisk.c, include/asterisk.h: Only compile in tracking astobj2 statistics if dev-mode is enabled. Also, when dev mode is enabled, register the CLI command that can be used to run the astobj2 test and print out statistics. 2007-09-13 18:12 +0000 [r82335] Kevin P. Fleming * /, LICENSE: Merged revisions 82334 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r82334 | kpfleming | 2007-09-13 11:10:12 -0700 (Thu, 13 Sep 2007) | 2 lines clarify the OpenSSL and OpenH323 license exceptions ........ 2007-09-13 16:25 +0000 [r82326] Mark Michelson * apps/app_queue.c: Added logic to handle the unlikely case that someone has two queues with the same name. Asterisk will log a warning message letting the user know that one was already defined with that name and is it skipping all further instances. This also will work for realtime queues but in order for that to happen, the user would have to trigger a perfectly timed reload as a realtime queue is being looked up, which is highly unlikely (but taken care of nonetheless). 2007-09-13 11:47 +0000 [r82309] Philippe Sultan * channels/chan_gtalk.c: Closes issue #9401, reported and patched by irrot, with slight modifications by me. Handle DTMF sent by Asterisk properly. 2007-09-12 21:56 +0000 [r82296] Russell Bryant * res/res_agi.c: Fix a check of the wrong pointer, as pointed out by an XXX comment left in the code. The problem was harmless, however. 2007-09-12 21:28 +0000 [r82291] Tilghman Lesher * main/stdtime/tzfile.h: Oops, wrong location for FreeBSD zone files 2007-09-12 20:24 +0000 [r82286] Dwayne M. Hubbard * apps/app_meetme.c: remove a race condition for the creation of recordthread's, and fix a small memory leak. This closes issue# 10636 2007-09-12 20:12 +0000 [r82285] Tilghman Lesher * main/stdtime/private.h, main/stdtime/tzfile.h, include/asterisk/localtime.h, main/stdtime/localtime.c: Working on issue #10531 exposed a rather nasty 64-bit issue on ast_mktime, so we updated the localtime.c file from source. Next we'll have to write ast_strptime to match. 2007-09-12 15:16 +0000 [r82278-82280] Russell Bryant * main/asterisk.c: Clean up the output of "asterisk -h". This tweaks the wording and wraps lines at 80 characters. (closes issue #10699, seanbright) * res/res_agi.c: revert patch from issue #10553, as someone not using fastagi reported that this broke their system. 2007-09-12 14:30 +0000 [r82274-82276] Mark Michelson * apps/app_voicemail.c: Accidentally committed changes to app_voicemail which do NOT need to be in the 1.4 branch yet. reverting... * apps/app_voicemail.c, apps/app_queue.c: We should only initialize a realtime queue when it is allocated, not every time we access it. This prevents the members ao2_container from being reallocated every time the queue is accessed. I also removed a debug message I had accidentally left in on a previous commit. 2007-09-11 22:37 +0000 [r82267] Russell Bryant * apps/app_queue.c: Fix incorrect uses of ao2_find(). Every one of these calls was reading bogus memory ... 2007-09-11 21:41 +0000 [r82265] Joshua Colp * codecs/gsm/src/lpc.c, codecs/gsm/src/long_term.c: (closes issue #10679) Reported by: andrew Build under dev mode when K6OPTS is enabled. 2007-09-11 20:49 +0000 [r82263] Russell Bryant * apps/app_queue.c: Fix another missing unref of member objects. This one was pointed out by Marta. When building the outgoing list in try_calling(), a member reference is stored in each outgoing entry. However, when this list got destroyed, the reference was not released. 2007-09-11 20:36 +0000 [r82261] Steve Murphy * main/cdr.c: this change should fix issue # 10659 -- what I worry about is how many other bug reports it may generate. Hopefully, we can please the/a majority. Hopefully. We shall see. Calls not marked ANSWERED and with only one channel name will not be posted. This should eliminate the double CDR's. 2007-09-11 16:05 +0000 [r82252] Mark Michelson * apps/app_queue.c: All instances of ao2_iterators which were just named 'i' have been renamed to 'mem_iter' so that when refcounted queues are merged into trunk, there will be little confusion regarding iterator names, especially when a queue and member iterator are used in the same function. 2007-09-11 16:03 +0000 [r82250] Russell Bryant * pbx/pbx_dundi.c: The sample dundi.conf claims support for a wildcard peer entry - [*], but the code did not support it. This patch makes it work. (closes issue #10546, patch by dds, with some changes by me) 2007-09-11 16:01 +0000 [r82249] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: fixed a hold/retrieve issue. 2007-09-11 15:26 +0000 [r82245] Russell Bryant * res/res_agi.c: (closes issue #10553) Reported by: juggie Patches: res_agi_fgets-2.patch uploaded by juggie (license 24) Tested by: juggie When using fastagi, fgets() can return before a full line is read. Add explicit handling for the case where it gets interrupted. 2007-09-11 14:56 +0000 [r82243] Joshua Colp * pbx/pbx_dundi.c: (closes issue #10577) Reported by: jamesgolovich Patches: asterisk-dundifree.diff.txt uploaded by jamesgolovich (license 176) Don't leak memory when unloading DUNDi. 2007-09-11 14:34 +0000 [r82198-82240] Russell Bryant * apps/app_queue.c: Add a couple more missing unrefs of queue member objects * apps/app_queue.c: Add a missing unref of a queue member in an error handling block * apps/app_queue.c: Document why membercount can not simply be replaced by ao2_container_count() * main/astobj2.c: backport astobj2 race condition fix. This function is the exact same as trunk so it applies here as well. 2007-09-10 18:02 +0000 [r82155] Tilghman Lesher * apps/app_queue.c: Convert struct member to use refcounts (closes issue #10199) 2007-09-10 15:02 +0000 [r82091] Mark Michelson * configs/misdn.conf.sample: Removing non-existent options from misdn configuration sample. (closes issue #10678, reported and patched by IgorG) 2007-09-09 02:35 +0000 [r82028] Tilghman Lesher * include/asterisk/lock.h: Fix inline compiles on really old compilers (who uses gcc 2.7 anymore, really?) 2007-09-08 18:41 +0000 [r81952-81997] Russell Bryant * main/asterisk.c: Fix a small memory leak. ast_unregister_atexit() did not free the entry it removed. * .cleancount: (closes issue #10672) Bump the cleancount so that a "make clean" will be forced. This is needed because my fix in revision 81599 made a change to a data structure in file.h, and since file dependency tracking is only on with dev-mode enabled, file format modules that don't get rebuilt may crash, as is the case with this issue. This makes me wonder - how much faster does the code build without the file dependency tracking enabled? If it doesn't make much of a difference, then it may be worth just keeping it on all of the time, or perhaps just not in release tarballs, so that this type of issue is avoided. 2007-09-07 19:48 +0000 [r81923] Jason Parker * apps/app_queue.c: Allow the MEMBERINTERFACE variable to be used as the mixmonitor filename. This moves the setting of the MEMBERINTERFACE variable to before mixmonitor. Issue 10671, patch by sim. 2007-09-07 15:25 +0000 [r81886] Mark Michelson * configs/queues.conf.sample: Moving the explanation for joinempty to a more appropriate place 2007-09-06 22:28 +0000 [r81832] Russell Bryant * channels/chan_sip.c: (closes issue #9724, closes issue #10374) Reported by: kenw Patches: 9724.txt uploaded by russell (license 2) Tested by: kenw, russell Resolve a deadlock that occurs when doing a SIP transfer to parking. I come across this type of deadlock fairly often it seems. It is very important to mind the boundary between the channel driver and the core in respect to the channel lock and the channel-pvt lock. Channel drivers lock to lock the pvt and then the channel once it calls into the core, while the core will do it in the opposite order. The way this is avoided is by having channel drivers either release their pvt lock while calling into the core, or such as in this case, unlocking the pvt just long enough to acquire the channel lock. 2007-09-06 22:05 +0000 [r81778-81826] Jason Parker * Makefile: We added COPTS for ASTCFLAGS additions, but not LDOPTS for ASTLDFLAGS. This adds LDOPTS * include/asterisk/astobj2.h: This should fix a build issue that people building against uClibc were seeing with the addition of astobj2 2007-09-06 19:40 +0000 [r81776] Joshua Colp * apps/app_meetme.c: (closes issue #10122) Reported by: stevefeinstein Patches: meetme-unmute-manager.diff uploaded by qwell (license 4) Tested by: stevefeinstein After looking over the code I agree with Qwell. Setting the file descriptor to conference each time just causes a fight back and forth. 2007-09-06 16:56 +0000 [r81743] Philippe Sultan * include/asterisk/jabber.h, channels/chan_gtalk.c: Various string length fixes. Removed an unused variable in aji_client structure (context) 2007-09-06 16:25 +0000 [r81682-81713] Mark Michelson * apps/app_queue.c: Fixes an issue where valid DTMF had to be pressed twice to exit a queue if a member's phone was ringing. (closes issue #10655, reported by strider2k, patched by me) * res/res_features.c: Fixes a memory leak (closes issue #10658, reported and patched by Ivan) 2007-09-06 14:20 +0000 [r81650] Philippe Sultan * res/res_jabber.c: According to both RFC 3920 - section 9.1.2 - and Google's XMPP server complaint, if set, the 'from' attribute must be set to the user's full JID. 2007-09-05 20:53 +0000 [r81599] Russell Bryant * include/asterisk/file.h, main/say.c, res/res_features.c, main/file.c, include/asterisk/channel.h: Fix an issue that can occur when you do an attended transfer to parking. If you complete the transfer before the announcement of the parking spot finishes, then the channel being parked will hear the remainder of the announcement. These changes make it so that will not happen anymore. Basically, res_features sets a flag on the channel is playing the announcement to so that the file streaming core knows that it needs to watch out for a channel masquerade, and if it occurs, to abort the announcement. (closes BE-182) 2007-09-05 17:18 +0000 [r81569] Tilghman Lesher * include/asterisk/lock.h: Solaris x86 compatibility fix 2007-09-05 15:19 +0000 [r81525] Mark Michelson * apps/app_queue.c: Fixing the build... 2007-09-05 15:14 +0000 [r81523] Jason Parker * channels/chan_phone.c: Do not try to unregister a NULL channel tech. Also changed load_module function to use defines rather than numbers for return values. Issue 10651, patch by rbraun_proformatique, with additions by me. 2007-09-05 15:03 +0000 [r81520] Mark Michelson * apps/app_queue.c: Reverting behavior of QUEUE_MEMBER_COUNT to only count members who are logged in and available. (related to issue #10652, reported by wuwu) 2007-09-05 13:11 +0000 [r81492] Joshua Colp * main/channel.c: (closes issue #10650) Reported by: tacvbo Only print out that the spy was removed while holding the spy lock. 2007-09-04 20:54 +0000 [r81453-81455] Jason Parker * apps/app_followme.c: Rather than attempt to play a file, we can just check whether it exists. Issue 10634, patch by me, testing by pabelanger, sanity checked by bweschke * configs/followme.conf.sample: Change default followme config file to point to the correct files. Issue 10644, patch by pabelanger 2007-09-04 18:37 +0000 [r81448] Russell Bryant * main/astobj2.c, include/asterisk/astobj2.h, channels/chan_iax2.c: Remove the typedefs on ao2_container and ao2_iterator. This is simply because we don't typedef objects anywhere else in Asterisk, so we might as well make this follow the same convention. 2007-09-04 16:40 +0000 [r81442] Kevin P. Fleming * channels/chan_sip.c: there is no point in sending 401 Unauthorized to a UAS that sent us a properly-formatted Authentication header with the expected username and nonce but an incorrect response (which indicates the shared secret does not match)... instead, let's send 403 Forbidden so that the UAS doesn't retry with the same authentication credentials repeatedly 2007-09-04 14:23 +0000 [r81435-81439] Joshua Colp * channels/chan_iax2.c: (closes issue #10632) Reported by: jamesgolovich Patches: asterisk-iaxfirmwareleak.diff.txt uploaded by jamesgolovich (license 176) Fix memory leak when unloading chan_iax2. The firmware files were not being freed. * main/channel.c: (closes issue #10476) Reported by: mdu113 Only look for the end of a digit when waiting for a digit. This in turn disables emulation in the core. * main/dns.c: (closes issue #10610) Reported by: john Patches: dns.c.patch uploaded by john (license 218) Tested by: mvanbaak Don't return a match if no SRV record actually exists. 2007-09-03 18:57 +0000 [r81433] Russell Bryant * channels/chan_iax2.c: Remove a couple of calls to ast_string_field_free_pools() on peers in error handling blocks in the code for building peers. The peer object destructor does this and doing it twice will cause a crash. (closes issue #10625, reported by and patched by pnlarsson) 2007-09-01 15:57 +0000 [r81426-81428] Mark Michelson * apps/app_queue.c: Changed a comment to be more accurate. (really this is just a test to make sure I can commit properly from home) * main/astobj2.c, include/asterisk/astobj2.h: Making match_by_addr into ao2_match_by_addr and making it available everywhere since it could be a handy callback to have 2007-08-31 21:27 +0000 [r81418] Russell Bryant * include/asterisk/astobj2.h: Remove references to a debugging parameter that does not exist 2007-08-31 19:48 +0000 [r81416] Mark Michelson * apps/app_queue.c: Fixed broken behavior of a reload on realtime queues. Prior to this patch, if a reload was issued and a realtime queue had callers waiting in it, then the queue would be removed from the queue list, but it would not actually be freed (in fact, a debug message warning about a memory leak would come up). With this patch, reloads do not touch realtime queues at all. 2007-08-31 19:16 +0000 [r81415] Tilghman Lesher * funcs/func_logic.c: The IF() function was not allowing true values that had embedded colons (closes issue #10613) 2007-08-31 18:44 +0000 [r81412] Jason Parker * apps/app_dial.c: Re-order dial options to be in line with the existing alpha order. Issue 10621, initial patch by junky 2007-08-31 17:38 +0000 [r81410] Philippe Sultan * channels/chan_gtalk.c: Make the 'gtalk show channels' CLI command available. Closes issue 10548, reported by keepitcool. 2007-08-31 15:53 +0000 [r81406] Joshua Colp * res/res_speech.c: Make it the engine's responsible to check for the presence of results. 2007-08-31 15:51 +0000 [r81405] Kevin P. Fleming * codecs/codec_zap.c: add missing "transcoder show" (and deprecated "show transcoder") CLI commands that were in 1.2 but never added to 1.4 2007-08-31 14:38 +0000 [r81401-81403] Joshua Colp * res/res_features.c: (closes issue #10618) Reported by: dimas Don't pass through the stopped sounds frame.... just drop it. * res/res_features.c: (closes issue #10009) Reported by: dimas Don't output a bridge failed warning message if it failed because one of the channels was part of the masquerade process. That is perfectly normal. 2007-08-30 22:05 +0000 [r81397] Mark Michelson * apps/app_queue.c: Removing an extraneous (and possibly misleading) log message. Firstly, if the announce file isn't found, the streaming functions will report it. Secondly, not all non-zero returns from play_file mean that the announce file wasn't found. Positive return values simply mean that a digit was pressed (most likely to skip through the announcement). (closes issue #10612, reported and patched by dimas) 2007-08-30 21:23 +0000 [r81395] Joshua Colp * channels/chan_sip.c: (closes issue #10514) Reported by: casper Patches: chan_sip.c.80129.diff uploaded by casper (license 55) Remove needless check for AUTH_UNKNOWN_DOMAIN. It was impossible for it to ever be that value. 2007-08-30 21:11 +0000 [r81392] Steve Murphy * main/cdr.c: via issue 10599, where 'CDR already initialized' messages are being generated. Since all channels will have an init'd CDR attached at creation time, this message is now particularly useless. Removed. 2007-08-30 15:38 +0000 [r81383] Russell Bryant * channels/h323/ast_h323.cxx: Add missing checks for the PTRACING define. (closes issue #10559, paravoid) 2007-08-30 15:35 +0000 [r81381] Mark Michelson * apps/app_queue.c: Changed some manager event messages to reflect whether a queue member is a realtime member or not 2007-08-30 15:33 +0000 [r81379] Russell Bryant * configs/modem.conf.sample (removed), configs/enum.conf.sample, configs/extensions.ael.sample: Fix a typo, update a reload command, and remove an unused configuration file. (closes issue #10606, casper) 2007-08-30 14:53 +0000 [r81375] Joshua Colp * main/pbx.c: (closes issue #10603) Reported by: jmls Patches: pbx.diff uploaded by jmls (license 141) Backport changes from 81372. Add REASON dialplan variable for when an originated call fails and the failed extension is executed. 2007-08-30 14:43 +0000 [r81373] Christian Richter * channels/chan_misdn.c: Fixed some warnings. 2007-08-30 14:23 +0000 [r81369] Joshua Colp * res/res_features.c: (issue #10599) Reported by: dimas Handle the -1 control subclass during feature dialing (it indicates to stop sounds). 2007-08-30 08:31 +0000 [r81367] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: Fixed a severe issue where a misdn_read would lock the channel, but read would not return because it blocks. later chan_misdn would try to queue a frame like a AST_CONTROL_ANSWER which could result in a deadlock situation. misdn_read will now not block forever anymore, and we don't queue the ANSWER frame at all when we already was called with misdn_answer -> answer would be called twice. Also we don't explicitly send a RELEASE_COMPLETE on receiption of a RELEASE anymore, because mISDN does that for us, this resulted in a problem on some switches, which would block our port after some calls for a short while. 2007-08-29 16:35 +0000 [r81346-81349] Mark Michelson * apps/app_queue.c: This patch, in essence, will correctly pause a realtime queue member and reflect those changes in the realtime engine. (issue #10424, reported by irroot, patch by me) This patch creates a new function called update_realtime_member_field, which is a generic function which will allow any one field of a realtime queue member to be updated. This patch only uses this function to update the paused status of a queue member, but it lays the foundation for persisting the state of a realtime member the same way that static members' state is maintained when using the persistentmembers setting * apps/app_queue.c: Changed some tabs to spaces 2007-08-29 15:57 +0000 [r81342] Russell Bryant * main/Makefile: If chan_h323 is not being built, don't use g++ to do the final link of Asterisk. (in response to a question on the asterisk-dev list) 2007-08-29 15:52 +0000 [r81340] Mark Michelson * apps/app_queue.c: This fix creates a more accurate way of detecting whether realtime members were deleted. (closes issue 10541, reported by Alric, patched by me) The REALLY nice things about this patch is that queue members now have a "realtime" field which will be true if the member is a realtime member. This means we can check this value prior to certain processing if it should ONLY be done for realtime members. 2007-08-29 14:13 +0000 [r81331] Joshua Colp * channels/chan_sip.c: (closes issue #9690) Reported by: mattv Make rtp timeouts work even if two RTP streams are directly bridged in the RTP stack. 2007-08-28 21:38 +0000 [r81226-81291] Russell Bryant * channels/chan_iax2.c: Change the message about receiving a mini-frame before the first full voice frame to a DEBUG message. * pbx/pbx_dundi.c: revert unintentional changes in rev 81226 * configs/indications.conf.sample, pbx/pbx_dundi.c: Add Russian tones. (closes issue #7953, hanabana) 2007-08-28 14:12 +0000 [r81120-81189] Mark Michelson * contrib/scripts/vmail.cgi: Fixes a forwarding problem when using res_config_mysql (closes issue #10573, reported by chrisvaughan, patch suggested by chrisvaughan as well) * apps/app_queue.c: Resolve a potential deadlock. In this case, a single queue is locked, then the queue list. In changethread(), the queue list is locked, and then each individual queue is locked. Under the right circumstances, this could deadlock. As such, I have unlocked the individual queue before locking the queue list, and then locked the queue back after the queue list is unlocked. * channels/chan_agent.c: DTMF begin frames should be ignored so that when an agent acks a call with the '#' key, he doesn't cause a queue's announce file to be interrupted. Also went ahead and did the same for the '*' key and for ending a call. (closes issue #10528, reported by deskhack, patched by me) 2007-08-27 17:27 +0000 [r81042-81074] Russell Bryant * pbx/pbx_dundi.c: Add a \todo to note that this module leaks most of the memory it allocates on unload and should be fixed (when I'm not in the middle of something else ...). * pbx/pbx_dundi.c: explicity define a variable as a boolean * res/res_musiconhold.c: (closes issue #10419) Reported by: mustardman Patches: asterisk-mohposition.diff.txt uploaded by jamesgolovich (license 176) This patch fixes a few problems with music on hold. * Fix issues with starting at the beginning of a file when it shouldn't. * Fix the inuse counter to be decremented even if the class had not been set to be deleted when not in use anymore * Don't arbitrarily limit the number of MOH files to 255 2007-08-27 15:01 +0000 [r81012] Joshua Colp * channels/chan_sip.c: (closes issue #10561) Reported by: jesselang Patches: chan_sip-ChannelReload-20080825.patch uploaded by jesselang (license 202) Remove an extra \r\n to make the ChannelReload event conform with every other event. 2007-08-27 14:55 +0000 [r81010] Mark Michelson * apps/app_queue.c: Found a case where the queue's membercount is off. It does not take into account dynamic members on a reload. 2007-08-27 13:20 +0000 [r80974] Joshua Colp * main/rtp.c: (closes issue #10562) Reported by: idkpmiller Correct jitter value output in the CLI to be as expected. 2007-08-26 18:11 +0000 [r80932] Russell Bryant * channels/chan_iax2.c: Remove an extra signal_condition() for the scheduler thread. (closes issue #10564, patch from casper) 2007-08-25 17:37 +0000 [r80895] Russell Bryant * channels/chan_iax2.c: Fix some issues with the handling of the scheduler in chan_iax2. Most of the places that scheduled items to be executed by the scheduler thread did not signal the scheduler thread to wake up so that it could recalculate the time until the next action. These changes will make the scheduler thread more responsive and ensure that actions get executed as close to when intended as possible instead of it being possible for very long delays. 2007-08-24 22:59 +0000 [r80878] Dwayne M. Hubbard * apps/app_zapateller.c: An empty string is an empty callerid ... so zap it. This closes issue #10502, which was pointed out by dswartz. Thank you, and may the swartz be with you 2007-08-24 21:22 +0000 [r80820-80849] Russell Bryant * channels/chan_iax2.c: If dnsmgr is in use, and no DNS servers are available when Asterisk first starts, then don't give up on poking peers. Allow the poke to get rescheduled so that it will work once the dnsmgr is able to resolve the host. (closes issue #10521, patch by jamesgolovich) * main/dsp.c: Improve the debouncing logic in the DTMF detector to fix some reliability issues. Previously, this code used a shift register of hits and non-hits. However, if the start of the digit isn't clean, it is possible for the leading edge detector to miss the digit. These changes replace the flawed shift register logic and also does the debouncing on the trailing edge as well. (closes issue #10535, many thanks to softins for the patch) 2007-08-24 19:52 +0000 [r80818] BJ Weschke * apps/app_queue.c: A minor correction to the available logic of autofill. If a queue member is paused, they're not really "available" so don't count them as such. Somewhat related to issue #10155 2007-08-24 18:52 +0000 [r80789] Steve Murphy * main/cdr.c: From a complaint by jmls, I realize that the message in cdr_disposition is unnecessary. To get failure disposition, just return -1; no use having more than one case do that. 2007-08-24 15:51 +0000 [r80750] Mark Michelson * apps/app_voicemail.c: Fix a possible crash in IMAP voicemail. 2007-08-24 15:41 +0000 [r80747] Tilghman Lesher * main/pbx.c, UPGRADE.txt: Make the deprecation warning inline with the code, instead of only in documentation (closes issue #10549) 2007-08-24 15:28 +0000 [r80722] Russell Bryant * utils/ael_main.c: Tweak the formatting of this MODULEINFO block. I think this would have caused a "*" to get in the menuselect-tree file. 2007-08-24 14:48 +0000 [r80689-80717] Steve Murphy * utils/ael_main.c: This change addresses JerJer's complaint that aelparse builds and installs even if pbx_ael is unchecked in the menuselect stuff. * pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/ael/ael-test/ref.ael-test6: backport of 80649, a fix to an unreported problem in the ael parser, that results in a crash on a 64bit machine 2007-08-24 11:42 +0000 [r80661] Philippe Sultan * channels/chan_gtalk.c: Closes issue #10509 Googletalk calls are answered too early, which results in CDRs wrongly stating that a call was ANSWERED when the calling party cancelled a call before before being established. We must not answer the call upon reception of a 'transport-accept' iq packet, but this packet still needs to be acknowledged, otherwise the remote peer would close the call (like in #8970). 2007-08-23 21:34 +0000 [r80601-80617] Dwayne M. Hubbard * channels/misdn/isdn_lib.c: make misdn/isdn_lib compile without warnings * channels/chan_misdn.c: make chan_misdn compile without warnings 2007-08-23 20:16 +0000 [r80539-80573] Russell Bryant * include/asterisk/features.h, res/res_features.c: When executing a dynamic feature, don't look it up a second time by digit pattern after we already looked it up by name. This causes broken behavior if there is more than one feature defined with the same digit pattern. (closes issue #10539, reported by bungalow, patch by me) * funcs/func_timeout.c: Revert very broken fix for issue #10540 ... none of these values take ms so I don't know what I was thinking * funcs/func_timeout.c: Fix func_timeout to take values in floating point so 1.5 actually means 1.5 seconds instead of being rounded. (closes issue #10540, reported by spendergrass, patch by me) 2007-08-23 17:14 +0000 [r80505-80507] Jason Parker * /: *sigh* * /: use autotagged externals 2007-08-23 17:08 +0000 [r80501] Kevin P. Fleming * channels/chan_zap.c: report the actual channel number that was unregistered, instead of assuming that the interface list consists of channels 1 through with no gaps in the sequence 2007-08-23 17:02 +0000 [r80360-80499] Russell Bryant * channels/chan_iax2.c: Fix some code where it was possible for a reference to a peer to not get released when it should. Thank you to Marta Carbone for pointing this out! * main/astobj2.c, include/asterisk/astobj2.h, channels/chan_iax2.c: This is a hack to maintain old behavior of chan_iax2. This ensures that if the peers and users are being stored in a linked list, that they go in the list in the same order that the older code used. This is necessary to maintain the behavior of which peers and users get matched when traversing the container. * res/res_agi.c: Revert res_agi fix that didn't quite work until we get it right ... * include/asterisk/astobj2.h: Add some more documentation on iterating ao2 containers. The documentation implies that is possible to miss an object or see an object twice while iterating. After looking through the code and talking with mmichelson, I have documented the exact conditions under which this can happen (which are rare and harmless in most cases). * main/astobj2.c: When converting this code to use the list macros, I changed it so objects are added to the head of a bucket instead of the tail. However, while looking over code with mmichelson, we noticed that the algorithm used in ao2_iterator_next requires that items are added to the tail. This wouldn't have caused any huge problem, but it wasn't correct. It meant that if an object was added to a container while you were iterating it, and it was added to the same bucket that the current element is in, then the new object would be returned by ao2_iterator_next, and any other objects in the bucket would be bypassed in the traversal. * channels/chan_sip.c: Don't crash when using realtime in chan_sip without an insecure setting in the database. (closes issue #10348, reported by link55, fixed by me) * main/astobj2.c (added), main/Makefile, include/asterisk/astobj2.h (added), doc/iax.txt, UPGRADE.txt, include/asterisk/strings.h, channels/chan_iax2.c: Merge changes from team/russell/iax_refcount. This set of changes fixes problems with the handling of iax2_user and iax2_peer objects. It was very possible for a thread to still hold a reference to one of these objects while a reload operation tries to delete them. The fix here is to ensure that all references to these objects are tracked so that they can't go away while still in use. To accomplish this, I us