2011-06-28 Leif Madsen * Asterisk 1.4.41.2 Released. * AST-2011-011 2011-06-23 Leif Madsen * Asterisk 1.4.41.1 Released. * AST-2011-010 2011-04-25 Leif Madsen * Asterisk 1.4.41 Released. * AST-2011-005, AST-2011-006 * Reverted part of r314607, as it can introduce a regression. Specifically, the security check for the "system" privilege was removed. If a user had the "call" privilege but not the "system" privilege, they would lose the ability to execute the system app and dialplan functions that run commands in a shell. This branch never used the "system" privilege for that purpose and did not need to be patched. (AST-2011-006) 2011-02-23 Leif Madsen * Asterisk 1.4.41-rc1 Released. 2011-02-21 14:57 +0000 [r308413] Matthew Nicholson * main/udptl.c: Properly check the bounds of arrays when decoding UDPTL packets. Also, remove broken support for receiving UDPTL packets larger than 16k. That shouldn't ever happen anyway. AST-2011-002 FAX-281 2011-02-15 23:32 +0000 [r308002] Jason Parker * apps/app_queue.c: Fix regression that changed behavior of queues when ringing a queue member. This reverts r298596, which was to fix a highly bizarre and contrived issue with a queue member that called into his own queue being transferred back into his own queue. I couldn't reproduce that issue in any way. I think one of the other recent transfer fixes actually fixed this. (closes issue #18747) Reported by: vrban 2011-02-11 00:29 +0000 [r307623] Richard Mudgett * channels/chan_dahdi.c: Reentrancy problem if outgoing call gets different B channel than requested. The chan_dahdi pri_fixup_principle() routine needs to protect the Asterisk channel with the channel lock when it changes the technology private pointer to a new private structure. * Added lock protection while pri_fixup_principle() moves a call from one private structure to another. * Made some pri_fixup_principle() messages more meaningful. Partial backport from v1.8 -r300714. 2011-02-10 22:33 +0000 [r307534] Jason Parker * main/asterisk.c: Remove color when executing commands via a remote console. Essentially this makes '-x' imply '-n' on rasterisk. This was done in a different and incomplete way previously, which I'll be reverting shortly. (issue #18776) Reported by: alecdavis 2011-02-08 20:05 +0000 [r306972] Terry Wilson * channels/chan_sip.c: Fix comparison for REFER Replaces tags with pedantic=yes 2011-02-08 19:40 +0000 [r306864-306965] Jeff Peeler * apps/app_voicemail.c: fix this line again * apps/app_voicemail.c: clean this up, sorry my brain is not really working * apps/app_voicemail.c: Backup file storing message duration is not used with IMAP_STORAGE, remove code. The message duration is stored in the body of the email when using IMAP_STORAGE, so nothing needs to happen with the backup file. (closes issue #18718) Reported by: kerframil * apps/app_voicemail.c: make this safer and fully correct, pointed out by Steve Davis 2011-02-07 22:35 +0000 [r306617-306672] Terry Wilson * res/res_features.c: Don't try to pickup a call in the middle of a masquerade If A calls B which doesn't answer and C & D both try to do a call pickup, it is possible for ast_pickup_call to answer the call, then fail to masquerade one of the calls because the other one is already in the process of masquerading. This patch checks to see if the channel is in the process of masquerading before call before selecting it for a pickup. Review: https://reviewboard.asterisk.org/r/1094/ * channels/chan_sip.c: Don't allow a REFER w/replaces to replace its own dialog Asterisk currently accepts a REFER with a Refer-To with an embedded Replaces header that matches the dialog of the REFER. This would be a situation like A calls B, A calls C, A transfers B to A, which is just silly. This patch makes the transfer fail instead of making Asterisk freak out and forget to hang other channels up. Review: https://reviewboard.asterisk.org/r/1093/ 2011-02-03 20:43 +0000 [r306120] Jeff Peeler * res/res_features.c: Fix no MOH and frame queueing problem for parked calls. This was a regression introduced when select was changed to poll and was just a conversion error: POLLPRI detects OOB data, not POLLERR. (closes issue #18637) Reported by: jvandal 2011-02-03 20:36 +0000 [r306119] Terry Wilson * channels/chan_local.c: Set hangup cause in local_hangup When a call involves a local channel (like SIP -> Local -> SIP), the hangup cause was not being set. This resulted in SIP channels sometimes getting a 503 error instead of a 486 when the far side sent a busy. In Asterisk 1.8+ this also can cause issues with CCSS that involve a local channel. This patch sets the hangupcause for one side of the local channel to the other in local_hangup for outbound calls. 2011-02-03 00:02 +0000 [r305888] Richard Mudgett * main/channel.c, channels/chan_sip.c, apps/app_sendtext.c: Minor AST_FRAME_TEXT related issues. * Include the null terminator in the buffer length. When the frame is queued it is copied. If the null terminator is not part of the frame buffer length, the receiver could see garbage appended onto it. * Add channel lock protection with ast_sendtext(). 2011-02-01 17:00 +0000 [r305471] Jason Parker * res/res_musiconhold.c: Close file descriptor for timing source when a MOH class gets destroyed. (closes issue #18457) Reported by: mcallist Patches: 18457-closetimer.diff uploaded by qwell (license 4) 18457-closetimer_trunk.diff uploaded by qwell (license 4) Tested by: qwell, loloski 2011-01-31 23:45 +0000 [r305341] Richard Mudgett * channels/chan_dahdi.c: Obtain the pri lock for PRI queue counters. Need to obtain the pri lock when calling pri_dump_info_str() to avoid a reentrancy problem when calculating the Q.921 Q count statistic. JIRA AST-484 2011-01-31 22:56 +0000 [r305129-305252] Jason Parker * apps/app_dial.c, channels/chan_sip.c: Prevent a crash when dialing a technology with no destination (ex: Dial(SIP/)) chan_iax2 and other channel drivers already had code to prevent this. The attempt that app_dial was making to prevent it was not correct, so I fixed that. (closes issue #18371) Reported by: gbour Patches: 18371.patch uploaded by gbour (license 1162) * res/res_musiconhold.c: Set file descriptors to -1 on creation, so that we don't see weirdness later. 2011-01-31 06:54 +0000 [r304952] Tilghman Lesher * apps/app_voicemail.c: Fix compilation when ODBC_STORAGE is defined. 2011-01-29 21:48 +0000 [r304820] Sean Bright * apps/app_meetme.c: Backport MeetMe related reference leaks fixes from 1.6.2/1.8/trunk. I had forgotten that MeetMe in 1.4 also used astobj2, so backport the fixes where appropriate. 2011-01-27 16:57 +0000 [r304460-304464] Jason Parker * configure, configure.ac: Fix default prefix=/usr regression on non-Linux systems. This partially reverts a change made in branches/1.4/ r267759, which will cause issue #17013 to be reopened. This issue was pointed out by a user on #asterisk, who helpfully discovered that paths were being set incorrectly. To truly understand what was wrong, one should run: svn diff --force -c configure * configure, include/asterisk/autoconfig.h.in: Rerun bootstrap.sh with no changes, so that it is more obvious what my next commit changes. 2011-01-26 21:00 +0000 [r304247] Matthew Nicholson * channels/chan_sip.c: Convert from network to host byte ordering before checking if an IP is a multicast address. 2011-01-26 20:38 +0000 [r304242] Mark Michelson * main/udptl.c: Get rid of unused 'verbose' field in ast_udptl 2011-01-26 20:38 +0000 [r304241] Matthew Nicholson * channels/chan_sip.c: This patch modifies chan_sip to route responses to the address the request came from. It also modifies chan_sip to respect the maddr parameter in the Via header. ABE-2664 Review: https://reviewboard.asterisk.org/r/1059/ 2011-01-26 20:18 +0000 [r304159] Sean Bright * configs/queues.conf.sample: Make sure the sample queues.conf is properly commented. 2011-01-25 23:21 +0000 [r304005] Richard Mudgett * res/res_features.c: DTMF attended transfers sometimes fail for no apparent reason. The loop in feature_request_and_dial() can exit when Party C has answered without processing an AST_CONTROL_ANSWER. Also sometimes an AST_CONTROL_ANSWER never happens even though Party C has answered. Don't hangup Party C if he is up or we receive an AST_CONTROL_ANSWER. 2011-01-25 20:50 +0000 [r303906] Terry Wilson * channels/chan_sip.c: Guard against retransmitting BYEs indefinitely In the case of an attended transfer (A calls B, A atxfers to C) where A becomes unreachable before replying to Asterisk's BYE, Asterisk can sometimes retransmit the BYE indefinitely. This is because __sip_autodestruct tests p->refer && !ast_test_flag(&p->flags[0], SIP_ALREADYGONE and will then transmit a BYE. When this BYE times out, it will not ever be marked as ALREADYGONE, so when __sip_autodestruct is called again, we end up starting the cycle over. This patch adds a call to sip_alreadygone(pkt->owner) in retrans_pkt in the case of a BYE that has timed out. This should prevent Asterisk from trying to transmit new BYE messages in the future. Review: https://reviewboard.asterisk.org/r/1077/ 2011-01-25 17:36 +0000 [r303747-303765] Richard Mudgett * channels/chan_dahdi.c: Sending out unnecessary PROCEEDING messages breaks overlap dialing. Issue #16789 was a good idea. Unfortunately, it breaks overlap dialing through Asterisk. There is not enough information available at this point to know if dialing is complete. The ast_exists_extension(), ast_matchmore_extension(), and ast_canmatch_extension() calls are not adequate to detect a dial through extension pattern of "_9!". Workaround is to use the dialplan Proceeding() application early in non-dial through extensions. * Effectively revert issue #16789. * Allow outgoing overlap dialing to hear dialtone and other early media. A PROGRESS "inband-information is now available" message is now sent after the SETUP_ACKNOWLEDGE message for non-digital calls. An AST_CONTROL_PROGRESS is now generated for incoming SETUP_ACKNOWLEDGE messages for non-digital calls. * Handling of the AST_CONTROL_CONGESTION in chan_dahdi/sig_pri was inconsistent with the cause codes. * Added better protection from sending out of sequence messages by combining several flags into a single enum value representing call progress level. * Added diagnostic messages for deferred overlap digits handling corner cases. (closes issue #17085) Reported by: shawkris (closes issue #18509) Reported by: wimpy Patches: issue18509_early_media_v1.8_v3.patch uploaded by rmudgett (license 664) Expanded upon issue18509_early_media_v1.8_v3.patch to include analog and SS7 because of backporting requirements. Tested by: wimpy, rmudgett * main/pbx.c: Backport the Proceeding application. Added in trunk -r129399. Enable the workaround for issue #17085 and #18509. (issue #17085) (issue #18509) 2011-01-25 16:58 +0000 [r303676] Jeff Peeler * apps/app_voicemail.c: Fix voicemail sequencing for file based storage. A previous change was made to account for when the number of voicemail messages exceeds the max limit to be handled properly, but it caused gaps in the messages to not be properly handled. This has now been resolved. In later non 1.4 branches, it appears that resequencing wasn't even occurring due from what appears and accidental code removal. (closes issue #18498) Reported by: JJCinAZ Patches: bug18498v2.patch uploaded by jpeeler (license 325) (closes issue #18486) Reported by: bluefox Patches: bug18486.patch uploaded by jpeeler (license 325) 2011-01-24 20:57 +0000 [r303546-303552] Russell Bryant * main/pbx.c, res/res_features.c: Fix a couple of mistakes in the backport of this patch to 1.4. * main/channel.c, main/pbx.c, apps/app_meetme.c, res/res_features.c, include/asterisk/channel.h: Fix channel redirect out of MeetMe() and other issues with channel softhangup. Mantis issue #18585 reports that a channel redirect out of MeetMe() stopped working properly. This issue includes a patch that resolves the issue by removing a call to ast_check_hangup() from app_meetme.c. I left that in my patch, as it doesn't need to be there. However, the rest of the patch fixes this problem with or without the change to app_meetme. The key difference between what happens before and after this patch is the effect of the END_OF_Q control frame. After END_OF_Q is hit in ast_read(), ast_read() will return NULL. With the ast_check_hangup() removed, app_meetme sees this which causes it to exit as intended. Checking ast_check_hangup() caused app_meetme to exit earlier in the process, and the target of the redirect saw the condition where ast_read() returned NULL. Removing ast_check_hangup() works around the issue in app_meetme, but doesn't solve the issue if another application did the same thing. There are also other edge cases where if an application finishes at the same time that a redirect happens, the target of the redirect will think that the channel hung up. So, I made some changes in pbx.c to resolve it at a deeper level. There are already places that unset the SOFTHANGUP_ASYNCGOTO flag in an attempt to abort the hangup process. My patch extends this to remove the END_OF_Q frame from the channel's read queue, making the "abort hangup" more complete. This same technique was used in every place where a softhangup flag was cleared. (closes issue #18585) Reported by: oej Tested by: oej, wedhorn, russell Review: https://reviewboard.asterisk.org/r/1082/ 2011-01-21 21:45 +0000 [r303284] Jason Parker * channels/chan_dahdi.c: Reset configuration before parsing users.conf. Some values configured in chan_dahdi.conf were able to leak in to users.conf configuration. This was surprising users, and potentially setting non-sane "defaults". ASTNOW-125 2011-01-20 17:04 +0000 [r303007] Jeff Peeler * configs/queues.conf.sample, apps/app_queue.c: Add new queue strategy to preserve behavior for when queue members moved to ao2. Add queue strategy called "rrordered" to mimic old behavior from when queue members were stored in a linked list. ABE-2707 2011-01-20 15:38 +0000 [r302916] Leif Madsen * apps/app_dial.c: Option L() is milliseconds, not seconds. Change the verbose output of option L() to say milliseconds and not seconds as the value is in milliseconds. (closes issue #18264) Reported by: jacco Patches: app_dial_patch.txt uploaded by lmadsen (license 10) Tested by: lmadsen, jacco 2011-01-19 21:21 +0000 [r302671] Richard Mudgett * res/res_features.c: DTMF transfer plays the wrong sounds for wrong number or other call failure. * Set the default for features.conf.sample xferfailsound option to "beeperr" as documented instead of "pbx-invalid" and corrected the use of it in DTMF blind transfer (#1). * Improved DTMF blind transfer handling of wrong numbers. Most of the concerns in this issue were taken care of by the patch for issue 17999: Issues with DTMF triggered attended transfers. (closes issue #18379) Reported by: gincantalupo Tested by: rmudgett 2011-01-19 21:20 +0000 [r302663] Tilghman Lesher * include/asterisk/astdb.h: Add some API documentation 2011-01-18 21:35 +0000 [r302311] Matthew Nicholson * channels/chan_sip.c: URI encode the user part of the contact header. ABE-2705 2011-01-18 18:04 +0000 [r302172] Richard Mudgett * res/res_features.c: Issues with DTMF triggered attended transfers. Issue #17999 1) A calls B. B answers. 2) B using DTMF dial *2 (code in features.conf for attended transfer). 3) A hears MOH. B dial number C 4) C ringing. A hears MOH. 5) B hangup. A still hears MOH. C ringing. 6) A hangup. C still ringing until "atxfernoanswertimeout" expires. For v1.4 C will ring forever until C answers the dead line. (Issue #17096) Problem: When A and B hangup, C is still ringing. Issue #18395 SIP call limit of B is 1 1. A call B, B answered 2. B *2(atxfer) call C 3. B hangup, C ringing 4. Timeout waiting for C to answer 5. Recall to B fails because B has reached its call limit. Because B reached its call limit, it cannot do anything until the transfer it started completes. Issue #17273 Same scenario as issue 18395 but party B is an FXS port. Party B cannot do anything until the transfer it started completes. If B goes back off hook before C answers, B hears ringback instead of the expected dialtone. ********** Note for the issue #17273 and #18395 fix: DTMF attended transfer works within the channel bridge. Unfortunately, when either party A or B in the channel bridge hangs up, that channel is not completely hung up until the transfer completes. This is a real problem depending upon the channel technology involved. For chan_dahdi, the channel is crippled until the hangup is complete. Either the channel is not useable (analog) or the protocol disconnect messages are held up (PRI/BRI/SS7) and the media is not released. For chan_sip, a call limit of one is going to block that endpoint from any further calls until the hangup is complete. For party A this is a minor problem. The party A channel will only be in this condition while party B is dialing and when party B and C are conferring. The conversation between party B and C is expected to be a short one. Party B is either asking a question of party C or announcing party A. Also party A does not have much incentive to hangup at this point. For party B this can be a major problem during a blonde transfer. (A blonde transfer is our term for an attended transfer that is converted into a blind transfer. :)) Party B could be the operator. When party B hangs up, he assumes that he is out of the original call entirely. The party B channel will be in this condition while party C is ringing, while attempting to recall party B, and while waiting between call attempts. WARNING: The ATXFER_NULL_TECH conditional is a hack to fix the problem. It will replace the party B channel technology with a NULL channel driver to complete hanging up the party B channel technology. The consequences of this code is that the 'h' extension will not be able to access any channel technology specific information like SIP statistics for the call. ATXFER_NULL_TECH is not defined by default. ********** (closes issue #17999) Reported by: iskatel Tested by: rmudgett JIRA SWP-2246 (closes issue #17096) Reported by: gelo Tested by: rmudgett JIRA SWP-1192 (closes issue #18395) Reported by: shihchuan Tested by: rmudgett (closes issue #17273) Reported by: grecco Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1047/ 2011-01-17 17:45 +0000 [r302087] Terry Wilson * channels/chan_sip.c: Merged revisions 293493 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 [^] ........ r293493 | twilson | 2010-11-01 09:58:00 -0500 (Mon, 01 Nov 2010) | 14 lines Only offer codecs both sides support for directmedia When using directmedia, Asterisk needs to limit the codecs offered to just the ones that both sides recognize, otherwise they may end up sending audio that the other side doesn't understand. (closes issue 0017403) Reported by: one47 Patches: sip_codecs_simplified4 uploaded by one47 (license 23) Tested by: one47, falves11 Review: https://reviewboard.asterisk.org/r/967/ [^] ........ Back port a fix that should have been included 2011-02-22 Leif Madsen * Asterisk 1.4.40 Released. * Merged changes related to AST-2011-002 2011-02-16 Leif Madsen * Asterisk 1.4.40-rc3 Released. ------------------------------------------------------------------------ r308002 | qwell | 2011-02-15 17:32:21 -0600 (Tue, 15 Feb 2011) | 10 lines Fix regression that changed behavior of queues when ringing a queue member. This reverts r298596, which was to fix a highly bizarre and contrived issue with a queue member that called into his own queue being transferred back into his own queue. I couldn't reproduce that issue in any way. I think one of the other recent transfer fixes actually fixed this. (closes issue 0018747) Reported by: vrban ------------------------------------------------------------------------ 2011-01-20 Leif Madsen * Asterisk 1.4.40-rc2 Released. ------------------------------------------------------------------------ r302172 | rmudgett | 2011-01-18 12:04:37 -0600 (Tue, 18 Jan 2011) | 88 lines Issues with DTMF triggered attended transfers. Issue 0017999 1) A calls B. B answers. 2) B using DTMF dial *2 (code in features.conf for attended transfer). 3) A hears MOH. B dial number C 4) C ringing. A hears MOH. 5) B hangup. A still hears MOH. C ringing. 6) A hangup. C still ringing until "atxfernoanswertimeout" expires. For v1.4 C will ring forever until C answers the dead line. (Issue 0017096) Problem: When A and B hangup, C is still ringing. Issue 0018395 SIP call limit of B is 1 1. A call B, B answered 2. B *2(atxfer) call C 3. B hangup, C ringing 4. Timeout waiting for C to answer 5. Recall to B fails because B has reached its call limit. Because B reached its call limit, it cannot do anything until the transfer it started completes. Issue 0017273 Same scenario as issue 18395 but party B is an FXS port. Party B cannot do anything until the transfer it started completes. If B goes back off hook before C answers, B hears ringback instead of the expected dialtone. ********** Note for the issue 0017273 and 0018395 fix: DTMF attended transfer works within the channel bridge. Unfortunately, when either party A or B in the channel bridge hangs up, that channel is not completely hung up until the transfer completes. This is a real problem depending upon the channel technology involved. For chan_dahdi, the channel is crippled until the hangup is complete. Either the channel is not useable (analog) or the protocol disconnect messages are held up (PRI/BRI/SS7) and the media is not released. For chan_sip, a call limit of one is going to block that endpoint from any further calls until the hangup is complete. For party A this is a minor problem. The party A channel will only be in this condition while party B is dialing and when party B and C are conferring. The conversation between party B and C is expected to be a short one. Party B is either asking a question of party C or announcing party A. Also party A does not have much incentive to hangup at this point. For party B this can be a major problem during a blonde transfer. (A blonde transfer is our term for an attended transfer that is converted into a blind transfer. :)) Party B could be the operator. When party B hangs up, he assumes that he is out of the original call entirely. The party B channel will be in this condition while party C is ringing, while attempting to recall party B, and while waiting between call attempts. WARNING: The ATXFER_NULL_TECH conditional is a hack to fix the problem. It will replace the party B channel technology with a NULL channel driver to complete hanging up the party B channel technology. The consequences of this code is that the 'h' extension will not be able to access any channel technology specific information like SIP statistics for the call. ATXFER_NULL_TECH is not defined by default. ********** (closes issue 0017999) Reported by: iskatel Tested by: rmudgett JIRA SWP-2246 (closes issue 0017096) Reported by: gelo Tested by: rmudgett JIRA SWP-1192 (closes issue 0018395) Reported by: shihchuan Tested by: rmudgett (closes issue 0017273) Reported by: grecco Tested by: rmudgett Review: https://reviewboard.asterisk.org/r/1047/ [^] ------------------------------------------------------------------------ 2011-01-14 Leif Madsen * Asterisk 1.4.40-rc1 Released. 2011-01-14 20:21 +0000 [r301869] Leif Madsen * configure, include/asterisk/autoconfig.h.in, configure.ac: Fix issue with cross-compiling failing (closes issue #18301) Reported by: abelbeck Patches: asterisk-1.4-bugid18301.patch.txt uploaded by abelbeck (license 946) Tested by: abelbeck, russellb 2011-01-12 18:39 +0000 [r301591] Matthew Nicholson * main/manager.c: Don't store the thread id for the manager session in the structure we pass to the thread for the manager session. ABE-2543 2011-01-12 18:10 +0000 [r301502] Jeff Peeler * main/channel.c: Fix CPU spike when pressing DTMF after agent login. The problem here is that DTMF was being continuously deferred and requeued since ast_safe_sleep is called in a loop. There are serveral other places in the code that sleeps and then loops in a similar fashion. Because of this fact I opted to not defer DTMF any more, which will not affect the original fix: https://reviewboard.asterisk.org/r/674 (closes issue #18130) Reported by: rgj 2011-01-11 18:34 +0000 [r301305] Matthew Nicholson * main/utils.c: Prevent buffer overflows in ast_uri_encode() ABE-2705 2011-01-07 17:18 +0000 [r300918-300924] Jeff Peeler * apps/app_voicemail.c: change variable name to the same used in later branches * apps/app_voicemail.c: Ensure good bye prompt in voicemail is played at the correct time. Specifically in the case of timing out but not leaving voicemail nothing should be heard. And when leaving voicemail it should be heard. ABE-2647 2011-01-05 18:47 +0000 [r300621] Tilghman Lesher * res/res_odbc.c: Use the sanity check in place of the disconnect/connect cycle. The disconnect/connect cycle has the potential to cause random crashes. (closes issue #18243) Reported by: ks3 Patches: res_odbc.patch uploaded by ks3 (license 1147) Tested by: ks3 2011-01-04 20:56 +0000 [r300428] Russell Bryant * contrib/scripts/autosupport, contrib/scripts/autosupport.8: Update the autosupport script from Digium support. (closes AST-395) 2011-01-04 17:11 +0000 [r300216] Terry Wilson * channels/chan_sip.c: Don't authenticate SUBSCRIBE re-transmissions This only skips authentication on retransmissions that are already authenticated. A similar method is already used for INVITES. This is the kind of thing we end up having to do when we don't have a transaction layer... (closes issue #18075) Reported by: mdu113 Patches: diff.txt uploaded by twilson (license 396) Tested by: twilson, mdu113 Review: https://reviewboard.asterisk.org/r/1005/ 2010-12-25 10:04 +0000 [r299624] Tilghman Lesher * channels/chan_local.c: Move check for extension existence below variable inheritance, due to the possible use of an eswitch. (closes issue #16228) Reported by: jlaguilar 2010-12-20 21:21 +0000 [r299194-299220] Matthew Nicholson * channels/chan_sip.c: Use ast_free() instead of free() ABE-2656 * channels/chan_sip.c: Remove changes to via processing that were not supposed to go into the last commit. * channels/chan_sip.c: Respond as soon as possible with a 202 Accepted to refer requests. This change also plugs a few memory leaks that can occur when parking sip calls. ABE-2656 2010-12-20 09:13 +0000 [r299002] Tzafrir Cohen * apps/app_rpt.c, include/asterisk/smdi.h, channels/chan_dahdi.c, res/res_smdi.c, main/abstract_jb.c, res/res_jabber.c: Typos: recieved => received 2010-12-17 21:40 +0000 [r298820-298905] Tilghman Lesher * build_tools/cflags-devmode.xml, include/asterisk/utils.h, doc/asterisk.8, build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, main/Makefile, configure.ac, main/logger.c, main/utils.c, makeopts.in: Let Asterisk find better backtrace information with libbfd. The menuselect option BETTER_BACKTRACES, if enabled, will use libbfd to search for better symbol information within both the Asterisk binary, as well as loaded modules, to assist when using inline backtraces to track down problems. * doc/asterisk.8: Document the -F option. 2010-12-16 23:29 +0000 [r298596-298683] Jeff Peeler * apps/app_voicemail.c: After recording only silence for a voicemail prepending, restore backup files. * apps/app_queue.c: Fix improper hangup when doing an attended transfer to queue. Had to indicate ringing in wait_for_answer so the attended transfer code would not try and hang up the local channel it created, which would kill the call. ABE-2624 2010-12-16 09:03 +0000 [r298392-298480] Tilghman Lesher * res/res_config_odbc.c: Only increment the pointer once per loop, otherwise we corrupt the value. (closes issue #18251) Reported by: bcnit Patches: 20101110__issue18251.diff.txt uploaded by tilghman (license 14) Tested by: trev, jthurman, elguero (closes issue #18279) Reported by: zerohalo Patches: 20101109__issue18279.diff.txt uploaded by tilghman (license 14) Tested by: zerohalo * cdr/cdr_sqlite.c: Unregister before shutting down the connection, to avoid a race. (closes issue #18481) Reported by: pabelanger Patches: 20101215__issue18481.diff.txt uploaded by tilghman (license 14) Tested by: pabelanger 2010-12-15 21:28 +0000 [r298345] Sean Bright * main/astobj2.c: Fix reference and container leaks when running 'astobj2 test.' We need to make sure that ao2_iterator_destroy is called once for each time that ao2_iterator_init is called. Also make sure to unref a newly allocated object that we've linked into a container. 2010-12-13 16:56 +0000 [r298193] Richard Mudgett * channels/chan_dahdi.c: Outgoing PRI/BRI calls cannot do DTMF triggered transfers. Outgoing PRI/BRI calls cannot do DTMF triggered transfers if a PROCEEDING message is not received. The debug output shows that the DTMF begin event is seen, but the DTMF end event is missing. When the DTMF begin happens, the call is muted so we now have one way audio (until a DTMF end event is somehow seen). * Made set the proceeding flag when the PRI_EVENT_ANSWER event is received. * Made absorb the DTMF begin and DTMF end events if we are overlap dialing and have not seen a PROCEEDING message. * Added a debug message when absorbing a DTMF event. JIRA SWP-2690 JIRA ABE-2697 2011-01-12 Leif Madsen * Asterisk 1.4.39 Released. 2010-12-13 Leif Madsen * Asterisk 1.4.39-rc1 Released. 2010-12-09 22:00 +0000 [r297959] Terry Wilson * channels/chan_sip.c: Ignore spurious REGISTER requests If a REGISTER request with a Call-ID matching an existing transaction is received it was possible that the REGISTER request would overwrite the initreq of the private structure. This info is used to generate messages for other responses in the transaction. This patch ignores REGISTER requests that match non-REGISTER transactions. (closes issue #18051) Reported by: eeman Tested by: twilson Review: https://reviewboard.asterisk.org/r/1050/ 2010-12-07 22:57 +0000 [r297823] Jeff Peeler * main/channel.c: Revert code that changed SSRC for DTMF. Some previous behavior was attempted to be restored, but mistakingly I did not realize that the previous behavior was incorrect. This fixes DTMF not being detected since DTMF shouldn't cause the SSRC to change. (related to issue #17404) (closes issue #18189) (closes issue #18352) Reported by: marcbou Tested by: cmbaker82 2010-12-07 22:35 +0000 [r297818] Tilghman Lesher * Makefile, utils/muted.c, contrib/init.d/org.asterisk.muted.plist (added): Use non-deprecated APIs for CoreAudio Review: https://reviewboard.asterisk.org/r/1040/ 2010-12-07 15:23 +0000 [r297775] Sean Bright * main/astobj2.c: Avoid a crash if we don't pass an argument to 'astobj2 test.' 2010-12-07 00:07 +0000 [r297689] Tilghman Lesher * apps/app_followme.c: Don't create a Local channel if the target extension does not exist. (closes issue #18126) Reported by: junky Patches: followme.diff uploaded by junky (license 177) (partially restructured by me to avoid a possible memory leak) 2010-12-06 21:57 +0000 [r297603] Jeff Peeler * channels/chan_sip.c: Improve handling of REGISTER requests with multiple contact headers. The changes here attempt to more strictly follow RFC 3261 section 10.3. Basically the following will now cause a 400 Bad Response to be returned, if: - multiple Contact headers are present with one set to expire all bindings ("*") - wildcard parameter is specified for Contact without Expires header or Expires header is not set to zero. ABE-2442 ABE-2443 2010-12-02 20:01 +0000 [r297404] Paul Belanger * Makefile: Resolve compile error under FreeBSD We now set _ASTCFLAGS+=-march=i686 for i386 processors, still allowing ASTCFLAGS to override the setting. Review: https://reviewboard.asterisk.org/r/1043/ 2010-12-02 18:00 +0000 [r297310] Terry Wilson * main/abstract_jb.c: Initialize offset for adaptive jitter buffer When the adaptive jitter buffer is enabled in sip.conf, the first frame placed in the jitter buffer fails with something like: jb_warning_output: Resyncing the jb. last_delay 0, this delay -215886466, threshold 1000, new offset 215886466 This happens because the offset is not initialized before calling jb_put(). This patch modifies jb_put_first_adaptive() to set the offset to the frame's timestamp. Review: https://reviewboard.asterisk.org/r/1041/ 2010-12-02 13:16 +0000 [r297228] Russell Bryant * apps/app_meetme.c: Add "DAHDI" to a couple of app_meetme error messages. This is in response to some questions on IRC. To the user, there was nothing that made it obvious that this error had anything to do with DAHDI not being loaded. 2010-12-02 08:37 +0000 [r297185] Olle Johansson * channels/chan_sip.c: If we get a NOTIFY from a non-existing subscription we should answer with 481, not bad event. If we answer 481 the subscription that we don't want will be cancelled. 2010-12-01 17:50 +0000 [r297072] Jeff Peeler * channels/chan_sip.c: Fix not stopping MOH when transfered local channel queue member is answered. The problem here is only present when local channels are used with the MOH passthru option as well as no optimization (/nm). I will describe the slightly bizarre scenario that was used to test, where phones B and C are queue members: Phone A dials into a queue with two members using local channels and the above options. Phone B answers. Phone A blind transfers phone B into the same queue. Phone A hangs up. Phone C answers, but phone B didn't stop playing MOH. In this scenario, the unhold frame that should have gotten to phone B never arrived due to the masquerade from the blind transfer. This is usually fine since app_queue manages the starting and stopping of MOH. However, with the passthrough option enabled when app_queue attempts to stop MOH it tries to do so on the local channel rather than the real channel. The easiest solution was to just make sure to send an unhold frame during the transfer since it wouldn't make sense to have MOH playing after a transfer anyway. This only modifies SIP transfers, but the other transfers did not seem to be a problem. If DTMF based transfers were a problem it might be okay to add ast_moh_stop to finishup, but I didn't want to have to add that unless required. ABE-2624 2010-12-01 16:59 +0000 [r296990] Tilghman Lesher * include/asterisk/frame.h: Clarify documentation on how we store codec preference lists. (closes issue #18397) Reported by: birgita 2010-12-01 00:23 +0000 [r296868] Jeff Peeler * apps/app_voicemail.c: Properly restore backup information file when hanging up during message prepending. ABE-2654 2010-12-01 00:20 +0000 [r296867] Tilghman Lesher * main/asterisk.c, channels/chan_iax2.c: Get rid of the annoying startup and shutdown errors on OS X. This mainly deals with the problem of constructors on platforms where an explicit constructor order cannot be specified (any system with gcc 4.2 or less). However, this is only a problem on those systems where we need to initialize mutexes with a constructor, because we have other code that also relies upon constructors, and we cannot specify that mutexes are initialized first (and destroyed last). There are two approaches to dealing with this issue, related to whether the code exists in the core Asterisk binary or in a separate code module. In the core case, constructors are run immediately upon load, and the file_versions list mutex needs to be already initialized, as it is referenced in the first constructor within each core source file. In this case, we use pthread_once to ensure that the mutex is initialized immediately before it is used for the first time. The only caveat is that the mutex is not ever destroyed, but because this is the core, it makes no real difference; the only time when destruction is safe would be just prior to process destruction, which takes care of that anyway. And due to using pthread_once, the mutex will never be reinitialized, which means only one structure has leaked at the end of the process. Hence, it is not a problematic leak. The second approach is to use the load_module and unload_module routines, which, for obvious reasons, exist only in loadable modules. In this second case, we don't have a problem with the constructors, but only with destructor order, because mutexes can be destroyed before their final usage is employed. However, we need the mutexes to still be destroyed, in certain scenarios: if the module is unloaded prior to the process ending, it should be clean, with no allocations by the module hanging around after that point in time. 2010-11-29 22:49 +0000 [r296670] Paul Belanger * channels/chan_iax2.c: Make sure nothing else is needed before destroying the scheduler. (closes issue #18398) Reported by: pabelanger 2010-11-26 09:53 +0000 [r296309] Olle Johansson * main/say.c: Fix bugs in saying numbers using the Swedish language syntax (closes issue #18355) Reported by: oej Patch by: oej Much help from Peter Lindahl. Testing by the ClearIT team during a coffee break. Review: https://reviewboard.asterisk.org/r/1033/ 2010-11-24 23:26 +0000 [r296213] Russell Bryant * main/channel.c: Make Asterisk less crashy. Since we might not put a new translation path on the channel, go ahead and set it to NULL right after destroying the old one to ensure we don't try to free an invalid translation path later on. 2010-11-24 22:41 +0000 [r296165] Richard Mudgett * channels/chan_dahdi.c: Oneway audio to SIP phone from FXS port after FXS port gets a CallWaiting pip. The FXS connected phone has to have CW/CID support to fail, as it will send back a DTMF 'A' or 'D' when it's ready to receive CallerID. A normal phone with no CID never fails. Also the SIP phone does not hear MOH when the CW call is answered. The DTMF end frame is suppressed when the phone acknowledges the CW signal for CID. The problem is the DTMF begin frame needs to be suppressed as well. The DTMF begin frame is causing SIP to start sending the DTMF RTP frames. Since the DTMF end frame is suppressed, SIP will not stop sending those DTMF RTP packets. * Suppress the DTMF begin and end frames when the channel driver is looking for DTMF digits. * Fixed a couple issues caused by not cleaning up the CID spill if you answer the CW call while it is sending the CID spill. * Fixed not sending CW/CID spill to the phone when the call is natively bridged. (Fixed by not using native bridge if CW/CID is possible.) * Suppress received audio when sending CW/CID spills. The other parties involved do not need to hear the CW/CID spills and may be confused if the CW call is for them. (closes issue #18129) Reported by: alecdavis Patches: issue_18129_v1.8_v3.patch uploaded by rmudgett (license 664) Tested by: alecdavis, rmudgett NOTE: * v1.4 does not have the main problem fixed by suppressing the DTMF start frames. The other three items fixed are relevant. * If you really must restore native bridging between analog ports, you need to disable CW/CID either by configuring chan_dahdi.conf callwaitingcallerid=no or dialing *70 before dialing the number to temporarily disable CW. 2010-11-24 20:22 +0000 [r296000-296082] Russell Bryant * main/channel.c: Fix false reporting of an error by set_format(). In the case that the native format was able to be changed to match the new requested format, the code proceeded to attempt to build a translation path, anyway. The result would be NULL, since no translation path is necessary and resulted in this function thinking an error has occurred. This case is now specifically caught and no attempt to build a translation path is attempted. Thanks to our automated tests and bamboo.asterisk.org for catching this problem and making a whole lot of noise when things started failing. :-) * apps/app_dial.c, main/channel.c: Handle failures building translation paths more effectively. The problem scenario occurred on a heavily loaded system that was using the codec_dahdi module and exceeded the hardware transcoding capacity. The failure mode at that point was not good. The report came in to us as an Asterisk lock-up. The "core show locks" shows a ton of threads locked up (but no obvious deadlock). Upon deeper investigation, when the system is in this state, the CPU was maxed out. The CPU was being consumed by the Asterisk logger spewing messages on every audio frame for calls set up after transcoder capacity was reached. The purpose of this patch is to make Asterisk handle failures to create a translation path in a more graceful manner. If we can't translate, then the call just needs to be dropped, as it's not going to work. These are the changes: 1) In set_format() of channel.c (which is called by set_read_format() and set_write_format()), it was ignoring if ast_translator_build_path() failed and returned NULL. It now pays attention to that case and returns a result reflecting failure. With this change in place, the bridging code will immediately detect a failure and end the bridge instead of proceeding to try to bridge frames that can't be translated and making channel drivers freak out by sending them frames in a format they weren't expecting. 2) In ast_indicate_data() of channel.c, failure of ast_playtones_start() was ignored. It is now reflected in the return value of the function. This didn't turn out to have any affect on the bug, but seemed like a good change to leave in. 3) In app_dial(), when only sending a call to a single endpoint, it will attempt to do some bridging of its own of early audio. It uses make_compatible() when it's going to do this. However, it ignored failure from make compatible. So, even with the fix from #1, if there was early audio going through app_dial, there would still be a period of invalid frames passing through. After detecting failure here, Dial() exits. ABE-2658 2010-11-23 09:28 +0000 [r295906] Olle Johansson * main/say.c: Fix support of saynumber(1,n) in the Swedish language (closes issue #18353) Reported by: oej Review: https://reviewboard.asterisk.org/r/1031/ 2010-11-22 18:46 +0000 [r295790] Richard Mudgett * main/channel.c, main/pbx.c, apps/app_macro.c, include/asterisk/channel.h, include/asterisk/frame.h: The channel redirect function (CLI or AMI) hangs up the call instead of redirecting the call. To recreate the problem: 1) Party A calls Party B 2) Invoke CLI "channel redirect" command to redirect channel call leg associated with A. 3) All associated channels are hung up. Note that if the CLI command were done on the channel call leg associated with B it works. This regression was a result of the fix for issue #16946 (https://reviewboard.asterisk.org/r/740/). The regression affects all features that use an async goto to execute the dialplan because of an external event: Channel redirect, AMI redirect, SIP REFER, and FAX detection. The struct ast_channel._softhangup code is a mess. The variable is used for several purposes that do not necessarily result in the call being hung up. I have added doxygen comments to describe how the various _softhangup bits are used. I have corrected all the places where the variable was tested in a non-bit oriented manner. The primary fix is the new AST_CONTROL_END_OF_Q frame. It acts as a weak hangup request so the soft hangup requests that do not normally result in a hangup do not hangup. JIRA SWP-2470 JIRA SWP-2489 (closes issue #18171) Reported by: SantaFox (closes issue #18185) Reported by: kwemheuer (closes issue #18211) Reported by: zahir_koradia (closes issue #18230) Reported by: vmarrone (closes issue #18299) Reported by: mbrevda (closes issue #18322) Reported by: nerbos Review: https://reviewboard.asterisk.org/r/1013/ 2010-11-19 20:53 +0000 [r295628] Terry Wilson * channels/chan_sip.c: Discard responses with more than one Via This is not a perfect solution as headers that are joined via commas are not detected. This is a parsing issue that to fix "correctly" would necessitate a new SIP parser. Review: https://reviewboard.asterisk.org/r/1019/ 2010-11-19 19:32 +0000 [r295552-295553] Erin Spiceland * res/res_agi.c: Revert a new feature which should have gone into trunk. * res/res_agi.c: Add extra functionality to AGI command WAIT FOR DIGIT. Add the ability to play a sound file, listen for more than just one digit, specify escape characters. Backwards compatible (to work with only timeout specified). (closes issue #15531) Reported by: diLLec Patches: asterisk-res_agi-203638-patched.patch uploaded by diLLec (license 839) Tested by: diLLec, espiceland 2010-11-16 22:52 +0000 [r295280] Richard Mudgett * main/channel.c: Dead code elimination in channel.c:ast_channel_bridge() variable who. 2010-11-16 21:29 +0000 [r295200] Jeff Peeler * apps/app_voicemail.c: Ensure original message duration is preserved when prepending a message. It seems the fix to issue 17103 was a little overzealous and removed the code that backed up the textfile containing the original message duration. This code has now been restored. (related to issue #17103) ABE-2654 2010-12-02 Leif Madsen * Asterisk 1.4.38 Released. 2010-11-15 Leif Madsen * Asterisk 1.4.38-rc1 Released. 2010-11-15 18:05 +0000 [r295026-295031] Tilghman Lesher * tests/test_expr.c: Err, oops. Made it const to verify that it wasn't altered, but forgot to revert before commit. * tests/test_expr.c (added): Create test verifying results of expression parser 2010-11-12 20:49 +0000 [r294903] Jeff Peeler * apps/app_voicemail.c: Fix regression causing abort in voicemail after opening a mailbox with no mesgs. In order to be more safe, some error handling code was changed to respect more error conditions including the potential memory allocation failure for deleted and heard message tracking introduced in 293004. However, last_message_index returns -1 for zero messages (perhaps as expected) and was triggering the stricter error checking. Because last_message_index is only called directly in one place, just return 0 from open_mailbox (for file based storage) when no messages are detected unless a real error has occurred. (closes issue #18240) Reported by: leobrown Patches: bug18240.1-6-2.diff.txt uploaded by alecdavis (license 585) Tested by: pabelanger 2010-11-12 02:41 +0000 [r294821] Richard Mudgett * channels/chan_dahdi.c: Asterisk is getting a "No D-channels available!" warning message every 4 seconds. Asterisk is just whining too much with this message: "No D-channels available! Using Primary channel XXX as D-channel anyway!". Filtered the message so it only comes out once if there is no D channel available without an intervening D channel available period. (closes issue #17270) Reported by: jmls 2010-11-11 22:11 +0000 [r294641-294739] Jeff Peeler * main/pbx.c: I didn't mean to merge this, sorry * channels/chan_sip.c: Fix problem with qualify option packets for realtime peers never stopping. The option packets not only never stopped, but if a realtime peer was not in the peer list multiple options dialogs could accumulate over time. This scenario has the potential to progress to the point of saturating a link just from options packets. The fix was to ensure that the poke scheduler checks to see if a peer is in the peer list before continuing to poke. The reason a peer must be in the peer list to be able to properly manage an options dialog is because otherwise the call pointer is lost when the peer is regenerated from the database, which is how existing qualify dialogs are detected. (closes issue #16382) Reported by: lftsy Patches: bug16382-3.patch uploaded by jpeeler (license 325) Tested by: zerohalo * main/pbx.c: One small addition to 294384 found while very carefully merging to 1.6. 2010-11-09 17:37 +0000 [r294384] Jeff Peeler * main/asterisk.c, include/asterisk.h, main/pbx.c: Fix a deadlock in device state change processing. Copied from some notes from the original author (Russell): Deadlock scenario: Thread 1: device state change thread Holds - rdlock on contexts Holds - hints lock Waiting on channels container lock Thread 2: SIP monitor thread Holds the "iflock" Holds a sip_pvt lock Holds channel container lock Waiting for a channel lock Thread 3: A channel thread (chan_local in this case) Holds 2 channel locks acquired within app_dial Holds a 3rd channel lock it got inside of chan_local Holds a local_pvt lock Waiting on a rdlock of the contexts lock A bunch of other threads waiting on a wrlock of the contexts lock To address this deadlock, some locking order rules must be put in place and enforced. Existing relevant rules: 1) channel lock before a pvt lock 2) contexts lock before hints lock 3) channels container before a channel What's missing is some enforcement of the order when you involve more than any two. To fix this problem, I put in some code that ensures that (at least in the code paths involved in this bug) the locks in (3) come before the locks in (2). To change the operation of thread 1 to comply, I converted the storage of hints to an astobj2 container. This allows processing of hints without holding the hints container lock. So, in the code path that led to thread 1's state, it no longer holds either the contexts or hints lock while it attempts to lock the channels container. (closes issue #18165) Reported by: antonio ABE-2583 2010-11-08 18:59 +0000 [r294163] Matthew Nicholson * channels/chan_sip.c: Modify our handling of 491 responses to drop any pending reinvite retry scheduler entries if we get a new 491. This prevents a scheduler entry from leaking if we receive a 491 response when one is pending. If a scheduler entry leaks, the pvt it is associated my get destroyed before the scheduler entry fires, and then memory corruption and crashes can occur when the scheduled reinvite attempts to access and modify the memory of the destroyed pvt. ABE-2543 2010-11-05 00:02 +0000 [r293968] Shaun Ruffell * codecs/codec_dahdi.c: codecs/codec_dahdi: Prevent "choppy" audio when receiving unexpected frame sizes. dahdi-linux 2.4.0 (specifically commit 9034) added the capability for the wctc4xxp to return more than a single packet of data in response to a read. However, when decoding packets, codec_dahdi was still assuming that the default number of samples was in each read. In other words, each packet your provider sent you, regardless of size, would result in 20 ms of decoded data (30 ms if decoding G723). If your provider was sending 60 ms packets then codec_dahdi would end up stripping 40 ms of data from each transcoded frame resulting in "choppy" audio. This would only affect systems where G729 packets are arriving in sizes greater than 20ms or G723 packets arriving in sizes greater than 30ms. DAHDI-744. 2010-11-04 21:28 +0000 [r293922] David Vossel * res/res_features.c: Fixes ringback tone on feature semi-attended transfer ABE-2168 2010-11-03 18:23 +0000 [r293805] Richard Mudgett * channels/chan_dahdi.c: Party A in an analog 3-way call would continue to hear ringback after party C answers. All parties are analog FXS ports. 1) A calls B. 2) A flash hooks to call C. 3) A flash hooks to bring C into 3-way call before C answers. (A and B hear ringback) 4) C answers 5) A continues to hear ringback during the 3-way call. (All parties can hear each other.) * Fixed use of wrong variable in dahdi_bridge() that stopped ringback on the wrong subchannel. * Made several debug messages have more information. A similar issue happens if B and C are SIP channels. B continues to hear ringback. For some reason this only affects v1.8 and trunk. * Don't start ringback on the real and 3-way subchannels when creating the 3-way conference. Removing this code is benign on v1.6.2 and earlier. 2010-11-02 23:02 +0000 [r293722] Jeff Peeler * channels/chan_sip.c: Add enabled/disabled information for rtautoclear sip show settings output. When setting to zero/"no", the numeric default was shown making it not obvious the disabled setting was respected. (closes issue #18123) Reported by: zerohalo 2010-11-02 21:24 +0000 [r293639] Richard Mudgett * channels/chan_dahdi.c: Make warning message have more useful information in it. Change "Unable to get index, and nullok is not asserted" to "Unable to get index for '' on channel ((), line )". 2010-10-30 01:45 +0000 [r293339-293416] Richard Mudgett * channels/chan_dahdi.c: Remove some more code that serves no purpose. * channels/chan_dahdi.c: Remove some code that serves no purpose. 2010-10-28 19:44 +0000 [r293194] Tilghman Lesher * main/ast_expr2.c, main/ast_expr2.h, main/ast_expr2.y: "!00" evaluated as false, which is incorrect. Fixing. Reported (though the reporter did not understand he was reporting a bug) on the asterisk-users list: http://lists.digium.com/pipermail/asterisk-users/2010-October/255505.html 2010-10-25 22:55 +0000 [r293004] Jeff Peeler * apps/app_voicemail.c: Fix inprocess_container in voicemail to correctly restrict max messages. The comparison function logic was off, so the number of sessions for a given mailbox were not being incremented properly. This problem caused the maximum number of messages per folder to not be respected when simultaneously leaving multiple voicemails just below the threshold. These problems should be fixed by the above, but just in case: Fixed resequence_mailbox to rely on the actual number of detected number of files in a directory rather than just assuming only 10 messages more than the maximum had been left. Also if more messages than the maximum are deleted they are actually removed now. The second purpose of this commit should have been separated out probably, but is related to the above. Again, if the number of messages in a given voicemail folder exceeds the maximum set limit make sure to allocate enough space for the deleted and heard index tracking array. A few random fixes: There was a forgotten decrement of the inprocess count in imap_store_file. When using IMAP storage, do not look in the directory where file based storage messages may still reside and influence the message count. Ensure to use only the first format in sendmail. ABE-2516 2010-10-25 19:05 +0000 [r292866] David Vossel * channels/chan_local.c: This patch turns chan_local pvts into astobj2 objects. chan_local does some dangerous things involving deadlock avoidance. tech_pvt functions like hangup and queue_frame are provided with a locked channel upon entry. Those functions are completely safe as long as you don't attempt to give up that channel lock, but that is impossible to guarantee due to the required deadlock avoidance necessary to lock both the tech_pvt and both channels involved. In the past, we have tried to account for this by doing things like setting a "glare" flag that indicates what function should destroy the pvt. This was used in local_hangup and local_queue_frame to decided who should destroy the pvt if they collided in separate threads. I have removed the need to do this by converting all chan_local tech_pvts to astobj2. This means we can ref a pvt before deadlock avoidance and not have to worry about that pvt possibly getting destroyed under us. It also cleans up where we destroy the tech_pvt. The only unlink from the tech_pvt container occurs in local_hangup now, which is where it should occur. Since there still may be thread collisions on some functions like local_hangup after deadlock avoidance, I have added some checks to detect those collisions and exit appropriately. I think this patch is going to solve quite a bit of weirdness we have had with local channels in the past. 2010-10-21 00:00 +0000 [r292411] Paul Belanger * apps/app_dial.c: Record priv-recordintro as sln, not gsm This removes the gsm->sln step when transcoding priv-recordintro. (closes issue #18176) Reported by: pabelanger Patches: chan_sip.diff uploaded by pabelanger (license 224) 2010-10-18 21:50 +0000 [r292223] Jeff Peeler * apps/app_voicemail.c: Fix improper operator key acceptance and clean up temp recording files. This is a fix for when pressing the operator key after recording an unavailable, busy, name, or temporary message in mailbox options. The operator key should not be accepted here, but should be allowed during the message recording. If the operator key is pressed during ensure the file is saved or deleted as apporopriate. Also, ensure removal of temporary recorded files after an early hang up or when message acceptance confirmation times out. ABE-2518 2010-10-18 21:47 +0000 [r292222] Leif Madsen * sounds/sounds.xml, sounds/Makefile: Add support for the new English (Australian Accent) sound files. (closes issue #17426) Reported by: camsown Patches: core-sounds-en_AU.txt uploaded by camsown (license 1050) add_AU_sounds.patch.txt uploaded by lmadsen (license 10) Tested by: camsown, lmadsen, jtodd, qwell 2010-10-15 19:30 +0000 [r291938] Paul Belanger * configs/gtalk.conf.sample: Clean up formatting. 2010-10-15 02:13 +0000 [r291862] Terry Wilson * channels/chan_oss.c: Don't access o->next after freeing o on unload 2010-10-13 23:29 +0000 [r291643] Richard Mudgett * channels/chan_dahdi.c: Deadlock between dahdi_exception() and dahdi_indicate(). There is a deadlock between dahdi_exception() and dahdi_indicate() for analog ports. The call-waiting and three-way-calling feature can experience deadlock if these features are trying to do something and an event from the bridged channel happens at the same time. Deadlock avoidance code added to obtain necessary channel locks before attemting an operation with call-waiting and three-way-calling. (closes issue #16847) Reported by: shin-shoryuken Patches: issue_16847_v1.4.patch uploaded by rmudgett (license 664) issue_16847_v1.6.2.patch uploaded by rmudgett (license 664) issue_16847_v1.8_v2.patch uploaded by rmudgett (license 664) Tested by: alecdavis, rmudgett Review: https://reviewboard.asterisk.org/r/971/ 2010-10-13 22:45 +0000 [r291577] Terry Wilson * main/channel.c: Don't ignore frames that have been queued when softhangup'd When an outgoing call is answered and hung up by the far end *very* quickly, we may not read any frames and therefor end up with a call that displays the wrong disposition/DIALSTATUS. The reason is because ast_queue_hangup() immediately sets the _softhangup flag on the channel and then queues the HANGUP control frame, but __ast_read refuses to read any frames if ast_check_hangup() indicates that a hangup request has been made (which it will if _softhangup is set). So, we end up losing control frames. This change makes __ast_read continue to read frames even if a soft hangup has been requested. It queues a hangup frame to make sure that __ast_read() will still eventually return NULL. Much thanks to David Vossel for all of the reviews, discussion, and help! (closes issue #16946) Reported by: davidw Review: https://reviewboard.asterisk.org/r/740/ 2010-10-13 15:23 +0000 [r291392] Russell Bryant * channels/chan_sip.c: Lock pvt so pvt->owner can't disappear when queueing up a frame. This fixes a crash due to a hangup race condition. ABE-2601 2010-10-12 16:55 +0000 [r291263] Tilghman Lesher * main/acl.c: Oops, incorrect range (although unallocated at ARIN) 2010-10-11 18:29 +0000 [r291109] Richard Mudgett * channels/chan_sip.c: Add missing unlock to an exception condition in reload_config(). 2010-10-08 02:35 +0000 [r290862] Jeff Peeler * main/asterisk.c: Ensure editline cleanup occurs when Ctrl-C is pressed at control console. A recent change was made to avoid a race condition on shutdown which only called the end functions from the console thread. However, when pressing Ctrl-C the quit handler is called from the signal handler thread. (closes issue #17698) Reported by: jmls 2010-10-07 20:56 +0000 [r290750] Jason Parker * autoconf/ast_ext_lib.m4, configure, include/asterisk/autoconfig.h.in: Allow PRI to build properly when using --with-pri. Use the directories found for the parent when using lib dependencies. (closes issue #17314) Reported by: tzafrir Patches: 17314-withdeps.diff uploaded by qwell (license 4) 2010-10-05 20:20 +0000 [r290392] Tilghman Lesher * res/res_jabber.c: Fix a crash by ensuring that we don't alter memory after it's freed. (closes issue #17387) Reported by: jmls Patches: 20100726__issue17387.diff.txt uploaded by tilghman (license 14) Tested by: jmls 2010-10-05 17:41 +0000 [r290323] Richard Mudgett * contrib/valgrind.supp: Merged revision 258974 from https://origsvn.digium.com/svn/asterisk/trunk .......... r258974 | diruggles | 2010-04-26 14:05:47 -0500 (Mon, 26 Apr 2010) | 4 lines Line 24 missed in compatibility fix in revision 233577 added a "fun:" prefix line 24 .......... 2010-10-04 20:15 +0000 [r290100-290177] Tilghman Lesher * configure, configure.ac: Fixing Mac OS X auto-builder. * configure, configure.ac: Automatically re-run configure test for menuselect, when the relevant makeopts settings change. 2010-10-02 08:50 +0000 [r289949] Olle Johansson * main/manager.c: Add documentation for undocumented option to AMI action originate 2010-10-02 04:42 +0000 [r289873] Tilghman Lesher * apps/app_voicemail.c: When forwarding a message, a prepend means that the filesystem will always have a better copy. (closes issue #17803) Reported by: dpetersen Patches: 20100923__issue17803.diff.txt uploaded by tilghman (license 14) Tested by: dpetersen 2010-10-01 22:58 +0000 [r289797] Jeff Peeler * main/rtp.c, channels/chan_sip.c, include/asterisk/rtp.h: Change RFC2833 DTMF event duration on end to report actual elapsed time. The scenario here is with a non P2P early media session. The reported time length of DTMF presses are coming up short when sending to the remote side. Currently the event duration is a running total that is incremented when sending continuation packets. These continuation packets are only triggered upon incoming media from the remote side, which means that the running total probably is not going to end up matching the actual length of time Asterisk received DTMF. This patch changes the end event duration to be lengthened if it is detected that the end event is going to come up short. Review: https://reviewboard.asterisk.org/r/957/ ABE-2476 2010-10-01 17:03 +0000 [r289703] Paul Belanger * configs/jabber.conf.sample, res/res_jabber.c: Disable debugging by default and reformat .config file. Review: https://reviewboard.asterisk.org/r/929/ 2010-10-01 16:20 +0000 [r289699] Jeff Peeler * channels/chan_sip.c: Ensure user portion of SIP URI matches dialplan when using encoded characters. This commit takes a simliar approach to 288112 and checks the dialplan to determine the proper action for an incoming contact header as to whether or not it should be decoded or not. sip_new was blindly always decoding the extension, which also caused the outgoing contact header to be incorrect as well as failing to match the encoded extension in the dialplan. (closes issue #17892) Reported by: wdoekes Patches: bug17892-1.patch uploaded by jpeeler (license 325) Tested by: wdoekes 2010-10-01 09:42 +0000 [r289622] schmitds : * channels/chan_sip.c: don't iterate through all dialogs to find and delete old subscribes On every incoming subscribe there is a iteration through all dialogs to find old subscribes and delete them. This is slow and not RFC conform. This was only needed in 1.2 cause a subscribe was not deleted when a dialog was destroyed, after 1.4 a subscribe get removed when its dialog is destroyed. (closes issue #17950) Reported by: schmidts Tested by: schmidts Review: https://reviewboard.asterisk.org/r/901/ 2010-09-30 17:08 +0000 [r289500] Brett Bryant * res/res_agi.c: res_agi.c:handle_getvariablefull() could recursively lock a channel and not release it if an argument is the current channel's name. (closes issue #17970) Reported by: mdu113 Patches: res_agi.c.diff3 uploaded by mdu113 (license 582) Tested by: mdu113 Review: https://reviewboard.asterisk.org/r/947/ 2010-09-30 15:34 +0000 [r289424] Russell Bryant * apps/app_sms.c: Fix a crash in app_sms. Since the data being passed to the generator callback is on the stack of the SMS() application, we must ensure that the generator is stopped before the application exits. ABE-2587 2010-09-29 20:56 +0000 [r289338] Jason Parker * main/channel.c, res/res_features.c: Allow a manager originate to succeed on forwarded devices. The timeout to wait for an answer was being set to 0 when a device forwarded to another extension. We don't always need the timeout set like this, so make it an optional parameter, and don't use it in this case. ABE-2544 2010-09-29 15:03 +0000 [r289177] Matthew Nicholson * main/channel.c: Set the caller id on CDRs when it is set on the parent channel. (closes issue #17569) Reported by: tbelder Patches: 17569.diff uploaded by tbelder (license 618) Tested by: tbelder 2010-09-28 18:10 +0000 [r289094] Brett Bryant * main/channel.c: Fixes an issue with the Newchannel AMI event during the Masquerading process. Fixes an issue with the Newchannel AMI event during the Masquerading process, where no Newchannel AMI event was generated for the psuedo channel used during the masquerading process. (closes issue #17987) Reported by: RadicAlish Patches: newchannel.patch.txt uploaded by RadicAlish (license 1122) Tested by: RadicAlish Review: https://reviewboard.asterisk.org/r/937/ 2010-09-24 15:26 +0000 [r288746] Terry Wilson * channels/chan_local.c: Don't fail a masquerade if it is already being hung up This avoids noise on some Local channel situations where we don't use /n. Thanks to Alec Davis for the suggestion. 2010-09-24 03:20 +0000 [r288636] Tilghman Lesher * main/asterisk.exports, include/asterisk/compat.h, main/strcompat.c, include/asterisk/channel.h: Solaris compatibility fixes 2010-09-22 23:00 +0000 [r288499] Terry Wilson * channels/chan_local.c: Don't let a Local channel get bridged to itself If a local channel gets bridged to itself, it becomes orphaned with no devices left to actually tell it to hang up. This patch modifies local_fixup() to detect this case and deny it. Review: https://reviewboard.asterisk.org/r/934 2010-09-22 17:48 +0000 [r288416] David Vossel * channels/chan_sip.c: RFC3261 section 12.2 explicitly says out of order requests are responded with a 500 Server Internal Error response. ABE-2458 2010-09-22 17:39 +0000 [r288412] Matthew Nicholson * channels/chan_sip.c: Handle media specific T.38 SDP information (closes issue #16647) Reported by: kwemheuer 2010-09-22 16:49 +0000 [r288343] David Vossel * channels/chan_sip.c: During check_pendings, if the dialog is terminated with a CANCEL, change the invitestate to INV_CANCEL like in sip_hangup. 2010-09-22 16:39 +0000 [r288339] Russell Bryant * main/asterisk.c: Fix a 100% CPU consumption problem when setting console=yes in asterisk.conf. The handling of -c and console=yes should be the same, but they were not. When you specify -c, it sets both a flag for console module and for asterisk not to fork() off into the background. The handling of console=yes only set console mode, so you would end up with a background process() trying to run the Asterisk console and freaking out since it didn't have anything to read input from. Thanks to beagles for reporting and helping debug the problem! 2010-09-22 15:04 +0000 [r288265-288266] Tilghman Lesher * UPGRADE.txt: Document addition of encoding parameter. (issue #16940) Reported by: jamicque * configs/cdr_pgsql.conf.sample, cdr/cdr_pgsql.c: Allow the encoding to be set, in case local charset does not agree with database. (closes issue #16940) Reported by: jamicque Patches: 20100827__issue16940.diff.txt uploaded by tilghman (license 14) 20100921__issue16940__1.6.2.diff.txt uploaded by tilghman (license 14) Tested by: jamicque 2010-09-21 23:55 +0000 [r288192] Richard Mudgett * channels/chan_iax2.c: In chan_iax2.c:schedule_delivery() calls ast_bridged_channel() on an unlocked channel. Near the beginning of schedule_delivery(), ast_bridged_channel() is called on iaxs[fr->callno]->owner. However, the channel is not locked, which can result in ast_bridged_channel() crashing should owner->tech change to a technology that doesn't implement bridged_channel. I also fixed the other calls to ast_bridged_channel() in chan_iax2.c since the owner lock was not held there either. Converted the existing channel deadlock avoidance to use iax2_lock_owner(). Using the new function simplified some awkward code. In the process of fixing the locking on ast_bridged_channel(), I also found a memory leak in socket_process() for v1.6.2 and v1.8. The local struct variable ies.vars is not freed on early/abnormal function exits. (closes issue #17919) Reported by: rain Patches: issue17919_v1.4.patch uploaded by rmudgett (license 664) issue17919_w_leak_v1.6.2.patch uploaded by rmudgett (license 664) issue17919_w_leak_v1.8.patch uploaded by rmudgett (license 664) Review: https://reviewboard.asterisk.org/r/926/ 2010-09-21 22:17 +0000 [r288112-288116] Tilghman Lesher * include/asterisk/stringfields.h: Underquoted definition of stringfield macro. * channels/chan_sip.c: Try both the encoded and unencoded subscription URI for a match in hints. When a phone sends an encoded URI for a subscription, the URI is not matched with the actual hint that is in decoded format. For example, if we have an extension with a hint that is named: "#5601" or "*5601", the subscription will work fine if the phone subscribes with an already decoded URI, but when it's decoded like "%255601" or "%2A5601", Asterisk is unable to match it with the correct hint. (closes issue #17785) Reported by: ramonpeek Patches: 20100831__issue17785.diff.txt uploaded by tilghman (license 14) Tested by: ramonpeek 2010-09-21 19:43 +0000 [r288005] Brett Bryant * main/channel.c: Add a check to fix a rare segmentation fault you'd get if ast_frdup couldn't allocate memory on the first frame being queued in ast_queue_frame. (closes issue #17882) Reported by: seanbright Tested by: seanbright 2010-09-21 19:07 +0000 [r287933] Tilghman Lesher * main/asterisk.c: Less than zero is an error, not any non-zero value. 2010-09-20 23:57 +0000 [r287758] Brett Bryant * apps/app_meetme.c: Fix misvalidation of meetme pins in conjunction with the 'a' MeetMe flag. When using the 'a' MeetMe flag and having a user and admin pin setup for your conference, using the user pin would gain you admin priviledges. Also, when no user pin was set, an admin pin was, the 'a' MeetMe flag wasn't used, and the user tried to enter a conference then they were still prompted for a pin and forced to hit #. (closes issue #17908) Reported by: kuj Patches: pins_2.patch uploaded by kuj (license 1111) Tested by: kuj Review: [full review board URL with trailing slash] 2010-09-20 23:15 +0000 [r287682-287684] Alec L Davis * main/channel.c: ast_channel_masquerade: remove extra else if (closes issue #17363,#16057) Reported by: amorsen;davidw,alecdavis Patches: based on bug16057.diff4.txt uploaded by alecdavis (license 585) Tested by: ramonpeek, davidw, alecdavis * main/channel.c: ast_channel_masquerade: Avoid recursive masquerades. Check all 4 combinations of (original/clonechan) * (masq/masqr). Initially original->masq and clonechan->masqr were only checked. It's possible with multiple masq's planned - and not yet executed, that the 'original' chan could already have another masq'd into it - thus original->masqr would be set, that masqr would lost. Likewise for the clonechan->masq. (closes issue #16057;#17363) Reported by: amorsen;davidw,alecdavis Patches: bug16057.diff4.txt uploaded by alecdavis (license 585) Tested by: ramonpeek, davidw, alecdavis 2010-11-02 Leif Madsen * Asterisk 1.4.37 Released. 2010-09-20 Leif Madsen * Asterisk 1.4.37-rc1 Released. 2010-09-20 15:48 +0000 [r287555] Matthew Nicholson * main/pbx.c: Use ast_dynamic_str when processing hint state changes (related to issue #17928) Reported by: mdu113 2010-09-19 15:56 +0000 [r287469] Olle Johansson * main/manager.c: Make sure we always free variables properly in manager originate. (closes issue #17891) reported, solved and tested by oej Review: https://reviewboard.asterisk.org/r/869/ 2010-09-17 21:06 +0000 [r287386] Tilghman Lesher * apps/app_queue.c: Blank columns should get set on reload, not ignored. (closes issue #16893) Reported by: haakon Patches: 20100818__issue16893.diff.txt uploaded by tilghman (license 14) 2010-09-17 13:34 +0000 [r287307] Matthew Nicholson * main/pbx.c: Use ast_strdup() instead of ast_strdupa() while processing in ast_hint_state_changed(). (related to issue #17928) Reported by: mdu113 2010-09-16 22:12 +0000 [r287197] Jason Parker * contrib/init.d/rc.debian.asterisk: Add LSB headers for Debian init script, since Debian will complain if it isn't there. Headers were taken from trunk. (closes issue #17958) Reported by: javyer 2010-09-16 20:04 +0000 [r287114-287118] Matthew Nicholson * main/pbx.c: Don't limit hint processing in ast_hint_state_changed() to AST_MAX_EXTENSION length strings. (closes issue #17928) Reported by: mdu113 Patches: 20100831__issue17928.diff.txt uploaded by tilghman (license 14) Tested by: mdu113 * main/cdr.c: Don't stop printing cdr variables if we encounter one with a blank name or value. (closes issue #17900) Reported by: under Patches: core-show-channel-cdr-fix1.diff uploaded by mnicholson (license 96) Tested by: mnicholson 2010-09-15 20:20 +0000 [r286941-286956] Jeff Peeler * apps/app_voicemail.c: whitespace fix * apps/app_voicemail.c: Ensure mailbox is not filled to capacity before doing message forwarding. Specifically, before prompting to record a prepended message the capacity is checked first. If the mailbox is full the extension will be reprompted. ABE-2517 2010-09-14 19:26 +0000 [r286679-286756] Matthew Nicholson * channels/chan_sip.c: Don't clear the username from a realtime database when a registration expires. Non-realtime chan_sip does not clear the username from memory when a registration expiries so realtime probably shouldn't either. (closes issue #17551) Reported by: ricardolandim Patches: reg-expiry-username-1.4-fix1.diff uploaded by mnicholson (license 96) reg-expiry-username-1.6.2-fix1.diff uploaded by mnicholson (license 96) reg-expiry-username-1.8-fix1.diff uploaded by mnicholson (license 96) reg-expiry-username-trunk-fix1.diff uploaded by mnicholson (license 96) Tested by: ricardolandim, mnicholson * main/channel.c: Only drop duplicate answer frames if the channel is bridged. Back in r3710 ast_read() was modified to drop answer frames on channels that were in the UP state. This modification prevented bridges that were up before the answer from being broken and reestablished by an ANSWER control frame. That change also prevents pickup of channels called from the ast_dial framework from working properly. The ast_dial framework expects to see an ANSWER frame after dialing and the pickup code queues one but ast_read() drops it. This new change only drops ANSWER frames when the channel is bridged, allowing the answer queued by the pickup code to properly pass through ast_read() on to the ast_dial framework. ABE-2473 (related to issue #2342) 2010-09-13 15:12 +0000 [r286381] Jason Parker * tests: Add stuff to svn:ignore for tests/ directory. (closes issue #17983) Reported by: oej 2010-09-11 16:59 +0000 [r286267] Olle Johansson * main/file.c: Handle error response when we can't make file compatible Review: https://reviewboard.asterisk.org/r/911/ 2010-09-10 22:54 +0000 [r286222] Terry Wilson * channels/chan_local.c: Return -1 if chan_local doesn't support an option 2010-09-10 20:35 +0000 [r286114] Paul Belanger * channels/chan_iax2.c: Load iax.conf before registering any functions/applications/actions. Review: https://reviewboard.asterisk.org/r/914/ 2010-09-10 20:33 +0000 [r286113] Richard Mudgett * channels/chan_dahdi.c: An outgoing call may not get hung up if a pre-connect incoming ISDN call is disconnected. If the ISDN link a pre-connect incoming call is using fails or is reset, the outgoing leg may not hang up or be delayed in hanging up. (Causes: PRI_CAUSE_NETWORK_OUT_OF_ORDER, PRI_CAUSE_DESTINATION_OUT_OF_ORDER, and PRI_CAUSE_NORMAL_TEMPORARY_FAILURE.) Just hang up the call if the incoming call leg hangs up before connecting for any reason. It makes no sense to send a BUSY or CONGESTION control frame to the outgoing call leg under these circumstances. 2010-09-10 20:03 +0000 [r286070] David Vossel * channels/chan_sip.c: Fixes sip extension state update DEADLOCK PROBLEM: In chan_sip, and all the other channel drivers, it is common for us to hold the tech_pvt lock while we ask the Asterisk core about an extension and context. Every time we do this the locking order becomes, (1. tech_pvt lock ---> 2. global context lock). In chan_sip when a dialog subscribes to a hint, that locking order is reversed in the extensionstate callback which will occur outside of the channel_driver's monitor loop. So, on an extension state update we have (1. global context lock ----> 2. tech_pvt lock). Typically when we have to do a reversed locking order like this we'd just do some sort of deadlock avoidance to fix the problem... That will not work here. There are more locks involved here than just the context and tech_pvt. Those are the two that are colliding, but it is impossible to give up the context lock because the global hints list lock MUST be held as well and we can not give that lock up during the extensionstate callback traversal... The locking order for the context and hints are (1. global context lock ----> 2. hints list lock). Deadlock avoidance is not an option here. SOLUTION: The solution this patch implements is to queue the extension state updates into a list and send the NOTIFY messages out during the do_monitor pvt traversal. This clears out the problem of having to hold the context lock before the tech_pvt lock entirely. (closes issue #17888) Reported by: zerohalo 2010-09-10 19:25 +0000 [r286059] Terry Wilson * channels/chan_local.c, funcs/func_channel.c, include/asterisk/channel.h, include/asterisk/pbx.h, include/asterisk/frame.h: Inherit CHANNEL() writes to both sides of a Local channel Having Local (/n) channels as queue members and setting the language in the extension with Set(CHANNEL(language)=fr) sets the language on the Local/...,2 channel. Hold time report playbacks happen on the Local/...,1 channel and therefor do not play in the specified language. This patch modifies func_channel_write to call the setoption callback and pass the CHANNEL() write info to the callback. chan_local uses this information to look up the other side of the channel and apply the same changes to it. (closes issue #17673) Reported by: Guggemand Review: https://reviewboard.asterisk.org/r/903/ 2010-09-10 18:22 +0000 [r285889-286023] Tilghman Lesher * main/test.c: Missing newline * include/asterisk/select.h, configure, include/asterisk/autoconfig.h.in, configure.ac, tests/test_poll.c: Fix Mac OS X build. This also fixes a rather grievous calculation error for the offset of ast_fdset, which was masked on Linux and FreeBSD, because these platforms check the first 256 FDs regardless of the bitmask setting (due to backwards compatibility). 2010-09-09 22:34 +0000 [r285817] Paul Belanger * codecs/gsm/Makefile: GCC 4.2.x optimizations result in improper behavior of GSM codec (closes issue #17688) Reported by: pprindeville Patches: asterisk-trunk-bugid11243.patch uploaded by pprindeville (license 347) Tested by: mkeuter, pprindeville 2010-09-09 20:06 +0000 [r285742] Jason Parker * main/channel.c: Transmit silence when reading DTMF in ast_readstring. Otherwise, you could get issues with DTMF timeouts causing hangups. (closes issue #17370) Reported by: makoto Patches: channel-readstring-silence-generator.patch uploaded by makoto (license 38) 2010-09-09 17:20 +0000 [r285638] Brett Bryant * res/res_musiconhold.c: Fixes an issue with MOH where it doesn't recover cleanly when it can't play a file and would just stop, instead of continuing to find the next playable file in the MOH class. (closes issue #17807) Reported by: kshumard Review: https://reviewboard.asterisk.org/r/910/ 2010-09-08 22:07 +0000 [r285566] David Vossel * channels/chan_sip.c: In retrans_pkt, do not unlock pvt until the end of the function on a transmit failure. 2010-09-07 20:30 +0000 [r285266-285365] Tilghman Lesher * pbx/pbx_config.c: Catch invalid extensions at the parser, instead of making the core deal with them. (closes issue #17794) Reported by: PavelL Patches: 20100820__issue17794__1.6.2.diff.txt uploaded by tilghman (license 14) 20100820__issue17794__1.4.diff.txt uploaded by tilghman (license 14) Tested by: PavelL * main/poll.c: Use poll, if indicated to do so, in the ast_poll2 implementation. This fixes the unit tests on FreeBSD 8.0. 2010-09-07 17:45 +0000 [r285194] Brett Bryant * apps/app_voicemail.c: Fixes voicemail.conf issues where mailboxes with passwords that don't precede a comma would throw unnecessary error messages. (closes issue #15726) Reported by: 298 Patches: M15726.diff uploaded by junky (license 177) Tested by: junky Review: [full review board URL with trailing slash] 2010-09-06 06:54 +0000 [r285088] Tilghman Lesher * BSDmakefile (added), makeopts.in: Silly convenience script for BSD platforms. 2010-09-03 16:10 +0000 [r284881] Terry Wilson * apps/app_chanspy.c: Properly detect when a sound file doesn't exist ast_fileexists returns -1 for error and 0 for a non-existant file. The existing code treated missing files as though they were existed. 2010-09-02 20:25 +0000 [r284777] Brett Bryant * main/manager.c: Fixes a bug in manager.c where the default configuration values weren't reset when the manager configuration was reloaded. (closes issue #17917) Reported by: lmadsen Review: https://reviewboard.asterisk.org/r/883/ 2010-09-02 16:47 +0000 [r284703] David Vossel * channels/chan_sip.c: Removed relatedpeer code from sip_autodestruct Handling of the relatedpeer structure associated with a sip_pvt should be done during the final sip_destruction function, not in sip_autodestruct. 2010-09-01 18:49 +0000 [r284393-284478] Tilghman Lesher * channels/chan_oss.c, main/asterisk.c, main/poll.c, include/asterisk/select.h (added), channels/chan_phone.c, channels/chan_misdn.c, configure, include/asterisk/autoconfig.h.in, res/res_features.c, configure.ac, channels/chan_alsa.c, include/asterisk/poll-compat.h, include/asterisk/channel.h, tests/test_poll.c (added): Ensure that all areas that previously used select(2) now use poll(2), with implementations that need poll(2) implemented with select(2) safe against 1024-bit overflows. This is a followup to the fix for the pthread timer in 1.6.2 and beyond, fixing a potential crash bug in all supported releases. (closes issue #17678) Reported by: russell Branch: https://origsvn.digium.com/svn/asterisk/team/tilghman/ast_select Review: https://reviewboard.asterisk.org/r/824/ * channels/chan_sip.c: Don't send a devstate change on poke_noanswer if the state did not change. (closes issue #17741) Reported by: schmidts Patches: chan_sip.c.patch uploaded by schmidts (license 1077) 2010-08-31 18:57 +0000 [r284316] Leif Madsen * configs/say.conf.sample: Update say.conf.sample to match the rules in say.c (closes issue #17835) Reported by: RoadKill Patches: say.conf.sample.patch.rules uploaded by RoadKill (license 933) Tested by: RoadKill 2010-08-27 22:17 +0000 [r283960] David Vossel * channels/chan_sip.c: Parse all "Accept" headers for SIP SUBSCRIBE requests. (closes issue #17758) Reported by: ibc Patches: multiple_accept_headers_1.4.diff uploaded by dvossel (license 671) 2010-08-27 20:29 +0000 [r283880] Jason Parker * res/res_config_pgsql.c, res/res_config_odbc.c: Fix issue with decoding ^-escaped characters in realtime. (closes issue #17790) Reported by: denzs Patches: 17790-chunky.diff uploaded by qwell (license 4) Tested by: qwell, denzs 2010-08-27 15:11 +0000 [r283834] Terry Wilson * main/config.c: Use ast_free since ast_variable_new uses ast_calloc 2010-08-26 15:22 +0000 [r283690] David Vossel * channels/chan_sip.c: Fixed how Asterisk destroys a dialog on channel hangup before invite receives a response. If an ast_channel with a SIP tech pvt hangs up before the sip dialog gets a response to its outgoing INVITE, Asterisk used to pretend_ack the INVITE. This is not rfc compliant and results in confusion at the other endpoint. sip_pretend_ack will ack and remove all the packets in the retransmit queue. This means that the INVITE will stop retransmitting, and that any response to that INVITE that comes after the pretend_ack occurs will be ignored. Instead of faking any sort of acknowledgement for an outgoing INVITE during an internal hangup, we should let the protocol stack process the INVITE transaction and terminate the dialog properly. This is achieved by setting the PENDING_BYE flag. When this flag is used, once the dialog proceeds to an escapable state the transaction will either be canceled with a SIP_CANCEL or completed followed immediately by a BYE. Attempting to do this any other way is incorrect. If the endpoint is not responding to the INVITE request, the INVITE must continue to be retransmitted until it times out which will result in the dialog being destroyed. 2010-08-24 16:01 +0000 [r283380] David Vossel * channels/chan_sip.c: This fix makes sure the ast_channel hangs up correctly when the dialog's PENDING_BYE flag is set. When the pending bye flag is used, it is possible that the dialog will terminate and leave the sip_pvt->owner channel up. This is because we never hangup the ast_channel after sending the SIP_BYE request. When we receive the response for the SIP_BYE we set need_destroy which we would expect to destroy the dialog on the next do_monitor loop, but this is not the case. The dialog will only be destroyed once the owner is hungup even with the need_destroy flag set. This patch sets the softhangup flag on the ast_channel when a SIP_BYE request is sent as a result of the pending bye flag. 2010-09-13 Leif Madsen * Asterisk 1.4.36 Released. 2010-08-23 Leif Madsen * Asterisk 1.4.36-rc1 Released. 2010-08-20 16:46 +0000 [r283048-283123] Richard Mudgett * channels/chan_dahdi.c: Merged revision 278274 from https://origsvn.digium.com/svn/asterisk/trunk .......... r278274 | rmudgett | 2010-07-20 17:38:13 -0500 (Tue, 20 Jul 2010) | 1 line Reference correct struct member for unlikely event PRI_EVENT_CONFIG_ERR. .......... * channels/chan_dahdi.c: Q931 - Sending PROGRESS after sending ALERTING is a protocol error The PRI layer in chan_dadhi will check if a PROGRESS message has already been sent, and not allow sending another (although that is technically allowed by the Q931 spec), however it does not protect against sending an ALERTING and then sending a PROGRESS message, which is a violation of the specification. Most switches don't seem to care too deeply about this, but some do, and will disconnect the call when receiving this invalid sequence. Protocol specification reference: T-REC-Q.931-199805-I page 223, "Figure A.5/Q.931 -- Overview protocol control (network side) point-point (sheet 3 of 8)" (closes issue #17874) Reported by: nic_bellamy Patches: asterisk-1.4-r282537_no-progress-after-alerting.patch uploaded by nic bellamy (license 299) asterisk-1.6.2-r282537_no-progress-after-alerting.patch uploaded by nic bellamy (license 299) asterisk-trunk-r282537_no-progress-after-alerting.patch uploaded by nic bellamy (license 299) 2010-08-19 21:03 +0000 [r282893] David Vossel * channels/chan_sip.c: tos_sip option was not being set correctly When tos_sip is used, the tos of the sip socket is only set correctly if the socket binding changes on a reload. If the binding stays the same but the TOS changes, the new tos value would not take into effect. This patch fixes that. (closes issue #17712) Reported by: nickb 2010-08-19 02:12 +0000 [r282729] Terry Wilson * configs/sip.conf.sample: Add some documentation about codec negotiation to sip.conf 2010-08-16 17:06 +0000 [r282430] Terry Wilson * main/channel.c: Send a SRCCHANGE indication when we masquerade Masquerading a channel means that the src of the audio is potentially changing, so send a SRCCHANGE so that RTP-based media streams can get a new SSRC generated to reflect the change. Original patch by addix (along with lots of testing--thanks!). (closes issue #17007) Reported by: addix Patches: 1001-reset-SSRC-original-channel.diff uploaded by addix (license 1006) srcchange.diff uploaded by twilson (license 396) Tested by: addix, twilson Review: https://reviewboard.asterisk.org/r/862/ 2010-08-12 22:49 +0000 [r282129] Jason Parker * pbx/pbx_config.c: Register CLI commands before parsing config, in case there is a config error. 2010-08-12 03:00 +0000 [r281911] Jeff Peeler * main/channel.c: Ensure SSRC is changed when media source is changed to resolve audio delay. This change causes the SSRC to change right before the channels are bridged, which is what used to happen. It seems that fixes were made to attempt limiting SSRC changes, targeted mainly at sending DTMF. DTMF is not affecting the SSRC with this change. There are two other control frames sent in ast_channel_bridge that probably should also be changed to AST_CONTROL_SRCCHANGE as well, but I'm going to leave this change up to the discretion of resolving issue #17007. For reference - old review implementing new control frame SRCCHANGE: https://reviewboard.asterisk.org/r/540 (closes issue #17404) Reported by: sdolloff Patches: bug17404.patch uploaded by jpeeler (license 325) Tested by: sdolloff 2010-08-11 18:28 +0000 [r281762-281819] Leif Madsen * configs/say.conf.sample: Add Danish support to say.conf.sample (closes issue #17836) Reported by: RoadKill Patches: say.conf.sample.patch.dk uploaded by RoadKill (license 933) * configs/say.conf.sample: Allow say.conf to handle large numbers ending with multiple zeros. (closes issue #17833) Reported by: RoadKill Patches: say.conf.sample.patch.largenumbers uploaded by RoadKill (license 933) 2010-08-10 17:45 +0000 [r281566] Russell Bryant * apps/app_dial.c: Reset visible indication after answer. (closes issue #17641) Reported by: klaus3000 Patches: ast1.6.2.9-app_dial-visible_indication.patch.txt uploaded by klaus3000 (license 65) Tested by: schmidts 2010-08-09 20:04 +0000 [r281390] Jeff Peeler * channels/chan_local.c: Prevent loss of Caller ID information set on local channel after masquerade. Caller ID set on the channel before a masquerade occurs when using a local channel would cause the information to be lost. The problem was that the information was set on a channel destined to be hung up. The somewhat confusing fix is to detect if any Caller ID has been set on the channel and if so preswap the Caller ID data so that basically the masquerade puts the data back. (closes issue #17138) Reported by: kobaz Review: https://reviewboard.asterisk.org/r/847/ 2010-08-06 21:34 +0000 [r281185] David Vossel * channels/chan_sip.c: chan_sip: fixes provisional keepalive scheduled item crash There is a scheduler item in chan_sip that keeps sending the last provisional message in response to an INVITE Request for a period of time until a final response to that INVITE is sent. Because of the way this scheduler item works, it requires a reference to a sip_pvt pointer to work properly. The problem with this is that it is currently possible (but rare) for the sip_pvt to get destroyed and that scheduler item to still exist. When this occurs, the scheduler event fires and attempts to access a freed sip_pvt which causes a crash. (closes issue #17497) Reported by: anonymouz666 Patches: keepalive_diff_1.4_v2.diff uploaded by dvossel (license 671) Review: https://reviewboard.asterisk.org/r/849/ 2010-08-05 07:28 +0000 [r280982] Tilghman Lesher * main/pbx.c: Change context lock back to a mutex, because functionality depends upon the lock being recursive. (closes issue #17643) Reported by: zerohalo Patches: 20100726__issue17643.diff.txt uploaded by tilghman (license 14) Tested by: zerohalo 2010-08-04 18:54 +0000 [r280944] Russell Bryant * contrib/scripts/astcli (added): Copy astcli back to 1.4 so it's available for automated testing purposes. 2010-08-03 20:49 +0000 [r280811] Tilghman Lesher * funcs/func_callerid.c, channels/chan_dahdi.c: Prevent DAHDI channels from overriding the callerid, once it's been set by the user. (closes issue #16661) Reported by: jstapleton Patches: 20100414__issue16661.diff.txt uploaded by tilghman (license 14) 20100415__issue16661__1.6.2.diff.txt uploaded by tilghman (license 14) Tested by: jstapleton 2010-07-29 19:04 +0000 [r280448] David Vossel * main/channel.c: fixes issue with translator frame not getting freed A translator frame even if it local storage so the translation path can be freed. This issue prevented g729 licenses from being freed up. (closes issue #17630) Reported by: manvirr Patches: encoder_fix.diff uploaded by dvossel (license 671) Tested by: manvirr, dvossel 2010-07-29 15:52 +0000 [r280341] Jean Galarneau * apps/app_meetme.c: Fix a dsp structure leak occuring when a local channel is put into a meetme conference, then masquaraded away. ABE-2422 2010-07-28 13:50 +0000 [r280088] Leif Madsen * contrib/scripts/live_ast: Update help text to be less confusing. 2010-07-27 20:33 +0000 [r279945] David Vossel * main/channel.c, include/asterisk/audiohook.h, main/audiohook.c: remove empty audiohook write list on channel If a channel has an audiohook write list created on it, that list stays on the channel until the channel is destroyed. There is no reason to keep that list on the channel if it becomes empty. If it is empty that just means we are doing needless translating for every ast_read and ast_write. This patch removes the audiohook list from the channel once it is detected to be empty on either a read or write. If a audiohook is added back to the channel after this list is destroyed, the list just gets recreated as if it never existed to begin with. (closes issue #17630) Reported by: manvirr Review: https://reviewboard.asterisk.org/r/799/ 2010-07-24 23:57 +0000 [r279346] Bradley Latus * doc/asterisk.8: Minor update to man page 2010-07-24 23:27 +0000 [r279344] Jeff Peeler * configure, include/asterisk/autoconfig.h.in, configure.ac: Provide a default value for DAHDI_TRANSCODE so when DAHDI is not installed menuselect doesn't get confused: Unknown value '' found in build_tools/menuselect-deps for DAHDI_TRANSCODE 2010-07-23 21:56 +0000 [r279206] Richard Mudgett * apps/app_dial.c, apps/app_queue.c: SIP promiscuous redirect could fail to dial the redirect. The ast_channel was created with one variable to ast_request() but the call to ast_call() that initiates the outgoing call was using a different variable. The two variables are not equivalent if the call_forward string included a channel technology specifier. e.g., SIP/200 2010-07-23 18:04 +0000 [r279053] Mark Michelson * channels/chan_sip.c: Backport fixes for sip_uri_params_cmp() from trunk. 2010-07-23 17:04 +0000 [r278981-278984] Tilghman Lesher * autoconf/ast_check_pwlib.m4, configure, configure.ac: Establish a maximum version for openh323 (i.e. not opal), because chan_h323 will fail to load, even if it links. (issue #17679) Reported by: am * main/asterisk.c: Avoid race with consolethread on shutdown (on parallel processors). (closes issue #17080) Reported by: sybasesql Patches: 20100721__issue17080.diff.txt uploaded by tilghman (license 14) Tested by: sybasesql 2010-07-22 19:31 +0000 [r278701] Richard Mudgett * channels/chan_dahdi.c: DNID does not get cleard on a new call when using immediate=yes with ISDN signaling. When you are using chan_dahdi ISDN signaling with immediate=yes and a call comes in without a DNID then you get the DNID of a previous call. Chan_dahdi does not touch the DNID field on a new call if it does not have a DNID. Made always copy the DNID from the new call. The patches backport the relevant changes from trunk -r210387. (closes issue #17568) Reported by: wuwu Patches: issue17568_v1.4.patch uploaded by rmudgett (license 664) issue17568_v1.6.2.patch uploaded by rmudgett (license 664) 2010-08-10 Leif Madsen * Asterisk 1.4.35 Released. 2010-07-22 Leif Madsen * Asterisk 1.4.35-rc1 Released. 2010-07-22 14:55 +0000 [r278618] Mark Michelson * main/channel.c: Allow PLC to function properly when channels use SLIN for audio. If a channel involved in a bridge was using SLIN audio, then translation paths were not guaranteed to be set up properly since in all likelihood the number of translation steps was only 1. This patch enforces the transcode_via_slin behavior if transcode_via_slin or generic_plc is enabled and one of the formats to make compatible is SLIN. AST-352 2010-07-20 22:23 +0000 [r278023-278261] Tilghman Lesher * apps/app_voicemail.c: Delete IMAP messages in reverse order, to ensure reordering after each expunge does not cause deletion of the wrong message. (closes issue #16350) Reported by: noahisaac Patches: 20100623__issue16350.diff.txt uploaded by tilghman (license 14) * main/autoservice.c, res/res_features.c, include/asterisk/channel.h: Do not queue up DTMF frames while a call is on hold. (Fixes ABE-2110) * main/manager.c: Off-by-one error (closes issue #16506) Reported by: nik600 Patches: 20100629__issue16506.diff.txt uploaded by tilghman (license 14) 2010-07-19 20:56 +0000 [r277944] Paul Belanger * channels/chan_sip.c: Regression with T.38 negotiation Prior to 1.4.26.3 T.38 negotiation worked properly, in the case of the reporter. (issue #16852) Reported by: cfc (closes issue #16705) Reported by: mpiazzatnetbug Patches: issue16705_2.diff uploaded by ebroad (license 878) Tested by: vrban, ebroad, c0rnoTa, samdell3 Review: https://reviewboard.asterisk.org/r/754/ 2010-07-19 20:16 +0000 [r277906] Jean Galarneau * res/res_features.c: Avoid trying to pickup a parked extension before the park operation is completed. A crash could occur if the extension is picked up while the parking extension is being announced. Testing pu->notquiteyet while searching for a parked extension resolves this crash. (ABE-2418) 2010-07-17 16:59 +0000 [r277738] Tilghman Lesher * autoconf/ast_func_fork.m4, configure: Remove uclibc cross-compile triplet, as uclibc has a working fork()... it's only uclinux that does not. (closes issue #17616) Reported by: pprindeville 2010-07-16 22:43 +0000 [r277625] Tim Ringenbach * res/res_features.c: Save and restore AST_FLAG_BRIDGE_HANGUP_DONT on attended transfer. ast_bridge_call() clears AST_FLAG_BRIDGE_HANGUP_DONT. But during an attended transfer, ast_bridge_call() is called for a second bridge on the same channel, and it clears that flag, which still needs to get set for when the original ast_bridge_call() gets control back and checks it. Review: https://reviewboard.asterisk.org/r/741 2010-07-16 21:54 +0000 [r277568] Tilghman Lesher * res/res_config_pgsql.c, res/res_config_odbc.c: Since we split values at the semicolon, we should store values with a semicolon as an encoded value. (closes issue #17369) Reported by: gkservice Patches: 20100625__issue17369.diff.txt uploaded by tilghman (license 14) Tested by: tilghman 2010-07-16 21:18 +0000 [r277497] Matthew Nicholson * channels/chan_sip.c: Default to no udptl error correction so that error correction will be disabled in the event that the remote end indicates that they do not support the error correction mode we requested. FAX-128 2010-07-16 20:18 +0000 [r277419] Richard Mudgett * channels/chan_dahdi.c: priexclusive in chan_dahdi.conf ignored when reloading dahdi module During a reload, the priexclusive and outsignalling parameters are not read in from the config file as intended. Unfortunately, they get set to defaults as a result. This patch makes sure that they do not get set to defaults during a reload. (closes issue #17441) Reported by: mtryfoss Patches: issue17441_v1.4.patch uploaded by rmudgett (license 664) issue17441_v1.6.2.patch uploaded by rmudgett (license 664) issue17441_trunk.patch uploaded by rmudgett (license 664) Tested by: rmudgett 2010-07-16 18:30 +0000 [r277327] Matthew Nicholson * main/pbx.c: Interpret device state AST_DEVICE_UNKNOWN as extension state AST_EXTENSION_NOT_INUSE. (closes issue #16035) Reported by: francesco_r Patches: pbx.c.patch uploaded by viniciusfontes (license 978) Tested by: francesco_r, agx, lawbar 2010-07-16 18:04 +0000 [r277261] Tilghman Lesher * main/manager.c: If variable gotten is not set, will segfault on Solaris. (closes issue #17636) Reported by: bklang 2010-07-16 17:29 +0000 [r277247] Matthew Nicholson * main/channel.c: For pass through DTMF tones, measure the actual duration between the begin and end packets on the wire. If it is detected to be less than AST_MIN_DTMF_DURATION, trigger dtmf emulation. AST-362 2010-07-16 17:10 +0000 [r277182] Paul Belanger * apps/app_amd.c: Total analysis time error with SIP and silence suppression When using app_amd with SIP providers that have silence suppression on, the iTotalTime count increases exponentially. (closes issue #17656) Reported by: juls 2010-07-15 13:48 +0000 [r276652] Jeff Peeler * main/channel.c: In a perfect world, the frame source would never be NULL. In the meantime, don't crash when it is. 2010-07-14 11:49 +0000 [r276267] Leif Madsen * configs/voicemail.conf.sample: Update documentation for voicemail.conf externpass option. 2010-07-13 19:14 +0000 [r275994-276126] Russell Bryant * res/res_features.c: Only reset a CDR that exists. * res/res_features.c: Use chan->cdr instead of chan_cdr (just like peer->cdr instead of peer_cdr in the last commit). * res/res_features.c: Access peer->cdr directly instead of through a saved off reference. At this point in the code, it is possible that peer_cdr may be invalid. Specifically, in the blind transfer code, CDRs are swapped between channels. So, peer_cdr is no longer == peer->cdr. The scenario that exposed a crash in this code was a blind transfer that hit the system call limit, causing the transferee channel to get destroyed after the transfer attempt failed. Even if it succeeds and this code doesn't crash, this code was still trying to reset a CDR on a channel that was now owned by a different thread, which is a BadThing(tm). (ABE-2417) 2010-07-13 14:47 +0000 [r275909] Tilghman Lesher * contrib/realtime/mysql/sipfriends.sql, contrib/realtime/mysql/voicemail.sql, contrib/scripts/realtime_pgsql.sql (removed), contrib/scripts/vmdb.sql (removed), contrib/scripts/iax-friends.sql (removed), contrib/realtime/mysql/iaxfriends.sql, contrib/realtime/mysql/meetme.sql, contrib/scripts/meetme.sql (removed), contrib/realtime (added), contrib/realtime/postgresql, contrib/realtime/postgresql/realtime.sql, contrib/realtime/mysql, contrib/realtime/oracle, contrib/realtime/sqlserver, contrib/scripts/sip-friends.sql (removed): Move SQL scripts into their own database-specific directories. 2010-07-12 20:34 +0000 [r275665-275773] Jeff Peeler * apps/app_meetme.c: Make user removals and traversals thread safe in meetme. Race conditions present in meetme involving the user list where a lack of locking has the potential for a user to be removed during a traversal or as in the case of the reporter after checking if the list is empty could cause a crash. Fixing this was done by convering the userlist to an ao2 container. (closes issue #17390) Reported by: Vince Review: https://reviewboard.asterisk.org/r/746/ * main/channel.c: Change ast_write to not stop generator when called from ast_prod. For SIP channels configured with the progressinband option on, the ringback was being immediately stopped. This problem was due to ast_prod being moved for a deadlock fix in 259858. Prodding the channel after setting up the generator triggered the check in ast_write to stop the generator. The fix here should write the frame the same as was done before the call to ast_prod was moved. (closes issue #17372) Reported by: tech_admin 2010-07-09 19:28 +0000 [r275241-275290] Paul Belanger * main/cli.c: fix tab-completion for unload command. (closes issue #17536) Reported by: junky Patches: unload_vs_mod_unload.diff uploaded by junky (license 177) Tested by: pabelanger * channels/chan_sip.c: Fix logging message for stale nonce. (closes issue #17582) Reported by: kenner Patches: chan_sip.c.diff uploaded by kenner (license 1040) Tested by: lmadsen 2010-07-09 18:23 +0000 [r275027-275182] Matthew Nicholson * main/loader.c: give a better error message when attempting to unload a module that is not loaded * main/loader.c: don't unload modules that returned AST_MODULE_LOAD_DECLINE when they were loaded * apps/app_dial.c: Clear the AST_CDR_FLAG_DIALED flag for channels going into the pbx via the G option in app_dial (closes issue #17592) Reported by: jamicque Patches: G-flag-cdr-fix1.diff uploaded by mnicholson (license 96) Tested by: jamicque, mnicholson 2010-07-09 15:33 +0000 [r275021] Russell Bryant * include/asterisk/test.h, main/test.c: Document that a leading and trailing slash is expected for test categories. Also, emit a warning if a test is registered without one of these. 2010-07-07 18:12 +0000 [r274579] Richard Mudgett * channels/chan_dahdi.c: Close the DAHDI FD on error when processing chan_dahdi toneduration config parameter. 2010-07-07 06:13 +0000 [r274417] Tilghman Lesher * configs/say.conf.sample: Correct how 100, 200, 300, etc. is said. Also add the crazy British numbers. (closes issue #16102) Reported by: Delvar Patches: say.conf.fix.patch uploaded by Delvar (license 908) (plus a few additional fixes and simplifications by me) 2010-07-06 22:46 +0000 [r274283-274359] Jeff Peeler * main/Makefile: Ensure file.o is built correctly. (related to issue #15250) * configs/sip.conf.sample: Correct sip.conf.sample comments for prematuremedia option. (closes issue #17513) Reported by: festr Patches: patch uploaded by festr (license 443) 2010-07-06 22:08 +0000 [r274280] Terry Wilson * channels/chan_sip.c, configs/sip.conf.sample: Add option to not do a call forward on 482 Loop Detected Asterisk has always set up a forwarded call when receiving a 482 Loop Detected. This prevents handling the call failure by just continuing on in the dialplan. Since this would be a change in behavior, the new option to disable this behavior is forwardloopdetected which defaults to 'yes'. Review: https://reviewboard.asterisk.org/r/764/ 2010-07-06 14:29 +0000 [r274157] Mark Michelson * main/rtp.c: Fix problem with RFC 2833 DTMF not being accepted. A recent check was added to ensure that we did not erroneously detect duplicate DTMF when we received packets out of order. The problem was that the check did not account for the fact that the seqno of an RTP stream will roll over back to 0 after hitting 65535. Now, we have a secondary check that will ensure that the seqno rolling over will not cause us to stop accepting DTMF. (closes issue #17571) Reported by: mdeneen Patches: rtp_seqno_rollover.patch uploaded by mmichelson (license 60) Tested by: richardf, maxochoa, JJCinAZ 2010-07-06 13:52 +0000 [r274093] Matthew Nicholson * apps/app_queue.c: Make get_member_status return QUEUE_NO_MEMBERS instead of QUEUE_NO_REACHABLE_MEMBERS to make joinempty=no work again. This regression was introduced in 273639. Also fixed whitespace. 2010-07-05 19:48 +0000 [r273981] Tilghman Lesher * channels/chan_oss.c, channels/chan_iax2.c: Command 'stop gracefully' doesn't. 2010-07-05 13:51 +0000 [r273884] Paul Belanger * main/config.c: Remove extra line breaks from 'core show config mappings' (closes issue #17583) Reported by: pabelanger Patches: issue17583.patch uploaded by pabelanger (license 224) Tested by: lmadsen 2010-07-02 21:36 +0000 [r273717-273793] Tilghman Lesher * channels/chan_dahdi.c, channels/chan_local.c, configure, include/asterisk/autoconfig.h.in, channels/chan_agent.c, configure.ac, channels/chan_h323.c, include/asterisk/lock.h, include/asterisk/compiler.h: Have the DEADLOCK_AVOIDANCE macro warn when an unlock fails, to help catch potentially large software bugs. (closes issue #17407) Reported by: pdf Patches: 20100527__issue17407.diff.txt uploaded by tilghman (license 14) Review: https://reviewboard.asterisk.org/r/751/ * main/autoservice.c: Autoservice loop optimization causes a busy loop, when channels are serviced while in hangup. (closes issue #17564) Reported by: ramonpeek Patches: 20100630__issue17564.diff.txt uploaded by tilghman (license 14) Tested by: ramonpeek 2010-07-02 15:54 +0000 [r273640] Tzafrir Cohen * apps/app_voicemail.c, channels/chan_dahdi.c, channels/chan_misdn.c, channels/chan_sip.c, res/res_agi.c, res/res_jabber.c: Fix various typos, reported by Lintian 2010-07-02 15:46 +0000 [r273639] Tilghman Lesher * apps/app_queue.c: If all members are paused, the wrong status is indicated. (closes issue #17576) Reported by: ramonpeek Patches: diff.txt uploaded by ramonpeek (license 266) Tested by: ramonpeek 2010-07-01 22:09 +0000 [r273565] Russell Bryant * main/channel.c: Don't return a partially initialized datastore. If memory allocation fails in ast_strdup(), don't return a partially initialized datastore. Bad things may happen. (related to ABE-2415) 2010-07-01 20:19 +0000 [r273354-273474] Jeff Peeler * apps/app_meetme.c: Allow admin user to join conference without using admin mode and no user pin. Configuring the conference in meetme.conf like the following: conf => 2345,,6666 did not prompt for pin when used without admin mode. This meant that the conference could not be joined as an admin even if the user knew the correct pin. The original bug report was submitted claiming that the blank user pin should deny entry into the conference. I think a better way to handle this would be with a feature enhancement that used the following syntax: conf => 2345,X,6666 - where X denotes no acceptable pin allowed (closes issue #15704) Reported by: modelnine * apps/app_meetme.c: Ensure channel placed in meetme in ringing state is properly hung up. An outgoing channel placed in meetme while still ringing which was then hung up would not exit meetme and the channel was not properly destroyed. Specifically checking for this scenario by looking at the appropriate control frames resolves the issue. (closes issue #15871) Reported by: Ivan Patches: meetme_congestion_trunk_v2.patch uploaded by Ivan (license 229) 2010-06-29 23:15 +0000 [r273057-273060] Tilghman Lesher * channels/chan_sip.c: Allow the "useragent" value to be restored into memory from the realtime backend. This value is purely informational. It does not alter configuration at all. (closes issue #16029) Reported by: Guggemand Patches: realtime-useragent.patch uploaded by Guggemand (license 897) Tested by: Guggemand * main/channel.c: _Really_ skip the channel... don't just retry for another 200 cycles. (Closes issue SWP-1652, ABE-2240) 2010-06-29 21:36 +0000 [r273017] Russell Bryant * /: Remove properties that were erroneously merged to 1.4 from one of my branches. 2010-07-22 Leif Madsen * Asterisk 1.4.34 Released. 2010-07-07 Leif Madsen * Asterisk 1.4.34-rc2 Released. * Fix problem with RFC 2833 DTMF not being accepted. A recent check was added to ensure that we did not erroneously detect duplicate DTMF when we received packets out of order. The problem was that the check did not account for the fact that the seqno of an RTP stream will roll over back to 0 after hitting 65535. Now, we have a secondary check that will ensure that the seqno rolling over will not cause us to stop accepting DTMF. (closes issue 0017571) Reported by: mdeneen Patches: rtp_seqno_rollover.patch uploaded by mmichelson (license 60) Tested by: richardf, maxochoa, JJCinAZ * Clear the AST_CDR_FLAG_DIALED flag for channels going into the pbx via the G option in app_dial (closes issue 0017592) Reported by: jamicque Patches: G-flag-cdr-fix1.diff uploaded by mnicholson (license 96) Tested by: jamicque, mnicholson 2010-06-29 Leif Madsen * Asterisk 1.4.34-rc1 Released. 2010-06-28 21:50 +0000 [r272921-272925] Tilghman Lesher * main/asterisk.c: Don't change ownership/group/permissions on run directory, if it already exists. (closes issue #17076) Reported by: stuarth Patches: 20100324__issue17076.diff.txt uploaded by tilghman (license 14) Tested by: stuarth * main/config.c: Also trim trailing blanks on #includes * main/config.c: Change the way that we read include files, to accommodate for changes in GCC 4.4. (closes issue #17472) Reported by: seandarcy Patches: config2.patch uploaded by nivan (license 1066) Tested by: nivan 2010-06-28 18:47 +0000 [r272878-272881] Russell Bryant * tests/test_astobj2.c (added): Backport applicable parts of test_astobj2. * main/asterisk.c, Makefile, include/asterisk/test.h (added), build_tools/cflags-devmode.xml, include/asterisk.h, tests/Makefile, tests/test_skel.c, /, main/Makefile, tests (added), include/asterisk/linkedlists.h, main/test.c (added): Backport unit test API to 1.4. Review: https://reviewboard.asterisk.org/r/750/ 2010-06-28 17:31 +0000 [r272804] Mark Michelson * channels/chan_sip.c: Decode URI in contact header of 302 response. ABE-2352 2010-06-28 17:11 +0000 [r272688-272763] Russell Bryant * Makefile: Force SILENTMAKE where it is needed. * Makefile: Backport method of setting SUBMAKE from trunk. By setting the PRINT_DIR variable, SUBMAKE will print out the directories it descends into, which is important for editors (like vim) that watch the build output so that they can take you to the file where an error occurred. 2010-06-25 20:17 +0000 [r272562] Tilghman Lesher * doc/voicemail_odbc_postgresql.txt: Make the structure of the table specified before match the queries and results. (closes issue #17557) Reported by: cmaj 2010-06-24 21:58 +0000 [r272446] Richard Mudgett * channels/chan_dahdi.c: ss_thread calls pri_grab without lock during overlap dial Recent changes to chan_dahdi with relation to overlap dialing call pri_grab without first obtaining a lock. (closes issue #17414) Reported by: pdf Patches: bug17414.patch uploaded by jpeeler (license 325) 2010-06-23 22:33 +0000 [r272367] Matthew Nicholson * apps/app_queue.c: Send AgentComplete manager events in the event of blind and attended transfers. (closes issue #16819) Reported by: elbriga Patches: app_queue.diff uploaded by elbriga (license 482) 2010-06-23 20:57 +0000 [r272255] Paul Belanger * apps/app_meetme.c: First caller into a dynamic conference now enter pin once. If MeetMe is configured to use dynamic conference numbers, then the first caller (which creates the conference) had to enter the PIN number twice. (closes issue #15878) Reported by: shawkris Patches: issue15878.patch uploaded by pabelanger (license 224) Tested by: pabelanger 2010-06-23 18:40 +0000 [r272147] Tilghman Lesher * apps/app_voicemail.c: Backport part of revision 136715 to fix callerid in voicemail text files (IMAP only). (closes issue #16945) Reported by: mneuhauser 2010-06-22 17:31 +0000 [r271689-271902] Matthew Nicholson * channels/chan_sip.c: Decrease the module ref count in sip_hangup when SIP_DEFER_BYE_ON_TRANSFER is set. This is necessary to keep the ref count correct. (closes issue #16815) Reported by: rain Patches: chan_sip-unref-fix.diff uploaded by rain (license 327) (modified) Tested by: rain * pbx/pbx_dundi.c: Allow users to specify a port for dundi peers. (closes issue #17056) Reported by: klaus3000 Patches: dundi-peerport-patch-trunk.txt uploaded by klaus3000 (license 65) Tested by: klaus3000 * configs/sip_notify.conf.sample, channels/chan_sip.c: Modify chan_sip's packet generation api to automatically calculate the Content-Length. This is done by storing packet content in a buffer until it is actually time to send the packet, at which time the size of the packet is calculated. This change was made to ensure that the Content-Length is always correct. (closes issue #17326) Reported by: kenner Tested by: mnicholson, kenner Review: https://reviewboard.asterisk.org/r/693/ 2010-06-21 20:37 +0000 [r271552] Jeff Peeler * pbx/pbx_ael.c: Do not use sizeof to calculate size of a heap allocated character array. Change left out from 271399. (closes issue #16053) Reported by: diLLec 2010-06-18 20:52 +0000 [r271399-271444] Jeff Peeler * pbx/pbx_ael.c: Check for newly added memory allocation failures gracefully during AEL2 parsing. * pbx/pbx_ael.c: Fix crash when parsing some heavily nested statements in AEL on reload. Due to the recursion used when compiling AEL in gen_prios, all the stack space was being consumed when parsing some AEL that contained nesting 13 levels deep. Changing a few large buffers to be heap allocated fixed the crash, although I did not test how many more levels can now be safely used. (closes issue #16053) Reported by: diLLec Tested by: jpeeler 2010-06-18 18:54 +0000 [r271339-271340] Russell Bryant * include/asterisk/lock.h: Remove an unnecessary assignment that causes a DEBUG_THREADS build failure on mac os x. * configure, include/asterisk/autoconfig.h.in, configure.ac, include/asterisk/lock.h: Fix a build problem on Mac OS X with DEBUG_THREADS enabled. This set of changes was already in trunk. 2010-06-18 18:33 +0000 [r271335] Jeff Peeler * channels/chan_dahdi.c: Eliminate deadlock potential in dahdi_fixup(). (This is a backport of 269307, committed to trunk by rmudgett.) Calling dahdi_indicate() when the channel private lock is already held can cause a deadlock if the PRI lock is needed because dahdi_indicate() will also get the channel private lock. The pri_grab() function assumes that the channel private lock is held once to avoid deadlock. (closes issue #17261) Reported by: aragon 2010-06-22 Russell Bryant * Asterisk 1.4.33.1 Released. * channels/chan_dahdi.c: Merge revision 270404 from the 1.4 branch. fixes FXS port still ringing when answered, as reported by Tzafrir on dev-list. (issue #17067) Reported by: tzafrir Tested by: alecdavis 2010-06-17 Leif Madsen * Asterisk 1.4.33 Released. 2010-06-10 Leif Madsen * Asterisk 1.4.33-rc2 Released. 2010-06-10 Tilghman Lesher * Ensure signals are not blocked inside other signal handlers. This eliminates the annoying on the console. (closes issue 0017477) Reported by: jvandal Patches: 20100610__issue17477.diff.txt uploaded by tilghman (license 14) 2010-06-09 Paul Belanger * Fix Debian init script to not use -c. When using the init script as-is currently, it could cause issues on Debian such as high CPU usage. This fix has worked for several people so I'm implementing the change. We now handle color displays properly. (closes issue 0016784) Reported by: pabelanger Patches: 20100530__issue16784__2.diff.txt uploaded by tilghman (license 14) Tested by: pabelanger, tilghman 2010-06-01 Leif Madsen * Asterisk 1.4.33-rc1 Released. 2010-06-01 15:17 +0000 [r266585] Tilghman Lesher * main/asterisk.c: Prevent CLI prompt from distorting output of lines shorter than the prompt. Uses the VT100 method of clearing the line from the cursor position to the end of the line: Esc-0K (closes issue #17160) Reported by: coolmig Patches: 20100531__issue17160.diff.txt uploaded by tilghman (license 14) Tested by: coolmig 2010-06-01 14:57 +0000 [r266579-266580] Paul Belanger * channels/chan_sip.c: Fix formatting issue with previous patch. * channels/chan_sip.c: Missing fallback to audio fax feature when T.38 re-INVITE failed When a T.38 re-INVITE failed with an 488 or 606 answer, we should fallback to audio fax by send a re-re-INVITE without T.38. The function is backported from 1.6 asterisk. (closes issue #16795) Reported by: vrban (closes issue #16692) Reported by: vrban Patches: t38_fallback_to_audio_v3.patch uploaded by vrban (license 756) Tested by: lmadsen, vrban, haggard https://reviewboard.asterisk.org/r/514/ 2010-05-30 04:43 +0000 [r266437] Tilghman Lesher * contrib/init.d/rc.debian.asterisk: Reverting patch and reopening issue #16784, as patch breaks color display. 2010-05-26 21:11 +0000 [r266142] Tilghman Lesher * main/asterisk.c, main/logger.c: Use sigaction for signals which should persist past the initial trigger, not signal. If you call signal() in a Solaris signal handler, instead of just resetting the signal handler, it causes the signal to refire, because the signal is not marked as handled prior to the signal handler being called. This effectively causes Solaris to immediately exceed the threadstack in recursive signal handlers and crash. (closes issue #17000) Reported by: rmcgilvr Patches: 20100526__issue17000.diff.txt uploaded by tilghman (license 14) Tested by: rmcgilvr 2010-05-26 20:33 +0000 [r266140] David Vossel * channels/chan_dahdi.c: add dahdi_func_write to zap_tech structure This was supposed to be committed with r263292, the back-port of teh DAHDI buffer policy dial string option 2010-05-26 18:21 +0000 [r266004] Mark Michelson * apps/app_queue.c: Make AgentComplete message more consistent. At times, the "Member" field was not specified during the event. It's there now. (closes issue #15638) Reported by: elbriga Patches: patchAppQueueAgentComplete.diff uploaded by elbriga (license 482) 2010-05-26 16:21 +0000 [r265910] Tilghman Lesher * res/res_config_pgsql.c: Not finding rows in the DB does not rise to the level of a warning. (closes issue #17062) Reported by: drookie Patches: 20100525__issue17062.diff.txt uploaded by tilghman (license 14) 2010-05-25 17:11 +0000 [r265613] David Vossel * channels/chan_dahdi.c: fixes build issue with zaptel (closes issue #17394) Reported by: aragon Patches: half_buffer_fix.diff uploaded by dvossel (license 671) Tested by: aragon 2010-05-25 16:48 +0000 [r265610] Matthew Nicholson * apps/app_queue.c: Don't mark the cdr records of unanswered queue calls with "NOANSWER". This restores the behavior prior to r258670. (closes issue #17334) Reported by: jvandal Patches: queue-cdr-fixes1.diff uploaded by mnicholson (license 96) Tested by: aragon, jvandal 2010-05-25 13:33 +0000 [r265570] Terry Wilson * include/asterisk/options.h, main/asterisk.c, Makefile, doc/manager.txt, main/manager.c: Merged revisions 265320,265467 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r265320 | twilson | 2010-05-24 14:06:40 -0500 (Mon, 24 May 2010) | 14 lines Add the FullyBooted AMI event It is possible to connect to the manager interface before all Asterisk modules are loaded. To ensure that an application does not send AMI actions that might require a module that has not yet loaded, the application can listen for the FullyBooted manager event. It will be sent upon connection if all modules have been loaded, or as soon as loading is complete. The event: Event: FullyBooted Privilege: system,all Status: Fully Booted Review: https://reviewboard.asterisk.org/r/639/ ........ r265467 | twilson | 2010-05-24 17:21:58 -0500 (Mon, 24 May 2010) | 1 line Merge the rest of the FullyBooted patch ........ 2010-05-24 19:37 +0000 [r265365] David Vossel * main/channel.c: fixes segfault when using generic plc 2010-05-21 20:59 +0000 [r264996-265089] Mark Michelson * include/asterisk/file.h, apps/app_queue.c: Don't hang up on a queue caller if the file we attempt to play does not exist. This also fixes a documentation mistake in file.h that made my original attempt to correct this problem not work correctly. (closes issue #17061) Reported by: RoadKill * include/asterisk/channel.h: Fix grammatical error in comment. * main/channel.c, main/autoservice.c, include/asterisk/channel.h: Allow ast_safe_sleep to defer specific frames until after the sleep has concluded. From reviewboard Background: A Digium customer discovered a somewhat odd bug. The setup is that parties A and B are bridged, and party A places party B on hold. While party B is listening to hold music, he mashes a bunch of DTMF. Party A takes party B off hold while this is happening, but party B continues to hear hold music. I could reproduce this about 1 in 5 times. The issue: When DTMF features are enabled and a user presses keys, the channel that the DTMF is streamed to is placed in an ast_safe_sleep for 100 ms, the duration of the emulated tone. If an AST_CONTROL_UNHOLD frame is read from the channel during the sleep, the frame is dropped. Thus the unhold indication is never made to the channel that was originally placed on hold. The fix: Originally, I discussed with Kevin possible ways of fixing the specific problem reported. However, we determined that the same type of problem could happen in other situations where ast_safe_sleep() is used. Using autoservice as a model, I modified ast_safe_sleep_conditional() to defer specific frame types so they can be re-queued once the sleep has finished. I made a common function for determining if a frame should be deferred so that there are not two identical switch blocks to maintain. Review: https://reviewboard.asterisk.org/r/674/ 2010-05-20 23:23 +0000 [r264820] Richard Mudgett * main/callerid.c: ast_callerid_parse() had a path that left name uninitialized. Several callers of ast_callerid_parse() do not initialize the name parameter before calling thus there is the potential to use an uninitialized pointer. 2010-05-20 15:59 +0000 [r264541] Mark Michelson * include/asterisk/options.h, main/loader.c, main/channel.c, include/asterisk/channel.h: 1.4 version of PLC fix. Analogous to trunk revision 264452, but without the change to chan_sip since it is not necessary in this branch. 2010-05-19 20:01 +0000 [r264334] Matthew Nicholson * apps/app_speech_utils.c: Set quieted flag when receiving a dtmf tone during playback in speechbackground. (closes issue #16966) Reported by: asackheim 2010-05-19 17:41 +0000 [r264248] Tilghman Lesher * include/asterisk/options.h, configure, configure.ac: Internal timing is now on by default, if you're using DAHDI 2.3 or above. The reason for ensuring DAHDI 2.3 or above is that this version ensures that a timer is always available, whereas in previous versions, it was possible for DAHDI to be loaded, but have no drivers to actually generate timing. If internal_timing was turned on in this circumstance, a complete lack of audio would result. This is the reason why internal_timing was not on by default. However, now that DAHDI ensures the availability of a timer, there is no reason for this setting to be off (and in fact, it solves a great many initial user problems). (closes issue #15932) Reported by: dimas Patches: 20100519__issue15932.diff.txt uploaded by tilghman (license 14) Tested by: tilghman 2010-05-19 08:23 +0000 [r264056] Alec L Davis * configs/indications.conf.sample: fix incorrectly typed indications for [nz] stutter and dialrecall (closes issue #17359) Reported by: alecdavis Patches: bug17359.diff.txt uploaded by alecdavis (license 585) 2010-05-19 06:32 +0000 [r263949] Tilghman Lesher * main/dsp.c: Because progress is called multiple times, across several frames, we must persist states when detecting multitone sequences. (closes issue #16749) Reported by: dant Patches: dsp.c-bug16749-1.patch uploaded by dant (license 670) Tested by: dant 2010-05-18 18:54 +0000 [r263769] Jeff Peeler * apps/app_directory.c: Modify directory name reading to be interrupted with operator or pound escape. In the case of accidentally entering the wrong first three letters for the reading, users could be very frustrated if the name listing is very long. This allows interrupting the reading by pressing 0 or #. 0 will attempt to execute a configured operator (o) extension and # will exit and proceed in the dialplan. ABE-2200 2010-05-17 22:00 +0000 [r263637-263639] Mark Michelson * main/devicestate.c: Fix logic error when checking for a devstate provider. When using strsep, if one of the list of specified separators is not found, it is the first parameter to strsep which is now NULL, not the pointer returned by strsep. This issue isn't especially severe in that the worst it is likely to do is waste some cycles when a device with no '/' and no ':' is passed to ast_device_state. * main/pbx.c: Remove arbitrary size limitation for hints. (closes issue #17257) Reported by: tim_ringenbach Patches: hints_crash_fix.diff uploaded by tim ringenbach (license 540) 2010-05-17 14:35 +0000 [r263374-263456] Leif Madsen * main/http.c: Manager cookies are not compatible with RFC2109. The Version field in the cookies we're setting contain quotes around the version number which is not compatible with RFC2109 and breaks some implementations. (closes issue #17231) Reported by: ecarruda Patches: manager_rfc2109-trunk-v1.patch uploaded by ecarruda (license 559) manager_rfc2109-1.6.2-v1.patch uploaded by ecarruda (license 559) Tested by: ecarruda, russell * sounds/Makefile: Update link to new version of core sounds. The latest version of the core sounds files 1.4.19 now includes the missing queue-minute sound file which is called by app_queue but which has been missing. (closes issue #17123) Reported by: n8ideas 2010-05-17 13:01 +0000 [r263292] David Vossel * channels/chan_dahdi.c: backport of DAHDI buffer policy dial string option 2010-05-13 23:08 +0000 [r263112] Jeff Peeler * main/channel.c, main/file.c: Fix internal timing not working with Zaptel dahdi_compat.h was not being included in channel.c when used with Zaptel and wasn't in file.c at all. (closes issue #15250) Reported by: mneuhauser Patches: dahdi_compat.patch uploaded by mneuhauser (license 425) Tested by: IgorG 2010-05-12 17:00 +0000 [r262662] David Vossel * apps/app_meetme.c: fixes app_meetme dsp error We attempted to detect silence after translating a frame from signed linear. This caused a flooding of errors. To resolve this the code to detect silence was moved before the translation. (closes issue #17133) Reported by: jsdyer 2010-05-11 19:55 +0000 [r262421] Jason Parker * pbx/Makefile: Use a less silly method for modifying a flex-generated file. The sed syntax that was used wasn't actually valid, causing some versions to choke. This is the method that is used in 1.6.x+ for similar changes. (closes issue #16696) Reported by: bklang Patches: 16696-sedfix.diff uploaded by qwell (license 4) Tested by: qwell 2010-05-11 17:22 +0000 [r262321] Tilghman Lesher * apps/app_voicemail.c, Makefile.rules: Fix issue #17302 a slightly different way (mad props to Qwell) 2010-05-10 16:34 +0000 [r262151] Tilghman Lesher * Makefile.rules: Allow compilation on Mac OS X 10.4 (Tiger) (closes issue #17297) Reported by: jcovert Patches: 20100506__issue17297.diff.txt uploaded by tilghman (license 14) (closes issue #17302) Reported by: jcovert 2010-05-06 20:10 +0000 [r261698-261735] Jeff Peeler * apps/app_voicemail.c: Only allow the operator key to be accepted after leaving a voicemail. Or rather disallow the operator key from being accepted when not offered, such as after finishing a recording from within the mailbox options menu. ABE-2121 SWP-1267 * apps/app_voicemail.c: Revert 261698, code in trunk leads me to believe unadvertised options are supported. * apps/app_voicemail.c: Remove some hidden broken code in the voicemail mailbox options menu. After finishing a recording from within the mailbox options menu, pressing 0 exhibited strange behavior with operator=yes turned on. Pressing 0 was not even advertised as an option and the options from the vm-saveoper prompt: "Press 1 to accept this recording. Otherwise, please continue to hold" did not function correctly. While this of course could be fixed, it didn't really seem to make sense even if it was working properly. ABE-2121 SWP-1267 2010-05-06 16:56 +0000 [r261608] Jason Parker * sounds/Makefile: Use the versioned MOH tarballs, now that we have them. This makes for more reproducibility. Prompted by a discussion in #asterisk-dev 2010-06-01 Leif Madsen * Asterisk 1.4.32 Released 2010-05-26 Leif Madsen * Asterisk 1.4.32-rc2 Released 2010-05-26 10:56 -0500 [r265891] Matt Nicholson * Merged r265610 from 1.4: Don't mark the cdr records of unanswered queue calls with "NOANSWER". This restores the behavior prior to r258670. (closes issue #17334) Reported by: jvandal Patches: queue-cdr-fixes1.diff uploaded by mnicholson (license 96) Tested by: aragon, jvandal 2010-05-06 Leif Madsen * Asterisk 1.4.32-rc1 Released 2010-05-05 16:42 +0000 [r261274] Paul Belanger * channels/chan_sip.c: Registration fix for SIP realtime. Make sure realtime fields are not empty. (closes issue #17266) Reported by: Nick_Lewis Patches: chan_sip.c-realtime.patch uploaded by Nick Lewis (license 657) Tested by: Nick_Lewis, sberney Review: https://reviewboard.asterisk.org/r/643/ 2010-05-04 23:47 +0000 [r261093-261094] Tilghman Lesher * main/channel.c: Add a tiny corner case to the previous commit * main/channel.c: Protect against overflow, when calculating how long to wait for a frame. (closes issue #17128) Reported by: under Patches: d.diff uploaded by under (license 914) 2010-05-04 18:46 +0000 [r260923] Jeff Peeler * apps/app_voicemail.c: Voicemail transfer to operator should occur immediately, not after main menu. There were two scenarios in the advanced options that while using the operator=yes and review=yes options, the transfer occurred only after exiting the main menu (after sending a reply or leaving a message for an extension). Now after the audio is processed for the reply or message the transfer occurs immediately as expected. ABE-2107 ABE-2108 2010-05-04 17:40 +0000 [r260887] tringenbach : * README-SERIOUSLY.bestpractices.txt: Fix FILTER() examples to work in 1.4 Review: https://reviewboard.asterisk.org/r/644/ 2010-05-04 15:49 +0000 [r260801] Jason Parker * build_tools/make_build_h: Fix fallout from removing from configure script. Pointed out by philipp64 on #asterisk-dev 2010-05-03 16:54 +0000 [r260661-260662] Paul Belanger * Makefile: Should have removed /usr/lib/ part. Thanks Qwell. * Makefile: non-root make install PREFIX=/tmp fails. Prepend libdir when executing mkpkgconfig allowing non-root installs to work. (closes issue #17268) Reported by: pabelanger Patches: issue17268.patch uploaded by pabelanger (license 224) Tested by: pabelanger 2010-05-03 14:57 +0000 [r260569] Leif Madsen * doc/HOWTO_collect_debug_information.txt: Minor typo pointed out by pabelanger on IRC. 2010-04-30 22:22 +0000 [r260434] Jeff Peeler * channels/chan_dahdi.c: Ensure channel state is not incorrectly set in the case of a very early answer. The needringing bit was being read in dahdi_read after answering thereby setting the state to ringing from up. This clears needringing upon answering so that is no longer possible. (closes issue #17067) Reported by: tzafrir Patches: needringing.diff uploaded by tzafrir (license 46) 2010-04-30 20:08 +0000 [r260345] Mark Michelson * res/res_musiconhold.c: Fix potential crash from race condition due to accessing channel data without the channel locked. In res_musiconhold.c, there are several places where a channel's stream's existence is checked prior to calling ast_closestream on it. The issue here is that in several cases, the channel was not locked while checking the stream. The result was that if two threads checked the state of the channel's stream at approximately the same time, then there could be a situation where both threads attempt to call ast_closestream on the channel's stream. The result here is that the refcount for the stream would go below 0, resulting in a crash. I have added proper channel locking to res_musiconhold.c to ensure that we do not try to check chan->stream without the channel locked. A Digium customer has been using this patch for several weeks and has not had any crashes since applying the patch. ABE-2147 2010-04-29 22:11 +0000 [r260195] Richard Mudgett * channels/chan_dahdi.c: DTMF CallerID detection problems. The code handling DTMF CallerID drops digits on long CallerID numbers and may timeout waiting for the first ring with shorter numbers. The DTMF emulation mode was not turned off when processing DTMF CallerID. When the emulation code gets behind in processing the DTMF digits it can skip a digit. For shorter numbers, the timeout may have been too short. I increased it from 2 seconds to 4 seconds. Four seconds is a typical time between rings for many countries. (closes issue #16460) Reported by: sum Patches: issue16460.patch uploaded by rmudgett (license 664) issue16460_v1.6.2.patch uploaded by rmudgett (license 664) Tested by: sum, rmudgett Review: https://reviewboard.asterisk.org/r/634/ JIRA SWP-562 JIRA AST-334 JIRA SWP-901 2010-04-29 15:31 +0000 [r259858-260049] David Vossel * include/asterisk/audiohook.h, main/audiohook.c: Fixes crash in audiohook_write_list The middle_frame in the audiohook_write_list function was being freed if a audiohook manipulator returned a failure. This is incorrect logic. This patch resolves this and adds detailed descriptions of how this function should work and why manipulator failures must be ignored. (closes issue #17052) Reported by: dvossel Tested by: dvossel (closes issue #16196) Reported by: atis Review: https://reviewboard.asterisk.org/r/623/ * main/channel.c, channels/chan_local.c: resolves deadlocks in chan_local Issue_1. In the local_hangup() 3 locks must be held at the same time... pvt, pvt->chan, and pvt->owner. Proper deadlock avoidance is done when the channel to hangup is the outbound chan_local channel, but when it is not the outbound channel we have an issue... We attempt to do deadlock avoidance only on the tech pvt, when both the tech pvt and the pvt->owner are locked coming into that loop. By never giving up the pvt->owner channel deadlock avoidance is not entirely possible. This patch resolves that by doing deadlock avoidance on both the pvt->owner and the pvt when trying to get the pvt->chan lock. Issue_2. ast_prod() is used in ast_activate_generator() to queue a frame on the channel and make the channel's read function get called. This function is used in ast_activate_generator() while the channel is locked, which mean's the channel will have a lock both from the generator code and the frame_queue code by the time it gets to chan_local.c's local_queue_frame code... local_queue_frame contains some of the same crazy deadlock avoidance that local_hangup requires, and this recursive lock prevents that deadlock avoidance from happening correctly. This patch removes ast_prod() from the channel lock so only one lock is held during the local_queue_frame function. (closes issue #17185) Reported by: schmoozecom Patches: issue_17185_v1.diff uploaded by dvossel (license 671) issue_17185_v2.diff uploaded by dvossel (license 671) Tested by: schmoozecom, GameGamer43 Review: https://reviewboard.asterisk.org/r/631/ 2010-04-28 21:07 +0000 [r259852] Leif Madsen * config.guess: Update config.guess. Updating config.guess because after installing Ubuntu Server 9.10 and running all the update scripts, running ./configure would not continue because it was unable to determine what kind of system I had. After updating config.guess things started working again. 2010-04-28 20:30 +0000 [r259748-259847] Jason Parker * configure, configure.ac: Add AC_CONFIG_AUX_DIR to configure script, so systems without install can use install-sh from our source dir. * makeopts.in: Missed this when removing $ID * Makefile, configure, configure.ac: Remove usage of `id` since it isn't useful and was causing breakge. Solaris `id` doesn't support the -u argument. Instead of figuring out how to fix this to work on Solaris, I decided to check why it was necessary and where else it was used. It was only used in one place, and it hasn't been needed for a very long time (I question whether it was ever needed). 2010-04-28 17:13 +0000 [r259664] Jeff Peeler * apps/app_voicemail.c: Do not play goodbye prompt after timeout of message review. ABE-2124 2010-04-27 21:53 +0000 [r259531] Richard Mudgett * channels/chan_dahdi.c: DAHDI "WARNING" message is confusing and vague "WARNING[28406]: chan_dahdi.c:6873 ss_thread: CallerID feed failed: Success" Changed the warning to "Failed to decode CallerID on channel 'name'". The message before it is likely more specific about why the CallerID decode failed. SWP-501 AST-283 2010-04-27 21:48 +0000 [r259526] Leif Madsen * sounds/Makefile: Update sounds files. * Add additional sounds prompts for say_enumeration * Update the English conference sounds prompts so they are better quality and all sound more consistent * Clean up the core-sounds-XX.txt and extra-sounds-XX.txt files to include all present sound files Both core (en, fr, es) and extra (en, fr) sounds files have been updated. (closes issue #16200) Reported by: murf (closes issue #17137) Reported by: lmadsen 2010-04-27 21:15 +0000 [r259352-259441] Jason Parker * main/editline/configure, main/editline/configure.in: Add gar to the check for AR for those silly OSes (Solaris) that don't have ar. * configure, configure.ac: Support the silly OSes that don't have ar and strip. Since AC_PATH_TOOL is equiv to AC_CHECK_TOOL when path isn't specified, and AC_PATH_TOOLS doesn't exist, we'll just switch to AC_CHECK_TOOLS. 2010-04-27 18:14 +0000 [r259270] Richard Mudgett * channels/chan_dahdi.c, configs/chan_dahdi.conf.sample: hidecalleridname parameter in chan_dahdi.conf Issue #7321 implements a new chan_dahdi configuration option. However, a change mentioned in the issue was never implemented. This is the change that will allow the feature to work. I added a note to chan_dahdi.conf.sample about the feature. (closes issue #17143) Reported by: djensen99 Patches: diff.txt uploaded by djensen99 (license NA) (One line change) Tested by: djensen99 2010-04-26 21:44 +0000 [r259018-259104] Mark Michelson * main/channel.c: Let compilation succeed warning-free when DONT_OPTIMIZE is turned off. * main/channel.c: Prevent Newchannel manager events for dummy channels. No Newchannel manager event will be fired for channels that are allocated to not match a registered technology type. Thus bogus channels allocated solely for variable substitution or CDR operations do not result in a Newchannel event. (closes issue #16957) Reported by: atis Review: https://reviewboard.asterisk.org/r/601 2010-04-25 18:09 +0000 [r258775] Tilghman Lesher * res/res_monitor.c: When StopMonitor is called, ensure that it will not be restarted by a channel event. (closes issue #16590) Reported by: kkm Patches: resmonitor-16590-trunk.239289.diff uploaded by kkm (license 888) 2010-04-22 21:49 +0000 [r258670] Matthew Nicholson * main/cdr.c, main/channel.c, res/res_features.c: Fix broken CDR behavior. This change allows a CDR record previously marked with disposition ANSWERED to be set as BUSY or NO ANSWER. Additionally this change partially reverts r235635 and does not set the AST_CDR_FLAG_ORIGINATED flag on CDRs generated from ast_call(). To preserve proper CDR behavior, the AST_CDR_FLAG_DIALED flag is now cleared from all brige CDRs in ast_bridge_call(). (closes issue #16797) Reported by: VarnishedOtter Tested by: mnicholson 2010-04-21 21:45 +0000 [r258432] Jeff Peeler * apps/app_voicemail.c: Fix looping forever when no input received in certain voicemail menu scenarios. Specifically, prompting for an extension (when leaving or forwarding a message) or when prompting for a digit (when saving a message or changing folders). ABE-2122 SWP-1268 2010-04-20 16:16 +0000 [r257856-258029] Jeff Peeler * apps/app_voicemail.c: Play correct prompt when voicemail store failure occurs after attempted forward. If a user's mailbox was full and a message was attempted to be forwarded to said box, warnings on the console would indicate failure. However, the played prompt was that of success (vm-msgsaved). Now storage failure is taken into account and the correct prompt (vm-mailboxfull) is played when appropriate. ABE-2123 SWP-1262 * apps/app_voicemail.c: make app_voicemail compile with IMAP_STORAGE 2010-04-16 21:15 +0000 [r257686] Dwayne M. Hubbard * apps/app_mixmonitor.c: Make the mixmonitor thread process audio frames faster Mantis issue 17078 reports MixMonitor recordings have shorter durations than the call duration. This was because the mixmonitor thread was not processing frames from the audiohook fast enough. The mixmonitor thread would slowly fall behind the most recent audio frame and when the channel hangs up, the mixmonitor thread would exit without processing the same number of frames as the channel; leaving the mixmonitor recording shorter than actual call duration. This revision fixes this issue by moving the ast_audiohook_trigger_wait() and the subsequent audiohook.status check into the block where the ast_audiohook_read_frame() function returns NULL. (closes issue #17078) Reported by: geoff2010 Patches: dw-M17078.patch uploaded by dhubbard (license 733) Tested by: dhubbard, geoff2010 Review: https://reviewboard.asterisk.org/r/611/ 2010-04-15 21:23 +0000 [r257467-257544] Tilghman Lesher * include/asterisk/app.h, main/app.c: Allow application options with arguments to contain parentheses, through a variety of escaping techniques. Fixes SWP-1194 (ABE-2143). Review: https://reviewboard.asterisk.org/r/604/ * channels/chan_sip.c: Don't recreate peer, when responding to a repeated deregistration attempt. When a reply to a deregistration is lost in transmit, the client retries the deregistration. Previously, this would cause a realtime/autocreate peer to be loaded back into memory, after it had already been correctly purged. Instead, we just want to resend the reply without loading the peer. (closes issue #16908) Reported by: kkm Patches: 20100412__issue16908.diff.txt uploaded by tilghman (license 14) Tested by: kkm 2010-04-15 19:40 +0000 [r257342-257426] Leif Madsen * doc/backtrace.txt: Update backtrace.txt documentation. Update the backtrace.txt documentation so it conforms to the same layout as other documents we've been working on recently. Additionally, add a bunch of new information about gathering backtraces for crashes and deadlocks, along with ways of verifying your file before uploading it. Create a couple of one line commands for people to generate the files we need. (closes issue #17190) Reported by: lmadsen Patches: backtrace.txt.patch-2 uploaded by lmadsen (license 10) Tested by: lmadsen, pabelanger * doc/backtrace.txt: Update address of the bug tracker. 2010-04-14 23:08 +0000 [r257266] Tilghman Lesher * apps/app_voicemail.c: When forwarding a message, ensure that prepending works correctly. This is a regression in 1.4, only. (closes issue #17103) Reported by: mglazer Patches: 20100408__issue17103.diff.txt uploaded by tilghman (license 14) Tested by: tilghman 2010-04-13 16:46 +0000 [r257070] Matthew Nicholson * main/manager.c, configs/manager.conf.sample: Add an option to restore past broken behavor of the Events manager action Before r238915, certain values for the EventMask parameter of the Events action would result in no response being returned. This patch adds an option to restore that broken behavior. Also while fixing this bug I discovered that passing an empty EventMasks parameter would also result in no response being returned, this has been fixed as well while being preserved when the broken behavior is requested. (closes issue #17023) Reported by: nblasgen Review: https://reviewboard.asterisk.org/r/602/ 2010-04-12 17:29 +0000 [r256900] Leif Madsen * doc/HOWTO_collect_debug_information.txt (added): Add How-To document on collecting debugging info for issues.asterisk.org Paul Belanger has been helping a lot with bug tracking recently and created this document that we can now point to when additional debugging information is required. This document will help those filing issues to know how to get the information required when filing their issues. This will make things easier on the developers. Initial text and changes by pabelanger. Tweaks and editing by myself. (closes issue #17159) Reported by: pabelanger Patches: HOWTO_collect_debug_information.txt.patch uploaded by lmadsen (license 10) Tested by: tzafrir, pabelanger, lmadsen 2010-04-06 00:10 +0000 [r256225] Richard Mudgett * channels/chan_dahdi.c: DAHDI/PRI call to pri_channel_bridge() not protected by PRI lock. SWP-1231 ABE-2163 2010-05-03 Leif Madsen * Asterisk 1.4.31 Released 2010-04-29 Leif Madsen * Asterisk 1.4.31-rc2 Released 2010-04-29 10:31 +0000 [r260049] David Vossel * include/asterisk/audiohook.h, main/audiohook.c: Fixes crash in audiohook_write_list. (closes issue 0017052) Reported by: dvossel Tested by: dvossel. (closes issue 0016196) Reported by: atis. Review: https://reviewboard.asterisk.org/r/623/ 2010-04-28 10:31 +0000 [r259858] David Vossel * channels/chan_local.c, main/channel.c: Resolves deadlocks in chan_local. (closes issue 0017185) Reported by: schmoozecom Patches: issue_17185_v1.diff uploaded by dvossel (license 671) issue_17185_v2.diff uploaded by dvossel (license 671) Tested by: schmoozecom, GameGamer43 Review: https://reviewboard.asterisk.org/r/631/ 2010-04-05 Leif Madsen * Asterisk 1.4.31-rc1 Released 2010-04-02 23:45 +0000 [r256009-256014] Russell Bryant * channels/chan_local.c: Resolve a deadlock that occurs due to a pointless call to ast_bridged_channel() (closes issue #16840) Reported by: bzing2 Patches: patch.txt uploaded by bzing2 (license 902) issue_16840.rev1.diff uploaded by russell (license 2) Tested by: bzing2, russell * main/channel.c: Remove extremely verbose debug message. 2010-03-31 19:09 +0000 [r255591] Tilghman Lesher * apps/app_voicemail.c: Ensure line terminators in email are consistent. Fixes an issue with certain Mail Transport Agents, where attachments are not interpreted correctly. (closes issue #16557) Reported by: jcovert Patches: 20100308__issue16557__1.4.diff.txt uploaded by tilghman (license 14) 20100308__issue16557__1.6.0.diff.txt uploaded by tilghman (license 14) 20100308__issue16557__trunk.diff.txt uploaded by tilghman (license 14) Tested by: ebroad, zktech Reviewboard: https://reviewboard.asterisk.org/r/544/ 2010-03-31 17:42 +0000 [r255503] Leif Madsen * apps/app_dial.c, configs/sip.conf.sample: Add documentation clarifying when 't' and 'T' can be used. (closes issue #17021) Reported by: kovzol Tested by: lmadsen, kovzol, davidw, ebroad 2010-03-30 20:56 +0000 [r255322-255409] Russell Bryant * channels/chan_h323.c: Don't kill Asterisk if the H323 listener does not start. * pbx/pbx_dundi.c: Don't make Asterisk not start if pbx_dundi fails to initialize. 2010-03-25 20:41 +0000 [r254714-254800] Jason Parker * utils/Makefile: Don't remove local copies of utils in uninstall. * main/astobj2.c, include/asterisk/astobj2.h: Fix DEBUG_THREADS issue with out-of-tree modules. Take 2, without ABI breakage this time. Review: https://reviewboard.asterisk.org/r/588/ 2010-03-25 18:51 +0000 [r254639] Russell Bryant * Makefile, /: Update Asterisk 1.4 to use menuselect trunk. Review: https://reviewboard.asterisk.org/r/590/ 2010-03-25 17:33 +0000 [r254452-254552] Mark Michelson * include/asterisk/acl.h: Add doxygen for acl.h Review: https://reviewboard.asterisk.org/r/528 * main/rtp.c: Several fixes regarding RFC2833 DTMF detection. Here is a copy and paste of the details from my request on reviewboard that dealt with these changes: Fix 1. The first change in place is to fix Mantis issue 15811, which deals with a situation where Asterisk will incorrectly interpret out of order RFC2833 frames as duplicate DTMF digits. For instance, we would receive a sequence like: seqno 1: DTMF 1 seqno 2: DTMF 1 seqno 3: DTMF 1 seqno 4: DTMF 1 seqno 6: DTMF 1 (end) seqno 5: DTMF 1 seqno 7: DTMF 1 (end) seqno 8: DTMF 1 (end) Prior to this patch when we received the frame with seqno 5, we would interpret this as a new DTMF 1. With this patch, we will check the seqno of the incoming digit and not process the frame if the seqno is lower than the last recorded seqno. Note that we do not record the seqno of the dropped DTMF frame for future processing. While the above situation is what was designed to be fixed, the patch is written in such a way that the following would also be fixed too: seqno 9: DTMF 1 seqno 10: DTMF 1 (end) seqno 11: DTMF 1 (end) seqno 13: DTMF 2 seqno 12: DTMF 1 (end) seqno 14: DTMF 2 seqno 15: DTMF 2 (end) seqno 16: DTMF 2 (end) seqno 17: DTMF 2 (end) In this second situation, the beginning of the DTMF 2 arrives before the final end frame of the DTMF 1. With the patch, seqno 12 is no processed and thus we properly interpret the DTMF. Fix 2. The second change in place is to fix an issue like the following: seqno 1: DTMF 1 seqno 2: DTMF 1 seqno 3: DTMF 1 (end) *packet lost* seqno 4: DTMF 1 (end) *packet lost* seqno 5: DTMF 1 (end) *packet lost* seqno 6: DTMF 2 When we receive seqno 6, we had code in place that was supposed to properly end the previously unended DTMF 1. The problem was that the code was essentially a no-op. The code would set up an end frame for the DTMF 1 but would immediately overwrite the frame with the begin for DTMF 2. I changed process_dtmf_rfc2833() so that instead of returning a single frame, it is given as an output parameter a list of frames. Each frame that needs to be returned is appended to this list. Fix 3. The final change is a minor one where an AST_CONTROL_SRCCHANGE frame could get lost. If we process a cisco DTMF or an RFC 3389 frame and no frame was returned, then we would return &ast_null_frame. The problem is that earlier in the function, we may have generated an AST_CONTROL_SRCCHANGE frame and put it in the list of frames we wish to return. This frame would be lost in such a case. The patch fixes this problem Review: https://reviewboard.asterisk.org/r/558 2010-03-25 15:57 +0000 [r254451] Terry Wilson * main/file.c: Handle new SRCCHANGE control message here too 2010-03-24 00:37 +0000 [r254235] Jeff Peeler * res/res_monitor.c: Ensure that monitor recordings are written to the correct location (again) This is an extension to 248860. As such the dialplan test has been extended: ; non absolute path, not combined exten => 5040, 1, monitor(wav,tmp/jeff/monitor_test) exten => 5040, n, dial(sip/5001) ; absolute path, not combined exten => 5041, 1, monitor(wav,/tmp/jeff/monitor_test2) exten => 5041, n, dial(sip/5001) ; no path, not combined exten => 5042, 1, monitor(wav,monitor_test3) exten => 5042, n, dial(sip/5001) ; combined: changemonitor from non absolute to no path (leaves tmp/jeff) exten => 5043, 1, monitor(wav,tmp/jeff/monitor_test4,m) exten => 5043, n, changemonitor(monitor_test5) exten => 5043, n, dial(sip/5001) ; combined: changemonitor from no path to non absolute path exten => 5044, 1, monitor(wav,monitor_test6,m) exten => 5044, n, changemonitor(tmp/jeff/monitor_test7) ; this wasn't possible before exten => 5044, n, dial(sip/5001) ; non absolute path, combined exten => 5045, 1, monitor(wav,tmp/jeff/monitor_test8,m) exten => 5045, n, dial(sip/5001) ; absolute path, combined exten => 5046, 1, monitor(wav,/tmp/jeff/monitor_test9,m) exten => 5046, n, dial(sip/5001) ; no path, combined exten => 5047, 1, monitor(wav,monitor_test10,m) exten => 5047, n, dial(sip/5001) ; combined: changemonitor from non absolute to absolute (leaves tmp/jeff) exten => 5048, 1, monitor(wav,tmp/jeff/monitor_test11,m) exten => 5048, n, changemonitor(/tmp/jeff/monitor_test12) exten => 5048, n, dial(sip/5001) ; combined: changemonitor from absolute to non absolute (leaves /tmp/jeff) exten => 5049, 1, monitor(wav,/tmp/jeff/monitor_test13,m) exten => 5049, n, changemonitor(tmp/jeff/monitor_test14) exten => 5049, n, dial(sip/5001) ; combined: changemonitor from no path to absolute exten => 5050, 1, monitor(wav,monitor_test15,m) exten => 5050, n, changemonitor(/tmp/jeff/monitor_test16) exten => 5050, n, dial(sip/5001) ; combined: changemonitor from absolute to no path (leaves /tmp/jeff) exten => 5051, 1, monitor(wav,/tmp/jeff/monitor_test17,m) exten => 5051, n, changemonitor(monitor_test18) exten => 5051, n, dial(sip/5001) ; not combined: changemonitor from non absolute to no path (leaves tmp/jeff) exten => 5052, 1, monitor(wav,tmp/jeff/monitor_test19) exten => 5052, n, changemonitor(monitor_test20) exten => 5052, n, dial(sip/5001) ; not combined: changemonitor from no path to non absolute exten => 5053, 1, monitor(wav,monitor_test21) exten => 5053, n, changemonitor(tmp/jeff/monitor_test22) exten => 5053, n, dial(sip/5001) ; not combined: changemonitor from non absolute to absolute (leaves tmp/jeff) exten => 5054, 1, monitor(wav,tmp/jeff/monitor_test23) exten => 5054, n, changemonitor(/tmp/jeff/monitor_test24) exten => 5054, n, dial(sip/5001) ; not combined: changemonitor from absolute to non absolute (leaves /tmp/jeff) exten => 5055, 1, monitor(wav,/tmp/jeff/monitor_test24) exten => 5055, n, changemonitor(tmp/jeff/monitor_test25) exten => 5055, n, dial(sip/5001) ; not combined: changemonitor from no path to absolute exten => 5056, 1, monitor(wav,monitor_test26) exten => 5056, n, changemonitor(/tmp/jeff/monitor_test27) exten => 5056, n, dial(sip/5001) ; not combined: changemonitor from absolute to no path (leaves /tmp/jeff) exten => 5057, 1, monitor(wav,/tmp/jeff/monitor_test28) exten => 5057, n, changemonitor(monitor_test29) exten => 5057, n, dial(sip/5001) 2010-03-23 22:45 +0000 [r254046-254161] Jason Parker * main/astobj2.c, main/lock.c (removed), main/channel.c, main/Makefile, include/asterisk/astobj2.h, UPGRADE.txt, include/asterisk/lock.h: Revert revisions 254046 and 254098. * UPGRADE.txt: Add note about the out-of-tree module ABI changes. * main/astobj2.c, main/lock.c (added), main/channel.c, main/Makefile, include/asterisk/astobj2.h, include/asterisk/lock.h: Allow out-of-tree modules to load, regardless of DEBUG_THREADS/DEBUG_CHANNEL_LOCKS differences. This can be guaranteed by forcing the ABI to no longer change when these compiler flags are set. An unfortunate side-effect to this is that there is an ABI change here. However, there is some mitigation. Existing modules *will* fail to load since they would require functions that no longer exist. Review: https://reviewboard.asterisk.org/r/508/ 2010-03-22 19:50 +0000 [r253799] Matthew Nicholson * res/res_features.c: Unconditionally copy the caller's account code to the called party. (related to issue #16331) 2010-03-21 14:26 +0000 [r253631-253670] Russell Bryant * main/Makefile: Fix final link on FreeBSD by adding the PTHREAD_CFLAGS. * main/sched.c, Makefile, apps/app_dial.c, channels/chan_dahdi.c, main/manager.c, res/res_features.c, main/http.c, main/utils.c, pbx/pbx_dundi.c, apps/app_followme.c: Resolve a number of FreeBSD build issues. 2010-03-18 17:57 +0000 [r253252-253349] Leif Madsen * apps/app_userevent.c: Typo found while fixing issue #16961. * doc/localchannel.txt: Synchronize text in localchannels.txt and localchannels.tex. (issue #16963) * doc/localchannel.txt: Update new Local channel documentation. The original reporter, Kobaz, of an issue with a Local channel that inspired the Local channel documentation provided some tweaks to the documentation after testing what I had written. Hopefully anything that was vague or unclear has been cleaned up by these changes. (closes issue #16963) Reported by: kobaz Patches: localchannel-2.txt uploaded by kobaz (license 834) Tested by: kobaz, lmadsen 2010-03-17 16:25 +0000 [r253158] Terry Wilson * main/rtp.c, channels/chan_skinny.c, channels/chan_h323.c, channels/chan_mgcp.c, channels/chan_sip.c, include/asterisk/rtp.h: Revert API change in release branches This re-renames ast_rtp_update_source to ast_rtp_new_source 2010-03-17 00:26 +0000 [r253018] Leif Madsen * configs/say.conf.sample: Add french snipset to say.conf. Add the french snipset to say.conf. (Closes issue #15799) 2010-03-16 20:52 +0000 [r252766-252928] Russell Bryant * Makefile.rules: Backport chan_sip build fix for Mac OSX 10.6 from trunk. * codecs/gsm/Makefile: Use uname -s, as done in trunk. * codecs/gsm/Makefile: Apply codec_gsm Mac OS X 10.6 build fix that is in trunk and 1.6.X. * utils/Makefile: Don't treat warnings as errors for muted. muted supports OS X, but uses functions marked as deprecated in 10.6. However, the functions are still supported, so just ignore the warnings for now and allow the build to proceed. 2010-03-16 18:46 +0000 [r252761] Leif Madsen * configs/extensions.ael.sample: Additional extensions.ael global variable fixes. Fixing up a couple more overlapping global variable namespaces shared with extensions.conf.sample. Also noticed a few of the lines that were commented out didn't have the closing semi-colon so I added that as well. (issue #17035) 2010-03-15 21:43 +0000 [r252617] Tilghman Lesher * contrib/init.d/org.asterisk.asterisk.plist: Uh, yeah. Umask. I'm stupid. 2010-03-15 20:48 +0000 [r252531-252533] Leif Madsen * configs/extensions.ael.sample: Update extensions.ael file to not overlap extensions.conf. Updated the extensions.ael file so the global variables don't overlap those that we have in extensions.conf (sample files). This way unexpected things won't happed hopefully if both pbx_ael and res_config are loaded. (closes issue #17035) Reported by: pprindeville * configure, configs/extensions.ael.sample: Revert last commit that had bad changed to configure. * configure, configs/extensions.ael.sample: Update extensions.ael file to not overlap extensions.conf. Updated the extensions.ael file so the global variables don't overlap those that we have in extensions.conf (sample files). This way unexpected things won't happed hopefully if both pbx_ael and res_config are loaded. (closes issue #17035) Reported by: pprindeville 2010-03-15 01:39 +0000 [r252361-252366] Tilghman Lesher * Makefile: Typo * main/asterisk.c, Makefile, contrib/init.d/org.asterisk.asterisk.plist (added): Launch Asterisk on Mac OS X with launchd. Reviewboard: https://reviewboard.asterisk.org/r/551/ 2010-03-13 00:30 +0000 [r252175] Terry Wilson * main/rtp.c, channels/chan_mgcp.c, main/channel.c, channels/chan_sip.c, channels/chan_skinny.c, include/asterisk/rtp.h, channels/chan_h323.c, configs/sip.conf.sample, include/asterisk/frame.h: Merged revisions 252089 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r252089 | twilson | 2010-03-12 16:04:51 -0600 (Fri, 12 Mar 2010) | 20 lines Only change the RTP ssrc when we see that it has changed This change basically reverts the change reviewed in https://reviewboard.asterisk.org/r/374/ and instead limits the updating of the RTP synchronization source to only those times when we detect that the other side of the conversation has changed the ssrc. The problem is that SRCUPDATE control frames are sent many times where we don't want a new ssrc, including whenever Asterisk has to send DTMF in a normal bridge. This is also not the first time that this mistake has been made. The initial implementation of the ast_rtp_new_source function also changed the ssrc--and then it was removed because of this same issue. Then, we put it back in again to fix a different issue. This patch attempts to only change the ssrc when we see that the other side of the conversation has changed the ssrc. It also renames some functions to make their purpose more clear. Review: https://reviewboard.asterisk.org/r/540/ ........ 2010-03-12 19:58 +0000 [r251986-251997] Richard Mudgett * channels/chan_dahdi.c: Forward declaring dahdi_pri was already done. * channels/chan_dahdi.c: Make chan_dahdi wakeup_sub() prototype not conditional. 2010-03-11 Leif Madsen * Asterisk 1.4.30 released 2010-03-04 Leif Madsen * Asterisk 1.4.30-rc3 released 2010-03-03 21:28 +0000 [r250613] Leif Madsen * doc/localchannel.txt: Update existing Local channel documentation. A complete re-write of the Local channel documentation has been performed, with the existing information from localchannel.txt and localchannel.tex merged in. (issue #16637) Reported by: kobaz Patches: localchannel.tex uploaded by lmadsen (license 10) localchannel.txt uploaded by lmadsen (license 10) Tested by: lmadsen, jsmith, mmichelson 2010-03-03 19:04 +0000 [r250480] Jeff Peeler * channels/chan_dahdi.c: Make sure to clear red alarm after polarity reversal. From the issue: The automatic overnight line tests (or manual ones) used on UK (BT) lines causes a red alarm on a dahdi / TDM400P connected channel. This is because the line uses voltage tests (battery loss) and polarity reversal. The polarity reversal causes chan_dahdi to initiate v23 CallerID processing but during this the event DAHDI_EVENT_NOALARM is ignored so that the alarm is never cleared. (closes issue #14163) Reported by: jedi98 Patches: chan_dahdi-1.4-inalarm.diff uploaded by jedi98 (license 653) Tested by: mattbrown, Chainsaw, mikeeccleston 2010-03-03 18:02 +0000 [r250394] David Vossel * channels/chan_iax2.c: fixes problem with duplicate TXREQ packets When Asterisk receives an IAX2 TXREQ packet, try_transfer() will call store_by_transfercallno() to link the chan_iax2_pvt struct into iax_transfercallno_pvts. If a duplicate TXREQ packet is received for the same call, the pvt struct will be linked into iax_transfercallno_pvts multiple times. This patch fixes this. Thanks rain for debugging this and providing a patch! (closes issue #16904) Reported by: rain Patches: iax2-double-txreq-fix.diff uploaded by rain (license 327) Tested by: rain, dvossel 2010-03-02 21:08 +0000 [r250041-250050] Leif Madsen * doc/imapstorage.txt: Update IMAP documentation. Update the IMAP documentation to make it clear that storing voicemails in the same folder as a large number of emails could potentially cause significant slow downs when writing or retrieving voicemails. (closes issue #16704) Reported by: TimeHider Tested by: lmadsen, TimeHider * configs/cdr.conf.sample: Update documentation to clarify purpose of unanswered option. (closes issue #16267) Reported by: elsto Patches: cdr.conf.sample.patch.txt uploaded by lmadsen (license 10) Tested by: davidw, elsto * doc/configuration.txt: Update documentation to not imply we support overriding options. (issue #16855) Reported by: davidw 2010-03-02 19:36 +0000 [r249845-249946] Alec L Davis * apps/app_echo.c: revert ability to exit echo app caused a regression, as only supported VOICE, not VIDEO etc. Left in small formatting change. (issue #16880) * apps/app_echo.c: fixes ability to exit echo app when called from a ISDN channel, null frames prevent '#' exit. Now only echo back VOICE and DTMF frames (issue #16880) Reported by: alecdavis Patches: based on echo_exit_1-6-1.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis 2010-03-01 19:35 +0000 [r249671] Sean Bright * apps/app_voicemail.c: Fix crash in app_voicemail related to message counting. We were passing a 'struct inprocess **' and treating it like a 'struct inprocess *' causing a segfault. (closes issue #16921) Reported by: whardier Patches: 20100301_issue16921.patch uploaded by seanbright (license 71) Tested by: whardier 2010-03-01 17:02 +0000 [r249536] Jeff Peeler * channels/chan_local.c: Modify queued frames from local channels to not set the other side to up In this case, attended transfers were broken due to ast_feature_request_and_dial detecting the channel being set to up before the answer frame could be read and therefore failing to mark the channel as ready. This fix is a regression fix for 244785, which should continue to work properly as well. (closes issue #16816) Reported by: jamhed Tested by: jamhed, corruptor 2010-02-27 23:51 +0000 [r249365] Alec L Davis * channels/chan_dahdi.c: overlap receiving: automatically send CALL PROCEEDING when dialplan starts Following Q.931 5.2.4 When the user has determined that sufficient call information has been received the user shall stop T302 and send CALL PROCEEDING to the network. Previously timeouts were possible if the dialplan took a long time to issue any response back to the network. Verified that our local TELCO also does the same. (issue #16789) Reported by: alecdavis Patches: based on overlap_receiving_trunk.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis (closes issue #16789) 2010-02-27 14:07 +0000 [r249234] Kevin P. Fleming * channels/chan_iax2.c: add a reference to the now-published IAX2 RFC 2010-02-26 17:04 +0000 [r249100] Mark Michelson * channels/chan_sip.c: For T.38 reINVITEs treat a 606 the same as a 488. (closes issue #16792) Reported by: vrban Patches: t38_606.patch uploaded by vrban (license 756) 2010-02-25 21:22 +0000 [r248860] Jeff Peeler * res/res_monitor.c: Ensure that monitor recordings are written to the correct location (again) This is an extension to 248757. As such the dialplan test has been extended: exten => 5040, 1, monitor(wav,tmp/jeff/monitor_test,b) exten => 5040, n, dial(sip/5001) exten => 5041, 1, monitor(wav,/tmp/jeff/monitor_test2,b) exten => 5041, n, dial(sip/5001) exten => 5042, 1, monitor(wav,monitor_test3,b) exten => 5042, n, dial(sip/5001) exten => 5043, 1, monitor(wav,tmp/jeff/monitor_test3,m) exten => 5043, n, changemonitor(monitor_test4) exten => 5043, n, dial(sip/5001) exten => 5044, 1, monitor(wav,monitor_test4,m) exten => 5044, n, changemonitor(tmp/jeff/monitor_test5) ; this looks to fail by design and emits a warning exten => 5044, n, dial(sip/5001) 2010-02-25 21:21 +0000 [r248859] Tilghman Lesher * main/asterisk.c: Some platforms clear /var/run at boot, which makes connecting a remote console... difficult. Previously, we only created the default /var/run/asterisk directory at install time. While we could create it in the init script, that would not work for those who start asterisk manually from the command line. So the safest thing to do is to create it as part of the Asterisk boot process. This also changes the ownership of the directory, because the pid and ctl files are created after we setuid/setgid. (closes issue #16802) Reported by: Brian Patches: 20100224__issue16802.diff.txt uploaded by tilghman (license 14) Tested by: tzafrir 2010-02-25 18:06 +0000 [r248668-248757] Jeff Peeler * res/res_monitor.c: Ensure that monitor recordings are written to the correct location. Recordings should be placed in the monitor directory when a non-absolute path is used. Exact dialplan used for testing: exten => 5040, 1, monitor(wav,tmp/jeff/monitor_test,b) exten => 5040, n, dial(sip/5001) exten => 5041, 1, monitor(wav,/tmp/jeff/monitor_test2,b) exten => 5041, n, dial(sip/5001) exten => 5042, 1, monitor(wav,monitor_test3,b) exten => 5042, n, dial(sip/5001) ABE-2101 * apps/app_voicemail.c: Make deletion of temporary greetings work properly with IMAP_STORAGE This same patch was merged in 220833, but was skipped in this branch erroneously. (closes issue #16170) Reported by: francesco_r 2010-02-24 21:02 +0000 [r248582] Tilghman Lesher * main/logger.c: Remove color code sequences from verbose messages that go to logfiles. (closes issue #16786) Reported by: dodo Patches: logger2.patch uploaded by dodo (license 989) Tested by: tilghman 2010-02-23 16:26 +0000 [r248396] David Vossel * channels/chan_sip.c: fixes invite with replaces deadlock (closes issue #16862) Reported by: pwalker Patches: replaces_deadlock_1.4 uploaded by dvossel (license 671) Tested by: pwalker, dvossel 2010-02-22 13:52 +0000 [r248268] Olle Johansson * apps/app_meetme.c: Don't log to debug unless debug is turned on 2010-02-20 22:25 +0000 [r248106] Olle Johansson * main/rtp.c: Make sure we support RTCP compound messages with zero reports 2010-02-19 19:11 +0000 [r248012] Tilghman Lesher * main/loader.c, /: Backport crash fix from trunk to 1.4, whereby 'core show gracefully' could crash Asterisk. (closes issue #16470) Reported by: kjotte 2010-02-19 17:18 +0000 [r247910] Richard Mudgett * channels/chan_misdn.c: Merged revision 247904 from https://origsvn.digium.com/svn/asterisk/be/branches/C.2-... .......... r247904 | rmudgett | 2010-02-19 10:49:44 -0600 (Fri, 19 Feb 2010) | 49 lines Make chan_misdn DTMF processing consistent with other channel technologies. The processing of DTMF tones on the receiving side of an ISDN channel is inconsistent with the way it is handled in other channels, especially DAHDI analog. This causes DTMF tones sent from an ISDN phone to be doubled at the connected party. We are using the following 2 options of misdn.conf 1) astdtmf=yes 2) senddtmf=yes Option one is necessary because the asterisk DSP DTMF detection is better than mISDN's internal DSP. Not as many false positives. Option two is necessary to transmit DTMF tones end to end when mISDN channels are connected to SIP channels with out of band DTMF for example. The symptom is that DTMF tones sent by an ISDN phone are doubled on the way through asterisk when two mISDN channels are connected with a Local channel in between or if it is bridged to an analog channel. The doubling of DTMF tones is because DTMF is passed inband to asterisk by the mISDN channel and passed out of band once again after the release of the DTMF tone. Passing it inband is wrong. Neither an analog channel nor SIP channel passes DTMF inband if configured to inband DTMF. Analog and SIP channels filter out the DTMF tones because they use the voice frames returned by ast_dsp_process. But chan_misdn passes the unfiltered input voice frames instead. To overcome one aspect of the problem, the doubling of DTMF tones when two mISDN channels are directly bridged, someone made an 'optimization', where in that case the DTMF tone passed out-of-band to the peer channel is not translated to an inband tone at the transmit side. This optimization is bad because it does not work in general. For example, analog channels or mISDN channels when bridged through an intermediary local channel will generate DTMF tones from out-of-band information. Also, of course, it must not be done when there is no inband DTMF available. This patch fixes the issue. Now chan_misdn will filter the received inband DTMF signal the same as other channel types. Another change included: No need to build an extra translation path because ast_process_dsp does it if required. Patches: misdn-dtmf.patch JIRA ABE-2080 2010-02-18 19:38 +0000 [r247651] Matthew Nicholson * res/res_features.c: Copy the calling party's account code to the called party if they don't already have one. (closes issue #16331) Reported by: bluefox Tested by: mnicholson 2010-02-18 16:53 +0000 [r247502-247508] Leif Madsen * README-SERIOUSLY.bestpractices.txt: Add additional link to best practices document per jsmith. * README-SERIOUSLY.bestpractices.txt (added): Add best practices documentation. (issue #16808) Reported by: lmadsen (issue #16810) Reported by: Nick_Lewis Tested by: lmadsen Review: https://reviewboard.asterisk.org/r/507/ 2010-02-18 04:19 +0000 [r247422] Russell Bryant * Makefile, sounds/Makefile: Tweak argument handling for wget in the sounds Makefile. 1) Fix the check to see if we are using wget to not be full of fail. The configure script populates this variable with the absolute path to wget if it is found, so it didn't work. 2) Allow some extra arguments to be passed in for wget. This is just a simple change to allow our Bamboo build script to tell wget to be quiet and not fill up our logs with download status output. 2010-02-17 16:24 +0000 [r247168] Mark Michelson * apps/app_queue.c: Make sure that when autofill is disabled that callers not in the front of the queue cannot place calls. (closes issue #16834) Reported by: kebl0155 Patches: app_queue_no_autofill.v1.patch uploaded by kebl0155 (license 356) 2010-02-15 23:42 +0000 [r246709] Tilghman Lesher * Makefile: Make the menuselect instructions correct by allowing 'make menuselect' to actually solve dependency problems. (Previously, it would fail out again with the same message about running 'make menuselect', which was NOT at all helpful.) 2010-02-12 23:30 +0000 [r246545] David Vossel * main/channel.c: lock channel during datastore removal On channel destruction the channel's datastores are removed and destroyed. Since there are public API calls to find and remove datastores on a channel, a lock should be held whenever datastores are removed and destroyed. This resolves a crash caused by a race condition in app_chanspy.c. (closes issue #16678) Reported by: tim_ringenbach Patches: datastore_destroy_race.diff uploaded by tim ringenbach (license 540) Tested by: dvossel 2010-02-12 18:52 +0000 [r246460] Jason Parker * main/channel.c: Fix some silly formatting, and remove unnecessary option_debug checks 2010-02-10 17:44 +0000 [r246115] David Vossel * apps/app_queue.c: fixes random deadlock in app_queue with use_weight during reload (closes issue #16677) Reported by: tim_ringenbach Patches: app_queue_use_weight_deadlock.diff uploaded by tim ringenbach (license 540) 2010-02-10 13:37 +0000 [r245944] Tilghman Lesher * configs/extensions.conf.sample: Include examples of FILTER usage in extension patterns where a "." may be a risk. 2010-02-10 08:24 +0000 [r245909] Olle Johansson * res/res_smdi.c: Make sure that res_smdi loads regardless of configuration, since chan_dahdi depends on res_smdi 2010-02-09 22:55 +0000 [r245792] David Vossel * channels/chan_iax2.c: Fixes iaxs and iaxsl size off by one issue. 2^15 = 32768 which is the maximum allowed iax2 callnumber. Creating the iaxs and iaxsl array of size 32768 means the maximum callnumber is actually out of bounds. This causes a nasty crash. (closes issue #15997) Reported by: exarv Patches: iax_fix.diff uploaded by dvossel (license 671) 2010-02-08 20:39 +0000 [r245496] Jason Parker * main/ast_expr2.fl, main/ast_expr2f.c: Remove reference of documentation in source directory. People don't always build Asterisk from source (distro packages, anybody?). 2010-02-08 11:57 +0000 [r245422] Olle Johansson * res/res_features.c: Res_features depends on res_adsi in 1.4 2010-02-05 18:32 +0000 [r245044] Kevin P. Fleming * contrib/firmware (removed), LICENSE: Remove contrib/firmware directory as it is empty Remove explicit license for IAXy firmware as it is no longer included in the tree 2010-02-05 17:03 +0000 [r244926] Sean Bright * main/asterisk.c: Update main copyright date. 2010-02-04 23:20 +0000 [r244785] Jeff Peeler * channels/chan_local.c: Change channel state on local channels for busy,answer,ring. Previously local channels channel state never changed. This became problematic when the state of the other side of the local channel was lost, for example during a masquerade. Changing the state of the local channel allows for the scenario to be detected when the channel state is set to ringing, but the peer isn't ringing. The specific problem scenario is described in 164201. Although this was noted on one of the issues, here is the tested dialplan verified to work: exten => 9700,1,Dial(Local/*9700@default&Local/#9700@default) exten => *9700,1,Set(GLOBAL(TESTCHAN)=${CHANNEL:0:${MATH(${LEN(${CHANNEL})}-1):0:2}}1) exten => *9700,n,wait(3) ;3 works, 1 did not exten => *9700,n,Dial(SIP/5001) exten => #9700,1,Wait(1) ;1 works, 3 did not exten => #9700,n,ChannelRedirect(${TESTCHAN},parkedcalls,701,1) (closes issue #14992) Reported by: davidw 2010-02-01 23:13 +0000 [r244070-244242] Tilghman Lesher * apps/app_voicemail.c: Backup and restore original textfile, for prosthesis (gerund of prepend). Also, fix menuselect such that changing voicemail build options correctly causes rebuild. (closes issue #16415) Reported by: tomo1657 Patches: prepention.patch uploaded by tomo1657 (license 484) (with modifications by me to backport to 1.4) * res/res_features.c: When a transferer hangs up during an attended transfer BEFORE the transfer is answered, don't stop playing MOH. (closes issue #16513) Reported by: litnimax Patches: atxfer_moh_16513.patch uploaded by gknispel proformatique (license 261) Tested by: litnimax * main/channel.c, channels/chan_local.c: Revert previous chan_local fix (r236981) and fix instead by destroying expired frames in the queue. (closes issue #16525) Reported by: kobaz Patches: 20100126__issue16525.diff.txt uploaded by tilghman (license 14) 20100129__issue16525__1.6.0.diff.txt uploaded by tilghman (license 14) Tested by: kobaz, atis (closes issue #16581) Reported by: ZX81 (closes issue #16681) Reported by: alexr1 2010-01-28 18:48 +0000 [r243862-243863] Leif Madsen * BUGS: Oops, correct wrong link (https vs. http) in previous commit. * BUGS: Update location of bug tracker in documentation. 2010-01-28 15:03 +0000 [r243779] Russell Bryant * channels/chan_sip.c: Fix a bogus third argument to ast_copy_string(). 2010-01-27 20:35 +0000 [r243570-243691] Jeff Peeler * apps/app_queue.c: Revert 243570, I should have looked at this closer. Will reopen the issue, but am leaving the review closed as the change was pointless. (issue #16488) * apps/app_queue.c: Extend announcement URL used with Queue from 80 chars to PATH_MAX. (closes issue #16488) Reported by: syspert Patches: soundfilelen.pacth-2 uploaded by syspert (license 938) Review: https://reviewboard.asterisk.org/r/475/ 2010-01-27 18:06 +0000 [r243486] Mark Michelson * main/pbx.c: Use a safe list traversal while checking for duplicate vars in pbx_builtin_setvar_helper. 2010-01-26 23:55 +0000 [r243390] David Vossel * res/res_features.c: fixes bug with channel receiving wrong privileges after call parking (closes issue #16429) Reported by: Yasuhiro Konishi Patches: features.c.diff uploaded by Yasuhiro Konishi (license 947) Tested by: dvossel 2010-01-26 18:19 +0000 [r243258] Jeff Peeler * main/channel.c: Remove unnecessary code in ast_read as issue 16058 has been fully solved now. 2010-01-25 21:50 +0000 [r242852-242969] Tilghman Lesher * main/Makefile, pbx/Makefile: Err, and use the new menuselect define, too. * build_tools/cflags.xml, build_tools/menuselect-deps.in, configure, configure.ac: Only rebuild parsers by an option in menuselect * configure, main/Makefile, configure.ac, pbx/Makefile: Restore FreeBSD to able-to-compile-ish-mode 2010-01-25 20:08 +0000 [r242850-242851] Olle Johansson * main/manager.c: Remove debugging that indeed should have been gone before commit. Sorry. * main/manager.c: Report error when writing to functions returns error in AMI setvar action 2010-01-25 05:42 +0000 [r242520-242728] Tilghman Lesher * main/Makefile, pbx/Makefile: Buildbot pointed out an error (thanks, buildbot!) * main/Makefile, pbx/Makefile: Oops, should have used CMD_PREFIX, not ECHO_PREFIX, for the commands. * main/Makefile: Make the build of the Asterisk expression parser match that of the AEL parser. * configure, include/asterisk/autoconfig.h.in, configure.ac, pbx/ael/ael_lex.c, pbx/Makefile, makeopts.in: Only rebuild bison and flex source files on demand, if bison and flex are detected by the configure script. Changed after discussion on the -dev list about possible unnecessary build failures, due to checkouts/untars causing these special source files to possibly be newer than their resulting C files. This should additionally ensure that nobody need learn about extra Makefile arguments to ensure the proper files get rebuilt when changes are made to these special source files. 2010-01-22 21:44 +0000 [r242423] Tilghman Lesher * pbx/Makefile: Rebuild from flex, bison sources when necessary. (issue #14629) Reported by: Marquis Patches: 20100121__issue14629.diff.txt uploaded by tilghman (license 14) 2010-01-22 09:19 +0000 [r242226] Olle Johansson * channels/chan_sip.c: Initialize notify_types to NULL 2010-01-22 01:48 +0000 [r242142] Alec L Davis * main/cdr.c: Add Dialed Number Identifier (DNID) field to cdr. Branch support, retains ABI, if backend CDR collector is adaptive then database requires 'dnid' field to be added, otherwise no functional changes. Reported by: alecdavis Tested by: alecdavis Patch cdr_dnid.diff2.txt uploaded by alecdavis (license 585) Review: https://reviewboard.asterisk.org/r/455/ 2010-01-21 15:25 +0000 [r241932] Sean Bright * configure, configure.ac: Fix configure check for PTHREAD_ONCE_INIT when manually adding -Wall to CFLAGS. (closes issue #16666) Reported by: romain_proformatique 2010-01-21 05:53 +0000 [r241765] Tilghman Lesher * funcs/func_math.c: Guard against division by zero. 2010-01-20 20:00 +0000 [r241626] David Vossel * Makefile: fixes parsing error in Makefile. Some echo lines were missing "; . Thanks to jparker for pointing out the problem. 2010-01-20 14:12 +0000 [r241543-241544] Sean Bright * pbx/pbx_spool.c: Modify fix for issue 16554 to be more inline with what is already in trunk. I should have taken a closer look at trunk/1.6.x, as this bug has already been fixed in a much more simple manner, by just settings o->vars to NULL after the ast_pbx_outgoing_* calls. (issue #16554) Reported by: mav3rick * pbx/pbx_spool.c: Fix a memory leak in pbx_spool when using SetVar in a call file. In pbx_spool, when we are freeing our 'outgoing' struct, we weren't deallocating the ast_variable list we had built from SetVars in a call file. Adding a call to ast_variables_destroy in our deallocation routine works, but only if the variables have not already been passed into ast_pbx_outgoing_app() or _exten(), both of which take care of destroying the variable list for us. (closes issue #16554) Reported by: mav3rick Patches: issue16554_20100119.patch uploaded by seanbright (license 71) Tested by: mav3rick 2010-01-20 09:38 +0000 [r241458] Alec L Davis * main/pbx.c: Update CDR variables as pbx starts Allows CDR variables added in cdr.c:set_one_cid to become visable during the call, by executing ast_cdr_update() early in __ast_pbx_run. Based on cdr_update.diff3.txt (issue #16638) Reported by: alecdavis Patches: cdr_update.diff3.txt uploaded by alecdavis (license 585) Tested by: alecdavis 2010-01-19 17:41 +0000 [r241228] Jason Parker * Makefile: Allow parallel make (-j) to work properly. 1.4 changes are quite different from the others. (issue #16489) Reported by: Chainsaw Tested by: qwell 2010-01-19 17:22 +0000 [r241227] Jeff Peeler * channels/chan_agent.c: Fix deadlock in agent_read by removing call to agent_logoff. One must always lock the agents list lock before the agent private. agent_read locks the private immediately, so locking the agents list lock is not an option (which is what agent_logoff requires). Because agent_read already has access to the agent private all that is necessary is to do the required hanging up that agent_logoff performed. (closes issue #16321) Reported by: valon24 Patches: bug16321.patch uploaded by jpeeler (license 325) 2010-01-18 19:54 +0000 [r241015] Sean Bright * main/config.c: Plug a memory leak when reading configs with their comments. While reading through configuration files with the intent of returning their full contents (comments specifically) we allocated some memory and then forgot to free it. This doesn't fix 16554 but clears up a leak I had in the lab. (issue #16554) Reported by: mav3rick Patches: issue16554_20100118.patch uploaded by seanbright (license 71) Tested by: seanbright 2010-01-18 16:51 +0000 [r240891] David Vossel * Makefile: updated transmit_silence option documentation in asterisk.conf This patch updates the transmit_silence option to better document why the option exists, and what it affects. Thanks to russell for providing the verbage for this update. 2010-01-18 13:27 +0000 [r240768] Olle Johansson * utils/Makefile: Fix muted compilation in 1.4 only 2010-01-15 23:06 +0000 [r240547] Russell Bryant * Makefile: Fix a spelling error in the asterisk.conf sample. 2010-01-15 20:52 +0000 [r240414] Tilghman Lesher * apps/app_voicemail.c: Disallow leaving more than maxmsg voicemails. This is a possibility because our previous method assumed that no messages are left in parallel, which is not a safe assumption. Due to the vmu structure duplication, it was necessary to track in-process messages via a separate structure. If at some point, we switch vmu to an ao2-reference-counted structure, which would eliminate the prior noted duplication of structures, then we could incorporate this new in-process structure directly into vmu. (closes issue #16271) Reported by: sohosys Patches: 20100108__issue16271.diff.txt uploaded by tilghman (license 14) 20100108__issue16271__trunk.diff.txt uploaded by tilghman (license 14) 20100108__issue16271__1.6.0.diff.txt uploaded by tilghman (license 14) Tested by: jsutton 2010-01-14 Leif Madsen * Release Asterisk 1.4.29 2010-01-08 Leif Madsen * Release Asterisk 1.4.29-rc1 2010-01-07 20:14 +0000 [r238409-238411] David Vossel * channels/chan_iax2.c: fixes crash in "scheduled_destroy" in chan_iax A signed short was used to represent a callnumber. This is makes it possible to attempt to access the iaxs array with a negative index. (closes issue #16565) Reported by: jensvb * channels/chan_sip.c: Change in sip show channels display format allowing more digits for CID (closes issue 0016459) Reported by: Rzadzins Patches: chan_sip_longer_cid.patch uploaded by Rzadzins (license 953) 2010-01-06 21:41 +0000 [r238230] Tilghman Lesher * funcs/func_cdr.c: Revise documentation on disposition values to the actual values used. (closes issue #16289) Reported by: wdoekes 2010-01-06 15:18 +0000 [r237697-238009] Russell Bryant * apps/app_mp3.c: Resolve a crash due to an ast_frame not being fully initialized. (closes issue #16531) Reported by: john8675309 (closes SWP-615) * main/utils.c: Change a NOTICE log message to DEBUG where it belongs. (closes issue #16479) Reported by: alexrecarey (closes SWP-577) 2010-01-04 21:45 +0000 [r237318-237573] Tilghman Lesher * main/say.c: Bounds checking for input string (closes issue #16407) Reported by: qwell Patches: 20100104__issue16407.diff.txt uploaded by tilghman (license 14) * main/pbx.c: Regression in issue #15421 - Pattern matching (closes issue #16482) Reported by: wdoekes Patches: astsvn-16482-betterfix.diff uploaded by wdoekes (license 717) 20091223__issue16482.diff.txt uploaded by tilghman (license 14) Tested by: wdoekes, tilghman * main/pbx.c, res/res_agi.c, include/asterisk/channel.h: Add a flag to disable the Background behavior, for AGI users. This is in a section of code that relates to two other issues, namely issue #14011 and issue #14940), one of which was the behavior of Background when called with a context argument that matched the current context. This fix broke FreePBX, however, in a post-Dial situation. Needless to say, this is an extremely difficult collision of several different issues. While the use of an exception flag is ugly, fixing all of the issues linked is rather difficult (although if someone would like to propose a better solution, we're happy to entertain that suggestion). (closes issue #16434) Reported by: rickead2000 Patches: 20091217__issue16434.diff.txt uploaded by tilghman (license 14) 20091222__issue16434__1.6.1.diff.txt uploaded by tilghman (license 14) Tested by: rickead2000 * channels/chan_local.c: It's also possible for the Local channel to directly execute an Application. Reviewboard: https://reviewboard.asterisk.org/r/452/ 2010-01-02 09:52 +0000 [r237135] Olle Johansson * channels/chan_sip.c: Release memory of the contact acl before unloading module 2009-12-30 21:57 +0000 [r236981] Tilghman Lesher * channels/chan_local.c: Don't queue frames to channels that have no means to process them. (closes issue #15609) Reported by: aragon Patches: 20091230__issue16521__1.4__chan_local_only.diff.txt uploaded by tilghman (license 14) Tested by: aragon Review: https://reviewboard.asterisk.org/r/452/ 2009-12-30 20:25 +0000 [r236890] Jeff Peeler * utils/astman.c: Remove conflicting function definitions (asterisk.h) so LOW_MEMORY compiles. 2009-12-28 15:12 +0000 [r236509-236585] Sean Bright * include/asterisk/threadstorage.h, configure, include/asterisk/autoconfig.h.in, configure.ac: Try a test compile to see if PTHREAD_ONCE_INIT requires extra braces. There was conditional code (based on build platform) to optioinally wrap PTHREAD_ONCE_INIT in braces that was removed since it is fixed in newer versions of Solaris/OpenSolaris, but I am still running into it on Solaris 10 x86 so add a configure-time check for it. * apps/app_meetme.c: Avoid a crash with large numbers of MeetMe conferences. Similar to changes made to Queue(), when we have large numbers of conferences in meetme.conf (1000s) and we use alloca()/strdupa(), we can blow out the stack and crash, so instead just use a single fixed buffer. (closes issue #16509) Reported by: Kashif Raza Patches: 20091223_16509.patch uploaded by seanbright (license 71) Tested by: seanbright 2009-12-27 18:19 +0000 [r236433] Tilghman Lesher * contrib/init.d/rc.debian.asterisk: Turn on colors in the daemon, since there's many requests for it on Ubuntu. 2009-12-26 15:26 +0000 [r236357] Kevin P. Fleming * sounds/Makefile: update to latest releases with zero uid/gid 2009-12-23 15:21 +0000 [r236261] Matthew Nicholson * channels/chan_sip.c: Properly set T.38 attributes and don't return before T.38 ports are configured when T.38 is found but no audio stream is found. (closes issue #16318) Reported by: bird_of_Luck Patches: t38-sdp-parsing-fix3.diff uploaded by mnicholson (license 96), written by vrban and mnicholson Tested by: vrban, mihaill 2009-12-23 02:55 +0000 [r236184] Tilghman Lesher * res/res_agi.c: If EXEC only gets a single argument, don't crash when the second is used. (closes issue #16504) Reported by: bklang 2009-12-22 16:58 +0000 [r236062] David Vossel * channels/chan_sip.c: fixes issue with p->method incorrectly set to ACK It is possible for a second ACK to come in for a retransmitted message. If an ack does not match an unacked message in our queue, restore the previous p->method as this ACK is completely ignored. (closes issue #16295) Reported by: omolenkamp Patches: issue16295_v2.diff uploaded by dvossel (license 671) 2009-12-21 19:43 +0000 [r235940] Jeff Peeler * res/res_monitor.c: Change Monitor to not assume file to write to does not contain pathing. 227944 changed the fname_base argument to always append the configured monitor path. This change was necessary to properly compare files for uniqueness. If a full path is given though, nothing needs to be appended and that is handled correctly now. (closes issue #16377) (closes issue #16376) Reported by: bcnit Patches: res_monitor.c-issue16376-1.patch uploaded by dant (license 670) 2009-12-21 16:45 +0000 [r235821] Tilghman Lesher * res/res_features.c: Send parking lot announcement to the channel which parked the call, not the park-ee. (closes issue #16234) Reported by: yeshuawatso Patches: 20091210__issue16234.diff.txt uploaded by tilghman (license 14) 20091221__issue16234__1.4.diff.txt uploaded by tilghman (license 14) Tested by: yeshuawatso 2009-12-18 22:39 +0000 [r235652] Tilghman Lesher * configure, configure.ac: Revise verbiage, per #asterisk-dev discussion 2009-12-18 22:29 +0000 [r235635] Jeff Peeler * main/channel.c, include/asterisk/cdr.h: Correct CDR dispositions for BUSY/FAILED This patch is simple in that it reorders the disposition defines so that the fix for issue 12946 works properly (the default CDR disposition was changed to AST_CDR_NOANSWER). Also, the AST_CDR_FLAG_ORIGINATED flag was set in ast_call to ensure all CDR records are written. The side effects of CDR changes are scary, so I'm documenting the test cases performed to attempt to catch any regressions. The following tests were all performed using 1.4 rev 195881 vs head (235571) + patch: A calls B C calls B (busy) Hangup C Hangup A (Both SIP and features) A calls B A blind transfers to C Hangup C (Both SIP and features) A calls B A attended transfers to C Hangup C A calls B A attended transfers to C (SIP) C blind transfers to A (features) Hangup A All of the test scenario CDRs matched. The following tests were performed just with the patch to ensure proper operation (with unanswered=yes): exten =>s,1,Answer exten =>s,n,ResetCDR(w) exten =>s,n,ResetCDR(w) exten =>s,1,ResetCDR(w) exten =>s,n,ResetCDR(w) (closes issue #16180) Reported by: aatef Patches: bug16180.patch uploaded by jpeeler (license 325) 2009-12-18 21:18 +0000 [r235572] Tilghman Lesher * configure, configure.ac: Point to the typical missing package, not the cryptic "termcap support". 2009-12-17 Leif Madsen * Release Asterisk 1.4.28 2009-12-09 Leif Madsen * Release Asterisk 1.4.28-rc1 2009-12-09 19:58 +0000 [r233782-233879] Russell Bryant * main/loader.c: Fix breakage of the "module load " CLI command. * main/loader.c, formats/format_ilbc.c, formats/format_vox.c, include/asterisk/module.h, formats/format_pcm.c, formats/format_h263.c, formats/format_g723.c, formats/format_h264.c, formats/format_jpeg.c, formats/format_g726.c, formats/format_gsm.c, formats/format_g729.c, formats/format_sln.c, formats/format_wav.c, formats/format_ogg_vorbis.c, formats/format_wav_gsm.c: Set a module load priority for format modules. A recent change to app_voicemail made it such that the module now assumes that all format modules are available while processing voicemail configuration. However, when autoloading modules, it was possible that app_voicemail was loaded before the format modules. Since format modules don't depend on anything, set a module load priority on them to ensure that they get loaded first when autoloading. This version of the patch is specific to Asterisk 1.4 and 1.6.0. These versions did not already support module load priority in the module API. This adds a trivial version of this which is just a module flag to include it in a pass before loading "everything". Thanks to mmichelson for the review! (closes issue #16412) Reported by: jiddings Tested by: russell Review: https://reviewboard.asterisk.org/r/445/ 2009-12-08 00:02 +0000 [r233618] Atis Lezdins * contrib/valgrind.supp: Merged revisions 233577 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r233577 | atis | 2009-12-08 01:10:13 +0200 (Tue, 08 Dec 2009) | 8 lines Fix compatibility with valgrind 3.3 and older. (noticed in issue #16388) Reported by: parisioa Patches: valgrind.supp uloaded by atis (license 242) Tested by: atis, parisioa ........ 2009-12-07 23:24 +0000 [r233471-233609] David Vossel * main/utils.c: hex escape control and non 7-bit clean characters in uri_encode In ast_uri_encode, non 7-bit clean characters were being hex escaped correctly, but control characters were not. (issue #16299) * channels/chan_sip.c: fixes missing Contact header angle brackets (closes issue #16298) Reported by: mgernoth Patches: reg_parse_issue_1.4.diff uploaded by dvossel (license 671) Tested by: dvossel 2009-12-07 16:11 +0000 [r233392] Matthew Nicholson * channels/chan_sip.c: Allow SDP packets with only video session information. (closes issue #16387) Reported by: zalex1953 Tested by: mnicholson, zalex1953 2009-12-04 21:54 +0000 [r233116-233279] David Vossel * configs/iax.conf.sample: clarify requirecalltoken option in iax.sample.conf (closes issue #16223) Reported by: bklang Patches: clarify-iax-requirecalltoken.patch uploaded by bklang (license 919) * apps/app_voicemail.c: document and rename strip_control() in app_voicemail (closes issue #16291) Reported by: wdoekes 2009-12-04 17:12 +0000 [r233092] Russell Bryant * main/channel.c: Only do frame payload check for HOLD frames. This code was added for helping to debug the source of invalid HOLD frames. However, a side effect of this is that it will incorrectly report errors for frames that have an integer payload. Make the check for this block specific to the HOLD frame case. 2009-12-04 16:59 +0000 [r233014-233091] Matthias Nick * pbx/pbx_config.c: Parse global variables or expressions in hint extensions Parse global variables or expressions in hint extensions. Like: exten => 400,hint,DAHDI/i2/${GLOBAL(var)} (closes issue #16166) Reported by: rmudgett Tested by: mnick, rmudgett * main/dsp.c: Warning message gets displayed only once Added additional field 'int display_inband_dtmf_warning', which when set to '1' displays the warning ('Inband DTMF is not supported on codec %s. Use RFC2833'), and when set to '0' doesn't display the warning. Otherwise you would get hundreds of warnings every second. (closes issue #15769) Reported by: falves11 Patches: patch_15769_14.txt uploaded by mnick (license 874) Tested by: mnick, falves11 2009-12-03 20:10 +0000 [r232820] Tilghman Lesher * apps/app_voicemail.c: Deprecate "cz" in favor of "cs". Also, change the use of language codes so that language registers as a prefix, rather than an exact match. (closes issue #16272) Reported by: patrol-cz Patches: 20091203__issue16272.diff.txt uploaded by tilghman (license 14) 2009-12-02 21:57 +0000 [r232581] Jeff Peeler * main/manager.c: Send ack (response/message) after receiving manager action userevent (closes issue #16264) Reported by: dimas Patches: event-ack.patch uploaded by dimas (license 88) 2009-12-02 19:03 +0000 [r232444] David Vossel * apps/app_queue.c: fixes app_queue ao2 error (closes issue #16369) Reported by: vrban Patches: queue_issue_1.4.diff uploaded by dvossel (license 671) Tested by: dvossel 2009-12-02 17:04 +0000 [r232355] Joshua Colp * apps/app_amd.c: Fix a bug where if you hung up very quickly after calling AMD it would overwrite the AMDSTATUS of HANGUP with TOOLONG. (closes issue #16239) Reported by: CGMChris 2009-12-02 16:59 +0000 [r232268-232350] David Vossel * main/acl.c: ast_outaddrfor doesn't do htons() on port, looks odd in strace. (closes issue #16290) Reported by: wdoekes * funcs/func_groupcount.c: fixes segfault in func_groupcount closes issue #16337) Reported by: Parantido Patches: issue_16337.diff uploaded by dvossel (license 671) Tested by: Parantido, dvossel 2009-12-02 04:05 +0000 [r232165] Terry Wilson * main/channel.c: Fix compiling without devmode (closes issue #16367) Reported by: falves11 2009-12-02 00:42 +0000 [r232090] Jeff Peeler * channels/chan_dahdi.c: Do not modify the gain settings on data calls. (The digital flag actually represents a data call.) (closes issue #15972) Reported by: udosw Patches: transcap_digital_fix.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis 2009-12-01 23:25 +0000 [r232007] Russell Bryant * main/file.c: Fix a warning pointed out by buildbot. 2009-12-01 21:52 +0000 [r231911-231926] Jeff Peeler * main/channel.c: log channel name in dev mode as well * main/channel.c: Fix crash with invalid frame data The crash was happening as a result of a frame containing an invalid data pointer, but was set with data length of zero. The few times the issue was reproduced it _seemed_ that the frame was queued properly, that is the data pointer was set to NULL. I never could reproduce the crash so as a last resort the crash has been fixed, but a check in __ast_read has been added to give as much information about the source of problematic frames in the future. (closes issue #16058) Reported by: atis 2009-12-01 21:14 +0000 [r231853] David Vossel * main/pbx.c: WaitExten m option with no parameters generates frame with zero datalen but non-null data ptr 2009-12-01 15:34 +0000 [r231614-231740] Matthew Nicholson * main/file.c: Ignore unknown formats in ast_format_str_reduce() and return an error if no know formats are found. * apps/app_voicemail.c, include/asterisk/file.h, main/file.c, main/app.c: Remove duplicate entries from voicemail format lists. This prevents app_voicemail from entering an infinite loop when the same format is specified twice in the format list. (closes issue #15625) Reported by: Shagg63 Tested by: mnicholson Review: https://reviewboard.asterisk.org/r/429/ 2009-11-30 17:14 +0000 [r231437-231441] David Vossel * main/rtp.c: fixes crash caused by RTP comfort noise payload greater than 24 bytes AST-2009-010 (closes issue #16242) Reported by: amorsen Patches: issue16242.diff uploaded by oej (license 306) Tested by: amorsen, oej, dvossel * apps/app_queue.c: app_queue crashes randomly, often during call-transfers In app_queue, it is possible for a call_queue to be destroyed while another object still holds a pointer to it. This patch converts call_queue objects to ao2 objects allowing them to be ref counted. This makes it safe for the queue_ent object in queue_exec() to reference it's parent call_queue even after it has left the queue. (closes issue #15686) Reported by: Hatrix Patches: v2_queue_ao2.diff uploaded by dvossel (license 671) Tested by: dvossel, aragon Review: https://reviewboard.asterisk.org/r/427/ 2009-11-25 22:31 +0000 [r231298] Tilghman Lesher * main/channel.c: After a frame duplication failure, unlock the channel before returning. 2009-11-25 21:38 +0000 [r231233-231235] David Vossel * apps/app_dial.c: fixes solaris segfault on dial with verbosity >= 3 (closes issue #16193) Reported by: asgaroth Patches: bug_16193_1.4.21.2_vers.diff uploaded by snuffy (license 35) Tested by: asgaroth, snuffy * channels/chan_sip.c: fixes conditional jump or move depending on uninitialised STACK value (closes issue #16261) Reported by: edguy3 Patches: edguy16261.patch uploaded by edguy3 (license 917) 2009-11-23 15:31 +0000 [r230772-230875] Kevin P. Fleming * channels/chan_sip.c: When 'sip set debug' is enabled, and the last line of an incoming SIP message is not properly newline terminated, ensure that that line is included in the debug output. (part of issue #16268) * main/editline/makelist.in, channels/chan_sip.c, channels/ring_tone.h, channels/busy_tone.h: Correct fix for issue #16268... the reporter's original patch was very close to correct. * channels/chan_sip.c: Ensure that SDP parsing does not ignore the last line of the SDP. (closes issue #16268) Reported by: sgimeno 2009-11-20 20:53 +0000 [r230627] Matthew Nicholson * res/res_features.c: Copy the peer CDR's userfield to the bridge CDR if it exists. This is necessary for the recordagentcalls option in chan_agent to store the recorded file name in the bridge CDR. (closes issue #14590) Reported by: msetim Patches: queue_agent_userfield.patch uploaded by Laureano (license 265) Tested by: Laureano, mnicholson 2009-11-19 21:22 +0000 [r230508] David Vossel * apps/app_mixmonitor.c: fixes MixMonitor thread not exiting when StopMixMonitor is used (closes issue #16152) Reported by: AlexMS Patches: stopmixmonitor_1.4.diff uploaded by dvossel (license 671) Tested by: dvossel, AlexMS Review: https://reviewboard.asterisk.org/r/424/ 2009-11-19 16:09 +0000 [r230469] Michiel van Baak * main/asterisk.c: Update copyright year in visible output. (cli) Spotted by Stuart Henderson 2009-11-30 Leif Madsen * Release Asterisk 1.4.27.1 * AST-2009-010 * SDP parser regression fix (issue #16268) 2009-11-18 Leif Madsen * Release Asterisk 1.4.27 2009-11-13 Leif Madsen * Release Asterisk 1.4.27-rc5 2009-11-12 16:41 +0000 [r229669] David Vossel * funcs/func_audiohookinherit.c: fixes merging error, datastore was being freed in the wrong function. (closes issue #16219) Reported by: aragon 2009-11-11 19:46 +0000 [r229498] David Brooks * main/pbx.c: Solaris doesn't like NULL going to ast_log Solaris will crash if NULL is passed to ast_log. This simple patch simply uses S_OR to get around this. (closes issue #15392) Reported by: yrashk 2009-11-10 22:09 +0000 [r229360] Tilghman Lesher * main/pbx.c: If two pattern classes start with the same digit and have the same number of characters, they will compare equal. The example given in the issue report is that of [234] and [246], which have these characteristics, yet they are clearly not equivalent. The code still uses these two characteristics, yet when the two scores compare equal, an additional check will be done to compare all characters within the class to verify equality. (closes issue #15421) Reported by: jsmith Patches: 20091109__issue15421__2.diff.txt uploaded by tilghman (license 14) Tested by: jsmith, thedavidfactor 2009-11-10 21:45 +0000 [r229355] David Ruggles * doc/externalivr.txt: Fix ExternalIVR Documentation Remove documentation for event that doesn't function (closes issue #16220) Reported by: thedavidfactor Patches: externalivr.txt.20091110.1622.patch uploaded by thedavidfactor (license 903) 2009-11-10 20:03 +0000 [r229281] Joshua Colp * codecs/codec_g726.c: Remove broken support for direct transcoding between G.726 RFC3551 and G.726 AAL2. On some systems the translation core would actually consider g726aal2 -> g726 -> signed linear to be a quicker path then g726aal2 -> signed linear which exposed this problem. (closes issue #15504) Reported by: globalnetinc 2009-11-10 17:23 +0000 [r229191] David Ruggles * doc/externalivr.txt: Document ExternalIVR event tag collision ExternalIVR uses the D tag for two different event types. This documents that behavior and how to differentiate between the two cases. Also includes a minor spelling fix and clarification (closes issue #16211) Reported by: thedavidfactor Patches: externalivr.txt.20091109.1507.patch uploaded by thedavidfactor (license 903) 2009-11-10 17:15 +0000 [r229167] David Vossel * channels/chan_iax2.c: don't crash on log message in solaris AST-2009-006 (closes issue #16206) Reported by: bklang Tested by: bklang 2009-11-10 15:22 +0000 [r229091] Matthew Nicholson * channels/chan_sip.c: Reverted revision 202022. (closes issue #16175) Reported by: paul-tg 2009-11-09 Leif Madsen * Release Astersik 1.4.27-rc4 2009-11-09 15:37 +0000 [r228896] Leif Madsen * main/channel.c: Update WARNING message. Update a WARNING message to give a suggested fix when encountered. (closes issue #16198) Reported by: atis Tested by: atis 2009-11-09 14:16 +0000 [r228827] Matthew Nicholson * include/asterisk/lock.h: Perform limited bounds checking when destroying ast_mutex_t structures to make sure we don't try to use negative indices. (closes issue #15588) Reported by: zerohalo Patches: 20090820__issue15588.diff.txt uploaded by tilghman (license 14) Tested by: zerohalo 2009-11-06 22:33 +0000 [r228692] David Vossel * main/channel.c: fixes audiohook write crash occuring in chan_spy whisper mode. After writing to the audiohook list in ast_write(), frames were being freed incorrectly. Under certain conditions this resulted in a double free crash. (closes issue #16133) Reported by: wetwired (closes issue #16045) Reported by: bluecrow76 Patches: issue16045.diff uploaded by dvossel (license 671) Tested by: bluecrow76, dvossel, habile 2009-11-06 18:32 +0000 [r228547] Joshua Colp * channels/chan_sip.c: Don't overwrite caller ID name on a trunk with the configured fullname when using users.conf (issue ABE-1989) 2009-11-06 Leif Madsen * Release Asterisk 1.4.27-rc3 2009-11-06 17:07 +0000 [r228418] David Vossel * codecs/codec_ilbc.c: fixes segfault in iLBC For reasons not yet known, it appears possible for an ast_frame to have a datalen greater than zero while the actual data is NULL during Packet Loss Concealment. Most codecs don't support PLC so this doesn't affect them. This patch catches the malformed frame and prevents the crash from occuring. Additional efforts to determine why it is possible for a frame to look like this are still being investigated. (issue #16979) 2009-11-06 16:41 +0000 [r228409] Joshua Colp * main/abstract_jb.c: Fix a bug caused by a partially invalid frame (from the jitterbuffer) passing through the Asterisk core. (closes issue #15560) Reported by: jvandal (closes issue #15709) Reported by: covici 2009-11-06 16:26 +0000 [r228378] Matthew Nicholson * funcs/func_base64.c, main/utils.c: Properly handle '=' while decoding base64 messages and null terminate strings returned from BASE64_DECODE. (closes issue #15271) Reported by: chappell Patches: base64_fix.patch uploaded by chappell (license 8) Tested by: kobaz 2009-11-06 15:41 +0000 [r228272-228338] David Vossel * main/astfd.c: fixes crash in astfd.c (closes issue #15981) Reported by: slavon * funcs/func_audiohookinherit.c: fixes memory leak in func_audiohookinherit.c (closes issue 0015394) Reported by: boroda Patches: bug15394_memoryleak_diff2.txt uploaded by dbrooks (license 790) Tested by: dbrooks, boroda 2009-11-05 19:14 +0000 [r228079] Jason Parker * channels/chan_vpb.cc: Fix crash on VPB exception when no hardware is present. (closes issue #14970) Reported by: tzafrir Patches: vpb_exception.diff uploaded by tzafrir (license 46) Tested by: markwaters 2009-11-05 18:59 +0000 [r228078] David Brooks * channels/chan_misdn.c: chan_misdn Asterisk 1.4.27-rc2 crash Crash related to chan_misdn connection. Patch submitted by gknispel_proformatique, tested by francesco_r. "I have many crash since i have upgraded to Asterisk 1.4.27-rc2. Attached a full bt." This patch zeros out an ast_frame. (closes issue #16041) Reported by: francesco_r 2009-11-04 23:47 +0000 [r227944] Jeff Peeler * res/res_monitor.c: Fix incorrect filename comparsion after monitor file change The logic to detect if a requested file is indeed a different file from the current file was incorrect. The main issue being confusion of the use of filename_base which was previously set without pathing information and then compared to another full path. Robust file comparison logic has been added to properly check if two files are the same even if symlinks are used. (closes issue #15313) Reported by: caspy Patches: 20091103__issue15313__1.4.diff.txt uploaded by jpeeler (license 325) but mostly tilghman's work 2009-11-04 20:52 +0000 [r227758-227827] Matthew Nicholson * apps/app_dial.c: This patch modifies the Dial application to monitor the calling channel for hangups while playing back announcements. (closes issue #16005) Reported by: falves11 Patches: dial-announce-hangup-fix1.diff uploaded by mnicholson (license 96) Tested by: mnicholson, falves11 Review: https://reviewboard.asterisk.org/r/407/ * channels/chan_sip.c: Modify the SDP parsing code to parse session and media level items separately. With the new code, media level proprieties should no longer be confused with session level proprieties. This change also reorganizes some of the SDP parsing code which should make it easier to manage in the future. (closes issue #14994) Reported by: frawd Tested by: frawd, mnicholson, file Review: https://reviewboard.asterisk.org/r/385/ 2009-11-04 19:25 +0000 [r227700-227735] Joshua Colp * static-http/prototype.js: Fix a security issue where it may be possible for someone to execute a cross-site AJAX request exploit. (AST-2009-009) * channels/chan_sip.c: Fix a security issue where sending a REGISTER with a differing username in the From URI and Authorization header would reveal whether it was valid or not. (AST-2009-008) 2009-11-03 17:55 +0000 [r227275] Richard Mudgett * channels/chan_dahdi.c: Make sure the outgoing flag is cleared if a new channel fails to get created for outgoing calls. This is the relevant portion of asterisk/trunk -r226648 2009-11-03 15:36 +0000 [r227166] Joshua Colp * channels/chan_sip.c: Fix a bug where an RPID header could be generated with a blank username in the URI. (closes issue #15909) Reported by: kobaz 2009-11-03 10:48 +0000 [r227088-227090] Olle Johansson * channels/chan_sip.c: Fixing bug before someone reports it... * channels/chan_sip.c: Adding IP address in Contact ACL log message and removing redundant message (based on kpfleming's feedback) * channels/chan_sip.c: Use proper response code when violating Contact ACL's. Review: https://reviewboard.asterisk.org/r/415/ Thanks kpfleming for a quick review. (EDVX-003) 2009-11-02 20:52 +0000 [r226972] David Brooks * channels/chan_sip.c: SIP channel name uniqueness SIP channel names were supposed to be unique by way of a name suffix derived from the pointer to the channel's private data. Uniqueness was preserved on 32-bit systems, but not on 64-bit systems. This patch, as suggested by kpfleming, replaces this suffix with a simple incremented unsigned int. (closes issue #15152) Reported by: palbrecht Review: https://reviewboard.asterisk.org/r/420/ 2009-11-02 18:08 +0000 [r226889] Joshua Colp * apps/app_dial.c: Fix a bug where the recorded privacy introduction file would not get removed if the caller hung up while the called party had not yet answered. This was fixed by introducing an argument to the 'n' option which, when enabled, removes the introduction file under all scenarios. This was done to preserve the behavior that has existed for quite some time. (closes issue #14674) Reported by: ulogic Patches: bug14674.patch uploaded by jpeeler (license 325) 2009-11-02 17:14 +0000 [r226811] Tilghman Lesher * contrib/init.d/rc.redhat.asterisk: Don't allow two separate instances of safe_asterisk when restarting from the init script. (closes issue #14562) Reported by: davidw Patches: Initially 20091022__issue14562.diff.txt uploaded by tilghman (license 14) Modified to 20091030__Issue14562_diff.txt uploaded by davidw (license 780) Tested by: davidw 2009-11-02 15:31 +0000 [r226688-226736] David Vossel * channels/chan_iax2.c: fixes crash on iterator_destroy on uninitialized iterator (closes issue #16162) Reported by: krn * channels/chan_iax2.c: changes calltoken debug messages from LOG_NOTICE to LOG_DEBUG like they are supposed to be (closes issue #16144) Reported by: aragon 2009-10-29 18:11 +0000 [r226531] Joshua Colp * channels/chan_local.c, doc/localchannel.txt: Add an option to enabling passing music on hold start and stop requests through instead of acting on them in chan_local. (closes issue #14709) Reported by: dimas 2009-10-28 20:06 +0000 [r226377-226382] Leif Madsen * configs/sip.conf.sample: Update documentation in sip.conf.sample. Update the documentation in sip.conf.sample in order to make it more clear that directmedia/canreinvite do not cause Asterisk to ignore reINVITEs. It is only used to stop Asterisk from generating a reINVITE, but does not stop it from accepting them if necessary. (closes issue #15644) Reported by: lmadsen * doc/channelvariables.txt: Update CALLINGSUBADDR channel variable documentation. (closes issue #15734) Reported by: alecdavis Patches: channelvariables.tex.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis 2009-10-28 18:02 +0000 [r226138-226304] Tilghman Lesher * include/asterisk/linkedlists.h: Fix documentation (pointed out by TheDavidFactor on #-dev) * main/manager.c: Manager output is not always NULL-terminated, so force a NULL at the end of the filestream. (closes issue #15495) Reported by: pdf Patches: 20090916__issue15495.diff.txt uploaded by tilghman (license 14) Tested by: pdf 2009-10-26 22:13 +0000 [r225957] Tzafrir Cohen * configure, include/asterisk/autoconfig.h.in, configure.ac: detect ARM Linux EABI OSARCH as linux-gnu instead of linux-gnueabi * Set OSARCH to linux-gnu even if host_os is linux-gnueabi * When checking if we are Linux, check OSARCH rather than host_os The newer ARM ABI ("EABI") shows the OS name 'linux-gnueabi' rather than 'linux-gnu' . This patch sets OSARCH to be 'linux-gnu' even in such a case. OSARCH is tested for the value of 'linux-gnu' in one or two places in the tree. This patch also fixes the check libcap to check for $OSARCH rather than $host_os . See also: http://wiki.debian.org/ArmEabiPort 2009-10-23 14:00 +0000 [r225581] Kevin P. Fleming * Makefile: Don't force menuselect.makeopts to be rebuilt on every build. For some reason the menuselect.makeopts file was listed as PHONY in the Makefile, resulting in 'make' needing to rebuild it for every build. This then resulted in the embedded module rules being rebuilt on every build, which can be slow and is unnecessary. This patch fixes the problem by properly allowing 'make' to know when the menuselect.makeopts file needs to be rebuilt (defining the proper dependencies). 2009-10-22 21:51 +0000 [r225484] Leif Madsen * doc/valgrind.txt, contrib/valgrind.supp (added): Clean valgrind output by suppressing false errors. Update valgrind.txt documentation and add valgrind.supp file in order to allow those who are creating valgrind output to have less false errors in the logfile. (closes issue #16007) Reported by: atis Patches: valgrind.txt.diff uploaded by atis (license 242) asterisk2.supp uploaded by atis (license 242) Tested by: atis, amorsen 2009-10-21 20:58 +0000 [r225243] David Vossel * channels/chan_iax2.c: IAX2: VNAK loop caused by signaling frames with no destination call number It is possible for the PBX thread to queue up signaling frames before a destination call number is received. This can result in signaling frames being sent out with no destination call number. Since recent versions of Asterisk require accurate destination callnumbers for all Full Frames, this can cause a VNAK loop to occur. To resolve this no signaling frames are sent until a destination callnumber is received, and destination call numbers are now only required for iax_pvt matching when the frame is an ACK. Review: https://reviewboard.asterisk.org/r/413/ 2009-10-21 16:44 +0000 [r225169-225171] Russell Bryant * main/translate.c: Revert 225169, as this doesn't account for the possibility of a list of frames. * main/translate.c: Isolate the frame returned from ast_translate(). 2009-10-21 16:02 +0000 [r225103-225105] Tilghman Lesher * main/pbx.c, apps/app_meetme.c, include/asterisk/channel.h: Fix documentation for ast_softhangup() and correct the misuse thereof. (closes issue #16103) Reported by: majorbloodnok * apps/app_voicemail.c: Suffix is not needed for a match 2009-10-21 14:37 +0000 [r225032] David Vossel * configs/iax.conf.sample, channels/chan_sip.c, configs/sip.conf.sample, channels/chan_iax2.c: IAX/SIP shrinkcallerid option The shrinking of caller id removes '(', ' ', ')', non-trailing '.', and '-' from the string. This means values such as 555.5555 and test-test result in 555555 and testtest. There are instances, such as Skype integration, where a specific value is passed via caller id that must be preserved unmodified. This patch makes the shrinking of caller id optional in chan_sip and chan_iax in order to support such cases. By default this option is on to preserve previous expected behavior. (closes issue #15940) Reported by: dimas Patches: v2-15940.patch uploaded by dimas (license 88) 15940_shrinkcallerid_trunk.c uploaded by dvossel (license 671) Tested by: dvossel Review: https://reviewboard.asterisk.org/r/408/ 2009-10-21 02:59 +0000 [r224931] Russell Bryant * include/asterisk/translate.h, main/dsp.c, main/frame.c, main/translate.c, include/asterisk/dsp.h, codecs/codec_dahdi.c, include/asterisk/frame.h: Isolate frames returned from a DSP instance or codec translator. The reasoning for these changes are the same as what I wrote in the commit message for rev 222878. 2009-10-20 22:07 +0000 [r224855] Tilghman Lesher * main/audiohook.c: Pay attention to the return value of the manipulate function. While this looks like an optimization, it prevents a crash from occurring when used with certain audiohook callbacks (diagnosed with SVN trunk, backported to 1.4 to keep the source consistent across versions). 2009-10-20 17:46 +0000 [r224773] Joshua Colp * res/res_features.c: Add support for relaying early media in the features attended transfer option. (closes issue #14828) Reported by: licedey 2009-10-19 23:44 +0000 [r224670] Kevin P. Fleming * main/rtp.c: Correct timestamp calculations when RTP sample rates over 8kHz are used. While testing some endpoints that support 16kHz and 32kHz sample rates, some log messages were generated due to calc_rxstamp() computing timestamps in a way that produced odd results, so this patch sanitizes the result of the computations. 2009-10-19 19:47 +0000 [r224565] Joshua Colp * apps/app_dial.c: Do not attempt early media bridging (ie: direct RTP setup) if options are enabled that should prevent it. (closes issue #14763) Reported by: cupotka 2009-10-17 01:32 +0000 [r224330] Jeff Peeler * channels/chan_dahdi.c: Fix stale caller id data from being reported in AMI NewChannel event The problem here is that chan_dahdi is designed in such a way to set certain values in the dahdi_pvt only once. One of those such values is the configured caller id data in chan_dahdi.conf. For PRI, the configured caller id data could be overwritten during a call. Instead of saving the data and restoring, it was decided that for all non-analog channels it was simply best to not set the configured caller id in the first place and also clear it at the end of the call. (closes issue #15883) Reported by: jsmith 2009-10-16 20:25 +0000 [r224260] Richard Mudgett * channels/chan_dahdi.c: Never released PRI channels when using Busy() or Congestion() dialplan apps. When the Busy() or Congestion() application is used towards ISDN (an ISDN progress is sent), the responding ISDN Disconnect or Release may contain the ISDN cause user busy or one of the congestion causes. In chan_dahdi.c these causes will only set the needbusy or needcongestion flags and not activate the softhangup procedure. Unfortunately only the latter can interrupt the endless wait loop of Busy()/Congestion(). Result: PRI channels staying in state busy for the rest of asterisk life or until the other end times out and forces the call to clear. (in issue 0014292) Reported by: tomaso Patches: disc_rel_userbusy.patch uploaded by tomaso (license 564) (This patch is unrelated to the issue.) 2009-10-13 20:58 +0000 [r223955] Jean Galarneau * channels/chan_dahdi.c: Fix PRI timer T309 operation 2009-10-12 23:12 +0000 [r223804] Jeff Peeler * apps/app_dial.c: Ensure ringing continues for branched calls after progress is received While waiting for an answer, don't send progress for branched calls for which ringing was sent. (closes issue #15028) Reported by: fnordian 2009-10-12 15:30 +0000 [r223692] Kevin P. Fleming * channels/chan_sip.c: Remove automatic switching from T.38 to voice mode in chan_sip. chan_sip has some code to automatically switch from T.38 mode to voice mode when a voice frame is written to the channel while it is in T.38 mode; this was intended to handle the situation when a FAX transmission has ended and the channel is not yet hung up, but is causing problems at the beginning of FAX sessions as well when there are still voice frames 'in flight' at the time the T.38 negotiation completes. This patch removes the automatic switchover. (issue #16025) Reported by: jamicque 2009-10-11 18:34 +0000 [r223485-223550] Russell Bryant * apps/app_queue.c: Remove a duplicate ao2_iterator_destroy(). * main/autoservice.c: Remove some unnecessary code. * main/autoservice.c: Don't use data outside of its scope. The purpose of this code was to have a hangup frame put on the list of deferred frames. However, the code that read the hangup frame was outside of the scope of where the hangup frame was declared. 2009-10-09 18:20 +0000 [r223225] Matthew Nicholson * main/channel.c: Signal timeouts by returning AST_CONTROL_RINGING when originating calls. (closes issue #15104) Reported by: nblasgen Patches: manager-timeout1.diff uploaded by mnicholson (license 96) Tested by: nblasgen, mnicholson 2009-10-09 18:17 +0000 [r223213] Mark Michelson * apps/app_dial.c: Fix potential memory leak in app_dial.c 2009-10-09 17:52 +0000 [r223142-223205] David Vossel * channels/chan_sip.c: fixes sip registration using authuser in user.conf (closes issue #14954) Reported by: tornblad Tested by: mmichelson, tornblad, dvossel * channels/chan_sip.c: 'auth=' did not parse md5 secret correctly (closes issue https://issues.asterisk.org/view.php?id=15949) Reported by: ebroad Patches: authparsefix.patch uploaded by ebroad (license 878) 15949_trunk.diff uploaded by dvossel (license 671) Tested by: ebroad 2009-10-08 19:45 +0000 [r222878] Russell Bryant * include/asterisk/file.h, main/frame.c, main/file.c, include/asterisk/frame.h: Make filestream frame handling safer by isolating frames before returning them. This patch is related to a number of issues on the bug tracker that show crashes related to freeing frames that came from a filestream. A number of fixes have been made over time while trying to figure out these problems, but there re still people seeing the crash. (Note that some of these bug reports include information about other problems. I am specifically addressing the filestream frame crash here.) I'm still not clear on what the exact problem is. However, what is _very_ clear is that we have seen quite a few problems over time related to unexpected behavior when we try to use embedded frames as an optimization. In some cases, this optimization doesn't really provide much due to improvements made in other areas. In this case, the patch modifies filestream handling such that the embedded frame will not be returned. ast_frisolate() is used to ensure that we end up with a completely mallocd frame. In reality, though, we will not actually have to malloc every time. For filestreams, the frame will almost always be allocated and freed in the same thread. That means that the thread local frame cache will be used. So, going this route doesn't hurt. With this patch in place, some people have reported success in not seeing the crash anymore. (SWP-150) (AST-208) (ABE-1834) (issue #15609) Reported by: aragon Patches: filestream_frisolate-1.4.diff2.txt uploaded by russell (license 2) Tested by: aragon, russell (closes issue #15817) Reported by: zerohalo Tested by: zerohalo (closes issue #15845) Reported by: marhbere Review: https://reviewboard.asterisk.org/r/386/ 2009-10-08 19:45 +0000 [r222877] David Vossel * main/netsock.c, include/asterisk/netsock.h: fixes an ast_netsock_list memory leak. ABE-1998 Review: https://reviewboard.asterisk.org/r/395/ 2009-10-08 16:33 +0000 [r222691-222797] Richard Mudgett * channels/misdn_config.c: Fix memory leak if chan_misdn config parameter is repeated. Memory leak when the same config option is set more than once in an misdn.conf section. Why must this be considered? Templates! Defining a template with default port options and later adding to or overriding some of them. Patches: memleak-misdn.patch JIRA ABE-1998 * channels/chan_misdn.c: chan_misdn.c:process_ast_dsp() memory leak misdn.conf: astdtmf must be set to "yes". With "no", buffer loss does not occur. The translated frame "f2" when passing through ast_dsp_process() is not freed whenever it is not used further in process_ast_dsp(). Then in the end it is never ever freed. Patches: translate.patch JIRA ABE-1993 2009-10-07 17:41 +0000 [r222542] David Vossel * channels/chan_sip.c: crash on transfer handle_invite_replaces() attempts to uplock a pvt's owner channel without first verifing that it exists. (issue #16027) 2009-10-06 23:51 +0000 [r222393-222462] Jeff Peeler * channels/chan_dahdi.c: Add missing unlock(s) in dahdi_read (two cases in trunk) (closes issue #15683) Reported by: alecdavis * channels/chan_dahdi.c: Fix potential crash when entire span request is received. The variable index used in this scenario for accessing the dahdi_pvts was wrong and was most likely copied from the several other places it is used correctly. (closes issue #15998) Reported by: tsearle Patches: dahdi_reset_crash.patch uploaded by tsearle (license 373) 2009-10-06 Leif Madsen * Release Asterisk 1.4.27-rc2 2009-10-06 01:16 +0000 [r222152] Kevin P. Fleming * main/astobj2.c, include/asterisk/astobj2.h, res/res_musiconhold.c, apps/app_queue.c, channels/chan_iax2.c: Fix ao2_iterator API to hold references to containers being iterated. See Mantis issue for details of what prompted this change. Additional notes: This patch changes the ao2_iterator API in two ways: F_AO2I_DONTLOCK has become an enum instead of a macro, with a name that fits our naming policy; also, it is now necessary to call ao2_iterator_destroy() on any iterator that has been created. Currently this only releases the reference to the container being iterated, but in the future this could also release other resources used by the iterator, if the iterator implementation changes to use additional resources. (closes issue #15987) Reported by: kpfleming Review: https://reviewboard.asterisk.org/r/383/ 2009-10-02 17:32 +0000 [r222026] David Vossel * channels/chan_iax2.c: Removes unnecessary unlock, clarifies a memcpy. 2009-10-02 16:58 +0000 [r221776-221970] Tilghman Lesher * main/astobj2.c: Ensure the result of the hash function is positive. Negative array offsets suck. * main/asterisk.c, main/rtp.c, main/say.c: Fix a bunch of off-by-one errors 2009-10-01 23:18 +0000 [r221769] Richard Mudgett * channels/misdn/isdn_lib.c, channels/misdn/isdn_lib_intern.h: Occasionally losing use of B channels in chan_misdn. I have not been able to reproduce the problem of losing channels. However, I have seen in the code a reentrancy problem that might give these symptoms. The reentrancy patch does several things: 1) Guards B channel and B channel structure allocation. 2) Makes the B channel structure find routines more precise in locating records. 3) Never leave a B channel allocated if we received cause 44. The last item may cause temporary outgoing call problems, but they should clear when the line becomes idle. (closes issue #15490) Reported by: slutec18 Patches: issue15490_channel_alloc_reentrancy.patch uploaded by rmudgett (license 664) Tested by: rmudgett, slutec18 (closes issue #15458) Reported by: FabienToune Patches: issue15458_channel_alloc_reentrancy.patch uploaded by rmudgett (license 664) Tested by: FabienToune, rmudgett, slutec18 2009-10-01 15:24 +0000 [r221360-221588] Matthew Nicholson * channels/chan_sip.c: Use unsigned ints for portinuri flags. * channels/chan_sip.c: Make portinuri a bitfield. * channels/chan_sip.c, configs/sip.conf.sample: Fix SRV lookup and Request-URI generation in chan_sip. This patch adds a new field "portinuri" to the sip dialog struct and the sip peer struct. That field is used during RURI generation to determine if the port should be included in the RURI. It is also used in some places to determine if an SRV lookup should occur. (closes issue #14418) Reported by: klaus3000 Tested by: klaus3000, mnicholson Review: https://reviewboard.asterisk.org/r/369/ 2009-09-30 19:02 +0000 [r221303] Matthias Nick * funcs/func_strings.c: changed the prototype definition of csv_quote 2009-09-30 16:55 +0000 [r221200] Tilghman Lesher * main/channel.c: Avoid a potential NULL dereference. (closes issue #15865) Reported by: kobaz Patches: 20090915__issue15865.diff.txt uploaded by tilghman (license 14) Tested by: kobaz 2009-09-30 15:41 +0000 [r221153-221157] Matthias Nick * configs/cdr_custom.conf.sample, funcs/func_strings.c: added a new dialplan function 'CSV_QUOTE' and changed the cdr_custom.sample.conf (closes issue #15471) Reported by: dkerr Patches: csv_quote_14.txt uploaded by mnick (license ) Tested by: mnick * funcs/func_strings.c: check bounds - prevents for buffer overflow 2009-09-30 14:49 +0000 [r221086] Terry Wilson * main/rtp.c, channels/chan_sip.c, include/asterisk/rtp.h, configs/sip.conf.sample: Change the SSRC by default when our media stream changes Be default, change SSRC when doing an audio stream changes Asterisk doesn't honor marker bit when reinvited to already-bridged RTP streams,resulting in far-end stack discarding packets with "old" timestamps that areactually part of a new stream. This patch sends AST_CONTROL_SRCUPDATE whenever there is a reinvite, unless the 'constantssrc' is set to true in sip.conf. The original issue reported to Digium support detailed the following situation: ITSP <-> Asterisk 1.4.26.2 <-> SIP-based Application Server Call comes in fromITSP, Asterisk dials the app server which sends a re-invite back toAsterisk--not to negotiate to send media directly to the ITSP, but to indicatethat it's changing the stream it's sending to Asterisk. The app servergenerates a new SSRC, sequence numbers, timestamps, and sets the marker bit on the new stream. Asterisk passes through the teimstamp of the new stream, butdoes not reset the SSRC, sequence numbers, or set the marker bit. When the timestamp on the new stream is older than the timestamp on the originalstream, the ITSP (which doesn't know there has been any change) discards the newframes because it thinks they are too old. This patch addresses this by changing the SSRC on a stream update unless constantssrc=true is set in sip.conf. Review: https://reviewboard.asterisk.org/r/374/ 2009-09-29 20:14 +0000 [r220907] Matthew Nicholson * apps/app_chanspy.c: Avoid a deadlock in chanspy, just in case the spyee is masqueraded and chanspy_ds_chan_fixup() is called with the channel locked. (closes issue #15965) Reported by: atis Patches: chanspy-deadlock-fix1.diff uploaded by mnicholson (license 96) Tested by: atis 2009-09-29 17:59 +0000 [r220873] Tilghman Lesher * channels/chan_sip.c: Reduce CPU usage related to building a peer merely for devicestates. This fixes a 100% CPU problem in the SIP driver, found by profiling the driver while the problem was occurring. (closes issue #14309) Reported by: pkempgen Patches: 20090924__issue14309.diff.txt uploaded by tilghman (license 14) Tested by: pkempgen, vrban 2009-09-28 19:09 +0000 [r220717] Sean Bright * Makefile.rules: When selecting DONT_OPTIMIZE in menuselect, explicitly pass -O0 to the compiler so we override any default optimization levels for a particular install. 2009-09-24 19:39 +0000 [r220288] Tilghman Lesher * apps/app_playback.c, main/pbx.c, apps/app_disa.c: Implicitly sending a progress signal breaks some applications. Call Progress() in your dialplan if you explicitly want progress to be sent. (Reverts change 216430, closes issue #15957) Reported by: Pavel Troller on the Asterisk-Dev mailing list http://lists.digium.com/pipermail/asterisk-dev/2009-September/039897.html 2009-09-24 18:18 +0000 [r220099-220213] Sean Bright * Makefile: Resolve parallel build warnings. Reported by Klaus Darilion on the asterisk-dev mailing list. * Makefile, build_tools/mkpkgconfig: Remove the remaining bashisms in the Makefile/mkpkgconfig 2009-09-24 08:33 +0000 [r220027] Michiel van Baak * build_tools/mkpkgconfig: mkpkgconfig does not need bash so make it use /bin/sh This fixes building on all systems that don't have bash at /bin/bash Reported by _ys on #asterisk-dev Tested by _ys on #asterisk-dev 2009-09-22 21:37 +0000 [r219816] Tilghman Lesher * apps/app_voicemail.c: When IMAP variables were changed during a reload, Voicemail did not use the new values. This change introduces a configuration version variable, which ensures that connections with the old values are not reused but are allowed to expire normally. (closes issue #15934) Reported by: viniciusfontes Patches: 20090922__issue15934.diff.txt uploaded by tilghman (license 14) Tested by: viniciusfontes 2009-09-21 16:55 +0000 [r219720] David Vossel * channels/chan_iax2.c: Reverting merge 219520. This change was not necessary. 2009-09-20 17:52 +0000 [r219653] Tilghman Lesher * main/file.c: Really stop the stream, when ast_closestream() is called. (closes issue #15129) Reported by: bmh Patches: 20090918__issue15129.diff.txt uploaded by tilghman (license 14) Review: https://reviewboard.asterisk.org/r/372/ 2009-09-19 02:51 +0000 [r219586] Russell Bryant * channels/chan_iax2.c: Make sure the iax_pvt exists before dereferencing it. This fixes the latest crash posted on issue 15609. (issue #15609) 2009-09-18 23:19 +0000 [r219450-219519] David Vossel * channels/chan_iax2.c: iax2 frame double free The iax frame's retrans sched id was written over right before iax2_frame_free was called. In iax2_frame_free that retrans id is used to delete the sched item. By writing over the retrans field before the sched item could be deleted, it was possible for a retransmit to occur on a freed frame. * channels/chan_sip.c: via-header branches not updated correctly on INVITE INVITE requests must always contain a new unique branch id. When a new branch id is created for an INVITE, the dialog's invite_branch variable must be updated so CANCEL requests use the correct branch id. (closes issue #15262) Reported by: maniax Patches: asterisk-1.6.1.0-sip-branch.patch uploaded by tweety (license 608) invite_new_branch_trunk.diff uploaded by dvossel (license 671) Tested by: maniax, dvossel 2009-09-17 22:20 +0000 [r219320] Mark Michelson * channels/chan_sip.c: Send a 100 Trying response when we detect a spiral. This was problematic during spiral tests at SIPit... along with some other things as well. 2009-09-17 21:29 +0000 [r219303] David Vossel * channels/chan_sip.c: INVITE w/Replaces deadlock fix This patch cleans up the locking logic in chan_sip.c's handle_invite_replaces() function as well as making use of ast_do_masquerade() rather than forcing the masquerade on an ast_read(). The code had several redundant unlocks that would result in 'freed more times than we've locked!' errors. I cleaned these up as well as moving all the unlock logic to the end of the function. This patch should also resolve the issue people were having with the replacecall channel never being unlocked with one legged calls. (closes issue #15151) Reported by: irroot Patches: invite_w_replaces_1.4.diff uploaded by dvossel (license 671) Tested by: irroot, dvossel Review: https://reviewboard.asterisk.org/r/371/ 2009-09-17 Leif Madsen * Release Asterisk 1.4.27-rc1 2009-09-17 14:58 +0000 [r219136] Matthew Nicholson * main/channel.c, include/asterisk/cdr.h, include/asterisk/channel.h: Prevent a potential race condition and crash when hanging up a channel by removing the channel from the channel list before begining channel tear down. This fix may potentially cause problems with CDR backends that access the channel a CDR is associated with via the channel list. This fix makes the channel unavabile at the time when the CDR backend is invoked. This has been documented in include/asterisk/cdr.h. (closes issue #15316) Reported by: vmarrone Tested by: mnicholson Review: https://reviewboard.asterisk.org/r/362/ 2009-09-16 23:21 +0000 [r219023] Tilghman Lesher * main/config.c, configs/extensions.conf.sample: Properly deal with quotes in the arguments of '#exec' includes. (closes issue #15583) Reported by: pkempgen Patches: 20090726__issue15583.diff.txt uploaded by tilghman (license 14) 20090726__issue15583-1.4-4.diff.txt uploaded by pkempgen (license 169) Tested by: pkempgen 2009-09-16 18:00 +0000 [r218867] David Brooks * main/pbx.c: Fixes CID pattern matching behavior to mirror that of extension pattern matching. Pattern matching for extensions uses a type of scoring system, giving values for specificity to each character in the pattern. Unfortunately, this is done character by character, in order. This does lead to some less specific patterns being first in line for matching, but it will usually get the job done. This patch merely brings CID matching to the same level as extension matching. This patch does not attempt to tackle the problem shared by extension matching. (closes issue #14708) Reported by: klaus3000 2009-09-16 13:33 +0000 [r218798] Russell Bryant * contrib/firmware/iax/iaxy.bin (removed), UPGRADE.txt: Remove the IAXy firmware from Asterisk. The firmware can now be found on downloads.digium.com, where the rest of our binary downloads live. This was the last part of our Asterisk tarballs that was considered non-free by Debian. :-) (closes issue #15838) Reported by: paravoid 2009-09-15 22:27 +0000 [r218730] Tilghman Lesher * apps/app_voicemail.c: If the user enters the same password as before, don't signal an error when the change does nothing. (closes issue #15492) Reported by: cbbs70a Patches: 20090713__issue15492.diff.txt uploaded by tilghman (license 14) 2009-09-15 16:29 +0000 [r218623] Jeff Peeler * channels/chan_dahdi.c: Fix small memory leak in handle_init_event by always destroying the pthread attr before returning. 2009-09-15 16:03 +0000 [r218578] Matthew Nicholson * channels/chan_sip.c: Send request contact header field with response to registrer queries instead of the address of record. (closes issue #14438) Reported by: ravindrad Patches: regquerypatch uploaded by ravindrad (license 684) Tested by: ravindrad 2009-09-15 16:01 +0000 [r218577] Tilghman Lesher * apps/app_followme.c: Ensure FollowMe sets language in channels it creates. Also, not in the original bug report, but related fields are accountcode and musicclass, and the inheritance of datastores. (closes issue #15372) Reported by: Romik Patches: 20090828__issue15372.diff.txt uploaded by tilghman (license 14) Tested by: cervajs 2009-09-15 14:57 +0000 [r218497-218498] Kevin P. Fleming * channels/chan_sip.c: revert accidental commit * channels/chan_sip.c, sounds/Makefile: Use proper hostname for downloading sound files. 2009-09-14 21:47 +0000 [r218401] Jeff Peeler * channels/chan_dahdi.c: Fix handling of DAHDI_EVENT_REMOVED event to prevent crash in do_monitor. After talking to rmudgett about some of his recent iflist locking changes, it was determined that the only place that would destroy a channel without being explicitly to do so was in handle_init_event. The loop to walk the interface list has been modified to wait to destroy the channel until the dahdi_pvt of the channel to be destroyed is no longer needed. (closes issue #15378) Reported by: samy 2009-09-14 19:16 +0000 [r218331] Tilghman Lesher * apps/app_voicemail.c, sounds/Makefile: Don't say "Please try again" if we don't give the user another chance to try again. (issue #15055, SWP-129) Reported by: jthurman 2009-09-14 14:53 +0000 [r218223] Matthew Nicholson * apps/app_directed_pickup.c: Ensure we don't pickup ourselves when doing pickup by exten. (closes issue #15100) Reported by: lmsteffan Patches: (modified) pickup.patch uploaded by lmsteffan (license 779) 2009-09-10 23:52 +0000 [r217917-217989] Tilghman Lesher * apps/app_queue.c: Don't ring another channel, if there's not enough time for a queue member to answer. (Fixes AST-228) * contrib/scripts/iax-friends.sql, channels/chan_sip.c, channels/chan_iax2.c: Backport realtime fix to 1.4 2009-09-10 21:06 +0000 [r217806] David Vossel * channels/chan_iax2.c: IAX2 encryption regression The IAX2 Call Token security patch inadvertently broke the use of encryption due to the reorganization of code in the socket_process() function. When encryption is used, an incoming full frame must first be decrypted before the information elements can be parsed. The security release mistakenly moved IE parsing before decryption in order to process the new Call Token IE. To resolve this, decryption of full frames is once again done before looking into the frame. This involves searching for an existing callno, checking the pvt to see if encryption is turned on, and decrypting the packet before the internal fields of the full frame are accessed. associated with AST-2009-006 (closes issue #15834) Reported by: karesmakro Patches: iax2_encryption_fix_1.4.diff uploaded by dvossel (license 671) Tested by: dvossel, karesmakro Review: https://reviewboard.asterisk.org/r/355/ 2009-09-10 19:52 +0000 [r217668-217735] Olle Johansson * utils/Makefile: Reinstate muted that was removed by mistake. muted doesn't compile any more on os/x, so I have to disable it in order to testcompile other code... * utils/Makefile, channels/chan_sip.c: Remove harmful code that causes endless loops. Remove code that causes loops in registrations. We have agreed that the patch that this code was part of was bad. I am ripping out the code that causes the issue. putnopvut needs to check the rest of the patch, if it needs to be changed as well. This solves the issue reported in #15540, but needs more work before we close it (as described above). 2009-09-08 20:01 +0000 [r217156] Tilghman Lesher * apps/app_meetme.c: When MOH is playing on the channel, announcements sent through the conference are not heard. (closes issue #14588) Reported by: voipas Patches: 20090716__issue14588__2.diff.txt uploaded by tilghman (license 14) Tested by: lmadsen, twisted, tilghman 2009-09-04 13:56 +0000 [r216432-216435] Michiel van Baak * main/utils.c, include/asterisk/lock.h: make asterisk compile under devmode with DEBUG_THREADS enabled on OpenBSD * channels/chan_sip.c: make chan_sip compile under devmode again 2009-09-04 13:45 +0000 [r216430] Olle Johansson * apps/app_playback.c, main/pbx.c, channels/chan_sip.c, apps/app_disa.c, configs/sip.conf.sample: Make apps send PROGRESS control frame for early media and fix too early media issue in SIP The issue at hand is that some legacy (dying) PBX systems send empty media frames on PRI links *before* any call progress. The SIP channel receives these frames and by default signals 183 Session progress and starts sending media. This will cause phones to play silence and ignore the later 180 ringing message. A bad user experience. The fix is twofold: - We discovered that asterisk apps that support early media ("noanswer") did not send any PROGRESS frame to indicate early media. Fixed. - We introduce a setting in chan_sip so that users can disable any relay of media frames before the outbound channel actually indicates any sort of call progress. In 1.4, 1.6.0 and 1.6.1, this will be disabled for backward compatibility. In later versions of Asterisk, this will be enabled. We don't assume that it will change your Asterisk phone experience - only for the better. We encourage third-party application developers to make sure that if they have applications that wants to send early media, add a PROGRESS control frame transmission to make sure that all channel drivers actually will start sending early media. This has not been the default in Asterisk previous to this patch, so if you got inspiration from our code, you need to update accordingly. Sorry for the trouble and thanks for your support. This code has been running for a few months in a large scale installation (over 250 servers with PRI and/or BRI links to old PBX systems). That's no proof that this is an excellent patch, but, well, it's tested :-) 2009-09-04 13:16 +0000 [r216369] Michiel van Baak * main/astobj2.c: Make sure 'start' is always initialized. This is the same as rev 216222 in trunk but 1.4 is affected as well 2009-09-04 10:48 +0000 [r216008-216263] Russell Bryant * doc/IAX2-security.txt (added), /: Merged revisions 216262 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r216262 | russell | 2009-09-04 05:47:37 -0500 (Fri, 04 Sep 2009) | 2 lines Add a plain text version of the IAX2 security document. ........ * /, UPGRADE.txt: Merged revisions 216080 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r216080 | russell | 2009-09-03 14:35:23 -0500 (Thu, 03 Sep 2009) | 2 lines Add a note about IAX2 to UPGRADE.txt. ........ * /, doc/IAX2-security.pdf (added): Merged revisions 216005 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r216005 | russell | 2009-09-03 13:42:24 -0500 (Thu, 03 Sep 2009) | 2 lines Add IAX2 security document related to AST-2009-006. ........ 2009-09-03 18:32 +0000 [r216000] David Vossel * channels/iax2-parser.c, main/astobj2.c, configs/iax.conf.sample, include/asterisk/acl.h, channels/iax2-parser.h, include/asterisk/astobj2.h, channels/iax2.h, main/acl.c, channels/chan_iax2.c: Merge code associated with AST-2009-006 (closes issue #12912) Reported by: rathaus Tested by: tilghman, russell, dvossel, dbrooks 2009-09-02 21:41 +0000 [r215682] Terry Wilson * channels/chan_sip.c: Re-send non-100 provisional responses to prevent cancellation From section 13.3.1.1 of RFC 3261: If the UAS desires an extended period of time to answer the INVITE, it will need to ask for an "extension" in order to prevent proxies from canceling the transaction. A proxy has the option of canceling a transaction when there is a gap of 3 minutes between responses in a transaction. To prevent cancellation, the UAS MUST send a non-100 provisional response at every minute, to handle the possibility of lost provisional responses. (closes issue #11157) Reported by: rjain Tested by: twilson Review: https://reviewboard.asterisk.org/r/315/ 2009-09-01 23:04 +0000 [r215270] Dwayne M. Hubbard * apps/app_softhangup.c: Use strrchr() so SoftHangup will correctly truncate multi-hyphen channel names In general channel names are in the form Foo/Bar-Z, but the channel name could have multiple hyphens and look like Foo/B-a-r-Z. Use strrchr to truncate the channel name at the last hyphen. (closes issue #15810) Reported by: dhubbard Patches: dw-softhangup-1.4.patch uploaded by dhubbard (license 733) 2009-08-31 16:16 +0000 [r214940] Tilghman Lesher * channels/chan_local.c: Also unlock the "other" channel, when returning, due to glare. (closes issue #15787) Reported by: tim_ringenbach Patches: chan_local.diff uploaded by tim ringenbach (license 540) Tested by: tim_ringenbach 2009-08-28 20:13 +0000 [r214357-214701] Tilghman Lesher * main/channel.c: Modify comment to be a bit more accurate. We have kept this comment around long enough, that it's pretty clear that we're keeping the code, because changing the code would require a pretty fundamental architectural shift. We've also taken criticism in some quarters, because it was believed that it was referring to the code being nasty. No, the code isn't nasty, just the operation itself is rather odd. Fixed for eternity (probably not). * autoconf/libcurl.m4 (added), configure, include/asterisk/autoconfig.h.in, configure.ac: Use autoconf to detect libcurl, as this enables cross-compilation checks, something we didn't allow before. (closes issue #15714) Reported by: pprindeville Patches: 20090813__issue15714.diff.txt uploaded by tilghman (license 14) Tested by: pprindeville * autoconf/ast_ext_lib.m4, configure, include/asterisk/autoconfig.h.in, configure.ac: One more build system change, to make the descriptions look better, if we have better information. * autoconf/ast_ext_lib.m4, configure, include/asterisk/autoconfig.h.in: Make autoheader descriptions render correctly in our autoconfig.h file. (Figured out while working with issue #14906) 2009-08-26 16:36 +0000 [r214194] David Vossel * main/channel.c: ast_write() ignores ast_audiohook_write() results In ast_write(), if a channel has a list of audiohooks, those lists are written to and the resulting frame is what ast_write() should continue with. The problem was the returned audiohook frame was not being handled at all, and the original frame passed into it did not contain the mixed audio, so essentially audio was being lost. One result of this was chan_spy's whisper mode no longer worked. To complicate the issue, frames passed into ast_write may either be a single frame, or a list of frames. So, as the list of frames is processed in the audiohook_write, the returned frames had to be added to a new list. (closes issue #15660) Reported by: corruptor Tested by: dvossel 2009-08-25 19:28 +0000 [r213899-214069] Tilghman Lesher * main/say.c: I should always compile before committing... * main/say.c: Fix pronunciation of German dates. (closes issue #15273) Reported by: Benjamin Kluck Patches: say_c.patch uploaded by Benjamin Kluck (license 803) * main/pbx.c: Improve error message by informing user exactly which function is missing a parethesis. (closes issue #15242) Reported by: Nick_Lewis Patches: pbx.c-funcparenthesis.patch2 uploaded by dbrooks (license 790) pbx.c-funcparenthesis-1.4.diff uploaded by loloski (license 68) * Makefile: Use the default runlevels for Debian derivatives, instead of making up our own. (closes issue #14730) Reported by: pkempgen 2009-08-21 20:23 +0000 [r213631] Kevin P. Fleming * channels/chan_sip.c: Ensure that T.38 INVITEs generated by Asterisk properly result in T.38 being enabled. (closes issue #15373) Reported by: dcolombo Patches: chan_sip.patch uploaded by mbrancaleoni (license 342) Tested by: dcolombo, mbrancaleoni 2009-08-21 16:52 +0000 [r213559] Tilghman Lesher * include/asterisk.h: Permit DEBUG_FD_LEAKS to be used with C++ source files. (closes issue #15698) Reported by: slavon Patches: 20090817__issue15698.diff.txt uploaded by tilghman (license 14) Tested by: slavon, tilghman 2009-08-21 16:03 +0000 [r213493] Jason Parker * configs/queues.conf.sample: Clarify queues.conf comments to specify that variables should be set in the dialplan. (closes issue #15755) Reported by: trendboy 2009-08-20 20:33 +0000 [r213339] Matthew Nicholson * res/res_features.c: Fix a crash by checking the proper pointer for validity before deferencing it. (closes issue #15751) Reported by: atis Patches: ast_bridge_call_peer_cdr.patch uploaded by atis (license 242) 2009-08-20 19:53 +0000 [r213283] Jeff Peeler * apps/app_voicemail.exports (added): Make all the symbols for the C-client callbacks global 2009-08-19 21:18 +0000 [r213103] David Vossel * apps/app_mixmonitor.c: Fixes memory leak caused by incorrectly freeing mixmonitor (closes issue #15699) Reported by: edantie Patches: mixmonitor.patch uploaded by edantie (license 862) 2009-08-18 20:26 +0000 [r212913] Kevin P. Fleming * doc/musiconhold-opsound.txt (added), CREDITS, /, UPGRADE.txt, sounds/sounds.xml, build_tools/prep_tarball, doc/musiconhold-fpm.txt (removed), doc/00README.1st, sounds/Makefile: Convert this branch to Opsound music-on-hold. For more details: http://blogs.digium.com/2009/08/18/asterisk-music-on-hold-changes/ 2009-08-18 16:36 +0000 [r212763] Sean Bright * main/manager.c: Delay the creation of temporary files until we have a valid manager command to handle. Without this patch, asterisk creates a temporary file before determining if the specified command is valid. If invalid, we weren't properly cleaning up the file. (closes issue #15730) Reported by: zmehmood Patches: M15730.diff uploaded by junky (license 177) Tested by: zmehmood 2009-08-18 16:00 +0000 [r212727] Richard Mudgett * channels/misdn/isdn_lib.c: Removed some deadwood and added some doxygen comments. 2009-08-17 16:34 +0000 [r212498] Jeff Peeler * channels/misdn_config.c: Fix segfault when reloading chan_misdn. If more ports were specified than configured in misdn.conf a reload would crash asterisk. The problem was the unconfigured port was using data from the previously configured port. When the data for an unconfigured port was freed a crash would result from the double free. (closes issue #12113) Reported by: agupta Patches: bug12113.patch uploaded by jpeeler (license 325) 2009-08-17 15:36 +0000 [r212430] Richard Mudgett * channels/chan_dahdi.c: Fix uninitialized variable. 2009-08-12 23:04 +0000 [r211953] Matthew Nicholson * apps/app_queue.c: This patch adds additional checking when generating queue log TRANSFER events. The additional checks prevent generation of false TRANSFER events in certain situations. (closes issue #14536) Reported by: aragon Patches: queue-log-xfer-fix1.diff uploaded by mnicholson (license 96) Tested by: aragon, mnicholson 2009-08-12 18:46 +0000 [r211807] Mark Michelson * channels/chan_sip.c: Backport fix so that outbound CANCEL requests have same branch as challenged INVITEs. There already was code present to be sure that a CANCEL will contain the same branch-id as the INVITE it is cancelling. However, for INVITES which are challenged downstream, this mechanism did not work properly. Now this is taken care of. This is a backport of a fix already present in all 1.6.X branches and in trunk. It also fixes ABE-1907. 2009-08-10 19:48 +0000 [r211528-211583] Tilghman Lesher * doc/CODING-GUIDELINES: Conversion specifiers, not format specifiers * main/indications.c, main/cli.c, pbx/pbx_loopback.c, channels/chan_dahdi.c, res/res_smdi.c, pbx/pbx_spool.c, channels/chan_skinny.c, pbx/pbx_ael.c, apps/app_dial.c, main/pbx.c, apps/app_privacy.c, codecs/codec_speex.c, funcs/func_math.c, channels/chan_agent.c, apps/app_morsecode.c, apps/app_disa.c, channels/iax2-provision.c, funcs/func_cut.c, pbx/dundi-parser.c, apps/app_talkdetect.c, channels/chan_misdn.c, apps/app_waitforring.c, funcs/func_channel.c, apps/app_macro.c, pbx/pbx_config.c, apps/app_mixmonitor.c, apps/app_chanspy.c, main/asterisk.c, res/res_odbc.c, apps/app_voicemail.c, doc/CODING-GUIDELINES, utils/muted.c, apps/app_meetme.c, main/utils.c, apps/app_followme.c, utils/frame.c, channels/misdn_config.c, main/cdr.c, main/channel.c, channels/chan_phone.c, main/manager.c, apps/app_osplookup.c, apps/app_setcallerid.c, res/res_agi.c, apps/app_rpt.c, channels/chan_mgcp.c, apps/app_adsiprog.c, main/dnsmgr.c, channels/chan_sip.c, apps/app_waitforsilence.c, agi/eagi-test.c, main/acl.c, apps/app_queue.c, channels/chan_oss.c, agi/eagi-sphinx-test.c, channels/chan_h323.c, pbx/pbx_dundi.c, apps/app_sms.c, apps/app_verbose.c, apps/app_dahdibarge.c, funcs/func_rand.c, apps/app_readfile.c, main/frame.c, /, res/res_features.c, apps/app_record.c, funcs/func_strings.c, apps/app_random.c, apps/app_alarmreceiver.c, channels/chan_iax2.c: AST-2009-005 2009-08-09 15:41 +0000 [r211274] Tilghman Lesher * main/astfd.c: Small oops. Clear the flags which have been checked. 2009-08-07 20:11 +0000 [r211112] Russell Bryant * apps/app_chanspy.c: Resolve a deadlock involving app_chanspy and masquerades. (ABE-1936) 2009-08-07 18:16 +0000 [r210913-211038] Tilghman Lesher * apps/app_queue.c: QUEUE_MEMBER_LIST _really_ wants the interface name, not the membername. This is a partial revert of revision 82590, which was an attempted cleanup, but in reality, it broke QUEUE_MEMBER_LIST, which has always been intended as a method by which component interfaces could be queried from the queue. Membername isn't useful here, because that field cannot be used to obtain further information about the member. See the documentation on QUEUE_MEMBER_LIST, RemoveQueueMember, QUEUE_MEMBER_PENALTY, and the various AMI commands which take a member argument for further justification. (closes issue #15664) Reported by: rain Patches: app_queue-queue_member_list.diff uploaded by rain (license 327) * main/channel.c: Because channel information can be accessed outside of the channel thread, we must lock the channel prior to modifying it. (closes issue #15397) Reported by: caspy Patches: 20090714__issue15397.diff.txt uploaded by tilghman (license 14) Tested by: caspy 2009-08-05 19:18 +0000 [r210575] Richard Mudgett * channels/chan_dahdi.c: Dialplan starts execution before the channel setup is complete. * Issue 15655: For the case where dialing is complete for an incoming call, dahdi_new() was asked to start the PBX and then the code set more channel variables. If the dialplan hungup before these channel variables got set, asterisk would likely crash. * Fixed potential for overlap incoming call to erroneously set channel variables as global dialplan variables if the ast_channel structure failed to get allocated. * Added missing set of CALLINGSUBADDR in the dialing is complete case. (closes issue #15655) Reported by: alecdavis 2009-08-05 18:46 +0000 [r210563] Leif Madsen * doc/imapstorage.txt: Update imapstorage.txt documentation. Updated the imapstorage.txt documentation to reflect that issues with c-client versions older than 2007 seem to cause crashing issues that are not seen with more recent versions. Documentation has been updated to reflect this. (closes issue #14496) Reported by: vbcrlfuser Patches: __20090727-imap-documentation-patch.txt uploaded by lmadsen (license 10) Tested by: lmadsen, mmichelson, dbrooks 2009-08-04 14:51 +0000 [r210237] Kevin P. Fleming * Makefile: Eliminate spurious compiler warnings from system headers on *BSD platforms. Ensure that system headers located in /usr/local/include are actually treated as system headers by the compiler, and not as local headers which are subject to warnings from the -Wundef compiler option and others. (closes issue #15606) Reported by: mvanbaak 2009-08-03 16:15 +0000 [r210067] David Brooks * channels/chan_dahdi.c: Fixes dialplan wildcard extension taking precedence over call pickup code. Prior to this patch, a wildcard extension in the dialplan (for example, _*.) would take precedence over picking up a call in the channel's pickup group. This patch simply moves the block of code handling pickup group matching to above the extension matching code. (closes issue #14735) Reported by: stevedavies Review: https://reviewboard.asterisk.org/r/319/ 2009-08-03 16:11 +0000 [r210064-210066] Tilghman Lesher * channels/chan_oss.c, apps/app_playback.c, main/asterisk.exports, configure, include/asterisk/autoconfig.h.in, include/asterisk/compat.h, main/strcompat.c, configure.ac, funcs/func_cut.c: Reverting index() fix, applying a different methodology, based upon developer discussions. (related to issue #15639) * main/asterisk.exports, include/asterisk/compat.h: Helps if we export the index() function. (Related to issue #15639) * configure, include/asterisk/autoconfig.h.in, main/strcompat.c, configure.ac: Apparently, some platforms don't have the index() function. (closes issue #15639) Reported by: nmav 2009-08-01 11:27 +0000 [r209838-209879] Russell Bryant * main/db1-ast/mpool/mpool.c: Resolve a valgrind warning about a read from uninitialized memory. (issue #15396) Reported by: aragon * apps/app_milliwatt.c: Modify how Playtones() is used in Milliwatt() to resolve gain issue. When Milliwatt() was changed internally to use Playtones() so that the proper tone was used, it introduced a drop in gain in the output signal. So, use the playtones API directly and specify a volume argument such that the output matches the gain of the original Milliwatt() code. (closes issue #15386) Reported by: rue_mohr Patches: issue_15386.rev2.diff uploaded by russell (license 2) Tested by: rue_mohr 2009-08-01 00:52 +0000 [r209759] Kevin P. Fleming * channels/misdn/isdn_lib.c, utils/frame.c, main/Makefile, channels/misdn/ie.c: Minor changes inspired by testing with latest GCC. The latest GCC (what will become 4.5.x) has a few new warnings, that in these cases found some either downright buggy code, or at least seriously poorly designed code that could be improved. 2009-07-28 00:12 +0000 [r209315] Tilghman Lesher * sounds/sounds.xml: Publish French extra sounds 2009-07-27 17:44 +0000 [r209131] Mark Michelson * main/udptl.c, configs/udptl.conf.sample: Allow for UDPTL to use only even-numbered ports if desired. There are some VoIP providers out there that will not accept SDP offers with odd numbered UDPTL ports. While it is my personal opinion that these VoIP providers are misinterpreting RFC 2327, it really is not a big deal to play along with their silly little games. Of course, since restricting UDPTL ports to only even numbers reduces the range of available ports by half, so the option to use only even port numbers is off by default. A user can enable the behavior by setting use_even_ports=yes in udptl.conf. (closes issue #15182) Reported by: CGMChris Patches: 15182.patch uploaded by mmichelson (license 60) Tested by: CGMChris 2009-07-27 09:56 +0000 [r208990] Michiel van Baak * res/res_crypto.c: backport rev 205532 from trunk: pthread_self returns a pthread_t which is not an unsigned int on all pthread implementations. Casting it to an unsigned int fixes compiler warnings. 2009-07-27 01:18 +0000 [r208923] Jeff Peeler * main/translate.c, channels/chan_iax2.c: Fix logic errors from 208746 2009-07-25 06:19 +0000 [r208746] Jeff Peeler * channels/chan_skinny.c, main/translate.c, channels/chan_iax2.c: Fix compiling under dev-mode with gcc 4.4.0. Mostly trivial changes, but I did not know of any other way to fix the "dereferencing type-punned pointer will break strict-aliasing rules" error without creating a tmp variable in chan_skinny. 2009-07-24 19:24 +0000 [r208622] Mark Michelson * apps/app_queue.c: Don't impose an arbitrary limit on member lines in queues.conf I know what some of you are thinking: "UGH! Mark, why are you using ast_strdup and ast_free for the string when you can just use ast_strdupa and let the memory free itself?! Have the bats been chewing on your brain again?" Based on past experiences, I don't like using ast_strdupa inside a loop. It's a good way to potentially exhaust stack space. Also, since this only happens when reloading queues, I don't think that heap allocations and frees are going to be a huge problem. (closes issue #15559) Reported by: amorsen 2009-07-24 18:38 +0000 [r208592] Russell Bryant * apps/app_dial.c: Do not log an ERROR if autoservice_stop() returns -1. This does not indicate an error. A return of -1 just means that the channel has been hung up. (reported in #asterisk-dev) 2009-07-24 18:26 +0000 [r208386-208587] Mark Michelson * channels/chan_sip.c: Only send a BYE when hanging up a channel that is up. For cases where Asterisk sends an INVITE and receives a non 2XX final response, Asterisk would follow the INVITE transaction by immediately sending a BYE, which was unnecessary. (closes issue #14575) Reported by: chris-mac * channels/chan_sip.c: Fix a problem where a 491 response could be sent out of dialog. This generalizes the fix for issue 13849. The initial fix corrected the problem that Asterisk would reply with a 491 if a reinvite were received from an endpoint and we had not yet received an ACK from that endpoint for the initial INVITE it had sent us. This expansion also allows Asterisk to appropriately handle an INVITE with authorization credentials if Asterisk had not received an ACK from the previous transaction in which Asterisk had responded to an unauthorized INVITE with a 407. (closes issue #14239) Reported by: klaus3000 Patches: 14239.patch uploaded by mmichelson (license 60) Tested by: klaus3000 2009-07-23 19:19 +0000 [r208380] Jeff Peeler * channels/chan_dahdi.c: Only set the priindication setting when not performing a reload (closes issue #14696) Reported by: fdecher 2009-07-23 16:29 +0000 [r208262-208312] Mark Michelson * channels/chan_sip.c: Remove inaccurate XXX comment. * channels/chan_sip.c: Properly handle 183 responses which do not contain an SDP. (closes issue #15442) Reported by: ffloimair Patches: 15442.patch uploaded by mmichelson (license 60) Tested by: tkarl, ffloimair 2009-07-22 20:23 +0000 [r207945-208083] Tilghman Lesher * main/asterisk.exports, include/asterisk/compat.h: Export symbols for functions included in our compatibility headers. (closes issue #15556) Reported by: smw1218 * funcs/func_strings.c: Force an error if a blank is passed to QUOTE (because the documentation states the argument is not optional). This change makes URIENCODE and QUOTE behave similarly, since the documentation states that the argument is not optional, for both. (closes issue #15439) Reported by: pkempgen Patches: 20090706__issue15439.diff.txt uploaded by tilghman (license 14) 2009-07-21 20:16 +0000 [r207786-207827] Jeff Peeler * channels/chan_dahdi.c: Wait for wink before dialing when using E&M wink signaling There was already code for other signaling types in dahdi_handle_event to handle dialing if a dial operation dial string was present. Simply add SIG_EMWINK to the list. (closes issue #14434) Reported by: araasch * channels/chan_dahdi.c: Revert r207573, this approach could potentially block for an unacceptable amount of time. 2009-07-21 14:26 +0000 [r207714] Mark Michelson * main/manager.c: Document default timeout for AMI originations. AST-224 2009-07-21 13:04 +0000 [r207647] Kevin P. Fleming * codecs/lpc10/Makefile, main/db1-ast/Makefile, Makefile, agi/Makefile, codecs/Makefile, utils/Makefile, main/Makefile, codecs/gsm/Makefile, Makefile.moddir_rules, Makefile.rules, pbx/Makefile, res/Makefile, channels/Makefile: Ensure that user-provided CFLAGS and LDFLAGS are honored. This commit changes the build system so that user-provided flags (in ASTCFLAGS and ASTLDFLAGS) are supplied to the compiler/linker *after* all flags provided by the build system itself, so that the user can effectively override the build system's flags if desired. In addition, ASTCFLAGS and ASTLDFLAGS can now be provided *either* in the environment before running 'make', or as variable assignments on the 'make' command line. As a result, the use of COPTS and LDOPTS is no longer necessary, so they are no longer documented, but are still supported so as not to break existing build systems that supply them when building Asterisk. 2009-07-20 23:23 +0000 [r207573] Jeff Peeler * channels/chan_dahdi.c: Wait for wink before dialing when using E&M wink signaling This patch adds a new dahdi_wait function to specifically wait for the wink event. If the wink is not eventually received the channel is hung up. (closes issue #14434) Reported by: araasch Patches: emwinkmod uploaded by araasch (license 693) 2009-07-20 19:39 +0000 [r207423] Mark Michelson * channels/chan_sip.c: Answer video SDP offers properly when videosupport is not enabled. Copied from Review board: In issue 12434, the reporter describes a situation in which audio and video is offered on the call, but because videosupport is disabled in sip.conf, Asterisk gives no response at all to the video offer. According to RFC 3264, all media offers should have a corresponding answer. For offers we do not intend to actually reply to with meaningful values, we should still reply with the port for the media stream set to 0. In this patch, we take note of what types of media have been offered and save the information on the sip_pvt. The SDP in the response will take into account whether media was offered. If we are not otherwise going to answer a media offer, we will insert an appropriate m= line with the port set to 0. It is important to note that this patch is pretty much a bandage being applied to a broken bone. The patch *only* helps for situations where video is offered but videosupport is disabled and when udptl_pt is disabled but T.38 is offered. Asterisk is not guaranteed to respond to every media offer. Notable cases are when multiple streams of the same type are offered. The 2 media stream limit is still present with this patch, too. In trunk and the 1.6.X branches, things will be a bit different since Asterisk also supports text in SDPs as well. (closes issue #12434) Reported by: mnnojd Review: https://reviewboard.asterisk.org/r/311 Review: https://reviewboard.asterisk.org/r/313 2009-07-20 16:26 +0000 [r207360] Russell Bryant * main/channel.c: Only do the chan->fdno check in ast_read() in a developer build. I changed this check to only happen in a dev-mode build. I also added a comment explaining what is going on. I also made it so that detection of this situation does not affect ast_read() operation. (closes issue #14723) Reported by: seadweller 2009-07-20 Leif Madsen * Release Asterisk 1.4.26 2009-07-13 Leif Madsen * Release Asterisk 1.4.26-rc6 2009-07-13 15:12 +0000 [r206126] Russell Bryant * main/pbx.c: Print CID match in "show dialplan". (closes issue #14702) Reported by: klaus3000 Patches: patch_asterisk_1.4.23_CID_matching.txt uploaded by klaus3000 (license 65) 2009-07-10 17:39 +0000 [r205877] Mark Michelson * channels/chan_sip.c: Properly ACK 487 responses to canceled INVITEs. From the review board request: The fix from review 298 has exposed a new bug in chan_sip. When we hang up an outgoing call, we first will dump all the outstanding packets on the sip_pvt using __sip_pretend_ack. Then, if we can, we send a CANCEL. The problem with this is that since destroyed all the outstanding packets on the dialog, we cannot match the incoming 487 response to our INVITE. Because we cannot match the response, we do not send an ACK. To correct this, instead of using __sip_pretend_ack, I have changed the code to loop through the list of packets and call __sip_semi_ack on each one instead. This causes us to stop retransmitting the requests, but we still have them around in case we get responses for them. When discussing this earlier today with Josh Colp, we both agreed that in the majority of cases, this would be enough of a fix. However, we also agreed that we should have a safety net in place in case we never receive a response to our initial INVITE. To handle this, I have modified __sip_autodestruct to behave similar to the way it does in Asterisk 1.4. If there are outstanding packets on the sip_pvt, the needdestroy flag is not set, and the last request on the dialog was either a CANCEL or BYE, then we set the needdestroy flag and reschedule destruction for 10 seconds in the future. If, though, the needdestroy flag is set, then we use __sip_pretend_ack to kill the remaining outstanding packets so that the monitor thread can destroy the sip_pvt. I ran two separate tests. First, I placed a call from my Aastra phone to my Polycom phone. I hung up the Aastra before the Polycom answered. I verified through sip debug output that Asterisk properly ACKed the 487 received from the Polycom. For my second test, I set up a SIPp UAS scenario so that it would send a 200 OK in response to a CANCEL but would not send a 487 for the original INVITE. I verified that after about 40 seconds, Asterisk properly cleans up the outgoing sip_pvt for the call. Review: https://reviewboard.asterisk.org/r/308 2009-07-10 16:23 +0000 [r205804] David Vossel * channels/chan_sip.c: SIP registration auth loop caused by stale nonce If an endpoint sends two registration requests in a very short period of time with the same nonce, both receive 401 responses from Asterisk, each with a different nonce (the second 401 containing the current nonce and the first one being stale). If the endpoint responds to the first 401, it does not match the current nonce so Asterisk sends a third 401 with a newly generated nonce (which updates the current nonce)... Now if the endpoint responds to the second 401, it does not match the current nonce either and Asterisk sends a fourth 401 with a newly generated nonce... This loop goes on and on. There appears to be a simple fix for this. If the nonce from the request does not match our nonce, but is a good response to a previous nonce, instead of sending a 401 with a newly generated nonce, use the current one instead. This breaks the loop as the nonce is not updated until a response is received. Additional logic has been added to make sure no nonce can be responded to twice though. (closes issue #15102) Reported by: Jamuel Patches: patch-bug_0015102 uploaded by Jamuel (license 809) nonce_sip.diff uploaded by dvossel (license 671) Tested by: Jamuel Review: https://reviewboard.asterisk.org/r/289/ 2009-07-10 15:51 +0000 [r205775] Mark Michelson * channels/chan_sip.c: Ensure that outbound NOTIFY requests are properly routed through stateful proxies. With this change, we make note of Record-Route headers present in any SUBSCRIBE request that we receive so that our outbound NOTIFY requests will have the proper Route headers in them. (closes issue #14725) Reported by: ibc 2009-07-09 23:37 +0000 [r205728] Richard Mudgett * channels/chan_dahdi.c: No audio on calls from Asterisk to various ISDN devices until DTMF sent by caller. Add missing clearing of the dialing flag when the ISDN call is CONNECTED. (i.e. When libpri generates the event PRI_EVENT_ANSWER.) (closes issue #15420) Reported by: scottbmilne Patches: bug15420-1.4.25.1-diff2.txt uploaded by alecdavis (license 585) Tested by: scottbmilne, alecdavis (closes issue #15416) Reported by: avinoash (closes issue #15389) Reported by: alecdavis This patch should also fix the following issue: (issue #15205) Reported by: vinsik 2009-07-09 16:18 +0000 [r205409-205599] David Vossel * include/asterisk/time.h: Changing ast_samp2tv to not use floating point. * main/rtp.c, channels/chan_iax2.c, include/asterisk/frame.h: Fixes 8khz assumptions Many calculations assume 8khz is the codec rate. This is not always the case. This patch only addresses chan_iax.c and res_rtp_asterisk.c, but I am sure there are other areas that make this assumption as well. Review: https://reviewboard.asterisk.org/r/306/ * include/asterisk/devicestate.h, main/pbx.c, main/devicestate.c, include/asterisk/pbx.h: moving ast_devstate_to_extenstate to pbx.c from devicestate.c ast_devstate_to_extenstate belongs in pbx.c. This change fixes a compile time error with chan_vpb as well. 2009-07-08 19:26 +0000 [r205349] Mark Michelson * apps/app_queue.c: Prevent phantom calls to queue members. If a caller were to hang up while a periodic announcement or position were being said, the return value for those functions would incorrectly indicate that the caller was still in the queue. With these changes, the problem does not occur. (closes issue #14631) Reported by: latinsud Patches: queue_announce_ghost_call2.diff uploaded by latinsud (license 745) (with small modification from me) 2009-07-08 18:19 +0000 [r205288] Jason Parker * config.guess, config.sub: Update config.guess and config.sub from the savannah.gnu.org git repo. 2009-07-08 16:53 +0000 [r205215] David Vossel * include/asterisk/time.h: ast_samp2tv needs floating point for 16khz audio In ast_samp2tv(), (1000000 / _rate) = 62.5 when _rate is 16000. The .5 is currently stripped off because we don't calculate using floating points. This causes madness with 16khz audio. (issue ABE-1899) Review: https://reviewboard.asterisk.org/r/305/ 2009-07-08 16:26 +0000 [r205188] Tilghman Lesher * main/say.c: Add redirection warnings for the invalid language codes previously removed. 2009-07-08 15:54 +0000 [r205149] Russell Bryant * res/res_crypto.c: Make OpenSSL usage thread-safe. OpenSSL is not thread-safe by default. However, making it thread safe is very easy. We just have to provide a couple of callbacks. One callback returns a thread ID. The other handles locking. For more information, start with the "Is OpenSSL thread-safe?" question on the FAQ page of openssl.org. 2009-07-02 21:59 +0000 [r204834] Richard Mudgett * channels/chan_misdn.c: Removed confusing warning message "Got Busy in Connected State" If an incoming mISDN call is answered with the Answer application and a subsequent Dial gets a busy endpoint then it is valid for that already connected channel to get the busy indication. Asterisk will play the busy tones until the dialplan plays something else or hangs up the call. (closes issue #11974) Reported by: fvdb 2009-07-02 18:15 +0000 [r204755] David Vossel * include/asterisk/devicestate.h, main/pbx.c, main/devicestate.c, include/asterisk/pbx.h: moving device state functions from pbx.h to devicestate.h to sync with other branches 2009-07-02 Leif Madsen * Release Asterisk 1.4.26-rc5 2009-07-02 15:05 +0000 [r204681] David Vossel * include/asterisk/devicestate.h, main/pbx.c, main/devicestate.c, include/asterisk/pbx.h: Improved mapping of extension states from combined device states. This fixes a few issues with incorrect extension states and adds a cli command, core show device2extenstate, to display all possible state mappings. (closes issue #15413) Reported by: legart Patches: exten_helper.diff uploaded by dvossel (license 671) Tested by: dvossel, legart, amilcar Review: https://reviewboard.asterisk.org/r/301/ 2009-06-30 20:23 +0000 [r204556] Tilghman Lesher * main/say.c, UPGRADE.txt: More incorrect language codes, plus ensuring that regionalizations use the specified language, and not English for grammar. (closes issue #15022) Reported by: greenfieldtech Patches: 20090519__issue15022.diff.txt uploaded by tilghman (license 14) 2009-06-30 18:47 +0000 [r204474] Jason Parker * main/say.c: Fix ast_say_counted_noun to correctly handle Polish. Fix a comment typo in passing. 2009-06-30 18:23 +0000 [r204469] Tilghman Lesher * main/say.c, UPGRADE.txt: "tw" is the language specification for Twi (from Ghana) not Taiwanese. (closes issue #15346) Reported by: volivier Patches: 20090617__issue15346__1.4.diff.txt uploaded by tilghman (license 14) 20090617__issue15346__trunk.diff.txt uploaded by tilghman (license 14) 20090617__issue15346__1.6.0.diff.txt uploaded by tilghman (license 14) 20090617__issue15346__1.6.1.diff.txt uploaded by tilghman (license 14) 20090617__issue15346__1.6.2.diff.txt uploaded by tilghman (license 14) Tested by: volivier 2009-06-29 22:45 +0000 [r204243-204300] Mark Michelson * channels/chan_sip.c: Add error message so that it is clear why a SIP peer was not processed when a DNS lookup fails on a host or outboundproxy. (closes issue #13432) Reported by: p_lindheimer Patches: outboundproxy.patch uploaded by p (license 558) * channels/chan_sip.c: Fix build oops. * channels/chan_sip.c: Fix a problem where chan_sip would ignore "old" but valid responses. chan_sip has had a problem for quite a long time that would manifest when Asterisk would send multiple SIP responses on the same dialog before receiving a response. The problem occurred because chan_sip only kept track of the highest outgoing sequence number used on the dialog. If Asterisk sent two requests out, and a response arrived for the first request sent, then Asterisk would ignore the response. The result was that Asterisk would continue retransmitting the requests and ignoring the responses until the maximum number of retransmissions had been reached. The fix here is to rearrange the code a bit so that instead of simply comparing the sequence number of the response to our latest outgoing sequence number, we walk our list of outstanding packets and determine if there is a match. If there is, we continue. If not, then we ignore the response. In doing this, I found a few completely useless variables that I have now removed. (closes issue #11231) Reported by: flefoll Review: https://reviewboard.asterisk.org/r/298 2009-06-29 19:36 +0000 [r204170] Tilghman Lesher * funcs/func_odbc.c, funcs/func_strings.c: Revision 189537 was supposed to make 1.4 more correct. Instead, it broke func_odbc. Reverting. (closes issue #15317, issue #14614) 2009-06-29 17:04 +0000 [r204067] David Vossel * channels/chan_iax2.c: segfault after SPINLOCK schedule delete Using the SPINLOCK schedule delete macro can result in the iax_pvt lock being given up. This makes it possible for the iax_pvt to dissappear when we thought we held the mutex the entire time. To resolve this, the iax_pvt's ref count is incremented. (closes issue #15377) Reported by: aragon Patches: iax_spin_issue_1.4.diff uploaded by dvossel (license 671) Tested by: aragon, dvossel 2009-06-29 15:04 +0000 [r204012] Mark Michelson * apps/app_mixmonitor.c: Place unlock of mutex in an else block so that it does not get unlocked twice. (closes issue #15400) Reported by: aragon 2009-06-27 00:55 +0000 [r203908] Richard Mudgett * channels/chan_dahdi.c: The ISDN CPE side should not exclusively pick B channels normally. Before this patch, Asterisk unconditionally picked B channels exclusively on the CPE side and normally allowed alternative B channels on the network side. Now Asterisk does the opposite. Reasons for the CPE side to normally not pick B channels exclusively: * For CPE point-to-multipoint mode (i.e. phone side), the CPE side does not have enough information to exclusively pick B channels. (There may be other devices on the line.) * Q.931 gives preference to the network side picking B channels. * Some telcos require the CPE side to not pick B channels exclusively. (closes issue #14383) Reported by: mbrancaleoni 2009-06-26 22:09 +0000 [r203848] Jeff Peeler * channels/chan_dahdi.c: Make sure to recreate the dahdi pseudo channel after dahdi restart (closes issue #14477) Reported by: timking 2009-06-26 21:16 +0000 [r203785] Russell Bryant * main/file.c: Don't fast forward past the end of a message. This is nice change for users of the voicemail application. If someone gets a little carried away with fast forwarding through a message, they can easily get to the end and accidentally exit the voicemail application by hitting the fast forward key during the following prompt. This adds some safety by not allowing a fast forward past the end of a message. (closes issue #14554) Reported by: lacoursj Patches: 21761.patch uploaded by lacoursj (license 707) Tested by: lacoursj 2009-06-26 20:03 +0000 [r203719] David Brooks * apps/app_voicemail.c: Fixing voicemail's error in checking max silence vs min message length Max silence was represented in milliseconds, yet vmminsecs (minmessage) was represented as seconds. Also, the inequality was reversed. The warning, if triggered, was "Max silence should be less than minmessage or you may get empty messages", which should have been logged if max silence was greater than minmessage, but the check was for less than. Also, conforming if statement to coding guidelines. closes issue #15331) Reported by: markd Review: https://reviewboard.asterisk.org/r/293/ 2009-06-25 21:13 +0000 [r203380] Terry Wilson * main/cli.c: I didn't see that Mark already fixed the underlying issue! Yay for removing useless code. 2009-06-25 21:02 +0000 [r203375] Russell Bryant * res/res_features.c: Fix a case where CDR answer time could be before the start time involving parking. (closes issue #13794) Reported by: davidw Patches: 13794.patch uploaded by murf (license 17) 13794.patch.160 uploaded by murf (license 17) Tested by: murf, dbrooks 2009-06-25 20:09 +0000 [r203311] Terry Wilson * main/cli.c: Don't try to free NULL 2009-06-25 18:52 +0000 [r203230] Mark Michelson * main/astmm.c: Prevent false positives when freeing a NULL pointer with MALLOC_DEBUG enabled. 2009-06-25 16:02 +0000 [r203115] Russell Bryant * channels/chan_sip.c: Resolve a crash related to a T.38 reinvite race condition. This change resolves a crash observed locally during some T.38 testing. A call was set up using a call file, and when the T.38 reinvite came in, the channel state was still AST_STATE_DOWN. The reason is explained by a comment in the code that previously lived in the handling of AST_STATE_RINGING. This change modifies the logic to handle the same race condition for any channel state that is not UP. (closes ABE-1895) 2009-06-24 21:01 +0000 [r203036] Richard Mudgett * channels/chan_dahdi.c: Improved chan_dahdi.conf pritimer error checking. Valid format is: pritimer=timer_name,timer_value * Fixed segfault if the ',' is missing. * Completely check the range returned by pri_timer2idx() to prevent possible access outside array bounds. 2009-06-24 18:28 +0000 [r202966] Mark Michelson * channels/chan_sip.c: Use the handy UNLINK macro instead of hand-coding the same thing in-line. 2009-06-24 Leif Madsen * Release Asterisk 1.4.26-rc4 2009-06-23 16:28 +0000 [r202671] David Vossel * channels/chan_sip.c: MWI NOTIFY contains a wrong URI if Asterisk listens to non-standard port and transport (closes issue #14659) Reported by: klaus3000 Patches: patch_chan_sip_fixMWIuri_1.4.txt uploaded by klaus3000 (license 65) mwi_port-transport_trunk.diff uploaded by dvossel (license 671) Tested by: dvossel, klaus3000 Review: https://reviewboard.asterisk.org/r/288/ 2009-06-23 15:22 +0000 [r202572-202601] Mark Michelson * channels/chan_sip.c: Fix more memory leaks that may result if rtp is not successfully allocated. * channels/chan_sip.c: Fix potential memory leak in chan_sip when video rtp is not allocated properly. 2009-06-22 20:08 +0000 [r202414-202496] Russell Bryant * main/channel.c: Report CallerID change during a masquerade. Reported by: markster * channels/chan_sip.c: Make Polycom subscription type override check more explicit. 2009-06-22 14:44 +0000 [r202336-202342] Mark Michelson * channels/chan_sip.c: Remove an extra debug line left from previous commit. * channels/chan_sip.c: Fix a situation in which Asterisk would not stop retransmitting 487s. If a CANCEL were received by Asterisk, we would send a 487 in response to the original INVITE and a 200 OK for the CANCEL. If there were a network hiccup which caused the 200 OK and the 487 to be lost, then the UA communicating with Asterisk may try to retransmit its CANCEL. Asterisk's response to this used to be to try sending another 487 to the canceled INVITE and another 200 OK to the CANCEL. The problem here is that the originally-sent 487 was sent "reliably" meaning that it will be retransmitted until it is received properly. So when we receive the second CANCEL it is likely that the first batch of 487s we sent is still going strong and reaches the UA. The result was that the second set of 487s would be retransmitted constantly until the maximum number of retries had been reached. The fix for this is that if we receive a second CANCEL for an INVITE, then we cancel the retransmission of the first set of 487s and start a second set. This causes the dialog to be terminated reasonably. (closes issue #14584) Reported by: klaus3000 Patches: 14584_v2.patch uploaded by mmichelson (license 60) Tested by: klaus3000 * channels/chan_sip.c: Fix a possible infinite loop in SDP parsing during glare situation. There was a while loop in get_ip_and_port_from_sdp which was controlled by a call to get_sdp_iterate. The loop would exit either if what we were searching for was found or if the return was NULL. The problem is that get_sdp_iterate never returns NULL. This means that if what we were searching for was not present, the loop would run infinitely. This modification of the loop fixes the problem. (closes issue #15213) Reported by: schmidts (closes issue #15349) Reported by: samy (closes issue #14464) Reported by: pj (closes issue #15345) Reported by: aragon Patches: sip_inf_loop.patch uploaded by mmichelson (license 60) Tested by: aragon 2009-06-20 17:51 +0000 [r202153] Sean Bright * channels/chan_sip.c: Since we don't have sip_pvt_lock() in 1.4, we need to use ast_mutex_* directly. (closes issue #15366) Reported by: loloski 2009-06-19 21:21 +0000 [r202022] Matthew Nicholson * channels/chan_sip.c: Added deadlock protection to try_suggested_sip_codec in chan_sip.c. Review: https://reviewboard.asterisk.org/r/287/ 2009-06-19 20:22 +0000 [r201993] David Vossel * channels/chan_iax2.c: timestamp was being converted to host order as a short rather than a long (closes issue #15361) Reported by: ffloimair Patches: ts_issue.diff uploaded by dvossel (license 671) 2009-06-19 00:40 +0000 [r201828] Tilghman Lesher * res/res_features.c: If the "h" extension fails, give it another chance in main/pbx.c. If the "h" extension fails, give it another chance in main/pbx.c, when it returns from the bridge code. Fixes an issue where the "h" extension may occasionally not fire, when a Dial is executed from a Macro. Debugged in #asterisk with user tompaw. 2009-06-18 Leif Madsen * Release Asterisk 1.4.26-rc3 2009-06-18 15:24 +0000 [r201600] Russell Bryant * res/res_musiconhold.c: Fix memory corruption and leakage related reloads of non files mode MoH classes. For Music on Hold classes that are not files mode, meaning that we are executing an application that will feed us audio data, we use a thread to monitor the external application and read audio from it. This thread also makes use of the MoH class object. In the MoH class destructor, we used pthread_cancel() to ask the thread to exit. Unfortunately, the code did not wait to ensure that the thread actually went away. What needed to be done is a pthread_join() to ensure that the thread fully cleans up before we proceed. By adding this one line, we resolve two significant problems: 1) Since the thread was never joined, it never fully goes away. So, on every reload of non-files mode MoH, an unused thread was sticking around. 2) There was a race condition here where the application monitoring thread could still try to access the MoH class, even though the thread executing the MoH reload has already destroyed it. (issue #15109) Reported by: jvandal (issue #15123) Reported by: axisinternet (issue #15195) Reported by: amorsen (issue AST-208) 2009-06-17 19:59 +0000 [r201450] Mark Michelson * main/channel.c: Change the datastore traversal in ast_do_masquerade to use a safe list traversal. It is possible for datastore fixup functions to remove the datastore from the list and free it. In particular, the queue_transfer_fixup in app_queue does this. While I don't yet know of this causing any crashes, it certainly could. Found while discussing a separate issue with Brian Degenhardt. 2009-06-17 19:28 +0000 [r201423] David Vossel * apps/app_mixmonitor.c: StopMixMonitor race condition (not giving up file immediately) StopMixMonitor only indicates to the MixMonitor thread to stop writing to the file. It does not guarantee that the recording's file handle is available to the dialplan immediately after execution. This results in a race condition. To resolve this, the filestream pointer is placed in a datastore on the channel. When StopMixMonitor is called, the datastore is retrieved from the channel and the filestream is closed immediately before returning to the dialplan. Documentation indicating the use of StopMixMonitor to free files has been updated as well. (closes issue #15259) Reported by: travisghansen Tested by: dvossel Review: https://reviewboard.asterisk.org/r/283/ 2009-06-17 18:45 +0000 [r201380] David Brooks * channels/chan_sip.c: Checks for NULL sip_pvt pointer in chan_sip.c->acf_channel_read() Zombie channels could be passed, and chan_sip.c wasn't checking for it. Could crash Asterisk. Now checking for NULL pointer. (closes issue #15330) Reported by: okrief Tested by: dbrooks 2009-06-17 12:03 +0000 [r200991-201261] Kevin P. Fleming * include/asterisk/linkedlists.h: Correct AST_LIST_APPEND_LIST behavior when list to be appended is empty. When the list to be appended is empty, and the list to be appended to is *not*, AST_LIST_APPEND_LIST would actually cause the target list to become broken, and no longer have a pointer to its last entry. This patch fixes the problem. (reported by Stanislaw Pitucha on the asterisk-dev mailing list) * apps/app_chanspy.c, apps/app_mixmonitor.c, main/channel.c, build_tools/cflags-devmode.xml, main/autoservice.c, main/frame.c, apps/app_meetme.c, main/slinfactory.c, include/asterisk/linkedlists.h, main/file.c, include/asterisk/channel.h, include/asterisk/frame.h: Improve support for media paths that can generate multiple frames at once. There are various media paths in Asterisk (codec translators and UDPTL, primarily) that can generate more than one frame to be generated when the application calling them expects only a single frame. This patch addresses a number of those cases, at least the primary ones to solve the known problems. In addition it removes the broken TRACE_FRAMES support, fixes a number of bugs in various frame-related API functions, and cleans up various code paths affected by these changes. https://reviewboard.asterisk.org/r/175/ 2009-06-16 13:25 +0000 [r200875] Eliel C. Sardanons * res/res_smdi.c: Show the interface name on error, if it is not found. If the smdiport specified is not found, show the interface name instead of '(null)'. 2009-06-15 15:21 +0000 [r200513] Mark Michelson * channels/chan_sip.c: Add INFO to our allowed methods so that endpoints know they may send it to us. AST-223 2009-06-12 19:06 +0000 [r200360] Mark Michelson * main/channel.c: Suppress a warning message and give a better return code when generating inband ringing after a call is answered. (closes issue #15158) Reported by: madkins Patches: 15158.patch uploaded by mmichelson (license 60) Tested by: madkins 2009-06-11 22:20 +0000 [r200185] Sean Bright * Makefile: Backport fix for parallel build warnings from trunk r199781. 2009-06-11 12:12 +0000 [r200037] Leif Madsen * build_tools/make_version_h: Fix path for .flavor and .version. (issue #14737) Reported by: davidw Patches: flavor.patch uploaded by davidw (license 780) Tested by: davidw 2009-06-10 16:08 +0000 [r199856] Sean Bright * include/asterisk/utils.h: __WORDSIZE is not available on all platforms, so use sizeof(void *) instead. 2009-06-09 Leif Madsen * Release Asterisk 1.4.26-rc2 2009-06-08 19:28 +0000 [r199626-199628] Sean Bright * include/asterisk/utils.h: Fix a typo in the stack size calculation just introduced. * include/asterisk/utils.h: Increase the size of our thread stack on 64 bit processors. We were setting the stack size for each thread to 240KB regardless of architecture, which meant that in some scenarios we actually had less available stack space on 64 bit processors (pointers use 8 bytes instead of 4). So now we calculate the stack size we reserve based on the platform's __WORDSIZE, which gives us: 32 bit -> 240KB 64 bit -> 496KB 128 bit -> 1008KB (that's right, we're ready for 128 bit processors) Patch typed by me but written by several members of #asterisk-dev, including Kevin, Tilghman, and Qwell. (closes issue #14932) Reported by: jpiszcz Patches: 06052009_issue14932.patch uploaded by seanbright (license 71) Tested by: seanbright 2009-06-05 21:19 +0000 [r199297] David Vossel * main/pbx.c: Fixes issue with hints giving unexpected results. Hints with two or more devices that include ONHOLD gave unexpected results. (closes issue #15057) Reported by: p_lindheimer Patches: onhold_trunk.diff uploaded by dvossel (license 671) pbx.c.1.4.patch uploaded by p (license 558) devicestate.c.trunk.patch uploaded by p (license 671) Tested by: p_lindheimer, dvossel Review: https://reviewboard.asterisk.org/r/254/ 2009-06-04 19:00 +0000 [r199138] David Vossel * channels/chan_iax2.c: Additional updates to AST-2009-001 2009-06-04 14:14 +0000 [r198957-199022] Sean Bright * main/asterisk.c, main/loader.c, include/asterisk.h: Safely handle AMI connections/reload requests that occur during startup. During asterisk startup, a lock on the list of modules is obtained by the primary thread while each module is initialized. Issue 13778 pointed out a problem with this approach, however. Because the AMI is loaded before other modules, it is possible for a module reload to be issued by a connected client (via Action: Command), causing a deadlock. The resolution for 13778 was to move initialization of the manager to happen after the other modules had already been lodaded. While this fixed this particular issue, it caused a problem for users (like FreePBX) who call AMI scripts via an #exec in a configuration file (See issue 15189). The solution I have come up with is to defer any reload requests that come in until after the server is fully booted. When a call comes in to ast_module_reload (from wherever) before we are fully booted, the request is added to a queue of pending requests. Once we are done booting up, we then execute these deferred requests in turn. Note that I have tried to make this a bit more intelligent in that it will not queue up more than 1 request for the same module to be reloaded, and if a general reload request comes in ('module reload') the queue is flushed and we only issue a single deferred reload for the entire system. As for how this will impact existing installations - Before 13778, a reload issued before module initialization was completed would result in a deadlock. After 13778, you simply couldn't connect to the manager during startup (which causes problems with #exec-that-calls-AMI configuration files). I believe this is a good general purpose solution that won't negatively impact existing installations. (closes issue #15189) (closes issue #13778) Reported by: p_lindheimer Patches: 06032009_15189_deferred_reloads.diff uploaded by seanbright (license 71) Tested by: p_lindheimer, seanbright Review: https://reviewboard.asterisk.org/r/272/ * pbx/pbx_spool.c: Fix a possible crash in pbx_spool. We were trying to reference members of a struct that had previously been freed. This patch makes sure that we free the struct after it has been removed from the spooler queue. (closes issue #15072) Reported by: garlew Patches: spool.diff uploaded by garlew (license 376) 2009-06-03 15:49 +0000 [r198891] David Vossel * main/channel.c, res/res_features.c, include/asterisk/channel.h: Generic call forward api, ast_call_forward() The function ast_call_forward() forwards a call to an extension specified in an ast_channel's call_forward string. After an ast_channel is called, if the channel's call_forward string is set this function can be used to forward the call to a new channel and terminate the original one. I have included this api call in both channel.c's ast_request_and_dial() and res_feature.c's feature_request_and_dial(). App_dial and app_queue already contain call forward logic specific for their application and options. (closes issue #13630) Reported by: festr Review: https://reviewboard.asterisk.org/r/271/ 2009-06-01 20:07 +0000 [r198665] Tilghman Lesher * res/res_musiconhold.c: If using the old deprecated format, a reload would cause the class to disappear. (closes issue #14759) Reported by: lidocaineus Patches: 20090518__issue14759.diff.txt uploaded by tilghman (license 14) Tested by: lmadsen 2009-05-30 19:36 +0000 [r198370] Sean Bright * res/res_jabber.c: Properly terminate AMI JabberSend response messages. The response message (either Error or Success) needs an extra trailing \r\n after the fields to inform the client that the message is complete. (closes issue #14876) Reported by: srt Patches: 05302009_1.4_res_jabber.c.diff uploaded by seanbright (license 71) asterisk_14876.patch uploaded by srt (license 378) trunk-14876-2.diff uploaded by phsultan (license 73) 2009-05-30 03:42 +0000 [r198311] Russell Bryant * res/res_smdi.c: Fix a crash that occurred when MWI SMDI messages expired. (closes issue #14561) Reported by: cmoss28 2009-05-30 02:46 +0000 [r198251] Sean Bright * apps/app_dial.c: Treat an empty FORWARD_CONTEXT the same way we treat a missing one. (closes issue #15056) Reported by: p_lindheimer Patches: 05292009_bug15056.diff uploaded by seanbright (license 71) Tested by: p_lindheimer 2009-05-29 18:53 +0000 [r198068] Matthew Nicholson * main/cdr.c, main/channel.c, res/res_features.c, include/asterisk/cdr.h: Use AST_CDR_NOANSWER instead of AST_CDR_NULL as the default CDR disposition. This change also involves the addition of an AST_CDR_FLAG_ORIGINATED flag that is used on originated channels to distinguish: them from dialed channels. (closes issue #12946) Reported by: meral Patches: null-cdr2.diff uploaded by mnicholson (license 96) Tested by: mnicholson, dbrooks (closes issue #15122) Reported by: sum Tested by: sum 2009-05-29 18:14 +0000 [r197998] Sean Bright * Makefile: Fix 'make config' target for Slackware. There was a missing semi-colon after the echo statement in the Makefile that was causing problems for some users. Fix suggested by reporter. (closes issue #15225) Reported by: pdavis 2009-05-28 23:57 +0000 [r197895] Leif Madsen * apps/app_mixmonitor.c: Update MixMonitor documentation. Updated the MixMonitor documentation for the 'b' option so that it is more obvious that you must not optimize awat the Local channel when using this option. (issue #14829) 2009-05-28 Leif Madsen * Release Asterisk 1.4.26-rc1 2009-05-28 15:51 +0000 [r197620] David Vossel * channels/chan_iax2.c: 'iax show peer blah' now outputs whether or not peer 'blah' is in trunk mode or not. 2009-05-28 15:27 +0000 [r197588] Mark Michelson * main/rtp.c, channels/chan_sip.c, include/asterisk/rtp.h: Allow for media to arrive from an alternate source when responding to a reinvite with 491. When we receive a SIP reinvite, it is possible that we may not be able to process the reinvite immediately since we have also sent a reinvite out ourselves. The problem is that whoever sent us the reinvite may have also sent a reinvite out to another party, and that reinvite may have succeeded. As a result, even though we are not going to accept the reinvite we just received, it is important for us to not have problems if we suddenly start receiving RTP from a new source. The fix for this is to grab the media source information from the SDP of the reinvite that we receive. This information is passed to the RTP layer so that it will know about the alternate source for media. Review: https://reviewboard.asterisk.org/r/252 2009-05-28 15:21 +0000 [r197562] Eliel C. Sardanons * channels/chan_sip.c: Use the address we already know when reloading a peer with nat=yes. If we already have an address for a peer, and we are reloading the sip configuration, try to use that address to contact the peer, instead of getting it from the Contact. (closes issue #15194) Reported by: ibc Patches: sip.patch uploaded by eliel (license 64) Tested by: manwe 2009-05-28 14:49 +0000 [r197537] Mark Michelson * apps/app_chanspy.c, include/asterisk/audiohook.h, main/audiohook.c: Add flags to chanspy audiohook so that audio stays in sync. There are two flags being added to the chanspy audiohook here. One is the pre-existing AST_AUDIOHOOK_TRIGGER_SYNC flag. With this set, we ensure that the read and write slinfactories on the audiohook do not skew beyond a certain tolerance. In addition, there is a new audiohook flag added here, AST_AUDIOHOOK_SMALL_QUEUE. With this flag set, we do not allow for a slinfactory to build up a substantial amount of audio before flushing it. For this particular issue, this means that the person spying on the call will hear the conversations in real time with very little delay in the audio. (closes issue #13745) Reported by: geoffs Patches: 13745.patch uploaded by mmichelson (license 60) Tested by: snblitz 2009-05-28 13:44 +0000 [r197466] Joshua Colp * channels/chan_sip.c: Fix a bug where the flag indicating the presence of rport would get overwritten by the nat setting. The presence of rport is now stored as a separate flag. Once the dialog is setup and authenticated (or it passes through unauthenticated) the proper nat flag is set. (closes issue #13823) Reported by: dimas 2009-05-27 20:12 +0000 [r197264] Sean Bright * Makefile: Use bash explicitly when calling build_tools/mkpkgconfig from the Makefile. Since we use bashisms in build_tools/mkpkgconfig, we should call on bash explicitly when running from the Makefile, otherwise we get errors during a 'make install.' (closes issue #15209) Reported by: seandarcy 2009-05-27 20:07 +0000 [r197259] Olle Johansson * doc/asterisk-conf.txt: Typo fix 2009-05-27 19:09 +0000 [r197194] Tilghman Lesher * funcs/func_cut.c: Use a different determinator on whether to print the delimiter, since leading fields may be blank. (closes issue #15208) Reported by: ramonpeek Patch by me, though inspired in part by a patch from ramonpeek 2009-05-27 16:49 +0000 [r197124] Jeff Peeler * main/channel.c, include/asterisk/channel.h: Fix broken attended transfers The bridge was terminating immediately after the attended transfer was completed. The problem was because upon reentering ast_channel_bridge nexteventts was checked to see if it was set and if so could possibly return AST_BRIDGE_COMPLETE. (closes issue #15183) Reported by: andrebarbosa Tested by: andrebarbosa, tootai, loloski 2009-05-27 13:54 +0000 [r197024] Sean Bright * apps/app_queue.c: Fix handling of the 'state_interface' option of the 'queue add member' CLI command. This change relates to r184980, which was a backport of the state interface changes to app_queue from trunk. trunk and all of the 1.6.x branches are not affected. 'queue add member' allows for specifying an interface to use for device state when adding a queue member via CLI, but the validation code was not properly updated to reflect this optional argument. (closes issue #15198) Reported by: loloski Patches: 05272009_app_queue.diff uploaded by seanbright (license 71) Tested by: loloski 2009-05-26 18:14 +0000 [r196826] Russell Bryant * res/res_convert.c: Resolve a file handle leak. The frames here should have always been freed. However, out of luck, there was never any memory leaked. However, after file streams became reference counted, this code would leak the file stream for the file being read. (closes issue #15181) Reported by: jkroon 2009-05-26 13:06 +0000 [r196657] Joshua Colp * contrib/scripts/safe_asterisk: Remove some bash specific stuff from safe_asterisk. (closes issue #10812) Reported by: paravoid Patches: safe_asterisk_bashism.diff uploaded by tzafrir (license 46) 2009-05-22 13:54 +0000 [r196116] Joshua Colp * channels/chan_misdn.c: Fix a bug where using immediate with mISDN caused a cause code of 16 to get sent back instead of 1 if the 's' extension did not exist. (closes issue #12286) Reported by: lmamane 2009-05-21 19:04 +0000 [r195991] David Vossel * channels/chan_iax2.c: Sign problem calculating timestamp for iax frame leads to no audio on the receiving peer. There are rare cases in which a frame's delivery timestamp is slightly less than the iax2_pvt's offset. This causes the pvt's timestamp to be a small negative number, but since the timestamp value is unsigned it looks like a huge positive number. This patch checks for this negative case and sets the ms to zero. A similar check is already done right below this one in the 'else' statement. (closes issue #15032) Reported by: guillecabeza Patches: chan_iax2.c.patch_timestamp uploaded by guillecabeza (license 380) Tested by: guillecabeza (closes issue #14216) Reported by: Andrey Sofronov 2009-05-21 15:25 +0000 [r195881] Matthew Nicholson * main/cdr.c, res/res_features.c, include/asterisk/cdr.h: This commit prevents cdr records with AST_CDR_FLAG_ANSLOCKED and AST_CDR_FLAG_LOCKED from being updated in certain cases. This is accomplished by adding two functions to update the answer time and disposition of calls that checks for the proper lock flags. These functions are used in the ast_bridge_call() function so that ForkCDR(A) calls are respected. This patch also modifies the way ast_bridge_call() chooses the cdr record to base the bridged_cdr on. Previously the first unlocked cdr record would be chosen, now instead the first cdr record is chosen and forked cdr records are moved to the bridge_cdr. This allows the original cdr record and any forked cdr records to be properly updated with answer and end times. (closes issue #13797) Reported by: sh0t Tested by: sh0t (closes issue #14744) Reported by: deepesh 2009-05-21 Leif Madsen * Release Asterisk 1.4.25 2009-05-13 Leif Madsen * Release Asterisk 1.4.25-rc1 2009-05-13 13:38 +0000 [r194208] Joshua Colp * main/rtp.c: Fix RFC2833 issues with DTMF getting duplicated and with duration wrapping over. (closes issue #14815) Reported by: geoff2010 Patches: v1-14815.patch uploaded by dimas (license 88) Tested by: geoff2010, file, dimas, ZX81, moliveras (closes issue #14460) Reported by: moliveras Tested by: moliveras 2009-05-13 00:52 +0000 [r194137] Tilghman Lesher * main/pbx.c: Fix logic for how to proceed with a single digit extension. (closes issue #15091) Reported by: andrew Patches: 20090512__issue15091.diff.txt uploaded by tilghman (license 14) Tested by: andrew 2009-05-12 22:15 +0000 [r194028] Matthew Nicholson * apps/app_queue.c: This change modifies app_queue to properly generate CDR records in failure situations. This involves setting a proper cdr disposition coresponding to the given failure condition and ensuring the proper information is stored in the cdr record. (closes issue #13691) Reported by: dferrer Tested by: mnicholson (closes issue #13637) Reported by: atis Tested by: atis 2009-05-12 20:39 +0000 [r193955] Tilghman Lesher * apps/app_voicemail.c: Avoid initializing routines if the authentication fails. Fixes a crash (RR) issue. (closes issue #14508) Reported by: tiziano Patches: 20090221_2_wrongmailbox.diff.txt uploaded by tiziano (license 377) 2009-05-12 18:18 +0000 [r193880] Mark Michelson * channels/chan_sip.c: Set the invitestate to INV_CANCELLED only if we are actually sending a SIP CANCEL. The problem was that the hangup code was setting the invitestate too early. The result of this was that we would always send a CANCEL request, even if it was not an appropriate time to do so (e.g. we have not yet received a provisional response for our INVITE). Note that this same fix had been applied to trunk and the 1.6.X branches starting with revision 155467. This is why you will see this revision being blocked from those places. AST-216 2009-05-11 22:48 +0000 [r193755] Tilghman Lesher * apps/app_voicemail.c: Move 300 bytes around on the stack, to make more room for an extension buffer. This allows more concurrent extensions to be copied for a single voicemail, without creating a possibility of upsetting existing users, where a dialplan could run out of stack space where it had run fine before. Alternatively, we could have allocated off the heap, but that is a larger change and would have increased the chance for instability introduced by this change. This is really solved starting in 1.6.0.11, as the use of an ast_str buffer allows an unlimited number of extensions (up to available memory). We additionally create a new warning message when the buffer length is exceeded, permitting administrators to see an issue after the fact, whereas previously the list was silently truncated. (closes issue #14739) Reported by: p_lindheimer Patches: 20090417__bug14739.diff.txt uploaded by tilghman (license 14) Tested by: p_lindheimer 2009-05-11 19:09 +0000 [r193613] Richard Mudgett * channels/chan_misdn.c: Sent wrong message to clear a call we started if the other end has not responed yet. In the state MISDN_CALLING (i.e. SETUP was sent but no answer has arrived yet), it is not allowed to clear the call with RELEASE_COMPLETE. It must be cleared with DISCONNECT. A RELEASE_COMPLETE is only allowed as an answer to a SETUP. (See Q.931 ch. 5.3.2, 5.3.2.a, 5.3.2.b) Patches: chan-misdn-ccstate7.patch uploaded by customer. JIRA ABE-1862 2009-05-11 17:35 +0000 [r193544] Leif Madsen * funcs/func_channel.c: Document CHANNEL(transfercapability) in CLI documentation. (issue #15073) Reported by: pkempgen Patches: 20090511__issue15073.diff.txt uploaded by tilghman (license 14) 2009-05-08 21:01 +0000 [r193391] Matthew Nicholson * main/channel.c: Set the proper disposition on originated calls. (closes issue #14167) Reported by: jpt Patches: call-file-missing-cdr2.diff uploaded by mnicholson (license 96) Tested by: dlotina, rmartinez, mnicholson 2009-05-08 14:51 +0000 [r193262] David Vossel * channels/misdn_config.c: "misdn show config" segfaults asterisk, if no MSN lists (closes issue #14976) Reported by: alecdavis Patches: misdn_config.diff.txt uploaded by alecdavis (license 585) Tested by: alecdavis, FabienToune 2009-05-08 14:03 +0000 [r193193] Kevin P. Fleming * configs/logger.conf.sample, main/logger.c: Make absolute paths for logger channels work properly (Note: This is not a new feature, it was previously undocumented and broken.) The Asterisk logger has a feature to support absolute pathnames for logger channels, but the code implementing the feature was broken. This has been fixed, and the absolute path feature is now documented in the sample logger.conf. 2009-05-07 23:41 +0000 [r193119] Tilghman Lesher * main/pbx.c: Fix Background within a Macro for FreePBX. If the single digit DTMF is an extension in the specified context, then go there and signal no DTMF. Otherwise, we should exit with that DTMF. If we're in Macro, we'll exit and seek that DTMF as the beginning of an extension in the Macro's calling context. If we're not in Macro, then we'll simply seek that extension in the calling context. Previously, someone complained about the behavior as it related to the interior of a Gosub routine, and the fix (#14011) inadvertently broke FreePBX (#14940). This change should fix both of these situations, but with the possible incompatibility that if a single digit extension does not exist (but a longer extension COULD have matched), it would have previously gone immediately to the "i" extension, but will now need to wait for a timeout. (closes issue #14940) Reported by: p_lindheimer Patches: 20090420__bug14940.diff.txt uploaded by tilghman (license 14) Tested by: p_lindheimer 2009-05-07 22:17 +0000 [r193050] Richard Mudgett * channels/chan_misdn.c: Give a more helpful message when an incoming call's dialed extension does not match. Added the dialed extension and context to the chan_misdn messages warning that the dialed number cannot be matched in the dialplan. 2009-05-07 16:29 +0000 [r192932] Tilghman Lesher * channels/chan_sip.c: Eliminate repetition of fullcontact during reconstruction. If the fullcontact field appears in both the sippeers and the sipregs table, then during reconstruction of the field, it will otherwise be doubled. (closes issue #14754) Reported by: Alexei Gradinari Patches: 20090506__bug14754.diff.txt uploaded by tilghman (license 14) Tested by: lmadsen 2009-05-06 22:15 +0000 [r192858] Jeff Peeler * res/res_features.c: Make ParkedCall application stop execution of the dialplan after hang up Just changed park_exec to always return non-zero. I really wasn't entirely sure at first if this was a bug. Decided it was since it would be surprising when not using ParkedCall in the dialplan to hang up and have dialplan execution continue. (closes issue #14555) Reported by: francesco_r 2009-05-06 13:30 +0000 [r192633] Joshua Colp * channels/chan_sip.c: Update some old logic to stop both begin and end DTMF frames from reaching the core if rfc2833 is not enabled. (closes issue #15036) Reported by: dimas Patches: v1-15036.patch uploaded by dimas (license 88) 2009-05-05 19:56 +0000 [r192524] Sean Bright * static-http/astman.js: Fix Javascript error when using astman.js in Internet Explorer. Internet Explorer (tested with 7.0) does not like trailing commas on constructs like object initializers, so get rid of them to avoid some errors. (closes issue #15026) Reported by: rajnishgiri Patches: bug15026.patch uploaded by seanbright (license 71) Tested by: seanbright 2009-05-05 18:22 +0000 [r192429-192454] Joshua Colp * res/res_features.c: Fix an incorrect assumption that certain values on the channel will always exist when they may not. The CDR code involved with bridges wrongly assumed that the currently executing application and data values will always exist. It is possible for this to be false when call forwarding is involved. (closes issue #14984) Reported by: gincantalupo * apps/app_followme.c: Fix a bug where the followme application would continue trying numbers after the caller hung up. (closes issue #13624) Reported by: sgenyuk 2009-05-04 22:37 +0000 [r192213] David Vossel * channels/chan_iax2.c: global mohinterpret setting is ignored mohinterpret and mohsuggest global variables were not copied over during build_users and build_peers. (closes issue #14728) Reported by: dimas Patches: v1-14728.patch uploaded by dimas (license 88) Tested by: dimas, dvossel 2009-05-02 18:48 +0000 [r191628-191778] Mark Michelson * apps/app_voicemail.c: Fix a bug which resulted from the Hebrew voicemail commit. This fixes a case where a certain message could get played twice. (closes issue #13155) Reported by: greenfieldtech Patches: app_voicemail.c.multi-lang-patch uploaded by greenfieldtech (license 369) Tested by: greenfieldtech * apps/app_chanspy.c: Kevin has informed me that thi sort of thing is not necessary. * apps/app_chanspy.c: Move static buffers to outside for loops in app_chanspy. Similar to seanbright's commit 191422, this moves some static buffers to be defined outside of for loops since it is undefined if memory will be re-used or if the stack will grow with each iteration of the loop. 2009-05-01 20:00 +0000 [r191559] Tilghman Lesher * channels/chan_sip.c: SIP Response 410 maps to cause code 22 (or 23), not 1. (closes issue #14993) Reported by: BigJimmy Patches: causepatch uploaded by BigJimmy (license 371) 2009-05-01 17:40 +0000 [r191488] Jeff Peeler * main/channel.c: Fix DTMF not being sent to other side after a partial feature match This fixes a regression from commit 176701. The issue was that ast_generic_bridge never exited after the feature digit timeout had elapsed, which prevented the queued DTMF from being sent to the other side. This issue was reported to me directly. 2009-05-01 15:42 +0000 [r191422] Sean Bright * apps/app_queue.c: Move the defintion of the a couple arrays out of loops. According to Kevin, it is unspecified as to whether a variable defined inside a block is allocated once by the compiler or for each pass through the block (loops being the only interesting case), so just define these before we get into our loop to be sure. 2009-04-29 23:10 +0000 [r191220] Tilghman Lesher * channels/h323/ast_h323.cxx, channels/chan_h323.c: Allow H.323 to compile with FDLEAK checking enabled. 2009-04-29 18:07 +0000 [r191096] David Brooks * pbx/pbx_config.c: Patch to fix tab-completion crash on "remove extension" This patch simply removes some old code back before Asterisk used editline. This fixes the crash that occurred when tab-completing "remove extension". (closes issue #14689) Reported by: isaacgal 2009-04-29 15:23 +0000 [r191041] Sean Bright * apps/app_queue.c: Fix a crash in app_queue with very long member lists. A user reported via #asterisk that with very long lists of members, a crash occurs in ast_strdupa, so just use a single buffer and ast_copy_string instead of stack allocating copys of each interface name. 2009-04-27 19:29 +0000 [r190721] Kevin P. Fleming * configure, include/asterisk/autoconfig.h.in: Fix 'inconsistent line endings' when autoconf 2.63 is used Attempt to make configure script regeneration 'safe' using autoconf 2.63, which embeds a bare CR into the script, thus making Subversion complain about inconsistent line endings This commit changes the MIME type of the configure script to be 'binary' thus making Subversion no longer inspect line endings, and as a bonus 'svn diff' will no longer try to generate diff output for it, which is not generally useful anyway. 2009-04-27 19:03 +0000 [r190661-190662] Russell Bryant * res/res_smdi.c: Fix a typo from 190661. * res/res_smdi.c: Resolve a crash in res_smdi when used with chan_dahdi. When chan_dahdi goes to get an SMDI message, it provides no search criteria. It just grabs the next message that arrives. This code was written with the SMDI dialplan functions in mind, since that is now the preferred method of using SMDI. However, this broke support of it being used from chan_dahdi. (closes AST-212) 2009-04-23 21:07 +0000 [r190356] Russell Bryant * channels/chan_sip.c: Remove a bogus ast_channel_unlock(). 2009-04-23 19:13 +0000 [r190286] Joshua Colp * channels/chan_local.c: Fix a bug in chan_local glare hangup detection. If both sides of a Local channel were hung up at around the same time it was possible for one thread to destroy the local private structure and have the other thread immediately try to remove the already freed structure from the local channel list. 2009-04-23 10:07 +0000 [r190187] Olle Johansson * include/asterisk/lock.h: unistd.h is required for usleep() on Darwin. It will not hurt to include it always on other platforms either. 2009-04-22 21:35 +0000 [r190092] Tilghman Lesher * configure, include/asterisk/autoconfig.h.in, configure.ac, include/asterisk/lock.h: Detect availability of pthread_rwlock_timedwrlock() before using it. (closes issue #14930) Reported by: tilghman Patches: 20090420__bug14930.diff.txt uploaded by tilghman (license 14) Tested by: mvanbaak, tilghman 2009-04-22 19:20 +0000 [r189991] Jeff Peeler * channels/h323/ast_h323.cxx, channels/chan_h323.c, channels/h323/chan_h323.h: Make chan_h323 respect packetization settings Previously, packetization settings were ignored and now they are not. A new config option 'autoframing' has been added to mirror the way chan_sip handles it. Turning on the autoframing option (available both as a global option or per peer) overrides the local settings with the remote packetization settings. Testing was performed with varying packetization levels with the following codecs: ulaw, alaw, gsm, and g729. (closes issue #12415) Reported by: pj Patches: 2009012200_h323packetization.diff.txt uploaded by mvanbaak (license 7), modified by me 2009-04-22 14:29 +0000 [r189849] Michiel van Baak * contrib/scripts/get_ilbc_source.sh: replace sed with tr to remove \r from downloaded file On some systems, sed does not recognize \r in the pattern the way it was used here. Use tr instead because this works the same across systems. (closes issue #14936) Reported by: leobrown Patches: 2009042201_14936.diff.txt uploaded by mvanbaak (license 7) Tested by: leobrown, mvanbaak 2009-04-21 15:52 +0000 [r189601-189664] Doug Bailey * utils/muted.c: Remove daemon call on systems that do not support forking. * main/config.c, configure, include/asterisk/autoconfig.h.in, include/asterisk/compat.h, configure.ac: Add check in configure script to check for GLOB_NOMAGIC and GLOB_BRACE in glob.h This allows config.c to compile when linked against uclibc that does not support these parameters 2009-04-20 22:02 +0000 [r189537] Tilghman Lesher * funcs/func_odbc.c, funcs/func_strings.c: Add a workaround for func_odbc/ARRAY() for problems that occur with certain special characters. In certain cases, due to the way Set() works in 1.4, values may not get set properly. This is a workaround for 1.4 only that corrects for these issues, without making func_odbc more difficult to use properly. (closes issue #14614) Reported by: wdoekes Patches: 20090309__bug14614__2.diff.txt uploaded by tilghman (license 14) double_set_unescape_workaround_for_func_odbc.osso-and-tilghman-1.diff uploaded by wdoekes (license 717) Tested by: wdoekes, tilghman 2009-04-20 21:10 +0000 [r189463-189465] Terry Wilson * apps/app_dial.c: Update CDR appropriately when AST_CAUSE_NO_ANSWER is set * apps/app_dial.c: Don't treat a NOANSWER like a CHANUNAVAIL 2009-04-20 20:58 +0000 [r189462] Sean Bright * pbx/ael/ael.tab.c, pbx/ael/ael.y: Properly handle @s within hints in AEL. AEL was not handling the case of a device hint containing an @ symbol, which caused parking hints (e.g. hint(park:exten@context)) to error out the parser. This patch makes AEL treat the @ the same way it treats colon and ampersand now, meaning the characters are included in verbatim. (closes issue #14941) Reported by: bpgoldsb Patches: bug14941.patch uploaded by seanbright (license 71) Tested by: bpgoldsb 2009-04-20 19:10 +0000 [r189391] Doug Bailey * main/manager.c, main/db1-ast/recno/rec_open.c, channels/chan_iax2.c: Clean up problem with manager implementation of mmap where it was not testing against MAP_FAILED response. Got rid of shadowed variable used in processign the mmap results. Change test of mmap results to compare against MAP_FAILED 2009-04-20 14:04 +0000 [r189277] Mark Michelson * main/channel.c: Move the check for chan->fdno == -1 to after the zombie/hangup check. Many users were finding that their hung up channels were staying up and causing 100% CPU usage. (issue #14723) Reported by: seadweller Patches: 14723_1-4-tip.patch uploaded by mmichelson (license 60) Tested by: falves11, bamby 2009-04-18 01:27 +0000 [r189203] David Vossel * channels/chan_agent.c: Fixed autologoff in agents.conf not working when agent logs in via AgentLogin app An agent logs in by calling an extension that calls the AgentLogin app. In agents.conf ackcall=always is set, so when they get a call they have the choice to either acknowledge it or ignore it. autologoff=10 is set as well, so if the agent ignores the call over 10sec one may assume that the agent should be logged out (and in this case hungup on as well), but this was not happening. (closes issue #14091) Reported by: evandro Patches: autologoff.diff uploaded by dvossel (license 671) Review: http://reviewboard.digium.com/r/225/ 2009-04-17 21:27 +0000 [r189134] Richard Mudgett * channels/misdn/isdn_lib.c: Modifed/added some debug messages. JIRA ABE-1835 2009-04-17 15:43 +0000 [r189009] Matthew Nicholson * main/pbx.c: Make Busy() application set the CDR disposition to BUSY. (closes issue #14306) Reported by: cristiandimache 2009-04-17 14:41 +0000 [r188937-188946] Joshua Colp * channels/chan_sip.c: Fix a bug where a value used to create the channel name was bogus. This commit fixes the scenario where an incoming call is authenticated using a peer entry. Previously the channel name was created using either the username setting from the sip.conf entry or the IP address that the call came from. Now the channel name will be created using the peer name itself. This commit will not change the way the channel name is generated for users or friends. (closes issue #14256) Reported by: Nick_Lewis Patches: chan_sip.c-chname.patch uploaded by Nick (license 657) Tested by: Nick_Lewis, file * channels/chan_dahdi.c: Fix a situation where the DAHDI channel private structure lock was not unlocked when it should have been. (issue AST-210) 2009-04-16 21:41 +0000 [r188835] Tilghman Lesher * channels/chan_sip.c: Only update realtime, if global option rtupdate != false (closes issue #14885) Reported by: deepesh Patches: 20090413__bug14885.diff.txt uploaded by tilghman (license 14) Tested by: deepesh 2009-04-16 21:37 +0000 [r188833] Richard Mudgett * channels/chan_misdn.c: Only disable mISDN DSP if Asterisk DSP is enabled. Leave jitter setting alone. JIRA ABE-1835 2009-04-16 21:02 +0000 [r188773] Tilghman Lesher * apps/app_voicemail.c: Umask should not be exported into global namespace. (closes issue #14912) Reported by: jcapp 2009-04-15 22:08 +0000 [r188646] David Vossel * channels/chan_dahdi.c: National prefix inserted even when caller ID not available When the caller ID is restricted, the expected behavior is for the caller id to be blank. In chan_dahdi, the national prefix is placed onto the callers number even if its restricted (empty) causing the caller id to be the national prefix rather than blank. (closes issue #13207) Reported by: shawkris Patches: national_prefix.diff uploaded by dvossel (license 671) Review: http://reviewboard.digium.com/r/220/ 2009-04-15 20:04 +0000 [r188582] Mark Michelson * main/file.c: Update ast_readvideo_callback to match ast_readaudio_callback. This fixes potential refcount errors that may occur on ast_filestreams. AST-208 2009-04-14 15:02 +0000 [r188287] David Vossel * main/audiohook.c: audio_audiohook_write_list() does not correctly update sample size after ast_translate. audio_audiohook_write_list() does not take into account that the sample size may change after translation depending on if the original frame is is 8khz or 16khz. While no 16kz codecs are supported in 1.4 at the moment, this will save headaches in the future if they ever are. the sample size is now updated after translating to reflect this possibility. Thanks to jcolp and mmichelson for helping me work this out. (issue AST-197) 2009-04-13 23:04 +0000 [r188149] Tilghman Lesher * res/res_odbc.c: If fileconfig limit exceeds our maximum, then set the limit to the maximum. (Closes issue #14888) Reported by: falves11 2009-04-10 22:16 +0000 [r187962] Jeff Peeler * channels/Makefile: Fix module embedding for chan_h323. Include libchanh323.a in the modules.link file so that all the symbols can be resolved at link time. (closes issue #11966) Reported by: dome 2009-04-10 19:26 +0000 [r187865] Russell Bryant * channels/chan_dahdi.c: Support "signaling" in addition to "signalling". The sample configuration file has references to both spellings. 2009-04-10 17:28 +0000 [r187763] Tilghman Lesher * contrib/scripts/realtime_pgsql.sql, contrib/scripts/sip-friends.sql: Add lastms column to the contributed table designs 2009-04-09 18:51 +0000 [r187484] Mark Michelson * channels/chan_sip.c: Handle a SIP race condition (reinvite before an ACK) properly. RFC 5047 explains the proper course of action to take if a reINVITE is received before the ACK from a previous invite transaction. What we are to do is to treat the reINVITE as if it were both an ACK and a reINVITE and process it normally. Later, when we receive the ACK we had been expecting, we will ignore it since its CSeq is less than the current iseqno of the sip_pvt representing this dialog. (closes issue #13849) Reported by: klaus3000 Patches: 13849_v2.patch uploaded by mmichelson (license 60) Tested by: mmichelson, klaus3000 2009-04-09 18:39 +0000 [r187209-187482] Tilghman Lesher * include/asterisk/lock.h: Oops, typo * main/manager.c, include/asterisk/lock.h: Race condition between ast_cli_command() and 'module unload' could cause a deadlock. Add lock timeouts to avoid this potential deadlock. (closes issue #14705) Reported by: jamessan Patches: 20090320__bug14705.diff.txt uploaded by tilghman (license 14) Tested by: jamessan * channels/chan_sip.c, apps/app_sendtext.c: Permit zero-length text messages in SIP. (Related to an issue posted to the -users list, subject "AEL2, BASE64_DECODE and hexadecimal") * main/astfd.c (added): Oops, missed this file in the last commit. * main/asterisk.c, agi/Makefile, build_tools/cflags.xml, utils/Makefile, include/asterisk.h, main/Makefile, main/file.c: Add debugging mode for diagnosing file descriptor leaks. (Related to issue #14625) * main/manager.c: Backport resolution for file descriptor leak in 1.6.0 to 1.4. This fixes short reads in http manager sessions, such as those done by the ast-gui branch. (Fixes AST-198) 2009-04-08 19:16 +0000 [r186832-187135] Mark Michelson * apps/app_dial.c: Fix a crash due to too few arguments to RetryDial. (closes issue #14852) Reported by: junky Patches: retry_fix.diff uploaded by junky (license 177) * res/res_musiconhold.c: Fix a small logical error when loading moh classes. We were unconditionally incrementing the number of mohclasses registered. However, we should actually only increment if the call to moh_register was successful. While this probably has never caused problems, I noticed it and decided to fix it anyway. * main/channel.c: Make a couple of changes with regards to a new message printed in ast_read(). "ast_read() called with no recorded file descriptor" is a new message added after a bug was discovered. Unfortunately, it seems there are a bunch of places that potentially make such calls to ast_read() and trigger this error message to be displayed. This commit does two things to help to make this message appear less. First, the message has been downgraded to a debug level message if dev mode is not enabled. The message means a lot more to developers than it does to end users, and so developers should take an effort to be sure to call ast_read only when a channel is ready to be read from. However, since this doesn't actually cause an error in operation and is not something a user can easily fix, we should not spam their console with these messages. Second, the message has been moved to after the check for any pending masquerades. ast_read() being called with no recorded file descriptor should not interfere with a masquerade taking place. This could be seen as a simple way of resolving issue #14723. However, I still want to try to clear out the existing ways of triggering this message, since I feel that would be a better resolution for the issue. * formats/format_wav.c, formats/format_wav_gsm.c: Fix a few typos of the word "frequency." (closes issue #14842) Reported by: jvandal Patches: frequency-typo.diff uploaded by jvandal (license 413) * main/channel.c: Set the AST_FEATURE_WARNING_ACTIVE flag when a p2p bridge returns AST_BRIDGE_RETRY. Without this flag set, warning sounds will not be properly played to either party of the bridge. (closes issue #14845) Reported by: adomjan 2009-04-07 22:16 +0000 [r186775] Tilghman Lesher * apps/app_macro.c: Fix Macro documentation to match current (and intended) behavior. (See -dev mailing list) 2009-04-07 20:43 +0000 [r186719] Mark Michelson * main/manager.c: Ensure that \r\n is printed after the ActionID in an OriginateResponse. (closes issue #14847) Reported by: kobaz 2009-04-06 13:54 +0000 [r186565] Mark Michelson * apps/app_voicemail.c: Revert commit 186445 because it causes the build to fail when IMAP_STORAGE is used. 2009-04-03 20:19 +0000 [r186458] Kevin P. Fleming * channels/chan_dahdi.c: Fix a bug where DAHDI/Zaptel channels would not properly switch formats when requested Don't offer AST_FORMAT_SLINEAR on DAHDI/Zaptel channels... while it could provide a slight performance benefit, the translation core in Asterisk has some flaws when a channel driver offers multiple raw formats. this fix is much simpler than fixing the translation core to solve that issue (although that will be done later). 2009-04-03 19:56 +0000 [r186415-186445] Tilghman Lesher * apps/app_voicemail.c: Found a conflict in the last commit, due to multiple targets * apps/app_voicemail.c, configs/voicemail.conf.sample: Distinguish in a sent email between simple sends and forwards. (closes issue #11678) Reported by: jamessan Patches: 20090330__bug11678.diff.txt uploaded by tilghman (license 14) Tested by: tilghman, lmadsen 2009-04-03 15:48 +0000 [r186320] Joshua Colp * include/asterisk/crypto.h: Fix a problem with the crypto variable definitions not actually being defined properly. (closes issue #14804) Reported by: jvandal 2009-04-03 01:57 +0000 [r186229] Russell Bryant * cdr/cdr_radius.c: Fix a memory leak in cdr_radius. I came across this while doing some testing of my ast_channel_ao2 branch. After running a test overnight that generated over 5 million calls, Asterisk had taken up about 1 GB of my system memory. So, I re-ran the test with MALLOC_DEBUG turned on. However, it showed no leaks in Asterisk during the test, even though Asterisk was still consuming it somehow. Instead, I turned to valgrind, which when run with --leak-check=full, told me exactly where the leak came from, which was from allocations inside the radiusclient-ng library. This explains why MALLOC_DEBUG did not report it. After a bit of analysis, I found that we were leaking a little bit of memory every time a CDR record was passed to cdr_radius. I don't actually have a radius server set up to receive CDR records. However, I always have my development systems compile and install all modules. In addition to making sure there are not build errors across modules, always loading modules helps find bugs like this, too, so it is strongly recommend for all developers. 2009-04-02 21:55 +0000 [r186174] Mark Michelson * configs/features.conf.sample: Fix instructions in one-step parking comment to make more sense. Changed a capital K to a lowercase k. 2009-04-02 17:21 +0000 [r186081] Kevin P. Fleming * channels/chan_dahdi.c: ensure that the buffer passed to DAHDI_SET_BUFINFO is fully initialized 2009-04-02 17:09 +0000 [r186057-186059] Tilghman Lesher * /, channels/chan_sip.c, configs/sip.conf.sample: Merged revisions 186056 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r186056 | tilghman | 2009-04-02 12:02:18 -0500 (Thu, 02 Apr 2009) | 2 lines Fix for AST-2009-003 ........ * channels/chan_sip.c: Avoid multiple warning messages in SIP, due to this column not existing 2009-04-02 13:43 +0000 [r185952] Kevin P. Fleming * channels/chan_dahdi.c: the DAHDI_GETCONF, DAHDI_SETCONF and DAHDI_GET_PARAMS ioctls were recently corrected to show that they do, in fact, read data from userspace as part of their work. due to this fix, valgrind now reports a number of cases where chan_dahdi passed an uninitialized (or partially) buffer to these ioctls, which could lead to unexpected behavior. this patch corrects chan_dahdi to ensure that buffers passed to these ioctls are always fully initialized. 2009-04-01 19:02 +0000 [r185845] David Vossel * channels/chan_sip.c: Fixes issue with dropped calles due to re-Invite glare and re-Invites never executing after a 491 Acknowledgement for 491 responses were never being processed because it didn't match our pending invite's seqno. Since the ACK was never processed, the 491 frame would continue to be retransmitted until eventually the call was dropped due to max retries. Now during a pending invite, if we receive another invite, we send an 491 and hold on to that glare invite's seqno in the "glareinvite" variable for that sip_pvt struct. When ACK's are received, we first check to see if it is in response to our pending invite, if not we check to see if it is in response to a glare invite. In this case, it is in response to the glare invite and must be dealt with or the call is dropped. I've changed the wait time for resending the re-Invite after receving a 491 response to comply with RFC 3261. Before this patch the scheduled re-Invite would only change a flag indicating that the re-Invite should be sent out, now it actually sends it out as well. (closes issue #12013) Reported by: alx Review: http://reviewboard.digium.com/r/213/ 2009-04-01 13:47 +0000 [r185771] Russell Bryant * main/channel.c: Fix a case where DTMF could bypass audiohooks. This change fixes a situation where an audiohook that wants DTMF would not actually get it. This is in the code path where we end DTMF digit length emulation while handling a NULL frame. 2009-03-31 22:00 +0000 [r185468-185599] Mark Michelson * apps/app_queue.c: Fix crash that would occur if an empty member was specified in queues.conf. (closes issue #14796) Reported by: pida * channels/chan_sip.c: Use AST_SCHED_DEL_SPINLOCK instead of manually using the logic. * apps/app_voicemail.c: Fix Russian voicemail intro to say the word "messages" properly. (closes issue #14736) Reported by: chappell Patches: voicemail_no_messages.diff uploaded by chappell (license 8) 2009-03-31 16:37 +0000 [r185362] David Brooks * channels/chan_gtalk.c: Fix incorrect parsing in chan_gtalk when xmpp contains extra whitespaces To drill into the xmpp to find the capabilities between channels, chan_gtalk calls iks_child() and iks_next(). iks_child() and iks_next() are functions in the iksemel xml parsing library that traverse xml nodes. The bug here is that both iks_child() and iks_next() will return the next iks_struct node *regardless* of type. chan_gtalk expects the next node to be of type IKS_TAG, which in most cases, it is, but in this case (a call being made from the Empathy IM client), there exists iks_struct nodes which are not IKS_TAG data (they are extraneous whitespaces), and chan_gtalk doesn't handle that case, so capabilities don't match, and a call cannot be made. iks_first_tag() and iks_next_tag(), on the other hand, will not return the very next iks_struct, but will check to see if the next iks_struct is of type IKS_TAG. If it isn't, it will be skipped, and the next struct of type IKS_TAG it finds will be returned. This assures that chan_gtalk will find the iks_struct it is looking for. This fix simply changes all calls to iks_child() and iks_next() to become calls to iks_first_tag() and iks_next_tag(), which resolves the capability matching. The following is a payload listing from Empathy, which, due to the extraneous whitespace, will not be parsed correctly by iksemel: 2009-03-31 15:34 +0000 [r185298] Mark Michelson * apps/app_queue.c: Fix some state_interface stuff that was in trunk but not in the backport to 1.4. Issue #14359 was fixed between the time that I posted the review of the backport of the state interface change for 1.4. This merges the changes from that issue back into 1.4. (closes issue #14359) Reported by: francesco_r 2009-03-31 14:06 +0000 [r185196] Joshua Colp * main/audiohook.c: Fix crash when moving audiohooks between channels. Handle the scenario where we are called to move audiohooks between channels and the source channel does not actually have any on it. (closes issue #14734) Reported by: corruptor 2009-03-30 20:40 +0000 [r185120-185121] Richard Mudgett * channels/misdn_config.c, configs/misdn.conf.sample: Update the channel allocation method documentation. * channels/misdn/isdn_lib.c: Make chan_misdn BRI TE side normally defer channel selection to the NT side. Channel allocation collisions are not handled by chan_misdn very well. This patch simply avoids the problem for BRI only. For PRI, allocation collisions are still possible but less likely since there are simply more channels available and each end could use a different allocation strategy. misdn.conf options available: te_choose_channel - Use to force the TE side to allocate channels. method - Specify the channel allocation strategy. (closes issue #13488) Reported by: Christian_Pinedo Patches: isdn_lib.patch.txt uploaded by crich Tested by: crich, siepkes, festr 2009-03-30 16:17 +0000 [r184980-185031] Mark Michelson * apps/app_queue.c: Fix queue weight behavior so that calls in low-weight queues are not inappropriately blocked. (This is copied and pasted from the review request I made for this patch) Asterisk has some odd behavior when queue weights are used. The current logic used when potentially calling a queue member is: If the member we are going to call is part of another queue and _that other queue has any callers in it_ and has a higher weight than the queue we are calling from, then don't try to contact that member. The issue here is what I have marked with underscores. If the higher-weighted queue has any callers in it at all, then the queue member will be unreachable from the lower-weighted queue. This has the potential to be really really bad if using a queue strategy, such as leastrecent or fewestcalls, with the potential to call the same member repeatedly. The fix proposed by garychen on issue 13220 is very simple and, as far as I can see, works well for this situation. With this set of changes, the logic used becomes: If the member we are going to call is part of another queue, the other queue has a higher weight than the queue we are calling from, and the higher weight queue has at least as many callers as available members, then do not try to contact the queue member. If the higher weighted queue has fewer callers than available members, then there is no reason to deny the call to this member since the other queue can afford to spare a member. Since the fix involved writing a generic function for determining the number of available members in the queue, I also modified the is_our_turn function to make use of the new num_available_members function to determine if it is our turn to try calling a member. There is one small behavior change. Before writing this patch, if you had autofill disabled, then if you were the head caller in a queue, you would automatically be told that it was your turn to try calling a member. This did not take into account whether there were actually any queue members available to take the call. Now we actually make sure there is at least one member available to take the call if autofill is disabled. (closes issue #13220) Reported by: garychen Review: http://reviewboard.digium.com/r/202/ * configs/queues.conf.sample, apps/app_queue.c: Backport state interface changes to app_queue from trunk. After several issues raised on the Asterisk bugtracker against the 1.4 branch were determined to be fixable with the state interface change available in the 1.6.X series, it finally came time to just suck it up and backport the change. For a detailed explanation of what this change entails, the original trunk commit for this feature may be found here: http://svn.digium.com/view/asterisk?view=revision&revision=97203 In addition, the details for the use of this change to fix the problems stated in issue #12970 may be found in the review request I made for this change. It is linked below. (closes issue #12970) Reported by: edugs15 Review: http://reviewboard.digium.com/r/116 2009-03-30 14:35 +0000 [r184947] Joshua Colp * channels/chan_sip.c: Improve our handling of T38 in the initial INVITE from a device. We now answer with matching media streams to what is requested. If an INVITE is received with both a T38 and RTP media stream this means we answer with both. For any outgoing calls created as a result of this inbound one no T38 is requested in the initial INVITE. Instead if we start receiving udptl packets we trigger a reinvite on the outbound side. (closes issue #12437) Reported by: marsosa Tested by: pinga-fogo, okrief, file, afu Review: http://reviewboard.digium.com/r/208/ 2009-03-29 05:51 +0000 [r184842] Russell Bryant * apps/app_followme.c: Ensure targs variable is fully initialized. (closes issue #14758) Reported by: tim_ringenbach 2009-03-27 13:06 +0000 [r184565] Joshua Colp * channels/chan_sip.c: Fix an issue where nat=yes would not always take effect for the RTP session on outgoing calls. If calls were placed using an IP address or hostname the global nat setting was copied over but was not set on the RTP session itself. This caused the RTP stack to not perform symmetric RTP actions. (closes issue #14546) Reported by: acunningham 2009-03-26 22:17 +0000 [r184447] Kevin P. Fleming * sounds/Makefile: use new, improved 8kHz prompts 2009-03-26 21:07 +0000 [r184388] David Vossel * apps/app_test.c: pri loop TestClient/TestServer fails: server SEND DTMF 8 app_test was failing when sending the last DTMF digit, 8, because of the 100ms pause issued after DTMF is sent. During this pause the other side would hang up causing the test to look like it failed. Now the other side waits a second before hanging up. (closes issue #12442) Reported by: tzafrir 2009-03-25 14:12 +0000 [r184188] Eliel C. Sardanons * main/asterisk.c: Avoid destroying the CLI line when moving the cursor backward and trying to autocomplete. When moving the cursor backward and pressing TAB to autocomplete, a NULL is put in the line and we are loosing what we have already wrote after the actual cursor position. (closes issue #14373) Reported by: eliel Patches: asterisk.c.patch uploaded by eliel (license 64) Tested by: lmadsen 2009-03-24 22:34 +0000 [r184078] Mark Michelson * apps/app_senddtmf.c: Change NULL pointer check to be ast_strlen_zero. The 'digit' variable is guaranteed to be non-NULL, so the if statement could never evaluate true. Changing to ast_strlen_zero makes the logic correct. This was found while reviewing ast_channel_ao2 code review. 2009-03-24 15:25 +0000 [r183913] Tilghman Lesher * configs/voicemail.conf.sample: Additionally note that the operator option needs an 'o' extension. (Related to issue #14731) 2009-03-23 17:59 +0000 [r183700] Mark Michelson * res/res_monitor.c: Fix a memory leak in res_monitor.c The only way that this leak would occur is if Monitor were started using the Manager interface and no File: header were given. Discovered while reviewing the ast_channel_ao2 review request. 2009-03-20 16:53 +0000 [r183559] Russell Bryant * channels/chan_iax2.c: Fix a crash in IAX2 registration handling found during load testing with dvossel. 2009-03-19 23:37 +0000 [r183481] Terry Wilson * apps/app_dial.c: Add missing datastore inherit (exists in all other branches) 2009-03-19 19:40 +0000 [r183386] David Vossel * include/asterisk/features.h, apps/app_dial.c, res/res_features.c: Cleaning up a few things in detect disconnect patch Initialized ast_call_feature in detect_disconnect to avoid accessing uninitialized memory. Cleaned up /param tags in features.h. No longer send dynamic features in ast_feature_detect. issue #11583 2009-03-19 19:21 +0000 [r183319-183342] Tilghman Lesher * channels/chan_dahdi.c: Reordering, to change prior to unlocking * channels/chan_dahdi.c: Delay signalling progress until a PRI channel really signals progress. (closes issue #13034) Reported by: klaus3000 Patches: 20090316__bug13034.diff.txt uploaded by tilghman (license 14) patch_trunk_183progress_klaus3000.txt uploaded by klaus3000 (license 65) Tested by: klaus3000 2009-03-19 18:28 +0000 [r183291] Jason Parker * main/asterisk.exports: Export some more required symbols. 2009-03-19 17:52 +0000 [r183145-183241] Russell Bryant * main/loader.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Remove the use of RTLD_NOLOAD, as it is not behaving like expected. * main/asterisk.exports: Allow the AES API to work. * main/asterisk.exports: Add missing semicolon in exports script. 2009-03-19 16:15 +0000 [r183126] David Vossel * include/asterisk/features.h, apps/app_dial.c, res/res_features.c, res/res_features.exports: Allow disconnect feature before a call is bridged feature.conf has a disconnect option. By default this option is set to '*', but it could be anything. If a user wishes to disconnect a call before the other side answers, only '*' will work, regardless if the disconnect option is set to something else. This is because features are unavailable until bridging takes place. The default disconnect option, '*', was hardcoded in app_dial, which doesn't make any sense from a user perspective since they may expect it to be something different. This patch allows features to be detected from outside of the bridge, but not operated on. In this case, the disconnect feature can be detected before briding and handled outside of features.c. (closes issue #11583) Reported by: sobomax Patches: patch-apps__app_dial.c uploaded by sobomax (license 359) 11583.latest-patch uploaded by murf (license 17) detect_disconnect.diff uploaded by dvossel (license 671) Tested by: sobomax, dvossel Review: http://reviewboard.digium.com/r/195/ 2009-03-19 16:13 +0000 [r183123] Russell Bryant * main/asterisk.exports: Allow the CallerID API to work again. 2009-03-19 16:04 +0000 [r183115] Mark Michelson * channels/chan_sip.c: Fix an issue where cancelled outgoing SIP calls would erroneously report the device as "in use." A user was having an issue where if an outgoing SIP call was canceled, the SIP device would remain in use if we had not received any response to the initial INVITE we sent out. The SIP device would remain in use until the autocongestion timer was exhausted. I tracked down the cause of this to be the section of code I am removing here. I asked several people what the purpose of this code was meant to be, but no one could give me any sort of answer as to why this was here. The person who was having this issue has been using this patch for several months and it has stopped the problems they have had. AST-196 2009-03-18 20:02 +0000 [r182963-182965] Jeff Peeler * configure, autoconf/ast_check_openh323.m4: fix typo which broke configure * channels/h323/compat_h323.cxx, channels/h323/ast_h323.cxx, configure, autoconf/ast_check_openh323.m4, channels/h323/compat_h323.h, channels/chan_h323.c, channels/h323/ast_h323.h, channels/h323/chan_h323.h: Allow H.323 Plus library to be used in addition to the OpenH323 library Chan_h323 can now be compiled against both the previously supported versions of OpenH323 as well as the current H.323 Plus (version 1.20.2). The configure script has been modified to look in the default install location of h323 to hopefully help avoid using the environment variables OPENH323DIR and PWLIBDIR. Also, the CLI command "h323 show version" has been added which indicates which version of h323 is in use. (closes issue 0011261) Reported by: vhatz Patches: asterisk-1.6.0.6-h323plus.patch uploaded by jthurman (license 614) 2009-03-18 11:31 +0000 [r182882] Kevin P. Fleming * include/asterisk/callerid.h, channels/chan_dahdi.c, main/callerid.c: fix another symbol namespace issue (reported by Andrew on asterisk-dev) 2009-03-18 02:09 +0000 [r182810] Russell Bryant * main/poll.c, main/io.c, main/channel.c, main/manager.c, channels/chan_skinny.c, configure, apps/app_mp3.c, res/res_agi.c, include/asterisk/poll-compat.h, channels/chan_alsa.c, main/asterisk.c, apps/app_nbscat.c, main/Makefile, include/asterisk/autoconfig.h.in, configure.ac, main/utils.c, include/asterisk/io.h, include/asterisk/channel.h: Fix cases where the internal poll() was not being used when it needed to be. We have seen a number of problems caused by poll() not working properly on Mac OSX. If you search around, you'll find a number of references to using select() instead of poll() to work around these issues. In Asterisk, we've had poll.c which implements poll() using select() internally. However, we were still getting reports of problems. vadim investigated a bit and realized that at least on his system, even though we were compiling in poll.o, the system poll() was still being used. So, the primary purpose of this patch is to ensure that we're using the internal poll() when we want it to be used. The changes are: 1) Remove logic for when internal poll should be used from the Makefile. Instead, put it in the configure script. The logic in the configure script is the same as it was in the Makefile. Ideally, we would have a functionality test for the problem, but that's not actually possible, since we would have to be able to run an application on the _target_ system to test poll() behavior. 2) Always include poll.o in the build, but it will be empty if AST_POLL_COMPAT is not defined. 3) Change uses of poll() throughout the source tree to ast_poll(). I feel that it is good practice to give the API call a new name when we are changing its behavior and not using the system version directly in all cases. So, normally, ast_poll() is just redefined to poll(). On systems where AST_POLL_COMPAT is defined, ast_poll() is redefined to ast_internal_poll(). 4) Change poll() in main/poll.c to be ast_internal_poll(). It's worth noting that any code that still uses poll() directly will work fine (if they worked fine before). So, for example, out of tree modules that are using poll() will not stop working or anything. However, for modules to work properly on Mac OSX, ast_poll() needs to be used. (closes issue #13404) Reported by: agalbraith Tested by: russell, vadim http://reviewboard.digium.com/r/198/ 2009-03-18 01:55 +0000 [r182802-182808] Kevin P. Fleming * main/astobj2.c, main/asterisk.exports (added), res/res_odbc.exports (added), res/res_speech.exports (added), res/res_config_odbc.c, res/res_features.exports (added), build_tools/strip_nonapi (removed), res/res_adsi.exports (added), res/res_indications.c, default.exports (added), makeopts.in, res/res_jabber.exports (added), res/res_monitor.exports (added), res/res_config_pgsql.c, res/res_snmp.c, main/Makefile, res/res_smdi.exports (added), include/asterisk/astobj2.h, res/res_crypto.c, res/res_agi.exports (added), Makefile.rules, res/res_musiconhold.c: Improve the build system to *properly* remove unnecessary symbols from the runtime global namespace. Along the way, change the prefixes on some internal-only API calls to use a common prefix. With these changes, for a module to export symbols into the global namespace, it must have *both* the AST_MODFLAG_GLOBAL_SYMBOLS flag and a linker script that allows the linker to leave the symbols exposed in the module's .so file (see res_odbc.exports for an example). * main/astobj2.c, main/asterisk.exports (removed), res/res_odbc.exports (removed), main/channel.c, res/res_config_odbc.c, res/res_features.exports (removed), default.exports (removed), include/asterisk/frame.h, res/res_jabber.exports (removed), res/res_config_pgsql.c, main/Makefile, res/res_smdi.exports (removed), include/asterisk/astobj2.h, main/slinfactory.c, res/res_crypto.c, res/res_agi.exports (removed), res/res_speech.exports (removed), include/asterisk/linkedlists.h, main/file.c, build_tools/strip_nonapi (added), res/res_adsi.exports (removed), res/res_indications.c, makeopts.in, apps/app_mixmonitor.c, apps/app_chanspy.c, res/res_monitor.exports (removed), main/autoservice.c, build_tools/cflags-devmode.xml, main/frame.c, apps/app_meetme.c, res/res_snmp.c, Makefile.rules, res/res_musiconhold.c: revert commit that included extranous changes * /: remove accidentally merged properties * main/astobj2.c, main/asterisk.exports (added), res/res_odbc.exports (added), main/channel.c, res/res_config_odbc.c, res/res_features.exports (added), default.exports (added), include/asterisk/frame.h, res/res_jabber.exports (added), res/res_config_pgsql.c, main/Makefile, res/res_smdi.exports (added), include/asterisk/astobj2.h, main/slinfactory.c, res/res_crypto.c, res/res_agi.exports (added), res/res_speech.exports (added), include/asterisk/linkedlists.h, main/file.c, build_tools/strip_nonapi (removed), res/res_adsi.exports (added), res/res_indications.c, makeopts.in, apps/app_mixmonitor.c, apps/app_chanspy.c, res/res_monitor.exports (added), main/autoservice.c, build_tools/cflags-devmode.xml, main/frame.c, /, apps/app_meetme.c, res/res_snmp.c, Makefile.rules, res/res_musiconhold.c: Improve the build system to *properly* remove unnecessary symbols from the runtime global namespace. Along the way, change the prefixes on some internal-only API calls to use a common prefix. With these changes, for a module to export symbols into the global namespace, it must have *both* the AST_MODFLAG_GLOBAL_SYMBOLS flag and a linker script that allows the linker to leave the symbols exposed in the module's .so file (see res_odbc.exports for an example). 2009-03-17 20:13 +0000 [r182652] Jason Parker * channels/chan_dahdi.c, apps/app_flash.c: Allow dahdichanname to work as advertised. (closes issue #14056) Reported by: dsedivec Patches: load_from_zapata_conf.patch uploaded by dsedivec (license 638) 2009-03-17 05:50 +0000 [r182449] Tilghman Lesher * main/db.c: Fix race in astdb The underlying db1 implementation does not fully isolate the pages retrieved from astdb, so the lock protecting accesses needs to be extended until the copy from the shared memory structure is done. (closes issue #14682) Reported by: makoto 2009-03-16 Leif Madsen * Released 1.4.24 2009-03-06 Leif Madsen * Released 1.4.24-rc1 2009-03-06 18:23 +0000 [r180567] Mark Michelson * apps/app_voicemail.c: Make compilation succeed in dev-mode when IMAP storage is enabled. 2009-03-06 17:19 +0000 [r180532] David Vossel * main/enum.c: Fix handling of backreferences for ENUM lookups enum.c did not handle regex backtraces correctly. The '\1' in the regex is a backreference that requires a pattern match to be inserted. The way the code used to work is that it would find the backreference and insert the entire input string minus the '+'. This is incorrect. The regexec() function takes in a variable called pmatch which is an array of structs containing the start and end indexes for each backreference substring. The original code actually passed the pmatch array pointer into regexec but never did anything with it. Now when a backtrace is found, the backtrace number is looked up in the pmatch array and the correct substring is inserted. (closes issue #14576) Reported by: chris-mac Review: http://reviewboard.digium.com/r/187/ 2009-03-05 23:26 +0000 [r180380-180464] Mark Michelson * apps/app_voicemail.c: [IMAP] Fix message retrieval issues when identical mailbox names were defined in separate contexts. There was a fix put in a while back so that an X-Asterisk-VM-Context message header was added to stored IMAP voicemails. This would allow for us to differentiate if the same mailbox name was used in multiple contexts. The problem still left was that not all places where messages were retrieved actually attempted to use this header for information when retrieving messages. This commit fixes that so that MWI and message retrieval from VoiceMailMain work as expected. (closes issue #13853) Reported by: vicks1 Patches: 13853_v2.patch uploaded by mmichelson (license 60) Tested by: lmadsen * apps/app_voicemail.c, configs/voicemail.conf.sample: Fix broken mailbox parsing when searchcontexts option is enabled. When using the searchcontexts option in voicemail.conf, the code made the assumption that all mailbox names defined were unique across all contexts. However, the code did nothing to actually enforce this assumption, nor did it do anything to alert a user that he may have created an ambiguity in his voicemail.conf file by defining the same mailbox name in multiple contexts. With this change, we now will issue a nice long warning if searchcontexts is on and we encounter the same mailbox name in multiple contexts and ignore any duplicates after the first box. Whether searchcontexts is enabled or not, if we come across a duplicate mailbox in the same context, then we will issue a warning and ignore the duplicated mailbox. I have also added a small note to voicemail.conf.sample in the explanation for searchcontexts explaining that you cannot define the same mailbox in multiple contexts if you have enabled the option. (closes issue #14599) Reported by: lmadsen Patches: 14599.patch uploaded by mmichelson (license 60) (with slight modification) Tested by: lmadsen 2009-03-05 18:22 +0000 [r180372] Kevin P. Fleming * main/rtp.c, main/frame.c, include/asterisk/frame.h: Fix problems when RTP packet frame size is changed During some code analysis, I found that calling ast_rtp_codec_setpref() on an ast_rtp session does not work as expected; it does not adjust the smoother that may on the RTP session, in fact it summarily drops it, even if it has data in it, even if the current format's framing size has not changed. This is not good. This patch changes this behavior, so that if the packetization size for the current format changes, any existing smoother is safely updated to use the new size, and if no smoother was present, one is created. A new API call for smoothers, ast_smoother_reconfigure(), was required to implement these changes. Review: http://reviewboard.digium.com/r/184/ 2009-03-04 19:22 +0000 [r180194] Joshua Colp * main/callerid.c: Look for the number in a callerid string starting from the end. This way a value using <> can exist in the name portion. (issue #AST-194) 2009-03-03 23:01 +0000 [r180010] Jason Parker * channels/chan_dahdi.c: Make sure we still support zapchan in users.conf, in addition to dahdichan. 2009-03-03 22:48 +0000 [r180006] Mark Michelson * configs/queues.conf.sample, apps/app_queue.c: Clarify some documentation of queues.conf.sample It had always been possible to explicitly specify a "blank" value for a sound file in queues.conf and have no sound played back. The problem with this is that it would result in some ugly CLI warnings from file.c. This commit introduces a check when playing a file in app_queue to see if the name of the file is zero-length and return early if that is the case. Also, the ability to specify the blank sound files in queues.conf is now mentioned more clearly in queues.conf.sample (closes issue #14227) Reported by: caspy 2009-03-03 18:27 +0000 [r179840] Joshua Colp * res/res_features.c: Do not assume that the bridge_cdr is still attached to the channel when the 'h' exten is finished executing. It is possible for a masquerade operation to occur when the 'h' exten is operating. This operation moves the CDR records around causing the bridge_cdr to no longer exist on the channel where it is expected to. We can not safely modify it afterwards because of this, so don't even try. (closes issue #14564) Reported by: meric 2009-03-03 18:11 +0000 [r179807] Steve Murphy * main/ast_expr2.fl, main/ast_expr2.c, utils/Makefile, utils/expr2.testinput, main/ast_expr2.h, main/ast_expr2.y, main/ast_expr2f.c: These changes allow AEL to better check ${} constructs within $[...], that are concatenated with text. I modified and added rules in ast_expr2.fl to better handle the concatenations. I added some default routines to ast_expr2.y so the standalone would compile. It also looks like I haven't run this thru bison since 2.1, so it's good to get this updated. The Makefile has comments added now for check_expr2 and check_expr to explain what they are for, and how to run them. The testexpr2s stuff has been removed, in favor of check_expr2. expr2.testinput has been updated to include the two expressions that inspired these changes (from mcnobody on #asterisk this morning) The regression has been run and all looks well. 2009-03-03 16:45 +0000 [r179741] Russell Bryant * main/channel.c: Ensure chan->fdno always gets reset to -1 after handling a channel fd event. Since setting fdno to -1 had to be moved, a couple of other code paths that do process an fd event return early and do not pass through the code path where it was moved to. So, set it to -1 in a few other places, too. 2009-03-03 14:38 +0000 [r179671] Joshua Colp * main/channel.c: Move where fdno is set to the default value to *after* the read callback of the channel driver is called. We have to do this as the underlying channel driver may need the fdno value to determine what to read. 2009-03-03 13:53 +0000 [r179608] Russell Bryant * main/channel.c: Make it easier to detect an improper call to ast_read(). When you call ast_waitfor() on a channel, the index into the channel fds array that holds the file descriptor that poll() determines has input available is stored in fdno. This patch clears out this value after a call to ast_read() and also reports errors if ast_read() is called without an fdno set. From a discussion on the asterisk-dev list. 2009-03-02 23:54 +0000 [r179536] Jeff Peeler * main/channel.c: Fix bridging regression from commit 176701 This fixes a bad regression where the bridge would exit after an attended transfer was made. The problem was due to nexteventts getting set after the masquerade which caused the bridge to return AST_BRIDGE_COMPLETE. (closes issue #14315) Reported by: tim_ringenbach 2009-03-02 23:34 +0000 [r179532] Russell Bryant * apps/app_meetme.c: Move ast_waitfor() down to avoid the results of the API call becoming stale. This call to ast_waitfor() was being done way too soon in this section of code. Specifically, there was code in between the call to waitfor and the code that uses the result that puts the channel in autoservice. By putting the channel in autoservice, the previous results of ast_waitfor() become meaningless, as the autoservice thread will do it's own ast_waitfor() and ast_read() on the channel. So, when we came back out of autoservice and eventually hit the block of code that calls ast_read() on the channel, there may not actually be any input on the channel available. Even though the previous call to ast_waitfor() in app_meetme said there was input, the autoservice thread has since serviced the channel for some period of time. This bug manifested itself while dvossel was doing some testing of MeetMe in Asterisk trunk. He was using the timerfd timing module. When the code hit ast_read() erroneously, it determined that it must have been called because of input on the timer fd, as chan->fdno was set to AST_TIMING_FD, since that was the cause of the last legitimate call to ast_read() done by autoservice. In this test, an IAX2 channel was calling into the MeetMe conference. It was _much_ more likely to be seen with an IAX2 channel because of the way audio is handled. Every audio frame that comes in results in a call to ast_queue_frame(), which then uses ast_timer_enable_continuous() to notify the channel thread that a frame is waiting to be handled. So, the chances of ast_waitfor() indicating that a channel needs servicing due to a timer event on an IAX2 event is very high. Finally, it is interesting to note that if a different timing interface was being used, this bug would probably not be noticed. When ast_read() is called and erroneously thinks that there is a timer event to handle, it calls the ast_timer_ack() function. The pthread and dahdi timing modules handle the ack() function being called when there is no event by simply ignoring it. In the case of the timerfd module, it results in a read() on the timer fd that will block forever, as there is no data to read. This caused Asterisk to lock up very quickly. Thanks to dvossel and mmichelson for the fun debugging session. :-) 2009-03-02 23:09 +0000 [r179468] Tilghman Lesher * main/app.c: When ending a recording with silence detection, remember to reduce the duration. The end of the recording is correspondingly trimmed, but the duration was not trimmed by the number of seconds trimmed, so the saved duration was necessarily longer than the actual soundfile duration. (closes issue #14406) Reported by: sasargen Patches: 20090226__bug14406.diff.txt uploaded by tilghman (license 14) Tested by: sasargen 2009-03-02 22:58 +0000 [r179461] Russell Bryant * main/channel.c: Ensure that only one thread is calling ast_settimeout() on a channel at a time. For example, with an IAX2 channel, you can have both the channel thread and the chan_iax2 processing threads calling this function, and doing so twice at the same time is a bad thing. (Found in a debugging session with dvossel and mmichelson) 2009-03-02 20:14 +0000 [r179395] Jason Parker * main/editline/configure, main/editline/np/unvis.c, main/editline/sys.h, main/editline/configure.in: Remove several silly warnings in editline. One about a broken preprocessor directive, and another about strlcpy/strlcat. (closes issue #14264) Reported by: dimas 2009-02-27 19:03 +0000 [r179056] Jason Parker * doc/channelvariables.txt: Update documentation for DIALEDTIME and ANSWEREDTIME variables. (closes issue #14566) Reported by: klaus3000 Patches: ANSWEREDTIME-1.4-patch.txt uploaded by klaus3000 (license 65) ANSWEREDTIME-trunk-patch.txt uploaded by klaus3000 (license 65) 2009-02-26 21:27 +0000 [r178956] Steve Murphy * configs/features.conf.sample, res/res_features.c: This change moves the default feature digit timeout to 1000 ms from the previous default of 500. As per bug 14515, a dev discussion arrived at a "mediated concensus" of a default feature digit timeout of 1.0 sec. Some voted for 1300; ctooley thought 1500 for distracted phone users in phone booths; kpfleming put his foot down at 1.0 sec. Users who found the previous default max delay of 250 msec perfect, are welcome to override the new default. Notice that I said that 250 msec was the default; wait a minute, you might say, the config file said it was 500 msec!; well, because of the bug fix for 14515, we found that 500 msec was actually enforcing a max of 250. The bug fix would restore 500 msec, but we felt even that was a bit tight for most users... 2000 msec was pushed earlier by mmichelson, so that reduces to 1000 msec after the bug fix. Enjoy! 2009-02-26 17:24 +0000 [r178838] David Vossel * channels/chan_iax2.c: IAX2 prune realtime fix Now prune_users() and prune_peers() are called instead of reload_config() to prune all users/peers that are realtime. These functions remove all users/peers with the rtfriend and delme flags set. iax2_prune_realtime() also lacked the code to properly delete a single friend. For example. if iax2 prune realtime was called, only the peer instance would be removed. The user would still remain. (closes issue #14479) Reported by: mousepad99 Review: http://reviewboard.digium.com/r/176/ 2009-02-26 17:09 +0000 [r178640-178804] Steve Murphy * res/res_features.c: This patch prevents the feature detection timeout from being cut in half. Because the ast_channel_bridge() call will return 0 and pass a frame pointer for both DTMF_BEGIN and DTMF_END, the feature_timer field in hte config struct is getting decremented twice, which effectively cuts the digittimeout in half. I added conditions to the if statement to only let DTMF_END frames to flow thru, which solved the problem. Also, when the frame pointer is null, let control flow thru-- this usually happens on timeouts. I added a comment to the code to explain what's going on and why. Many thanks to sodom for reporting this problem. Personnally, it always seemed like something was wrong with the featuredigittimeout, but I never could quite decide what... and was too busy to investigate. This bug forced the issue, and now we know. Sodom had other issues in 14515, but I couldn't reproduce them. If he still has problems, and wants to get them solved, he is welcome to reopen 14515. (closes issue #14515) Reported by: sodom Patches: 14515.patch uploaded by murf (license 17) Tested by: murf, sodom * main/ast_expr2.fl, main/ast_expr2f.c: This patch completes the fixes nec. to make 1.4 asterisk dialplan expressions ($[...]) 8-bit transparent While I was updating ast_expr2.fl, I missed one rule that would allow 8-bit chars to be caught in tokens; and in so doing, it absorbs the ${ sequence and messes up the checking of raw exprs by AEL. Trunk already has these changes. (closes issue #14543) Reported by: klaus3000 Patches: patch.14543 uploaded by murf (license 17) Tested by: murf 2009-02-25 12:43 +0000 [r178508] Russell Bryant * main/asterisk.c: Update the copyright year for the main page of the doxygen documentation. 2009-02-24 23:25 +0000 [r178445] Tilghman Lesher * configs/extensions.conf.sample: Add section about the #exec command in configuration files. (closes issue #14540) Reported by: jtodd Patch by: jtodd, with additional notes by tilghman (license 14) 2009-02-24 20:36 +0000 [r178373] Russell Bryant * main/rtp.c: Only set dtmfcount on BEGIN, and ensure it gets reset to 0 properly. (issue #14460) Reported by: moliveras Tested by: russell 2009-02-24 17:02 +0000 [r178266] Terry Wilson * apps/app_dahdiras.c, res/res_musiconhold.c: Change include order to make compile on Centos 5 with DAHDI If BIT_TYPES_DEFINED gets defined before linux/types.h is included, the __s32 type doesn't get defined 2009-02-24 15:16 +0000 [r178205] Joshua Colp * channels/chan_sip.c: Skip check for extension when subscribing for MWI. Since the remote side is not actually subscribing to a specific extension when subscribing for MWI just skip the check to see if the extension exists. They can't use it to specify the mailbox either since we require configuration of that in sip.conf (closes issue #14531) Reported by: festr 2009-02-23 23:09 +0000 [r178141] Russell Bryant * main/rtp.c: Fix infinite DTMF when a BEGIN is received without an END. This commit is related to rev 175124 of 1.4 where a previous attempt was made to fix this problem. The problem with the previous patch was that the inserted code needed to go _before_ setting the lastrxts to the current timestamp. Because those were the same, the dtmfcount variable was never decremented, and so the END was never sent. In passing, I removed the dtmfsamples variable which was completed unused. I also removed a redundant setting of the lastrxts variable. (closes issue #14460) Reported by: moliveras 2009-02-20 22:59 +0000 [r177701-177786] Tilghman Lesher * main/pbx.c: Don't print the CR-NL combination when we aren't outputting to the manager. An embedded CR-NL in a CLI command screws up several AMI parsers that don't expect to see that combination in the middle of output. (Closes issue #14305) Reported by: martins Patch by: tilghman * include/asterisk/threadstorage.h: This exception does not appear to still be true for Solaris 10, and OpenSolaris definitely needs it to be removed. Fixed for snuff-home on -dev channel. 2009-02-20 20:17 +0000 [r177696] David Vossel * channels/chan_iax2.c, include/asterisk/frame.h: Fixes issue with undefined audio codecs in chan_iax2 During iax2 call negotiation, supported codecs are passed in an Information Element containing a 2 byte field where each bit correlates to a specific codec. In 1.4 only audio codec bits 0-12 are defined, leaving bits 13-15 undefined. By default all bits are enabled unless specified otherwise. Since its a 2 byte field and 13-15 are not defined, these bits are never turned off. In trunk, bits 13-15 are defined, which means 1.4 is advertising support for codecs it does not have when talking to trunk. I fixed this by adding #define for undefined audio codec bits. These bits are then removed from iax2's full bandwidth capabilities. (closes issue #14283) Reported by: jcovert 2009-02-19 22:51 +0000 [r177540] Steve Murphy * main/ast_expr2.fl, main/Makefile, main/ast_expr2f.c: This patch fixes a problem with 8-bit input to the ast_expr2 scanner. The real culprit was the --full argument to flex in the Makefile! This causes a 7-bit scanner to be generated. I reviewed the rules and found one rule where I needed to specifically include 8-bit chars for a token. I tested against the text supplied by ibercom, and all looks very well. This has been there a surprisingly long time! (closes issue #14498) Reported by: ibercom Patches: 14498.patch uploaded by murf (license 17) Tested by: murf 2009-02-19 22:26 +0000 [r177536] Tilghman Lesher * apps/app_voicemail.c: Fix up potential crashes, by reducing the sharing between interactive and non-interactive threads. (closes issue #14253) Reported by: Skavin Patches: 20090219__bug14253.diff.txt uploaded by Corydon76 (license 14) Tested by: Skavin 2009-02-19 18:58 +0000 [r177450] Olle Johansson * channels/chan_sip.c: Force a MWI notification after subscribe request. Reported by the Resiprocate dev team. Thanks! 2009-02-19 16:37 +0000 [r177383] Joshua Colp * apps/app_speech_utils.c: If we are able to create a speech structure unset the ERROR variable in case it was previously set. (issue #LUMENVOX-13) 2009-02-18 22:43 +0000 [r177225] Steve Murphy * pbx/ael/ael.tab.c, pbx/ael/ael.y: This patch fixes a regression of sorts that was introduced in rev 24425. It basically fixes AST-190/ABE-1782. What was wrong: the user has 6000 extensions in one context; and then 6000 contexts, one per extension. The parser could only handle about 4893 of the 6000 extens in the single context. This was due to the regression I mentioned. To get rid of shift/reduce conflicts, Luigi set up right-recursive lists for globals, context elements, switch lists, and statements. Right recursive lists got rid of the warnings, but instead, they use up a tremendous amount of stack space when the lists are long. I saw this a few years back, and resolved not to fix it until someone complained. That day has arrived! After the changes were made, I ran the regression test suite, and there were no problems. I took the test case the user provided, and added 100,000 extensions to the single context, that already had 6,000 extens in it. (I'll see your 6, and raise you 100!) It takes a few minutes to read it all in, check it and generate code for it, but no problems. So, I think I can say that fundamentally, there are no longer any limits on the number of items you can place in contexts, statement blocks, switches, or globals, beyond your virt mem constraints. 2009-02-18 20:06 +0000 [r177160] Jeff Peeler * channels/h323/cisco-h225.cxx, channels/h323/compat_h323.cxx, autoconf/ast_check_pwlib.m4, channels/h323/cisco-h225.h, channels/h323/caps_h323.cxx, channels/h323/ast_h323.cxx, channels/h323/ast_ptlib.h (added), configure, channels/h323/compat_h323.h, configure.ac, channels/h323/caps_h323.h, autoconf/ast_prog_sed.m4, channels/h323/ast_h323.h, channels/h323/chan_h323.h: Modify h323 to build against PTLib as well as the older PWLib Several changes in PTLib have occurred requiring build time detection. Changes accounted for include the library name change, config option change, install location change, and a boolean type change which is handled by ast_ptlib.h. Also, the sed check has been modified to properly work with autoconf >= 2.62. (closes issue #14224) Reported by: bergolth Patches: asterisk-autoconf-sed.patch uploaded by bergolth (license 661) asterisk-pwlib-v3.patch uploaded by bergolth (license 661) Tested by: jpeeler 2009-02-18 18:30 +0000 [r177096] Tilghman Lesher * include/asterisk/config.h: Document the return value of the update method (as requested on -dev list) 2009-02-18 17:41 +0000 [r176945-177039] Doug Bailey * main/utils.c: Merged revisions 177035 manually from https://origsvn.digium.com/svn/asterisk/trunk ........ r177035 | dbailey | 2009-02-18 11:24:07 -0600 (Wed, 18 Feb 2009) | 2 lines Fixed error where a check for an zero length, terminated string was needed. ........ * main/utils.c: Need to take into account the \0 terminator of the old string to determine the amount available. 2009-02-18 00:34 +0000 [r176810] Shaun Ruffell * codecs/codec_dahdi.c: Several changes to codec_dahdi to play nice with G723. This commit brings in the changes that were living out on the svn/asterisk/team/sruffell/asterisk-1.4-transcoder branch. codec_dahdi.c now always uses signed linear as the simple codec so that a soft g729 codec will not end up being preferred to the hardware codec. There are also changes to allow codec_dahdi.c to feed packets to the hardware in the native sample size of the codec. This solves problems with choppy audio when using G723. 2009-02-17 21:54 +0000 [r176701] Jeff Peeler * main/channel.c, res/res_features.c, include/asterisk/channel.h: Modify bridging to properly evaluate DTMF after first warning is played The main problem is currently if the Dial flag L is used with a warning sound, DTMF is not evaluated after the first warning sound. To fix this, a flag has been added in ast_generic_bridge for playing the warning which ensures that if a scheduled warning is missed, multiple warrnings are not played back (due to a feature evaluation or waiting for digits). ast_channel_bridge was modified to store the nexteventts in the ast_bridge_config structure as that information was lost every time ast_channel_bridge was reentered, causing a hangup due to incorrect time calculations. (closes issue #14315) Reported by: tim_ringenbach Reviewed on reviewboard: http://reviewboard.digium.com/r/163/ 2009-02-17 21:21 +0000 [r176426-176661] Tilghman Lesher * channels/chan_local.c: Backport change to 1.4: Prior to masquerade, move the group definitions to the channel performing the masq, so that the group count lingers past the bridge. (closes issue #14275) Reported by: kowalma Patches: 20090216__bug14275.diff.txt uploaded by Corydon76 (license 14) Tested by: kowalma * channels/chan_sip.c: After a 'sip reload', qualifies for realtime peers weren't immediately restarted, instead waiting until the next registration. We're now caching the qualify across a reload/restart and starting the qualify immediately upon loading the peer. (closes issue #14196) Reported by: pdf Patches: 20090120__bug14196_1.4.diff.txt uploaded by pdf (license 663) Tested by: pdf 2009-02-16 23:30 +0000 [r176354] David Vossel * channels/chan_iax2.c: Fixes issue with AST_CONTROL_SRCUPDATE not being relayed correctly during bridging This should have been committed with rev176247, but I missed it. srcupdate frames no longer break out of the native bridge, but are not being sent to the other call leg either. This fixs that. issue #13749 2009-02-16 21:41 +0000 [r176254] Kevin P. Fleming * main/utils.c: correct a logic error in the last stringfields commit... don't mark additional space as allocated if the string was built using already-allocated space 2009-02-16 21:39 +0000 [r176249-176252] Mark Michelson * apps/app_meetme.c: Remove unused variable and make dev-mode compilation happy * apps/app_meetme.c: Open the DAHDI pseudo device and set it to be nonblocking atomically Apparently on FreeBSD, attempting to set the O_NONBLOCKING flag separately from opening the file was causing an "inappropriate ioctl for device" error. While I cannot fathom why this would be happening, I certainly am not opposed to making the code a bit more compact/efficient if it also fixes a bug. (closes issue #14482) Reported by: ys Patches: meetme.patch uploaded by ys (license 281) Tested by: ys 2009-02-16 21:28 +0000 [r176247] David Vossel * channels/chan_iax2.c: Fixes issue with AST_CONTROL_SRCUPDATE breaking out of native bridge In iax2, when a AST_CONTROL_SRCUPDATE is received it breaks from the native bridge, but since there is no code path to handle srcupdate it just goes to be beginning of the loop. This was causing packet storms of srcupdate frames between servers. Now srcupdate frames do not break the native bridge for processing. (closes issue #13749) Reported by: adiemus 2009-02-16 21:10 +0000 [r176216] Kevin P. Fleming * main/utils.c: fix a flaw in the ast_string_field_build() family of API calls; these functions made no attempt to reuse the space already allocated to a field, so every time the field was written it would allocate new space, leading to what appeared to be a memory leak. 2009-02-16 15:33 +0000 [r176029] Joshua Colp * channels/chan_sip.c: Don't have the Via header stored as a stringfield as it can change often during the lifetime of a dialog. This issue crept up with subscriptions on the AA50. When an outgoing NOTIFY is sent a new branch value is created and the Via header is changed to reflect it. Since this was a stringfield a new spot in the pool was used for the value while the old was left untouched/unused. If the current pool was full a new pool was created. This would cause memory usage to increase steadily. (issue #AA50-2332) 2009-02-15 23:37 +0000 [r175921] Michiel van Baak * main/pbx.c, channels/chan_sip.c, main/devicestate.c, include/asterisk/manager.h: fix mis-spelling of the word registered. Reported by De_Mon on #asterisk-dev. 2009-02-15 20:33 +0000 [r175777-175825] Olle Johansson * formats/format_ilbc.c: format_ilbc does not depend on codec libraries and can therefore always be made. My mistake. Ursäkta! * formats/format_ilbc.c: Disable format_ilbc.so by default, like codec_ilbc.so * channels/chan_sip.c: Make sure that the debug line is not printed on debug level 0 2009-02-13 21:53 +0000 [r175698] Jason Parker * include/asterisk/dahdi_compat.h: Zaptel is not DAHDI. Rather, Zaptel is actually Zaptel. (in case you're confused, DAHDI is still DAHDI) 2009-02-13 19:47 +0000 [r175407-175590] Mark Michelson * apps/app_voicemail.c: Fix a potential crash situation when using IMAP voicemail If calling into VoiceMailMain when using IMAP storage, it was possible to crash Asterisk by hanging up the phone when prompted for a voicemail mailbox. This patch fixes the issue. While it may appear that this patch is superficial, it allows code execution to continue to the failure case just below the IMAP_STORAGE code block where this patch has been applied (closes issue #14473) Reported by: dwpaul Patches: voicemail_imap_crash_no_mailbox.patch uploaded by dwpaul (license 689) * main/file.c: Fix a place where filestreams were not refcounted properly This section was already present in trunk and other branches, but did not exist in 1.4. (closes issue #14395) Reported by: ZX81 Patches: 14395.patch uploaded by putnopvut (license 60) Tested by: ZX81 2009-02-12 21:19 +0000 [r175311] Tilghman Lesher * main/udptl.c: Fix crashes when receiving certain T.38 packets. Also, increase the maximum size of T.38 packets and warn users when they try to set the limits above those maximums. (closes issue #13050) Reported by: schern Patches: 20090212__bug13050.diff.txt uploaded by Corydon76 (license 14) Tested by: schern 2009-02-12 20:34 +0000 [r175187-175294] Jeff Peeler * res/res_features.c: Fix ParkedCall event information for From field in the case of a blind transfer If the parker information can not be obtained from the peer, try and see if the BLINDTRANSFER channel variable has been set. Previously, a blind transfer to the ParkAndAnnounce app would return nothing for the From. Closes AST-189 * res/res_features.c: Fix crash in event of failed attempt to transfer to parking The peer may not necessarily exist, such as in the case of a transfer to ParkAndAnnounce. In this case don't try to play a sound to it. 2009-02-12 16:51 +0000 [r175124] Russell Bryant * main/rtp.c: Don't send DTMF for infinite time if we do not receive an END event. I thought that this was going to end up being a pretty gnarly fix, but it turns out that there was actually already a configuration option in rtp.conf, dtmftimeout, that was intended to handle this situation. However, in between Asterisk 1.2 and Asterisk 1.4, the code that processed the option got lost. So, this commit brings it back to life. The default timeout is 3 seconds. However, it is worth noting that having this be configurable at all is not really the recommended behavior in RFC 2833. From Section 3.5 of RFC 2833: Limiting the time period of extending the tone is necessary to avoid that a tone "gets stuck". Regardless of the algorithm used, the tone SHOULD NOT be extended by more than three packet interarrival times. A slight extension of tone durations and shortening of pauses is generally harmless. Three seconds will pretty much _always_ be far more than three packet interarrival times. However, that behavior is not required, so I'm going to leave it with our legacy behavior for now. Code from svn/asterisk/team/russell/issue_14460 (closes issue #14460) Reported by: moliveras 2009-02-12 10:16 +0000 [r175029] Philippe Sultan * channels/chan_gtalk.c: Set the initiator attribute to lowercase in our replies when receiving calls. This attribute contains a JID that identifies the initiator of the GoogleTalk voice session. The GoogleTalk client discards Asterisk's replies if the initiator attribute contains uppercase characters. (closes issue #13984) Reported by: jcovert Patches: chan_gtalk.2.patch uploaded by jcovert (license 551) Tested by: jcovert 2009-02-12 00:19 +0000 [r174997] Joshua Colp * main/rtp.c: Revert RTP changes for continuation of DTMF. Proxy commit by russell via SMS. 2009-02-12 00:01 +0000 [r174985-174986] Russell Bryant * main/rtp.c: Clear out the current event after forcing the end of a digit * main/rtp.c: Fixify infinite DTMF in the case that no RFC2833 END event is ever received 2009-02-11 20:54 +0000 [r174885] Tilghman Lesher * main/pbx.c, apps/app_macro.c: Restore a behavior that was recently changed, when we fixed issue #13962 and issue #13363 (related to issue #6176). When a hangup occurs during a Macro execution in earlier 1.4, the h extension would execute within the Macro context, whereas it was always supposed to execute only within the main context (where Macro was called). So this fix checks for an "h" extension in the deepest macro context where a hangup occurred; if it exists, that "h" extension executes, otherwise the main context "h" is executed. (closes issue #14122) Reported by: wetwired Patches: 20090210__bug14122.diff.txt uploaded by Corydon76 (license 14) Tested by: andrew 2009-02-10 18:50 +0000 [r174644] Joshua Colp * channels/chan_sip.c: Go off hold when we get an empty reinvite telling us to. (closes issue #14448) Reported by: frawd Patches: hold_invite_nosdp.patch uploaded by frawd (license 610) 2009-02-10 17:52 +0000 [r174583] Matthew Nicholson * main/jitterbuf.c: Improve behavior of jitterbuffer when maxjitterbuffer is set. This change improves the way the jitterbuffer handles maxjitterbuffer and dramatically reduces the number of frames dropped when maxjitterbuffer is exceeded. In the previous jitterbuffer, when maxjitterbuffer was exceeded, all new frames were dropped until the jitterbuffer is empty. This change modifies the code to only drop frames until maxjitterbuffer is no longer exceeded. Also, previously when maxjitterbuffer was exceeded, dropped frames were not tracked causing stats for dropped frames to be incorrect, this change also addresses that problem. (closes issue #14044) Patches: bug14044-1.diff uploaded by mnicholson (license 96) Tested by: mnicholson Review: http://reviewboard.digium.com/r/144/ 2009-02-10 02:27 +0000 [r174369] Steve Murphy * apps/app_rpt.c: This patch solves some compiler complaints in both 32 and 64-bit environments. 2009-02-09 17:11 +0000 [r174282] Mark Michelson * channels/chan_sip.c: Don't do an SRV lookup if a port is specified RFC 3263 says to do A record lookups on a hostname if a port has been specified, so that's what we're going to do. See section 4.2. (closes issue #14419) Reported by: klaus3000 Patches: patch_chan_sip_nosrvifport_1.4.23.txt uploaded by klaus3000 (license 65) 2009-02-09 14:48 +0000 [r174218] Joshua Colp * res/res_musiconhold.c: Don't overwrite our pointer to the music class when music on hold stops. We will use this if it starts again to see if we can resume the music where it left off. (closes issue #14407) Reported by: mostyn 2009-02-07 16:15 +0000 [r174148] Russell Bryant * res/snmp/agent.c: Fix a race condition that could cause a crash. 2009-02-06 23:36 +0000 [r174082] Dwayne M. Hubbard * channels/chan_sip.c: check ast_strlen_zero() before calling ast_strdupa() in sip_uri_headers_cmp() and sip_uri_params_cmp() The reporter didn't actually upload a properly-formed patch, instead a modified chan_sip.c file was uploaded. I created a patch to determine the changes, then modified the suggested changes to create a proper fix. The summary above is a complete description of the changes. (closes issue #13547) Reported by: tecnoxarxa Patches: chan_sip.c.gz uploaded by tecnoxarxa (license 258) Tested by: tecnoxarxa 2009-02-06 17:15 +0000 [r173967-173968] Joshua Colp * channels/chan_sip.c: Remove a debug message I put in by accident. * channels/chan_sip.c: Some clients do not put the call-id for replaces at the beginning, so support it being anywhere in the string. (closes issue #14350) Reported by: fhackenberger 2009-02-06 16:20 +0000 [r173917] Matthew Nicholson * channels/chan_sip.c: Limit the addition of the Contact header in SIP responses according to various SIP RFCs. (closes issue #13602) Reported by: hjourdain Tested by: mnicholson 2009-02-06 15:43 +0000 [r173900] Tilghman Lesher * utils/muted.c: Backport OS X fix from trunk (AGAIN, closes issue #14360) 2009-02-05 23:19 +0000 [r173770] Mark Michelson * channels/chan_sip.c: Fix logic regarding when to perform an SRV lookup for outgoing REGISTER requests With this fix, we only will perform an SRV lookup at the following times: * The first time we register with a remote registrar * If we send a REGISTER but do not receive a response * If the sendto() function returns an error While I wrote the patch that fixes this issue, a huge amount of credit is due to Brett Bryant, who wrote the initial patch on which I based this one. (closes issue #12312) Reported by: jrast Patches: 12312.patch uploaded by putnopvut (license 60) Tested by: blitzrage Review: http://reviewboard.digium.com/r/132/ 2009-02-05 20:47 +0000 [r173696] Jeff Peeler * apps/app_voicemail.c: Add new configuration option to make shared IMAP mailboxes function as expected. The new option is "imapvmshareid" which is an ID to tag multiple mailboxes using the same IMAP storage location to function as one mailbox. This allows all messages to be retrieved for any user in the group. The patch alters the 'X-Asterisk-VM-Extension' header that is responsible for matching voicemails for a given user. (closes issue #13673) Reported by: howardwilkinson 2009-02-05 20:29 +0000 [r173392-173692] Mark Michelson * apps/app_queue.c: Fix situations where queue members could be autopaused unexpectedly Specifically, this patch prevents us from autopausing members when we receive a busy or congestion frame from them. (closes issue #14376) Reported by: fiddur Patches: 14376.patch uploaded by putnopvut (license 60) Tested by: fiddur * apps/app_mixmonitor.c: Add some missing cleanup to app_mixmonitor * apps/app_mixmonitor.c: Fix a problem where a channel pointer becomes invalid due to masquerading or hanging up. app_mixmonitor runs its own thread to monitor the channel's activity and write the mixed audio to a file. Since this thread runs independently of the channel, it is possible that the mixmonitor thread's channel pointer will point to freed memory when the channel either is masqueraded or hangs up (technically, both cases are hangups, but we need to handle the cases slightly differently). The solution for this is to employ a datastore, which has the nice benefit of allowing us to hook into channel masquerades and hangups and update our pointer as necessary. If this looks familiar, this same technique is employed in app_chanspy. app_chanspy is a bit more involved since it does a lot more operations on the channel that is being spied upon. app_mixmonitor does have an extra touch that app_chanspy doesn't have, though. Since there is a thread race between the channel's thread and the mixmonitor thread on a hangup, we em- ploy a condition-and-boolean combination to ensure that the channel thread finishes with our structure before the mixmonitor thread attempts to free it. No crashes! (closes issue #14374) Reported by: aragon Patches: 14374.patch uploaded by putnopvut (license 60) Tested by: aragon, putnopvut * apps/app_chanspy.c: Revert my previous change because it was stupid * apps/app_chanspy.c: Add a missing unlock. Extremely unlikely to ever matter, but it's needed. 2009-02-03 23:35 +0000 [r173248] David Vossel * channels/chan_iax2.c: Fixes issue with IAX2 transfer not handing off calls. Fixes issue with IAX2 transfers not taking place. As it was, a call that was being transfered would never be handed off correctly to the call ends because of how call numbers were stored in a hash table. The hash table, "iax_peercallno_pvt", storing all the current call numbers did not take into account the complications associated with transferring a call, so a separate hash table was required. This second hash table "iax_transfercallno_pvt" handles calls being transfered, once the call transfer is complete the call is removed from the transfer hash table and added to the peer hash table resuming normal operations. Addition functions were created to handle storing, removing, and comparing items in the iax_transfercallno_pvt table. (issue #13468) Review: http://reviewboard.digium.com/r/140/ 2009-02-03 21:57 +0000 [r173211] Jeff Peeler * res/res_features.c: Parking attempts made to one end of a bridge no longer will hang up due to a parking failure. Parking attempts made using either one-touch, or doing either a blind or assisted transfer to the parking extension now keep up the bridge instead of hanging up the attempted parked party. Normal causes for the parking attempt to fail includes the specific specified extension (via PARKINGEXTEN) not being available or if all the parking spaces are currently in use. To avoid having to reverse a masquerade park_space_reserve was made to provide foresight if a parking attempt will succeed and if so reserve the parking space. (closes issue #13494) Reported by: mdu113 Reviewed by Russell: http://reviewboard.digium.com/r/133/ 2009-02-03 00:15 +0000 [r173070] Tilghman Lesher * configs/extensions.conf.sample: Add warning to standard config, that globals may be overridden by other dialplan configuration files. (closes issue #14388) Reported by: macli 2009-02-02 23:48 +0000 [r173066] Terry Wilson * res/res_features.c: Fix a feature inheritance bug I added after code review 2009-02-02 20:28 +0000 [r172962] Richard Mudgett * channels/chan_dahdi.c, configs/chan_dahdi.conf.sample: channels/chan_dahdi.c * Added doxygen comments to the major dahdi structures. * Fixed PRI using an incorrect string value if the extension delimiter is not present in the Dial() function. * Fixed some uninitialized string variables on FXS ports. configs/chan_dahdi.conf.sample * Updated some documentation. These changes are already in trunk -r172400 2009-01-31 00:15 +0000 [r172517-172639] Terry Wilson * configs/features.conf.sample, res/res_features.c: Rename new parkedcallparking option to parkedcallreparking Since this option actually already existed in 1.6.0+, use the same name so as not to confuse people when they upgrade * configs/features.conf.sample, apps/app_dial.c, main/global_datastores.c, res/res_features.c, doc/channelvariables.txt, include/asterisk/global_datastores.h, CHANGES: Fix feature inheritance with builtin features When using builtin features like parking and transfers, the AST_FEATURE_* flags would not be set correctly for all instances when either performing a builtin attended transfer, or parking a call and getting the timeout callback. Also, there was no way on a per-call basis to specify what features someone should have on picking up a parked call (since that doesn't involve the Dial() command). There was a global option for setting whether or not all users who pickup a parked call should have AST_FEATURE_REDIRECT set, but nothing for DISCONNECT, AUTOMON, or PARKCALL. This patch: 1) adds the BRIDGE_FEATURES dialplan variable which can be set either in the dialplan or with setvar in channels that support it. This variable can be set to any combination of 't', 'k', 'w', and 'h' (case insensitive matching of the equivalent dial options), to set what features should be activated on this channel. The patch moves the setting of the features datastores into the bridging code instead of app_dial to help facilitate this. 2) adds global options parkedcallparking, parkedcallhangup, and parkedcallrecording to be similar to the parkedcalltransfers option for globally setting features. 3) has builtin_atxfer call builtin_parkcall if being transfered to the parking extension since tracking everything through multiple masquerades, etc. is difficult and error-prone 4) attempts to fix all cases of return calls from parking and completed builtin transfers not having the correct permissions (closes issue #14274) Reported by: aragon Patches: fix_feature_inheritence.diff.txt uploaded by otherwiseguy (license 396) Tested by: aragon, otherwiseguy Review http://reviewboard.digium.com/r/138/ 2009-01-29 22:54 +0000 [r172438] Tilghman Lesher * main/asterisk.c, apps/app_nbscat.c, autoconf/ast_func_fork.m4, apps/app_festival.c, build_tools/menuselect-deps.in, configure, apps/app_dahdiras.c, apps/app_mp3.c, res/res_agi.c, apps/app_externalivr.c, apps/app_ices.c, res/res_musiconhold.c: Lose the CAP_NET_ADMIN at every fork, instead of at startup. Otherwise, if Asterisk runs as a non-root user and the administrator does a 'restart now', Asterisk loses the ability to set QOS on packets. (closes issue #14004) Reported by: nemo Patches: 20090105__bug14004.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 2009-01-29 08:48 +0000 [r172169] Olle Johansson * channels/chan_sip.c: Make sure that we always add the hangupcause headers. In some cases, the owner was disconnected before we checked for the cause. This patch implements a temporary storage in the pvt and use that instead. The code is based on ideas from code from Adomjan in issue #13385 (Add support for Reason: header) Thanks to Klaus Darillion for testing! (closes issue #14294) related to issue #13385 Reported by: klaus3000 and adomjan Patches: bug14294b.diff uploaded by oej (license 306) Based on 20080829_chan_sip.c-q850reason_header.patch uploaded by adomjan (license 487) Tested by: oej, klaus3000 2009-01-28 18:51 +0000 [r172030] Steve Murphy * apps/app_channelredirect.c, main/pbx.c, main/manager.c, res/res_features.c, include/asterisk/channel.h: This patch fixes h-exten running misbehavior in manager-redirected situations. What it does: 1. A new Flag value is defined in include/asterisk/channel.h, AST_FLAG_BRIDGE_HANGUP_DONT, which used as a messenge to the bridge hangup exten code not to run the h-exten there (nor publish the bridge cdr there). It will done at the pbx-loop level instead. 2. In the manager Redirect code, I set this flag on the channel if the channel has a non-null pbx pointer. I did the same for the second (chan2) channel, which gets run if name2 is set... and the first succeeds. 3. I restored the ending of the cdr for the pbx loop h-exten running code. Don't know why it was removed in the first place. 4. The first attempt at the fix for this bug was to place code directly in the async_goto routine, which was called from a large number of places, and could affect a large number of cases, so I tested that fix against a fair number of transfer scenarios, both with and without the patch. In the process, I saw that putting the fix in async_goto seemed not to affect any of the blind or attended scenarios, but still, I was was highly concerned that some other scenarios I had not tested might be negatively impacted, so I refined the patch to its current scope, and jmls tested both. In the process, tho, I saw that blind xfers in one situation, when the one-touch blind-xfer feature is used by the peer, we got strange h-exten behavior. So, I inserted code to swap CDRs and to set the HANGUP_DONT field, to get uniform behavior. 5. I added code to the bridge to obey the HANGUP_DONT flag, skipping both publishing the bridge CDR, and running the h-exten; they will be done at the pbx-loop (higher) level instead. 6. I removed all the debug logs from the patch before committing. 7. I moved the AUTOLOOP set/reset in the h-exten code in res_features so it's only done if the h-exten is going to be run. A very minor performance improvement, but technically correct. (closes issue #14241) Reported by: jmls Patches: 14241_redirect_no_bridgeCDR_or_h_exten_via_transfer uploaded by murf (license 17) Tested by: murf, jmls 2009-01-28 17:25 +0000 [r171963] Tilghman Lesher * channels/chan_dahdi.c: Clarify log message (suggested by manxpower on #asterisk-dev) 2009-01-28 13:07 +0000 [r171837] Olle Johansson * configs/sip.conf.sample: Add a better explanation of the difference between the device namespace and the dialplan for newbies. 2009-01-27 21:55 +0000 [r171621-171689] Mark Michelson * channels/chan_agent.c: Fix devicestate problems for "always-on" agent channels A revision to chan_agent attempted to "inherit" the device state of the underlying channel in order to report the device state of an agent channel more accurately. The problem with the logic here is that it makes no sense to use this for always-on agents. If the agent is logged in, then to the underlying channel, the agent will always appear to be "in use," no matter if the agent is on a call or not. The reason is that to the underlying channel, the channel is currently in use on a call to the AgentLogin application. The most common cause that I found for this issue to occur was for a SIP channel to be the underlying channel type for an Agent channel. If the SIP phone re-registers, then the registration will cause the device state core to query the device state of the SIP channel. Since the SIP channel is in use, the Agent channel would also inherit this status. Once the agent channel was set to "in use" there was no way that the device state could change on that channel unless the agent logged out. The solution for this problem is a bit different in 1.4 than it is in the other branches. In 1.4, there will be a one-line fix to make sure that only callback agents will inherit device state from their underlying channel type. For the other branches of Asterisk, since callback support has been removed, there is also no need for device state inheritance in chan_agent, so I will simply be removing it from the code. In addition, the 1.4 source is getting a new comment to help the next person who edits chan_agent.c. I'm adding a comment that a agent_pvt's loginchan field may be used to determine if the agent is a callback agent or not. (closes issue #14173) Reported by: nathan Patches: 14173.patch uploaded by putnopvut (license 60) Tested by: nathan, aramirez * main/slinfactory.c: Prevent a crash from occurring when a jitter buffer interpolated frame is removed from a slinfactory slinfactory used the "samples" field of an ast_frame in order to determine the amount of data contained within the frame. In certain cases, such as jitter buffer interpolated frames, the frame would have a non-zero value for "samples" but have NULL "data" This caused a problem when a memcpy call in ast_slinfactory_read would attempt to access invalid memory. The solution in use here is to never feed frames into the slinfactory if they have NULL "data" (closes issue #13116) Reported by: aragon Patches: 13116.diff uploaded by putnopvut (license 60) 2009-01-27 14:33 +0000 [r171527] Olle Johansson * channels/chan_sip.c: Use the same branch tag in CANCEL as in INVITE Originally putnopvut implemented some changes in revision 142079 that according to the bug report seemed to have worked then, but somehow fails now. I guess code, as humans, get old and forget stuff. Anyway, this bug caused CANCEL not to work with picky systems. Thanks Fredrik for pointing out where the bug in the SIP messaging was. (closes issue #14346) Reported by: oej Patches: bug14346.diff uploaded by oej (license 306) Tested by: oej 2009-01-26 21:31 +0000 [r171452] Russell Bryant * channels/chan_iax2.c: Resolve some synchronization issues in chan_iax2 scheduler handling. The important changes here are related to the synchronization between threads adding items into the scheduler and the scheduler handling thread. By adjusting the lock and condition handling, we ensure that the scheduler thread sleeps no longer and no less than it is supposed to. We also ensure that it does not wake up more often than it has to. There is no bug report associated with this. It is just something that I found while putting scheduler thread handling into a reusable form (review 129). Review: http://reviewboard.digium.com/r/131/ 2009-01-26 12:51 +0000 [r171264] Olle Johansson * channels/chan_sip.c: Don't retransmit 401 on REGISTER requests when alwaysauthreject=yes (closes issue #14284) Reported by: klaus3000 Patches: patch_chan_sip_unreliable_1.4.23_14284.txt uploaded by klaus3000 (license 65) Tested by: klaus3000 2009-01-25 23:44 +0000 [r171120-171187] Tilghman Lesher * channels/chan_oss.c: Correctly track the hookstate (closes issue #13686) Reported by: itiliti Patches: 20081013__bug13686.diff.txt uploaded by Corydon76 (license 14) * res/res_agi.c: Err, yeah. * res/res_agi.c: Add thread to kill zombies, when child processes don't die immediately on SIGHUP. (closes issue #13968) Reported by: eldadran Patches: 20090114__bug13968.diff.txt uploaded by Corydon76 (license 14) Tested by: eldadran 2009-01-25 13:33 +0000 [r170979] Sean Bright * apps/app_page.c: Resolve a logic error that was causing Page() to crash when more than one channel was specified. (closes issue #14308) Reported by: bluefox Patches: 20090124__bug14308.diff.txt uploaded by seanbright (license 71) Tested by: kc0bvu 2009-01-24 13:55 +0000 [r170836] Tilghman Lesher * configs/res_odbc.conf.sample: Remove superfluous implementation note (closes issue #14319) 2009-01-23 20:55 +0000 [r170671-170719] Mark Michelson * configs/res_odbc.conf.sample: Add notes to the idlecheck explanation in res_odbc.conf.sample (closes issue #14319) Reported by: klaus3000 Patches: patch_idlecheck_res_odbc.conf.sample.txt uploaded by klaus3000 (license 65) * contrib/i18n.testsuite.conf: Update contrib/i18n.testsuite.conf to not use deprecated syntax * Convert Wait,1 to Wait(1) * Convert SetLanguage to Set(CHANNEL(language)) * Use 'n' for all priorities beyond the first Also added test for Chinese numbers, too. (closes issue #14320) Reported by: dant Patches: i18n.testsuite.conf.issue14320.v2.diff uploaded by dant (license 670) 2009-01-23 20:16 +0000 [r170648] Joshua Colp * main/channel.c: When a channel is answered make sure any indications currently playing stop. Usually the phone would do this but if the channel was already answered then they are being generated by Asterisk and we darn well need to stop them. (closes issue #14249) Reported by: RadicAlish 2009-01-23 Tilghman Lesher * Asterisk 1.4.23.1 released. * channels/chan_iax2.c: Regression fix for AST-2009-001 security fix. 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 used the astobj2 reference counted object model. This code has been in one of Luigi Rizzo's branches for a long time and was primarily developed by one of his students, Marta Carbone. I wanted to go ahead and bring this in to 1.4 because there are other problems similar to the ones fixed by these changes, so we might as well go ahead and use the new astobj if we're going to go through all of the work necessary to fix the problems. As a nice side benefit of these changes, peer and user handling got more efficient. Using astobj2 lets us not hold the container lock for peers or users nearly as long while iterating. Also, by changing a define at the top of chan_iax2.c, the objects will be distributed in a hash table, drastically increasing lookup speed in these containers, which will have a very big impact on systems that have a large number of users or peers. The use of the hash table will be made the default in trunk. It is not the default in 1.4 because it changes the behavior slightly. Previously, since peers and users were stored in memory in the same order they were specified in the configuration file, you could influence peer and user matching order based on the order they are specified in the configuration. The hash table does not guarantee any order in the container, so this behavior will be going away. It just means that you have to be a little more careful ensuring that peers and users are matched explicitly and not forcing chan_iax2 to have to guess which user is the right one based on secret, host, and access list settings, instead of simply using the username. If you have any questions, feel free to ask on the asterisk-dev list. * res/res_agi.c: Juggie in #asterisk-dev was reporting problems where fgets would return without reading the whole line when using fastagi. When this happens, errno was set to EINTR or EAGAIN. This patch accounts for the possibility and lets fgets continue in that case. 2007-08-22 18:53 +0000 [r80302-80330] Jason Parker * Makefile, build_tools/mkpkgconfig, build_tools/make_build_h, build_tools/strip_nonapi, build_tools/prep_moduledeps, build_tools/make_buildopts_h: Fix a few build issues in Solaris (and likely others). Use GREP and ID variables from autoconf. Reported to me in #asterisk-dev I forgot who reported this - sorry. :( * Makefile: Change a syntax that the GNU make in Solaris dislikes. * build_tools/make_version: Fix a bashism (we explicitly request /bin/sh). Remove some oddly placed quotes I found in passing. 2007-08-22 16:21 +0000 [r80257] Russell Bryant * Makefile: Honor the contents of the COPTS variable as custom target CFLAGS. Apparently this is what openwrt does. (reported by Brian Capouch on the asterisk-dev list, patch by me) 2007-08-22 16:14 +0000 [r80255] Joshua Colp * main/rtp.c: (closes issue #10526) Reported by: sinistermidget Revert commit from issue #10355 and return timestamp skew to 640. 2007-08-21 Russell Bryant * Asterisk 1.4.11 released. 2007-08-21 18:42 +0000 [r80183] Russell Bryant * channels/chan_sip.c: Don't record SIP dialog history if it's not turned on. Also, put an upper limit on how many history entires will be stored for each SIP dialog. It is currently set to 50, but can be increased if deemed necessary. (closes issue #10421, closes issue #10418, patches suggested by jmoldenhauer, patches updated by me) (Security implications documented in AST-2007-020) 2007-08-21 16:39 +0000 [r80166-80167] Steve Murphy * include/asterisk/alaw.h, include/asterisk/ulaw.h: ugh. removing the diffs from ulaw.h and alaw.h for now; accidentally added them in 80166 * main/alaw.c, include/asterisk/alaw.h, include/asterisk/ulaw.h: This patch solves problem 1 in 8126; it should not slow down the alaw codec, but should prevent signal degradation via multiple trips thru the codec. Fossil estimates the twice thru this codec will prevent fax from working. 4-6 times thru would result hearable, noticeable, voice degradation. 2007-08-21 15:22 +0000 [r80132] Russell Bryant * channels/chan_mgcp.c: Don't try to dereference the owner channel when it may not exist (issue #10507, maxper) 2007-08-21 15:03 +0000 [r80130] Jason Parker * configs/cdr.conf.sample: (issue #10510) Reported by: casper Patches: cdr.conf.diff uploaded by casper (license 55) Fix a few errors in sample cdr config file. 2007-08-20 21:57 +0000 [r80088] Russell Bryant * apps/app_queue.c: Fix the build of app_queue 2007-08-20 21:39 +0000 [r80049-80086] Mark Michelson * apps/app_queue.c: After a discussion on #asterisk-dev, it was decided that this should be in 1.4 as well. (issue #10424, reported and patched by irroot) * apps/app_queue.c: Found a pointless ternary if. member->dynamic was set to 1 and has no opportunity to change between then and this line, so "dynamic" will ALWAYS be output. 2007-08-20 16:08 +0000 [r80047] Jason Parker * configs/extensions.conf.sample: (issue #10499) Reported by: casper Patches: extensions.conf.sample.diff uploaded by casper (license 55) Update CLI examples in extensions.conf.sample to reflect command changes. 2007-08-20 15:34 +0000 [r80044] Mark Michelson * apps/app_voicemail.c: Ukrainian language voicemail support. (closes issue #10458, reported and patched by Oleh) 2007-08-20 02:42 +0000 [r79998] Tilghman Lesher * apps/app_voicemail.c: Missing curly braces. Oops. (Reported by snuffy via IRC) 2007-08-18 14:30 +0000 [r79947] Tilghman Lesher * apps/app_voicemail.c: Don't allocate vmu for messagecount when we could just use the stack instead (closes issue #10490) Also, remove a useless (and leaky) SQLAllocHandle (closes issue #10480) 2007-08-17 21:01 +0000 [r79912] Russell Bryant * channels/chan_zap.c: Avoid a crash in the handling of DTMF based Caller ID. It is valid for ast_read to return NULL in the case that the channel has been hung up. (crash reported by anonymouz666 on IRC in #asterisk-dev) 2007-08-17 19:14 +0000 [r79906] Mark Michelson * apps/app_voicemail.c: Patch allows for more seamless transition from file storage voicemail to ODBC storage voicemail. If a retrieval of a greeting from the database fails, but the file is found on the file system, then we go ahead an insert the greeting into the database. The result of this is that people who switch from file storage to ODBC storage do not need to rerecord their voicemail greetings. 2007-08-17 19:12 +0000 [r79902-79904] Jason Parker * channels/chan_sip.c, main/utils.c, include/asterisk/strings.h: Don't send a semicolon over the wire in sip notify messages. Caused by fix for issue 9938. I basically took the code that existed before 9938 was fixed, and copied it into a new function - ast_unescape_semicolon There should be very few places this will be needed (pbx_config does NOT need this (see issue 9938 for details)) Issue 10430, patch by me, with help/ideas from murf (thanks murf). * channels/chan_local.c: Re-add the setting of callerid name and number. Issue 10485, reported by and fix explained by paradise. 2007-08-17 13:37 +0000 [r79857] Russell Bryant * channels/chan_sip.c: Fix some crashes in chan_sip. This patch changes various places that add items to the scheduler to ensure that they don't overwrite the ID of a previously scheduled item. If there is one, it should be removed. (closes issue #10391, closes issue #10256, probably others, patch by me) 2007-08-17 08:22 +0000 [r79833] Christian Richter * channels/chan_misdn.c: sometimes we don't need to signal dtmf tones to asterisk, we just want them to go through as inband. Otherwise they might be generated by the other channel partner and then there is a double tone. 2007-08-16 22:32 +0000 [r79756-79792] Russell Bryant * res/res_musiconhold.c: Fix a little race condition that could cause a crash if two channels had MOH stopped at the same time that were using a class that had been marked for deletion when its use count hits zero. * res/res_musiconhold.c: This patch fixes a bug where reloading the module with "module reload" did not delete classes from memory that were no longer in the config. This patch fixes that problem as well as another one. Previously, if you reloaded MOH using the "moh reload" CLI command, which behaved differently than "module reload ...", MOH had to be stopped on every channel and started again immediately. However, there was no way to tell what class was being used, so they would all fall back to the default class. (closes issue #10139) Reported by: blitzrage Patches: asterisk-10139-advanced.diff.txt uploaded by jamesgolovich (license 176) Tested by: jamesgolovich * channels/chan_iax2.c: Fix more deadlocks in chan_iax2 that were introduced by making frame handling and scheduling multi-threaded. Unfortunately, we have to do some expensive deadlock avoidance when queueing frames on to the ast_channel owner of the IAX2 pvt struct. This was already handled for regular frames, but ast_queue_hangup and ast_queue_control were still used directly. Making these changes introduced even more places where the IAX2 pvt struct can disappear in the context of a function holding its lock due to calling a function that has to unlock/lock it to avoid deadlocks. I went through and fixed all of these places to account for this possibility. (issue #10362, patch by me) 2007-08-16 21:16 +0000 [r79690-79748] Mark Michelson * channels/chan_agent.c: Fixes a problem where agents would get stuck busy due to their wrapuptime being longer than the queue's wrapuptime and ringinuse=no for the queue. (closes issue #10215, reported by Doug, repaired by me) Special thanks to fkasumovic for pointing out the source of the problem and to bweschke for helping to come up with a solution! * apps/app_voicemail.c: base_encode is not trying to open a log file, so we should not call it a log file in the warning. (related to issue #10452, reported by bcnit) 2007-08-16 09:37 +0000 [r79665] Philippe Sultan * res/res_jabber.c: A fix for two critical problems detected while working with Daniel McKeehan in issue #10184. Upon priority change, the resource list is not NULL terminated when moving an item to the end of the list. This makes Asterisk endlessy loop whenever it needs to read the list. Jids with different resource and priority values, like in Gmail's and GoogleTalk's jabber clients put that problem in evidence. Upon reception of a 'from' attribute with an empty resource string, Asterisk crashes when trying to access the found->cap pointer if the resource list for the given buddy is not empty. This situation is perfectly valid and must be handled. The Gizmoproject's jabber client put that problem in evidence. Also added a few comments in the code as well as a handle for the capabilities from Gmail's jabber client, which are stored in a caps:c tag rather than the usual c tag. Closes issue #10184. 2007-08-16 08:21 +0000 [r79642] Christian Richter * channels/misdn/ie.c: 0x80 + protocol is wrong for USERUSER when we want to send IA5 Chars. 2007-08-15 14:40 +0000 [r79553] Joshua Colp * main/rtp.c: (closes issue #10440) Reported by: irroot (closes issue #10454) Reported by: flo_turc Increase maximum timestamp skew to 120. 20 was apparently far too low. 2007-08-15 14:26 +0000 [r79527] Mark Michelson * apps/app_voicemail.c: Fixed an error in the Russian language voicemail intro. (issue #10458, reported and patched by Oleh) 2007-08-15 14:18 +0000 [r79523] Joshua Colp * channels/chan_sip.c: (closes issue #10456) Reported by: irroot Patches: sip_timeout.patch uploaded by irroot (license 52) Change hardcoded timer value to defined value. I'm doing this in 1.4 as well so if it needs to be changed in the future this place would not have been forgotten. 2007-08-14 18:49 +0000 [r79436-79470] Russell Bryant * channels/chan_iax2.c: Fix another spot where an iax2_peer would be leaked if realtime was in use. * channels/chan_iax2.c: Fix some memory leaks throughout chan_iax2 related to the use of realtime. I found these while working on iax2_peer object reference tracking. 2007-08-14 15:27 +0000 [r79397] Joshua Colp * res/res_features.c: (closes issue #10415) Reported by: atis Revert fix for #10327 as it causes more issues then it solves. 2007-08-13 22:40 +0000 [r79363] Steve Murphy * pbx/pbx_ael.c: memset really, really needs to be used here. 2007-08-13 21:57 +0000 [r79334] Joshua Colp * res/res_speech.c, apps/app_speech_utils.c, include/asterisk/speech.h: Instead of accepting a single DTMF character accept a full string. 2007-08-13 20:37 +0000 [r79272-79301] Russell Bryant * channels/chan_iax2.c: Don't call find_peer in registry_authrequest with the pvt lock held to avoid a deadlock. * channels/chan_iax2.c: Release the pvt lock before calling find_peer in register_verify to avoid a deadlock. Also, remove some unnecessary locking in auth_fail that was only done recursively. * channels/chan_iax2.c: Don't call find_peer within update_registry with a pvt lock held. This can cause a deadlock as the code will eventually call find_callno. * channels/chan_iax2.c: I am fighting deadlocks in chan_iax2. I have tracked them down to a single core issue. You can not call find_callno() while holding a pvt lock as this function has to lock another (every) other pvt lock. Doing so can lead to a classic deadlock. So, I am tracking down all of the code paths where this can happen and fixing them. The fix I committed earlier today was along the same theme. This patch fixes some code down the path of authenticate_reply. 2007-08-13 17:49 +0000 [r79255] Steve Murphy * pbx/ael/ael-test/ref.ael-vtest21 (added), pbx/ael/ael-test/ref.ael-test19, pbx/ael/ael-test/ael-vtest21/extensions.ael (added), pbx/ael/ael-test/ael-vtest21 (added), 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-test11, pbx/pbx_ael.c, pbx/ael/ael-test/ref.ael-test14, utils/ael_main.c: This patch fixes bug 10411. I added a new regression test, some regression test cleanups 2007-08-13 15:28 +0000 [r79214] Russell Bryant * channels/chan_iax2.c: Fix a potential deadlock in socket_process. check_provisioning can eventually call find_callno. You can't hold a pvt lock while calling find_callno because it goes through and locks every single one looking for a match. 2007-08-13 14:51 +0000 [r79174-79207] Joshua Colp * res/res_speech.c, apps/app_speech_utils.c, include/asterisk/speech.h: Add an API call to allow the engine to know that DTMF was received. * channels/chan_oss.c, channels/chan_mgcp.c, channels/chan_phone.c, channels/chan_local.c, channels/chan_misdn.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_skinny.c, channels/chan_h323.c, channels/chan_gtalk.c, channels/chan_iax2.c: (closes issue #10437) Reported by: haklin Don't set the callerid name and number a second time on a newly created channel. ast_channel_alloc itself already sets it and setting it twice would cause a memory leak. 2007-08-11 05:23 +0000 [r79142] Tilghman Lesher * res/res_odbc.c: Ensure the connection gets marked as used at allocation time (closes issue #10429, report and fix by mnicholson) 2007-08-10 20:53 +0000 [r79044-79099] Steve Murphy * main/channel.c, pbx/pbx_spool.c, include/asterisk/channel.h: From a user complaint on #asterisk, I have forced pbx_spool to explain what reason codes mean, when they are logged * main/cdr.c: Re bug behavior mentioned in #asterisk, made this tweak to code, to prevent hundreds of log messages from being generated * main/cdr.c: This will help debug; from a question asked on #asterisk 2007-08-10 Russell Bryant * Asterisk 1.4.10.1 released. 2007-08-10 15:20 +0000 [r78995] Russell Bryant * include/asterisk/lock.h: The last set of changes that I made to "core show locks" made it not able to track mutexes unless they were declared using AST_MUTEX_DEFINE_STATIC. Locks initialized with ast_mutex_init() were not tracked. It should work now. 2007-08-10 14:15 +0000 [r78951-78955] Joshua Colp * main/file.c: Don't bother having the core pass through or emulate begin DTMF frames when in an ast_waitstream. It only cares about the end of DTMF. * configs/queues.conf.sample: (closes issue #10422) Reported by: bhowell Add note to sample configuration about module load order and how it can cause perfectly good queue members to be marked as invalid. 2007-08-10 13:24 +0000 [r78936] Christian Richter * channels/chan_misdn.c, channels/misdn/ie.c, channels/misdn/isdn_msg_parser.c: fixed a bug with the useruser information element. We send them now also in the disconnect message. 2007-08-09 23:47 +0000 [r78907] Mark Michelson * apps/app_voicemail.c: Improved a bit of logic regarding comma-separated mailboxes in has_voicemail. Also added some braces to some compound if statements since unbraced if statements scare me in general. 2007-08-09 23:10 +0000 [r78891] Steve Murphy * Makefile: This fixes bug 10416; thanks to mvanbaak for the pretty output 2007-08-09 22:03 +0000 [r78826-78860] Mark Michelson * apps/app_voicemail.c: Removing some extra debug code I left in my last commit * apps/app_voicemail.c: Quite a few changes regarding IMAP storage. 1. instead of using inboxcount as the core message counting function, we use messagecount instead. This makes it possible to count messages in folders besides just INBOX and Old. 2. inboxcount and hasvoicemail now use messagecount as their means of determining return values. 3. Added a copy_message function for IMAP storage. Unfortunately I don't have the means to test it, but it seems like a pretty straightforward function. 4. Removed a #ifndef IMAP_STORAGE and matching #endif from leave_voicemail for a couple of reasons. One, we want to support copying mail to multiple IMAP boxes, and two, IMAP was broken because a STORE macro had been moved into this section of code. * channels/chan_sip.c: I broke canreinvite...Now I'm fixing it. I put some new code in the wrong place and so I've reverted the canreinvite section to how it was and put my new code where it should be. 2007-08-09 17:58 +0000 [r78717-78778] Russell Bryant * apps/app_voicemail.c: add a comment to indicate that inboxcount for ODBC_STORAGE needs to be fixed to support multiple mailboxes * apps/app_voicemail.c: Fix subscriptions to multiple mailboxes for ODBC_STORAGE. Also, leave a comment for this to be fixed for IMAP_STORAGE, as well. I left IMAP alone since I know MarkM was working on this code right now for another reason. This is broken even worse in trunk, but for a different reason. The fact that the mailbox option supported multiple mailboxes is completely not obvious from the code in the channel drivers. Anyway, I will fix that in another commit ... * apps/app_meetme.c: Fix a problem with the combination of the 'F' option to pass DTMF through a conference and options that use DTMF to activate various features. The problem was that the BEGIN frame would be passed through, but the END frame would get intercepted to activate a feature. Then, the other conference members would hear DTMF for forever, which they didn't seem to like very much. (closes issue #10400, reported by stevefeinstein, fixed by me) 2007-08-08 19:29 +0000 [r78646] Jason Parker * doc/jabber.txt: Fix mogs email address. 2007-08-08 18:16 +0000 [r78575-78620] Mark Michelson * apps/app_voicemail.c: Fixed some compiler warnings so that compiling with dev-mode and IMAP storage would not have any errors. This section of code may get changed again shortly since my change uncovers a rather silly bit of logic. * apps/app_queue.c: Changing a bit of logic so that someone will NEVER exit the queue on timeout unless they have enabled the 'n' option. This commit relates to issue #10320. Thanks to jfitzgibbon for detailing the idea behind this code change. 2007-08-08 13:51 +0000 [r78569] Joshua Colp * configs/sip.conf.sample: (closes issue #10335) Reported by: adamgundy Update sip.conf to include another scenario where directrtpsetup will fail. 2007-08-07 Russell Bryant * Asterisk 1.4.10 released. 2007-08-07 20:57 +0000 [r78488] Russell Bryant * res/res_config_odbc.c: Fix the build of this module on 64-bit platforms 2007-08-07 19:43 +0000 [r78450] Mark Michelson * apps/app_voicemail.c: The logic behind inboxcount's return value was reversed in has_voicemail and message_count. (closes issue #10401, reported by st1710, patched by me) 2007-08-07 19:34 +0000 [r78437] Tilghman Lesher * res/res_odbc.c: Don't free the environment handle when the connection fails, because other connections might be depending upon it 2007-08-07 19:11 +0000 [r78416] Jason Parker * channels/chan_sip.c: Allow chan_sip to build in devmode 2007-08-07 19:09 +0000 [r78415] Tilghman Lesher * apps/app_voicemail.c, res/res_config_odbc.c, apps/app_directory.c: Reconnection doesn't happen automatically when a DB goes down (fixes issue #9389) 2007-08-07 18:25 +0000 [r78375] Jason Parker * channels/chan_skinny.c: Properly check the capabilities count to avoid a segfault. (ASA-2007-019) 2007-08-07 17:45 +0000 [r78371] Russell Bryant * channels/chan_zap.c, /: Merged revisions 78370 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r78370 | russell | 2007-08-07 12:44:04 -0500 (Tue, 07 Aug 2007) | 4 lines Revert patch committed for issue #9660. It broke E&M trunks. (closes issue #10360) (closes issue #10364) ........ 2007-08-06 21:41 +0000 [r78275] Joshua Colp * main/channel.c: Add additional DTMF log messages to help when debugging issues. 2007-08-06 20:44 +0000 [r78184-78242] Russell Bryant * channels/chan_iax2.c: Fix an issue where dynamic threads can get free'd, but still exist in the dynamic thread list. (closes issue #10392, patch from Mihai, with credit to his colleague, Pete) * include/asterisk/linkedlists.h: Fix the return value of AST_LIST_REMOVE(). This shouldn't be causing any problems, though, because the only code that uses the return value only checks to see if it is NULL. (closes issue #10390, pointed out by mihai) 2007-08-06 16:32 +0000 [r78182] Joshua Colp * channels/chan_sip.c: It is possible for a transfer to occur before the remote device has our tag in which case they send none in the transfer. In this case we need to not fail the transfer dialog lookup. 2007-08-06 16:30 +0000 [r78180] Jason Parker * main/config.c: Fix an issue with using UpdateConfig (manager action) where escaped semicolons in a config would be converted to just semicolons (\; to ;) Issue 9938 2007-08-06 15:27 +0000 [r78166-78172] Joshua Colp * main/rtp.c: (closes issue #10355) Reported by: wdecarne Now that we pass through RTP timestamp information we need to make the allowed timestamp skew considerably less. There are situations where a source may change and due to the timestamp difference the receiver will experience an audio gap since we did not indicate by setting the marker bit that the source changed. * configure, configure.ac: (closes issue #10383) Reported by: rizzo Include stdlib.h so NULL gets defined for gethostbyname_r checks. 2007-08-06 13:33 +0000 [r78164] Mark Michelson * channels/chan_sip.c: Fixed a mistake I made in realtime_peer which caused it to return NULL every time. Thanks to Jon Fealy for emailing me the correction. 2007-08-05 14:18 +0000 [r78146] Tilghman Lesher * cdr/cdr_pgsql.c: Portability fix for devmode compiling (closes bug #10382) 2007-08-05 04:15 +0000 [r78143] Russell Bryant * include/asterisk/lock.h: Fix compilation failure when MALLOC_DEBUG is enabled, but DEBUG_THREADS is not 2007-08-05 03:29 +0000 [r78139] Tilghman Lesher * channels/chan_sip.c: If peer is not found, the error message is misleading (should be peer not found, not ACL failure) 2007-08-03 20:25 +0000 [r78103] Mark Michelson * main/config.c, channels/chan_sip.c, include/asterisk/config.h: Changed the behavior of sip's realtime_peer function to match the corresponding way of matching for non-realtime peers. Now matches are made on both the IP address and port number, or if the insecure setting is set to "port" then just match on the IP address. In order to accomplish this, I also added a new API call, ast_category_root, which returns the first variable of an ast_category struct 2007-08-03 20:14 +0000 [r78028-78101] Russell Bryant * apps/app_voicemail.c: (closes issue #10194) Reported by: blitzrage Patches: bug0010194 uploaded by vovochka Tested by: blitzrage Fix a problem when you call Voicemail() with multiple mailboxes specified and ODBC_STORAGE is in use. The audio part of the message was only given to the first mailbox specified. * main/utils.c, include/asterisk/lock.h, main/astmm.c: Add some improvements to lock debugging. These changes take effect with DEBUG_THREADS enabled and provide the following: * This will keep track of which locks are held by which thread as well as which lock a thread is waiting for in a thread-local data structure. A reference to this structure is available on the stack in the dummy_start() function, which is the common entry point for all threads. This information can be easily retrieved using gdb if you switch to the dummy_start() stack frame of any thread and print the contents of the lock_info variable. * All of the thread-local structures for keeping track of this lock information are also stored in a list so that the information can be dumped to the CLI using the "core show locks" CLI command. This introduces a little bit of a performance hit as it requires additional underlying locking operations inside of every lock/unlock on an ast_mutex. However, the benefits of having this information available at the CLI is huge, especially considering this is only done in DEBUG_THREADS mode. It means that in most cases where we debug deadlocks, we no longer have to request access to the machine to analyze the contents of ast_mutex_t structures. We can now just ask them to get the output of "core show locks", which gives us all of the information we needed in most cases. I also had to make some additional changes to astmm.c to make this work when both MALLOC_DEBUG and DEBUG_THREADS are enabled. I disabled tracking of one of the locks in astmm.c because it gets used inside the replacement memory allocation routines, and the lock tracking code allocates memory. This caused infinite recursion. * channels/chan_iax2.c: Only pass through HOLD and UNHOLD control frames when the mohinterpret option is set to "passthrough". This was pointed out by Kevin in the middle of a training session. * channels/chan_iax2.c: Don't reuse the timespec that was set to 0 in the previous timedwait as it will just return immediately. Also, fix some logic so the thread's lock isn't unlocked twice in the weird case of dynamic threads getting acquired right after a timeout. (pointed out by SteveK) 2007-08-02 21:53 +0000 [r77993-77996] Jason Parker * channels/chan_skinny.c, configs/skinny.conf.sample: Make sure we actually allow 6 chars to be sent. Also make note of the "A" option of date format. Issue 9779, modifications by DEA, wedhorn, and myself. * channels/chan_skinny.c: If a device disconnects, the session will go away. If this happens during call setup, we need to give up. Issue 10325. 2007-08-02 19:25 +0000 [r77949] Russell Bryant * channels/chan_iax2.c: Fix the case where a dynamic thread times out waiting for something to do during the first time it runs. This shouldn't ever happen, but we should account for it anyway. (pointed out by pete, who works with mihai) 2007-08-02 18:42 +0000 [r77947] Jason Parker * channels/chan_skinny.c: Make sure we clear the prompt status message on a hangup. Also rearrange messages to better fit with what a wireshark trace shows it should be. Issue 10299, initial patch and solution by sbisker, modified by me to fit with wireshark trace. 2007-08-02 18:21 +0000 [r77945] Steve Murphy * main/fskmodem.c, /: Merged revisions 77942 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77942 | murf | 2007-08-02 11:56:37 -0600 (Thu, 02 Aug 2007) | 1 line This patch hopefully solves 10141; The user is running with it, and it doesn't appear to harm asterisk's operation, and may prevent a crash. I'll store it in 1.2, as we have shut down support on 1.2, but since I developed the patch before support finished, and it might affect 1.4 and trunk, I'm going ahead with it. ........ 2007-08-02 18:04 +0000 [r77939-77943] Russell Bryant * channels/chan_iax2.c: Fix another race condition in the handling of dynamic threads. If the dynamic thread timed out waiting for something to do, but was acquired to perform an action immediately afterwords, then wait on the condition again to give the other thread a chance to finish setting up the data for what action this thread should perform. Otherwise, if it immediately continues, it will perform the wrong action. (reported on IRC by mihai, patch by me) (related to issue #10289) * channels/chan_iax2.c: Add another sanity check to vnak_retransmit(). This check ensures that frames that have already been marked for deletion don't get retransmitted. (closes issue #10361, patch from mihai) 2007-08-02 15:15 +0000 [r77890-77894] Jason Parker * channels/chan_skinny.c: Make sure that we show the correct extension if dialed from a macro "From: 5555" rather than "From: s" Issue 10358, initial patch by DEA, reworked by me to use S_OR, tested by sbisker * channels/chan_skinny.c: Put in some additional debug information for softkey/stimulus messages. Issue 10291, patch by DEA. 2007-08-01 22:16 +0000 [r77887] Russell Bryant * channels/chan_iax2.c: Fix some race conditions which have been causing weird problems in chan_iax2. The most notable problem is that people have been seeing storms of VNAK frames being sent due to really old frames mysteriously being in the retransmission queue and never getting removed. It was possible that a dynamic thread got created, but did not acquire its lock before the thread that created it signals it to perform an action. When this happens, the thread will sleep until it hits a timeout, and then get destroyed. So, the action never gets performed and in some cases, means a frame doesn't get transmitted and never gets freed since the scheduler never gets a chance to reschedule transmission. Another less severe race condition is in the handling of a timeout for a dynamic thread. It was possible for it to be acquired to perform at action at the same time that it hit a timeout. When this occurs, whatever action it was acquired for would never get performed. (patch contributed by Mihai and SteveK) (closes issue #10289) (closes issue #10248) (closes issue #10232) (possibly related to issue #10359) 2007-08-01 22:14 +0000 [r77886] Tilghman Lesher * apps/app_voicemail.c: Voicemail with ODBC_STORAGE defined does not compile cleanly (missing def) 2007-08-01 21:08 +0000 [r77883] Jason Parker * channels/chan_skinny.c: Fix an issue that caused one-way audio on some newer devices (specifically the 7921), due to sending packets in the wrong order during hangup. Also make sure we clear tones/messages on the correct line/instance. Issue 10291, patch by DEA, tested by sbisker and myself. 2007-08-01 18:08 +0000 [r77863-77871] Joshua Colp * main/cli.c: (closes issue #10351) Reported by: ftarz Some platforms don't like it when you pass NULL to vsnprintf so pass "" instead. * include/asterisk/threadstorage.h, channels/chan_mgcp.c, apps/app_voicemail.c, main/acl.c, utils/smsq.c, channels/chan_iax2.c: Add some fixes for building on Solaris. * main/utils.c: Whoops, I meant R_5 not R5. * configure, configure.ac: And for my last trick... make sure that if gethostbyname_r is exported by a library that it is used. * configure, include/asterisk/autoconfig.h.in, configure.ac, main/utils.c: Extend autoconf logic to determine which version of gethostbyname_r is on the system. 2007-08-01 14:08 +0000 [r77852-77854] Mark Michelson * apps/app_queue.c: Fixes an issue I introduced to queues wherein a queue with joinempty=yes would kick people out of the queue because of erroneously thinking the 'n' option was in use. (closes issue #10320, reported by jfitzgibbon, patched by me, tested by blitzrage and me) Thank you blitzrage for all the testing you've done lately with queues! It's much appreciated! * apps/app_queue.c: If a queue uses dynamic realtime members, then the member list should be updated after each attempt to call the queue. This fixes an issue where if a caller calls into a queue where no one is logged in, they would wait forever even if a member logged in at some point. (closes issue #10346, reported by and tested by blitzrage, patched by me) 2007-07-31 21:09 +0000 [r77845-77846] Jim Dixon * apps/app_rpt.c: Much newer version, 0.70 with much additions * main/dsp.c, channels/chan_zap.c: Made VAST improvements in DTMF receiver in RADIO_RELAX mode (thanx Steve W9SH), and oversight in logic in TONE_VERIFY/RELAX mode in chan_zap. 2007-07-31 20:59 +0000 [r77844] Steve Murphy * /, contrib/scripts/ast_grab_core: Merged revisions 77842 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77842 | murf | 2007-07-31 13:19:35 -0600 (Tue, 31 Jul 2007) | 1 line This probably isn't super-general, but it's a first stab at using kill -11 to generate a core file instead of gcore. ........ 2007-07-31 16:17 +0000 [r77831] Joshua Colp * res/res_speech.c, include/asterisk/speech.h: Add a flag to the speech API that allows an engine to set whether it received results or not. 2007-07-31 15:53 +0000 [r77827] Kevin P. Fleming * build_tools/cflags.xml: DETECT_DEADLOCKS can't be enabled without DEBUG_THREADS or it does nothing 2007-07-31 15:21 +0000 [r77824] Mark Michelson * channels/chan_sip.c: This patch makes Asterisk send 100 Trying provisional responses upon receipt of re-invites. This makes it so that if there are two or more Asterisk servers between endpoints, the Asterisk servers will not keep retransmitting the re-invites. (closes issue #10274, reported by cstadlmann, patched by me with approval from file) 2007-07-30 20:17 +0000 [r77795] Jason Parker * main/say.c: Applications like SayAlpha() should not hang up the channel if you request an "unknown" character such as a comma. Instead, skip the character and move on. Issue 10083, initial patch by jsmith, modified by me. 2007-07-30 20:16 +0000 [r77785-77794] Russell Bryant * channels/chan_iax2.c: Fix an issue that could potentially cause corruption of the global iax frame queue. In the network_thread() loop, it traverses the list using the AST_LIST_TRAVERSE_SAFE macro. However, to remove an element of the list within this loop, it used AST_LIST_REMOVE, instead of AST_LIST_REMOVE_CURRENT, which I believe could leave some of the internal variables of the SAFE macro invalid. Mihai says that he already made this change in his local copy and it didn't help his VNAK storm issues, but I still think it's wrong. :) * res/res_agi.c: (closes issue #10279) Reported by: seanbright Patches: res_agi.carefulwrite.1.4.07252007.patch uploaded by seanbright (license 71) res_agi.carefulwrite.trunk.07252007.patch uploaded by seanbright (license 71) Allow the "agi_network: yes" line to be printed out in the AGI debug output. Also, allow partial writes to be handled when writing out this line just like it is for all of the others. * main/channel.c: file and I both committed changes for issue #10301. Remove a duplicated assignment to restore the original value of the previous channel. 2007-07-30 18:43 +0000 [r77783] Tilghman Lesher * /, res/res_agi.c: Merged revisions 77782 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77782 | tilghman | 2007-07-30 13:40:54 -0500 (Mon, 30 Jul 2007) | 2 lines Revert change in revision 71656, even though it fixed a bug, because many people were depending upon the (broken) behavior. ........ 2007-07-30 17:29 +0000 [r77780] Russell Bryant * main/channel.c: (closes issue #10301) Reported by: fnordian Patches: asterisk-1.4.9-channel.c.patch uploaded by fnordian (license 110) Additional changes by me Fix some problems in channel_find_locked() which can cause an infinite loop. The reference to the previous channel is set to NULL in some cases. These changes ensure that the reference to the previous channel gets restored before needing it again. I'm not convinced that the code that is setting it to NULL is really the right thing to do. However, I am making these changes to fix the obvious problem and just leaving an XXX comment that it needs a better explanation that what is there now. 2007-07-30 17:11 +0000 [r77768-77778] Joshua Colp * res/res_features.c: (closes issue #10327) Reported by: kkiely Instead of directly mucking with the extension/context/priority of the channel we are transferring when it has a PBX simply call ast_async_goto on it. This will ensure that the channel gets handled properly and sent to the right place. * main/channel.c: (closes issue #10301) Reported by: fnordian Patches: asterisk-1.4.9-channel.c.patch uploaded by fnordian (license 110) Restore previous behavior where if we failed to lock the channel we wanted we would return to exactly the same point as if we had just reentered the function. * /, apps/app_macro.c: Merged revisions 77767 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77767 | file | 2007-07-30 11:50:02 -0300 (Mon, 30 Jul 2007) | 4 lines (closes issue #10334) Reported by: ramonpeek Pass through the return value from macro_exec through the MacroIf application. ........ 2007-07-27 18:15 +0000 [r77571] Tilghman Lesher * res/res_odbc.c: Missing newline 2007-07-27 17:04 +0000 [r77536-77540] Joshua Colp * cdr/cdr_pgsql.c: (closes issue #10310) Reported by: prashant_jois Patches: cdr_pgsql.patch uploaded by prashant (license 114) Finish the Postgresql connection after the log messages are printed so we don't access invalid memory. * channels/chan_sip.c: (closes issue #10323) Reported by: julianjm Patches: chan_sip_device_state_hold_fix.v1.diff.txt uploaded by julianjm (license 99) Clear ONHOLD flag when decrementing the onHold peer count. If we did not do this the count may keep decreasing. 2007-07-27 14:30 +0000 [r77490] Mark Michelson * channels/chan_sip.c: "re-invite" was misspelled 2007-07-26 23:19 +0000 [r77460] Joshua Colp * main/channel.c: (closes issue #10302) Reported by: litnialex If a DTMF end frame comes from a channel without a begin and it is going to a technology that only accepts end frames (aka INFO) then use the minimum DTMF duration if one is not in the frame already. 2007-07-26 22:16 +0000 [r77424-77429] Kevin P. Fleming * doc/mp3.txt: change protocol for downloads as well * doc/mp3.txt, sounds/Makefile: use new canonical name for download server 2007-07-26 21:23 +0000 [r77410] Russell Bryant * Makefile, build_tools/make_buildopts_h: AST_DEVMODE was defined in trunk, but not in 1.4. When Asterisk is compiled under dev mode, AST_DEVMODE will get defined in buildopts.h. Change 1.4 to define it in the same way that trunk does. Also, revert the change that added this define in the Makefile The advantage to doing it this way is that buildopts.h gets installed when you install Asterisk. Then, when building any out of tree modules, or building asterisk-addons, these modules know which options the rest of Asterisk was built with. 2007-07-26 20:35 +0000 [r77380] Mark Michelson * Makefile, main/logger.c: Fixes to get ast_backtrace working properly. The AST_DEVMODE macro was never defined so the majority of ast_backtrace never attempted compilation. The makefile now defines AST_DEVMODE if configure was run with --enable-dev-mode. Also, changes were made to acccomodate 64 bit systems in ast_backtrace. Thanks to qwell, kpfleming, and Corydon76 for their roles in allowing me to get this committed 2007-07-26 19:32 +0000 [r77348-77350] Tilghman Lesher * main/logger.c: Missed one * main/logger.c: Oops, that builtin define should be all-lowercase. 2007-07-26 18:30 +0000 [r77318] Mark Michelson * cdr/cdr_pgsql.c: Two consecutive calls to PQfinish could occur, meaning free gets called on the same variable twice. This patch sets the connection to NULL after calls to PQfinish so that the problem does not occur. Also in this patch, prashant_jois informed me that it is safe to pass a null pointer to PQfinish, so I have removed the check for conn's existence from my_unload_module. (closes issue 10295, reported by junky, patched by me with input from prashant_jois) 2007-07-25 22:39 +0000 [r77191] Steve Murphy * apps/app_meetme.c: This fix solves problem with intense squelch noise when someone joins conf in bug 9430; We repro'd the problem with meetme opts of 'CciMo'; Josh Colp supplied this patch, and I'm applying it. It looks like playing the recorded username will louse up the next thing played into the channel. Josh rearranged the code so as to start things over before playing data directly into the conference. 2007-07-25 22:16 +0000 [r77176] Joshua Colp * apps/app_speech_utils.c: (closes issue #10303) Reported by: jtodd Add SPEECH_DTMF_TERMINATOR variable so the user can specify the digit to terminate a DTMF string with. If none is specified then no terminator will be used. 2007-07-25 21:52 +0000 [r77154] Mark Michelson * main/channel.c: chan->emulate_dtmf_duration is an unsigned int, not a signed int, so use %u instead of %d in the format string 2007-07-25 20:23 +0000 [r77116-77136] Jason Parker * /: so are my fingers... * /: autotagexternals script is still obviously misbehaving... * /: use autotagged externals 2007-07-25 17:14 +0000 [r77071] Joshua Colp * configure, acinclude.m4: Fix autoconf logic for finding OpenH323 when it is not in the first place searched (/usr/share/openh323). 2007-07-25 09:34 +0000 [r77022] Luigi Rizzo * main/rtp.c: set the sequence number in a frame for all frame types 2007-07-25 00:18 +0000 [r76983] Steve Murphy * channels/chan_zap.c, /: Merged revisions 76978 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76978 | murf | 2007-07-24 18:07:24 -0600 (Tue, 24 Jul 2007) | 1 line this fixes bug 10293, where the error message because defaultzone or loadzone was not defined was confusing ........ 2007-07-24 22:12 +0000 [r76891-76937] Tilghman Lesher * /, include/asterisk/lock.h: Merged revisions 76934 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76934 | tilghman | 2007-07-24 17:11:33 -0500 (Tue, 24 Jul 2007) | 2 lines Oops, res contains the error code, not errno. I was wondering why a mutex was reporting "No such file or directory"... ........ * main/app.c: Found another place where we should be using the umask (thanks jcmoore) 2007-07-24 Jason Parker * Asterisk 1.4.9 released. 2007-07-24 16:42 +0000 [r76803-76805] Jason Parker * channels/chan_iax2.c: Don't create the Asterisk channel until we are starting the PBX on it. (ASA-2007-018) 2007-07-24 16:26 +0000 [r76801] Mark Michelson * apps/app_queue.c: Added a membercount variable to call_queue struct which keeps track of the number of logged in members in a particular queue. This makes it so that the 'n' option for Queue() can act properly depending on which strategy is used. If the strategy is roundrobin, rrmemory, or ringall, we want to ring each phone once before moving on in the dialplan. However, if any other strategy is used, we will only ring one phone since it cannot be guaranteed that a different phone will ring on subsequent attempts to ring a phone. As a side effect of this, the QUEUE_MEMBER_COUNT dialplan function now just reads the membercount variable instead of traversing through the member list to figure out how many members there are. Special thanks to blitzrage for helping to test this out. (closes issue #10127, reported by bcnit, patched by me, tested by blitzrage) 2007-07-23 22:38 +0000 [r76708] Tilghman Lesher * apps/app_voicemail.c: It was our stated intention for 1.4 that files created in app_voicemail should depend upon the umask. Unfortunately, mkstemp() creates files with mode 0600, regardless of the umask. This corrects that deficiency. 2007-07-23 18:59 +0000 [r76656] Jason Parker * channels/chan_skinny.c: Fix some incorrect softkey labels in messages. Don't try to play dialtone in some unimplemented features. 2007-07-23 18:29 +0000 [r76654] Joshua Colp * /, channels/chan_agent.c: Merged revisions 76653 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76653 | file | 2007-07-23 15:28:13 -0300 (Mon, 23 Jul 2007) | 4 lines (closes issue #5866) Reported by: tyler Do not force channel format changes when a generator is present. The generator may have changed the formats itself and changing them back would cause issues. ........ 2007-07-23 17:57 +0000 [r76620] Jason Parker * channels/chan_skinny.c: Don't try to queue up hold/unhold frames on a non-existent channel. Issue 10276. 2007-07-23 17:48 +0000 [r76519-76618] Joshua Colp * apps/app_morsecode.c: Allow app_morsecode to build on PPC Linux by putting the value of the digit char in an int. * /, channels/chan_sip.c: Merged revisions 76560 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76560 | file | 2007-07-23 11:32:07 -0300 (Mon, 23 Jul 2007) | 6 lines (closes issue #10236) Reported by: homesick Patches: rpid_1.4_75840.patch uploaded by homesick (license 91) Accept Remote Party ID on guest calls. ........ * channels/chan_skinny.c: (closes issue #10268) Reported by: mvanbaak Patches: chan_skinny_openbsd.diff uploaded by mvanbaak (license 7) Add another OS that has to use the Macros for byte ordering. 2007-07-23 12:25 +0000 [r76485] Russell Bryant * channels/chan_iax2.c: Use a signed integer for storing the number of bytes in the packet read from the network. Using an unsigned value here made it impossible to handle an error returned from recvfrom(). Furthermore, in the case that recvfrom() did return an error, this would cause a crash due to a heap overflow. (closes issue #10265, reported by and fix suggested by timrobbins) 2007-07-21 02:02 +0000 [r76227] Russell Bryant * /, channels/chan_sip.c: Merged revisions 76226 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76226 | russell | 2007-07-20 21:01:46 -0500 (Fri, 20 Jul 2007) | 4 lines Backport a fix for a memory leak that was fixed in trunk in reivision 76221 by rizzo. The memory used for the localaddr list was not freed during a configuration reload. ........ 2007-07-20 21:36 +0000 [r76211] Steve Murphy * sounds/Makefile: This patch from 10249 is worth applying! It prevents downloading sound files if they are already downloaded. Darn Practical, if you ask me 2007-07-20 21:03 +0000 [r76174-76178] Jason Parker * channels/chan_skinny.c: Allow getting a call from an existing "sub" channel. Cancel ringing if endpoint hangs up before answering. Fixes were backported from trunk (there was apparently a bit of confusion during merge of a previous patch). (closes issue #10241) * main/manager.c: Eliminate a compiler warning with gcc 4.2 by constifying a char * * channels/chan_skinny.c: It's possible for sub->owner to be NULL here if you cancel the call immediately after/during sending a digit. 2007-07-20 18:42 +0000 [r76139] Mark Michelson * apps/app_directory.c: When using users.conf for the entries in the directory, if multiple users had the same last name, only the first user listed would be available in the directory. (closes issue #10200, reported by mrskippy, patched by me) 2007-07-20 18:22 +0000 [r76132] Russell Bryant * main/channel.c: Use the define that specifies the default length of an artificially created DTMF digit in the ast_senddigit() function. The define is set to 100ms by default, which is the same thing that this function was using. But, using the define lets changes take effect in this case, as well as the others where it was already used. 2007-07-20 17:20 +0000 [r76054-76087] Joshua Colp * /, channels/chan_sip.c: Merged revisions 76080 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76080 | file | 2007-07-20 14:16:48 -0300 (Fri, 20 Jul 2007) | 6 lines (closes issue #10247) Reported by: fkasumovic Patches: chan_sip.patch uploaded by fkasumovic (license #101) Drop any peer realm authentication entries when reloading so multiple entries do not get added to the peer. ........ * res/res_convert.c: (closes issue #10246) Reported by: fkasumovic Patches: res_conver.patch uploaded by fkasumovic (license #101) Use the last occurance of . to find the extension, not the first occurance. * apps/app_queue.c: Move makeannouncement variable declaration to proper place. 2007-07-19 20:36 +0000 [r75980] Jason Parker * channels/chan_skinny.c: Remove some duplicate code. 2007-07-19 18:59 +0000 [r75969-75978] Mark Michelson * apps/app_queue.c: The diff on this looks pretty big but all I did was remove a pointless if statement (always evaluates true). * apps/app_queue.c: Changes in handling return values of several functions in app_queue. This all started as a fix for issue #10008 but now includes all of the following changes: 1. Simplifying the code to handle positive return values from ast API calls. 2. Removing the background_file function. 3. The fix for issue #10008 (closes issue #10008, reported and patched by dimas) 2007-07-19 15:53 +0000 [r75928] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 75927 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75927 | russell | 2007-07-19 10:49:42 -0500 (Thu, 19 Jul 2007) | 6 lines When processing full frames, take sequence number wraparound into account when deciding whether or not we need to request retransmissions by sending a VNAK. This code could cause VNAKs to be sent erroneously in some cases, and to not be sent in other cases when it should have been. (closes issue #10237, reported and patched by mihai) ........ 2007-07-18 22:59 +0000 [r75807] Jason Parker * channels/chan_skinny.c: Need to make sure we set milliseconds and timestamp - pointed out by the recent ast_ time stuff from Tilghman 2007-07-18 21:09 +0000 [r75759] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 75757 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75757 | russell | 2007-07-18 16:09:13 -0500 (Wed, 18 Jul 2007) | 5 lines When traversing the queue of frames for possible retransmission after receiving a VNAK, handle sequence number wraparound so that all frames that should be retransmitted actually do get retransmitted. (issue #10227, reported and patched by mihai) ........ 2007-07-18 20:40 +0000 [r75749] Tilghman Lesher * apps/app_voicemail.c, /: Merged revisions 75748 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75748 | tilghman | 2007-07-18 15:31:36 -0500 (Wed, 18 Jul 2007) | 2 lines Store prior to copy (closes issue #10193) ........ 2007-07-18 20:17 +0000 [r75732] Jason Parker * channels/chan_skinny.c: Umm, why are we transmitting dialtone on cfwdall? 2007-07-18 20:00 +0000 [r75712] Joshua Colp * apps/app_voicemail.c, channels/chan_sip.c, channels/chan_agent.c, pbx/pbx_realtime.c: Backport GCC 4.2 fixes. Without these Asterisk won't build under devmode using GCC 4.2. 2007-07-18 19:54 +0000 [r75707-75711] Jason Parker * channels/chan_skinny.c: Fixes for 7935/7936 conference phones. Issue 9245, patch by slimey. * channels/chan_skinny.c: Fix issues with new 79x1 phones. Issue 9887, patches by DEA 2007-07-18 17:56 +0000 [r75658] Dwayne M. Hubbard * /, apps/app_queue.c: Merged revisions 75657 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75657 | dhubbard | 2007-07-18 12:48:33 -0500 (Wed, 18 Jul 2007) | 1 line removed the word 'pissed' from ast_log(...) function call for BE-90 ........ 2007-07-18 15:44 +0000 [r75583-75623] Joshua Colp * channels/chan_sip.c: Few more places that needs to check for onhold state. * channels/chan_sip.c: (closes issue #10165) Reported by: elandivar It is possible for hold status to exist without call limits set, so we need to ensure update_call_counter is executed regardless. * channels/chan_h323.c: Don't bother reloading chan_h323 if it did not load successfully in the first place. This would otherwise cause a crash. * pbx/pbx_dundi.c: (closes issue #10224) Reported by: irroot Record the threadid of each running thread before shutting them down as the thread themselves may change the value. 2007-07-18 12:29 +0000 [r75529] Tilghman Lesher * apps/app_meetme.c: Using a freed frame causes crashes (closes issue #9317) 2007-07-17 Russell Bryant * Asterisk 1.4.8 released. 2007-07-17 20:57 +0000 [r75441-75450] Russell Bryant * /, channels/chan_skinny.c: Merged revisions 75449 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75449 | russell | 2007-07-17 15:57:09 -0500 (Tue, 17 Jul 2007) | 3 lines Properly check for the length in the skinny packet to prevent an invalid memcpy. (ASA-2007-016) ........ * main/rtp.c: cast arguments to ast_log so that it builds without warnings for me * channels/iax2-parser.c, channels/iax2-parser.h, /, channels/chan_iax2.c: Merged revisions 75444 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75444 | russell | 2007-07-17 15:45:27 -0500 (Tue, 17 Jul 2007) | 5 lines Ensure that when encoding the contents of an ast_frame into an iax_frame, that the size of the destination buffer is known in the iax_frame so that code won't write past the end of the allocated buffer when sending outgoing frames. (ASA-2007-014) ........ * /, channels/chan_iax2.c: Merged revisions 75440 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75440 | russell | 2007-07-17 15:41:41 -0500 (Tue, 17 Jul 2007) | 4 lines After parsing information elements in IAX frames, set the data length to zero, so that code later on does not think it has data to copy. (ASA-2007-015) ........ 2007-07-17 20:40 +0000 [r75439] Joshua Colp * main/rtp.c: Ensure that the pointer to STUN data does not go to unaccessible memory. (ASA-2007-017) 2007-07-17 20:33 +0000 [r75437] Russell Bryant * res/res_agi.c: (issue #10210) Reported by: juggie Patches: 10210-1.4-grr.patch uploaded by juggie (license #24) Tested by: juggie, blitzrage Log a warning if someone uses DeadAGI on a live channel. 2007-07-17 20:03 +0000 [r75405] Mark Michelson * apps/app_dial.c: Fixing an error I made earlier. ast_fileexists can return -1 on failure, so I need to be sure that we only enter the if statement if it is successful. Related to my fix to issue #10186 2007-07-17 20:01 +0000 [r75401-75403] Russell Bryant * main/pbx.c: (closes issue #10209) Reported by: juggie Patches: 10209-trunk-2.patch uploaded by juggie Tested by: juggie, blitzrage In ast_pbx_run(), mark a channel as hung up after an application returned -1, or when it runs out of extensions to execute. This is so that code can detect that this channel has been hung up for things like making sure DeadAGI is used on actual dead channels, and is beneficial for other things, like making sure someone doesn't try to start spying on a channel that is about to go away. * res/res_agi.c: Remove a duplicated newline character in AGI debug output. (closes issue #10207, patch by seanbright) 2007-07-16 20:53 +0000 [r75258-75306] Kevin P. Fleming * main/dns.c, /: Merged revisions 75304 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75304 | kpfleming | 2007-07-16 15:46:58 -0500 (Mon, 16 Jul 2007) | 3 lines provide proper copyright/license attribution for this structure that was copied from a BSD-licensed header file long, long ago... ........ * /: another fix that is not needed here (finishing up 75251) 2007-07-16 18:16 +0000 [r75253] Mark Michelson * apps/app_dial.c: Restoring functionality from 1.2 wherein Retrydial will not exit if there is no announce file specified. This change makes it so that if there is no announce file specified, the application will continue until finished (or caller hangs up). If a bogus announce file is specified, then a warning message will be printed saying that the file could not be found, but execution will still continue. (closes issue #10186, reported by jon, patched by me) 2007-07-16 18:12 +0000 [r75252] Kevin P. Fleming * /: block change that is not relevant here 2007-07-13 20:36 +0000 [r75108] Russell Bryant * /, res/res_musiconhold.c: Merged revisions 75107 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75107 | russell | 2007-07-13 15:35:22 -0500 (Fri, 13 Jul 2007) | 3 lines Fix a couple potential minor memory leaks. load_moh_classes() could return without destroying the loaded configuration. ........ 2007-07-13 20:15 +0000 [r75078] Mark Michelson * apps/app_chanspy.c, /: Merged revisions 75066 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75066 | mmichelson | 2007-07-13 15:10:39 -0500 (Fri, 13 Jul 2007) | 5 lines Fixed an issue where chanspy flags were uninitialized if no options were passed. What triggered this investigation was an IRC chat where some people's quiet flags were set while others' weren't even though none of them had specified the q option. ........ 2007-07-13 20:10 +0000 [r75053-75067] Russell Bryant * /, res/res_musiconhold.c: Merged revisions 75059 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75059 | russell | 2007-07-13 15:07:21 -0500 (Fri, 13 Jul 2007) | 6 lines Ensure that adding a user to the list of users of a specific music on hold class is not done at the same time as any of the other operations on this list to prevent list corruption. Using the global moh_data lock for this is not ideal, but it is what is used to protect these lists everywhere else in the module, and I am only changing what is necessary to fix the bug. ........ * channels/chan_zap.c, /: Merged revisions 75052 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75052 | russell | 2007-07-13 14:10:00 -0500 (Fri, 13 Jul 2007) | 12 lines (closes issue #9660) Reported by: mmacvicar Patches submitted by: bbryant, russell Tested by: mmacvicar, marco, arcivanov, jmhunter, explidous When using a TDM400P (and probably other analog cards) there was a chance that you could hang up and pick the phone back up where it has been long enough to be not considered a flash hook, but too soon such that the device reports that it is busy and the person on the phone will only hear silence. This patch makes chan_zap more tolerant of this and gives the device a couple of seconds to succeed so the person on the phone happily gets their dialtone. ........ 2007-07-12 23:00 +0000 [r74998] Mark Michelson * channels/chan_agent.c: Change to my previous fix regarding agent logoff soft. Now uses deferlogoff instead of loginstart since loginstart is used after logoff. Thanks to makoto for pointing this out and suggesting the fix. (closes issue #10178, reported and patched by makoto, with modification by me) 2007-07-12 20:42 +0000 [r74955] Steve Murphy * channels/chan_sip.c: This patch resolves 10143; thanks to irroot for the patch; looked acceptable. Let the community decide if it messes things up 2007-07-12 19:17 +0000 [r74888-74922] Joshua Colp * main/channel.c: Whoops... didn't want this to be returned to 0 each iteration. * main/channel.c: When waiting for a digit ensure that a begin frame was received with it, not just an end frame. (issue #10084 reported by rushowr) 2007-07-12 16:53 +0000 [r74839-74866] Jason Parker * channels/chan_skinny.c: It helps if I actually add this stuff for the 7921 too - otherwise it won't actually do much of anything. * channels/chan_skinny.c: Add device ID for 7921 wireless skinny phone * channels/chan_skinny.c: Fix dialing in skinny that was broken in some cases. Issue 10136, fix provided by DEA. 2007-07-12 15:53 +0000 [r74815] Joshua Colp * /, res/res_musiconhold.c: Merged revisions 74814 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74814 | file | 2007-07-12 12:51:24 -0300 (Thu, 12 Jul 2007) | 2 lines Only print out a warning for situations where it is actually helpful. (issue #10187 reported by denke) ........ 2007-07-11 22:57 +0000 [r74767] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 74766 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74766 | russell | 2007-07-11 17:53:26 -0500 (Wed, 11 Jul 2007) | 5 lines The function make_trunk() can fail and return -1 instead of a valid new call number. Fix the uses of this function to handle this instead of treating it as the new call number. This would cause a deadlock and memory corruption. (possible cause of issue #9614 and others, patch by me) ........ 2007-07-11 21:14 +0000 [r74722] Mark Michelson * /, channels/chan_agent.c: Merged revisions 74719 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74719 | mmichelson | 2007-07-11 16:12:30 -0500 (Wed, 11 Jul 2007) | 5 lines The cli command "agent logoff Agent/x soft" did not work...at all. Now it does. (closes issue #10178, reported and patched by makoto, with slight modification for 1.4 and trunk by me) ........ 2007-07-11 18:34 +0000 [r74657] Russell Bryant * res/res_config_odbc.c, /: Merged revisions 74656 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74656 | russell | 2007-07-11 1