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 [r8