2007-11-16 Russell Bryant * Asterisk 1.4.14 released. 2007-11-16 22:26 +0000 [r89339] Russell Bryant * main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: Temporarily revert revision 89325, which added md5 magic for keeping track of what build options were used. We agreed that we should remove this before making a 1.4 release, and then we can put it back in. Then, we can take a month or so to play around with it to get it how we want it. 2007-11-16 16:47 +0000 [r89325] Kevin P. Fleming * main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: To help combat problems where people build external modules (asterisk-addons or others) and then change the build options of the Asterisk build in a way that makes the incompatible without warning, this commit introduces an MD5 signature of the important build-time options and includes that signature into modules when they are built. When the loader loads one of these modules and notices the problem, it will emit a warning to console and refuse to initialize the module, as doing so could cause the system to be unstable or even crash. If you upgrade to this version of Asterisk, you must rebuild *all* of your modules that came from other sources before trying to run this version. If you are using Digium's G.729 binary codec module, you will need v33 or newer. 2007-11-16 15:28 +0000 [r89323] Mark Michelson * apps/app_queue.c: Make realtime queues accessible from the QUEUE_MEMBER_COUNT function. (closes issue #11271, reported and patched by atis, with small modifications from me) 2007-11-15 18:37 +0000 [r89298-89302] Tilghman Lesher * Makefile: Start Asterisk in Debian at a more reasonable time (since zaptel is at level 20) * channels/misdn/isdn_lib.c: Fix an uninitialized memory read found by valgrind * channels/chan_iax2.c: Yet another memory corruption issue. Reported by: atis Patch by: tilghman Fixes issue #10923 2007-11-15 17:19 +0000 [r89296] Russell Bryant * apps/app_meetme.c: Update the SLAStation application to account for the case where the SLA thread has a call out to the station, but the user has pressed a line button to answer the call instead of picking up the handset. If they do, the phone sends out a new INVITE. So, the SLAStation app must check to see if it is picking up a ringing trunk, and ensure that the other stations stop ringing. (reported internally, patched by me, tested by mogorman) 2007-11-15 14:57 +0000 [r89286-89288] Mark Michelson * main/manager.c: Undoing previous commit since I realize it was wrong * main/manager.c: Adding a missing mutex unlock. (closes issue 11256, reported and patched by ys) 2007-11-15 11:26 +0000 [r89280-89281] Olle Johansson * channels/chan_sip.c: Don't send re-invites during pending INVITE transactions. Patch by one47 - thanks! Closes issue #9305 * channels/chan_sip.c: Improve support for multipart messages. Code by gasparz, changes by me (mostly formatting). Thanks, gasparz! Closes issue #10947 2007-11-14 23:23 +0000 [r89275] Tilghman Lesher * main/app.c: When a recording ends with '#', we are improperly trimming an extra 200ms from the recording. Reported by: sim Patch by: tilghman Closes issue #11247 2007-11-14 01:15 +0000 [r89260] Joshua Colp * main/srv.c: Return the proper value when the srv_callback function executes properly. (closes issue #11240) Reported by: jtodd 2007-11-13 21:07 +0000 [r89248-89254] Jason Parker * channels/chan_zap.c, channels/chan_iax2.c: Fix building on newer systems which require a third arg to open() when using O_CREAT. Issue 11238, reported by puzzled. * res/res_features.c: Revert change from revision 67064. It is documented behavior that if a parking extension already exists while using PARKINGEXTEN, dialplan execution will continue. If blind transferring to a Park with PARKINGEXTEN, you must keep this in mind, and handle the failure yourself. Issue 11237, reported by jon. 2007-11-13 17:34 +0000 [r89246] Tilghman Lesher * channels/chan_sip.c: If we set a value for qualify, we should actually pay attention to it, instead of overriding the value 2007-11-13 16:02 +0000 [r89241] Mark Michelson * apps/app_mixmonitor.c: Reverting commit made in revision 89205 since it is unnecessary. Thanks to Kevin for pointing this out 2007-11-13 13:51 +0000 [r89239] Tilghman Lesher * main/utils.c: Debugging is running into the 16-lock limit. Increase to avoid. (This define is only effective when debugging is turned on, so there's no effect for most installations.) 2007-11-13 00:56 +0000 [r89205] Mark Michelson * apps/app_mixmonitor.c: Some sanity checking for MixMonitor. If only 1 argument is given, then the args.options and args.post_process strings are uninitialized and could contain garbage. This change handles this situation properly by only using arguments that we have parsed. 2007-11-12 20:46 +0000 [r89194] Jason Parker * main/pbx.c: Fix a typo pointed out by De_Mon on #asterisk-dev 2007-11-12 20:16 +0000 [r89184-89191] Tilghman Lesher * main/config.c: If two config writes collide, file corruption could result. Use a mkstemp() file, instead. Reported by: paravoid Patch by: tilghman Closes issue #10781 * main/channel.c, channels/chan_sip.c: Fix two cases of memory corruption caused by background threads. Reported by: atis Patch by: tilghman Fixes issue #10923 2007-11-12 11:26 +0000 [r89169-89173] Christian Richter * channels/chan_misdn.c, configs/misdn.conf.sample: if we're NT and no number was dialed and overlapdial is set, we wait for the ISDN timeout instead of starting our own timer. added a comment for the misdn.conf.sample for the overlapdial config option. * channels/misdn/isdn_lib.c, channels/misdn/isdn_lib_intern.h, channels/chan_misdn.c, channels/misdn/isdn_msg_parser.c: added restart all interfaces Restart_Indicator, to automatically send a RESTART after the L2 of a PTP Port comes up. Also fixed some places where we have send a RELEASE without need for it. * channels/misdn/isdn_lib.c, channels/chan_misdn.c: fixed a state/event issue with overlapdial=yes when no extension matched. removed the general sending of a RELEASE_COMPLETE when we receive a RELEASE, this is done by mISDNuser/mISDN. This makes it possible to use asterisk-1.4 with mISDN trunk, but requires users of mISDN/mISDNuser-1.1.X to upgrade to at least mISDNuser-1.1.6 (when using the NT mode at all) * channels/misdn/isdn_lib.c: fixed the support for CW and therefore for the reject_cause option. * channels/misdn/isdn_lib.c, channels/misdn_config.c, channels/misdn/isdn_lib.h, channels/chan_misdn.c, channels/misdn/chan_misdn_config.h, configs/misdn.conf.sample: aded ntkeepcalls option, to avoid droƃpping calls when the L2 goes down on a PTP link. There are some pbx which do turn off the L1 for a very short while and restart it immediately. normally T310 should be started and after 10 seconds or so the calls should be dropped, this is a simple fix wihtout this timer. 2007-11-08 23:52 +0000 [r89125] Jason Parker * main/say.c: Properly say the seconds here.. Issue 11203, fix described by vma. 2007-11-08 21:00 +0000 [r89119] Mark Michelson * channels/chan_sip.c: Rework of the commit I made yesterday to use the already built-in ast_uri_decode function as opposed to my home-rolled one. Also added comments. Thanks to oej for pointing me in the right direction 2007-11-08 18:45 +0000 [r89115] Jason Parker * configs/res_odbc.conf.sample: Avoid warnings on load when using sample configuration files. Issue 11195, patch by eliel. 2007-11-08 16:47 +0000 [r89111] Mark Michelson * apps/app_voicemail.c: I made this same adjustment in trunk to fix a bug, and it makes sense to do it in 1.4 as well. If an imapfolder is specified in voicemail.conf, don't ever explicitly connect to INBOX since it may not exist. 2007-11-08 05:26 +0000 [r89105] Kevin P. Fleming * main/srv.c: fix a glaring bug in the new SRV record handling that would cause incorrect weight sorting 2007-11-08 04:55 +0000 [r89103] Tilghman Lesher * doc/valgrind.txt: Typo 2007-11-08 02:26 +0000 [r89095-89101] Joshua Colp * channels/chan_sip.c: Do not add a sip: to the beginning of the To URI unless needed. (closes issue #10756) Reported by: goestelecom * channels/chan_sip.c: Improve the devicestate logic for multiple devices. If any are available then the extension is considered available. (closes issue #10164) Reported by: nic_bellamy Patches: sip-hinting-svn-branch-1.4.patch uploaded by nic (license 299) * channels/chan_sip.c: Add support for allowing one outgoing transaction. This means if a response comes back out of order chan_sip will still handle it. I dream of a chan_sip with real transaction support. (closes issue #10946) Reported by: flefoll (closes issue #10915) Reported by: ramonpeek (closes issue #9567) Reported by: atca_pres * channels/chan_sip.c: If callerid is configured in sip.conf use that for checking the presence of an extension in the dialplan. (closes issue #11185) Reported by: spditner 2007-11-07 23:39 +0000 [r89093] Tilghman Lesher * apps/app_queue.c: The member refcount must be incremented, to avoid using it after deallocation. A huge thanks go to lvl- for patiently providing the necessary valgrind output that was necessary to finding this problem of memory corruption. Reported by: lvl- Patch by: tilghman Closes issue #11174 2007-11-07 22:40 +0000 [r89090] Mark Michelson * channels/chan_sip.c: This patch makes it possible for SIP phones to dial extensions defined with '#' characters in extensions.conf AND maintain their escaped characters when forming URI's (closes issue #10681, reported by cahen, patched by me, code review by file) 2007-11-07 21:40 +0000 [r89088] Steve Murphy * cdr/cdr_tds.c, pbx/pbx_ael.c, res/res_jabber.c: In response to 10578, I just ran 1.4 thru valgrind; some of the config leakage I've already fixed, but it doesn't hurt to double check. I found and fixed leaks in res_jabber, cdr_tds, pbx_ael. Nothing major, tho. 2007-11-07 15:56 +0000 [r89085] Mark Michelson * main/manager.c: Fixing a segfault in the manager "core show channels concise" command. (closes issue #11183, reported by arnd and patched by ys) 2007-11-07 04:07 +0000 [r89079] Tilghman Lesher * configs/extensions.ael.sample: Suppress AEL warnings on load. Reported by: eliel Patch by: eliel Closes issue #11178 2007-11-06 20:18 +0000 [r89053] Russell Bryant * res/res_musiconhold.c: Fix init_classes() so that classes that actually do have files loaded aren't treated as empty, and immediately destroyed ... 2007-11-06 19:09 +0000 [r89046] Jason Parker * codecs/codec_zap.c: Correctly set the total number of channels from a zaptel transcoder board. SPD-49, patch by Matthew Nicholson. 2007-11-06 19:09 +0000 [r89045] Tilghman Lesher * include/asterisk/lock.h: We went to the trouble of creating a method of tracking failed trylocks, then never turned it on (oops). 2007-11-06 18:53 +0000 [r89042] Olle Johansson * main/tdd.c: Bug fixes to tdd support in zaptel. 2007-11-06 18:20 +0000 [r89037] Russell Bryant * res/res_musiconhold.c: If someone were to delete the files used by an existing MOH class, and then issue a reload, further use of that class could result in a crash due to dividing by zero. This set of changes fixes up some places to prevent this from happening. (closes issue #10948) Reported by: jcomellas Patches: res_musiconhold_division_by_zero.patch uploaded by jcomellas (license 282) Additional changes added by me. 2007-11-06 17:52 +0000 [r89036] Steve Murphy * main/config.c: closes issue #8786 - where the [catname](!) and [catname](othercat1,othercat2,...) notation gets dropped across a ConfigUpdate (or any other thing that would cause a config file to be written). While I was at it, I also cleaned up some of the destroy routines to free up comments, which was not being done. Made sure the new struct I introduced is also cleaned up properly at destruction time. My code handles multiple template inclusions. Many thanks to ssokol for his patch, which, while not literally used in the final merge, served as a foundation for the fix. 2007-11-06 17:08 +0000 [r88994-89032] Joshua Colp * channels/chan_sip.c: Make it so that if a peer is determined to be unreachable using qualify their devicestate will report back unavailable. (closes issue #11006) Reported by: pj * channels/chan_zap.c: Fix improbable but possible memory leaks in chan_zap. (closes issue #11166) Reported by: eliel Patches: chan_zap.c.patch uploaded by eliel (license 64) 2007-11-06 13:50 +0000 [r88931] Russell Bryant * include/asterisk/lock.h: Remove some checks to see if locks are initialized from the non-DEBUG_THREADS versions of the lock routines. These are incorrect for a number of reasons: - It breaks the build on mac. - If there is a problem with locks not getting initialized, then the proper fix is to find that place and fix the code so that it does get initialized. - If additional debug code is needed to help find the problem areas, then this type of things should _only_ be put in the DEBUG_THREADS wrappers. 2007-11-06 02:52 +0000 [r88862] Kevin P. Fleming * include/asterisk/srv.h: update comment to match the state of the code 2007-11-05 23:29 +0000 [r88826] Mark Michelson * main/channel.c: Reworked deadlock avoidance in __ast_read. Restored audio to callback agents. (closes issue #11071, reported by callguy, patched by me, tested by callguy and Ted Brown) 2007-11-05 22:07 +0000 [r88709-88805] Russell Bryant * main/pbx.c, include/asterisk/pbx.h: After seeing crashes related to channel variables, I went looking around at the ways that channel variables are handled. In general, they were not handled in a thread-safe way. The channel _must_ be locked when reading or writing from/to the channel variable list. What I have done to improve this situation is to make pbx_builtin_setvar_helper() and friends lock the channel when doing their thing. Asterisk API calls almost all lock the channel for you as necessary, but this family of functions did not. (closes issue #10923, reported by atis) (closes issue #11159, reported by 850t) * channels/chan_sip.c: When traversing the list of channel variables here in transmit_invite(), the asterisk channel must be locked, as this data may change at any time. (I have seen numerous reports of crashes related to the handling of channel variables. There are a couple of issues on the bug tracker related to it, but it has also been noted on IRC and mailing lists. So, I am finding and fixing some places where channel variables are handled improperly.) * channels/chan_sip.c: Fix up some indentation. * main/srv.c, include/asterisk/srv.h: Merge changes from asterisk/team/kpfleming/SRV-priority-handling Previously, the SRV record support in Asterisk was broken. There was no guarantee on what record Asterisk would choose to actually use. This set of changes improves the situation by ensuring that Asterisk will choose the highest priority record. * main/channel.c: Merge the last bit of changes from asterisk/team/russell/readq-1.4 The issue here is that the channel frame readq handling got broken when the code was converted to use the linked list macros. It caused corruption of the list head and tail pointers. So, I fixed up the usage of the linked list macros and in passing, simplified the code. I also documented what the code is doing, as it was a bit difficult to figure out at first. This bug showed itself with crashes showing messed up head/tail pointers for the readq. However, there are a couple of crashes that aren't quite as obvious, but I think may be related. So, if your bug gets closed by this commit, but you still have a problem, please reopen or create a new bug report. (closes issue #10936) (closes issue #10595) (closes issue #10368) (closes issue #11084) (closes issue #10040) (closes issue #10840) 2007-11-05 18:47 +0000 [r88671] Joshua Colp * channels/chan_sip.c: If a SIP channel is put on hold multiple times do not keep incrementing the onHold value. (closes issue #11085) Reported by: francesco_r Tested by: blitzrage (closes issue #10474) Reported by: acennami 2007-11-05 17:46 +0000 [r88624] Russell Bryant * main/channel.c: Fix up datastore handling in ast_do_masquerade(). The code is intended to move any channel datastores from the old channel to the new one. However, it did not use the linked list macros properly to accomplish the task. The existing code would only work if there was only a single datastore on the old channel. 2007-11-05 17:19 +0000 [r88585] Jason Parker * channels/chan_sip.c: Make sure we destroy the config structure on configuration failure. Issue 11163, patch by eliel. 2007-11-05 16:20 +0000 [r88539] Tilghman Lesher * res/res_odbc.c: Don't check used pooled connections for connection status, as it will cause issues for prepared queries. Reported by: Nick Gorham (via -dev list) Patch by: tilghman 2007-11-04 22:38 +0000 [r88471] Luigi Rizzo * include/asterisk/stringfields.h, main/channel.c, apps/app_meetme.c, channels/chan_sip.c, channels/chan_iax2.c: Rename ast_string_field_free_pool to ast_string_field_free_memory, and ast_string_field_free_all to ast_string_field_reset_all to avoid misuse (due to too similar names and an error in documentation). Fix two related memory leaks in app_meetme. No need to merge to trunk, different fix already applied there. Not applicable to 1.2 2007-11-02 20:49 +0000 [r88328-88366] Joshua Colp * channels/chan_sip.c: Make subscribecontext behave as advertised. It will now look for the presence of a hint in the given context (be it subscribecontext or context). (closes issue #10702) Reported by: slavon * channels/chan_sip.c: If an INFO request within a dialog is received with a content length of 0 simply send back a 200 OK. It is valid to do this and the remote side is probably using it to make sure the signalling is still alive. (closes issue #5747) Reported by: chandi Patches: infofix-81430-1.patch uploaded by IgorG (license 20) 2007-11-02 16:51 +0000 [r88283] Jason Parker * main/say.c: We need to make sure to specify a language to ast_fileexists, otherwise it may fail for anything besides en Issue 11147, fix discovered by both citats and myself (independently), with input from Corydon76 2007-11-02 13:03 +0000 [r88116-88210] Tilghman Lesher * include/asterisk/lock.h: Fix build on Solaris Reported by: snuffy Patch by: ys Closes issue #11143 * doc/valgrind.txt (added): Add some notes on using valgrind 2007-11-01 16:21 +0000 [r88078] Jason Parker * channels/chan_zap.c: Make sure we set the poll fds to NULL after free()ing it. Part of issue 11017, patch by tzafrir. 2007-11-01 13:27 +0000 [r87970-88026] Joshua Colp * apps/app_meetme.c: Fix up commit for my Zap channel with spies in Meetme fix. (thanks Tony Mountifield!) * apps/app_meetme.c: If a Zap channel contains a spy or a spy is added take it out of the conference in kernel space and make it go through Asterisk so the spy gets audio from both sides. (closes issue #10060) Reported by: mparker 2007-10-31 21:23 +0000 [r87906-87908] Jason Parker * res/res_jabber.c: Make sure we free some allocated memory before returning. Issue 11131, patch by eliel. * channels/chan_gtalk.c: Don't try to allocate memory that we're just going to re-allocate later anyways. Issue 11130, patch by eliel. 2007-10-31 18:03 +0000 [r87852] Tilghman Lesher * Makefile: Create samples for ALL of the available options in asterisk.conf 2007-10-31 17:49 +0000 [r87775-87849] Steve Murphy * pbx/pbx_config.c: closes issue #11108 -- where the 'dialplan save' cli command saves a file where the semicolon is not escaped. Fixed this; User also wanted comments to be preserved across dialplan save, but this is impossible at this point in time, because comments are not stored in the dialplan. They are 'compiled' out of extensions.conf. The only way to preserve those comments is to use the config file reader/writer that the GUI uses to allow online user edits. extensions.conf is first and foremost, a config file, and is read in by the normal config-file reading routines. Then, it is processed into a dialplan (context/exten structs). * pbx/pbx_ael.c: Included some verbage in the check_includes func, to inform the user that included contexts that have no match in the AEL, might be OK, as AEL cannot check in the extensions.conf or the in-memory contexts, as they may not be there at the time of the check. 2007-10-30 23:02 +0000 [r87739] Tilghman Lesher * include/asterisk/lock.h: Fix for uninitialized mutexes on *BSD Reported by: ys Fixed by: ys Closes issue #11116 2007-10-30 21:19 +0000 [r87686] Russell Bryant * channels/chan_iax2.c: Merge the changes from team/russell/iax2_poke_fix and iax2-poke-fix-trunk There was a race condition related to the handling of POKEing peers. Essentially, a reference to a peer is held by the scheduler when there are pending callbacks, but the reference count didn't reflect it. So, it was possible for a peer to hit a reference count of zero and have its destructor begin to be called at the same time that the scheduler thread ran a POKE related callback. If that happened, a crash would likely occur. (closes issue #11082, closes issue #11094) 2007-10-30 20:29 +0000 [r87650] Jason Parker * channels/Makefile: Only try to clean out h323/ if the h323/Makefile exists. 2007-10-30 16:13 +0000 [r87571] Joshua Colp * res/res_features.c: Add two more checks before printing out a warning message about bridging. If either channel has hungup of course the bridge will have failed. (closes issue #10009) Reported by: dimas 2007-10-30 15:45 +0000 [r87567] Jason Parker * main/editline/np/vis.c: Fix build of editline on Solaris. Issue 11113, patch by snuffy. 2007-10-30 15:10 +0000 [r87534] Joshua Colp * apps/app_followme.c: Return 1.4 to a state where it builds. Changing the arguments to a function and not changing where they are used is bad, mmmk? 2007-10-30 14:31 +0000 [r87514] BJ Weschke * apps/app_followme.c: Fix issue where the recorded name wasn't getting removed correctly. (closes issue #11115) Reported by: davevg Patches: followme-v3.diff 2007-10-29 22:13 +0000 [r87460-87465] Kevin P. Fleming * codecs/gsm: missed one directory * codecs/ilbc, formats, utils/Makefile, agi/Makefile, funcs, codecs/lpc10, main/db1-ast, main/editline, main, codecs/ilbc/Makefile, pbx, res, channels, main/db1-ast/Makefile, codecs/lpc10/Makefile, utils, codecs, agi, main/editline/Makefile.in, apps, Makefile.moddir_rules, cdr: clean up (and ignore) assembler and preprocessor intermediate files if any are created during the build * Makefile: don't put '-pipe' into ASTCFLAGS if '-save-temps' is already there (used when debugging preprocessor issues) because the compiler will whine about each compile command 2007-10-29 21:06 +0000 [r87427] Mark Michelson * apps/app_voicemail.c: Removing a completely unnecessary quota check from IMAP code. 2007-10-29 20:22 +0000 [r87373-87396] Russell Bryant * main/utils.c, include/asterisk/lock.h: Add some more details to the output of "core show locks". When a thread is waiting for a lock, this will now show the details about who currently has it locked. (inspired by issue #11100) * main/astmm.c: Remove a lock that doesn't make any sense. The regions lock needs to be held when traversing the list of allocated chunks so that they can be printed out to the CLI. (Thanks to eliel on #asterisk-dev for pointing this out!) 2007-10-29 17:20 +0000 [r87342] Joshua Colp * channels/chan_sip.c: Fix issue where if both sides of the dialog cancelled the dialog at the same time chan_sip could kepe retransmitting a response for no reason. (closes issue #9566) Reported by: atca_pres Patches: bug9566.patch uploaded by oej 2007-10-29 17:13 +0000 [r87340] Jason Parker * funcs/func_realtime.c, funcs/func_cut.c: Allow some function modules to compile under dev mode. Issue 11104, patch by andrew. 2007-10-29 14:23 +0000 [r87294] Joshua Colp * main/utils.c: Fix issue with ast_unescape_semicolon going into an endless loop. (closes issue #10550) Reported by: ramonpeek Patches: unescape-85177-1.patch uploaded by IgorG (license 20) 2007-10-28 13:46 +0000 [r87262] Tilghman Lesher * funcs/func_realtime.c, funcs/func_odbc.c, funcs/func_strings.c, funcs/func_cut.c: Add autoservice to several more functions which might delay in their responses. Also, make sure that func_odbc functions have a channel on which to set variables. Reported by russell Fixed by tilghman Closes issue #11099 2007-10-26 16:34 +0000 [r87168] Steve Murphy * pbx/ael/ael-test/ref.ael-test19, pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/ael/ael_lex.c, pbx/pbx_ael.c, include/asterisk/ael_structs.h, pbx/ael/ael.tab.h, utils/ael_main.c, pbx/ael/ael-test/ref.ael-test16, pbx/ael/ael.flex: closes issue #11086 where a user complains that references to following contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config, 2007-10-26 13:54 +0000 [r87120] Tilghman Lesher * funcs/func_curl.c: The addition of autoservice to func_curl additionally made func_curl dependent on the existence of a channel, with no real reason. This should make func_curl once again work without a channel. Reported by jmls. Fixed by tilghman. Closes issue #11090 2007-10-25 23:03 +0000 [r87069] Kevin P. Fleming * main/channel.c, include/asterisk/linkedlists.h: appending one list to another should leave the first list empty, and not require the user to do that 2007-10-25 22:53 +0000 [r87067] Tilghman Lesher * funcs/func_cut.c: Backport alternate encoding of newline delimiters from trunk to 1.4, as approved by Russell Reported by blitzrage Closes issue #10903 2007-10-24 20:56 +0000 [r86982] Jason Parker * channels/chan_zap.c: Correctly respect hidecalleridname configuration option. Simplify code slightly in the process. Issue 11079, reported by ddv2005 2007-10-24 04:14 +0000 [r86880-86936] Steve Murphy * pbx/ael/ael.tab.c, pbx/ael/ael.y: closes issue #11037 -- unable to specify app:spec in hint arguments * funcs/func_logic.c: closes issue #11052 -- where nothing after the ? will allow un-initialized variable values to corrupt and crash asterisk on 64-bit platforms * main/Makefile: this update to Makefile corrects how ast_expr2f.c should be generated * main/ast_expr2f.c: This should get rid of a really, really irritating warning generated by some 64-bit platforms from libc, where free(0) is frowned upon 2007-10-22 21:36 +0000 [r86836] Russell Bryant * include/asterisk/lock.h: If lock tracking is not enabled, then we can not attempt to log any mutex failures. If so, we could end up in infinite recursion. The only lock that is affected by this is a mutex in astmm.c used when MALLOC_DEBUG is enabled. (closes issue #11044) Reported by: ys Patches: lock.h.diff uploaded by ys (license 281) 2007-10-22 17:38 +0000 [r86787] Tilghman Lesher * main/astmm.c: Minor FreeBSD build fix 2007-10-22 16:35 +0000 [r86754-86756] Joshua Colp * channels/chan_sip.c: After reading online I have confirmed that Record-Route headers should be copied to 1xx responses as well. (closes issue #10113) Reported by: makoto * apps/app_controlplayback.c: Make sure res is a positive value before performing the check to determine whether the user stopped it or not. (closes issue #11023) Reported by: cfc 2007-10-22 15:52 +0000 [r86726-86750] Russell Bryant * main/channel.c: Don't leak a frame in the case that an END frame is received and the time since the BEGIN is less than that of the defined minimum DTMF duration. (closes issue #11051) Reported by: casper Patches: channel.c.86664.diff uploaded by casper (license 55) * include/asterisk/lock.h: Update the static mutex initializer to include the initialization of the internal mutex used to protect the lock debugging data. (closes issue #11044, patch suggested by Ivan) 2007-10-22 14:48 +0000 [r86694] Mark Michelson * apps/app_voicemail.c: Account for the fact that sometimes headers may be terminated with \r\n instead of just \n (closes issue #11043, reported by yehavi) 2007-10-22 14:27 +0000 [r86630-86663] Joshua Colp * main/channel.c: Move log message to before the frame it references is freed. (closes issue #11050) Reported by: slavon Patches: channel.c.86662.diff uploaded by casper (license 55) * pbx/pbx_dundi.c: Fix tab completion for dundi show peer. (closes issue #11041) Reported by: jsmith Patches: asterisk-dundicomplete.diff.txt uploaded by jamesgolovich (license 176) * main/loader.c: Fixes for building under OpenSolaris. (closes issue #11047) Reported by: snuffy Patches: 11047-fixes.diff uploaded by snuffy (license 35) 2007-10-22 09:21 +0000 [r86598] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: we send DISCONNECT instead of RELEASE/RELEASE_COMPLETE if the dialplan does not match after an overlap call. Also added out_cause=1 2007-10-19 16:38 +0000 [r86469-86502] Joshua Colp * main/app.c: When returning a DTMF digit from ast_control_streamfile cast it as a char so that 0 does not overlap with the success return code. (closes issue #11023) Reported by: cfc * channels/chan_sip.c: Fix two issues with domains and transfers. If a port was given in the hostname it was treated as part of the hostname. If domains were configured but external domains were not enabled all transfers would be considered remote. (closes issue #11027) Reported by: ramonpeek Patches: 11027-1.diff uploaded by ramonpeek (license 266) * channels/chan_sip.c: Set port number in received as information for registrations as well. (closes issue #11028) Reported by: brad-x 2007-10-19 01:45 +0000 [r86438] TransNexus OSP Development * apps/app_osplookup.c: Fixed OSP module did not report source/devinfo IP in correct format. 2007-10-18 22:01 +0000 [r86405-86406] Jason Parker * Makefile: Correct documentation. I removed the wrong line.. * Makefile: Add documentation for options in asterisk.conf Issue 11029, patch by eserra 2007-10-18 21:16 +0000 [r86330-86372] Russell Bryant * configs/iax.conf.sample, channels/chan_iax2.c: Revert erroneous commit. * configs/iax.conf.sample, channels/chan_iax2.c: Add support for setting the maximum trunk size for IAX2 trunking * main/channel.c, include/asterisk/channel.h: The channel needs to stay locked while running timer callbacks, as they access and modify channel data that may change elsewhere. I went through every timer callback in the source tree to make sure that none of them did any additional locking that could introduce deadlocks, and all is well. (closes issue #10765) Reported by: Ivan Patches: ast_1_4_11_svn_patch_channel_rc.diff uploaded by Ivan (license 229) 2007-10-18 17:38 +0000 [r86328] Mark Michelson * apps/app_queue.c: If a non-existent file is specified to be played either as a periodic announcement or as a hold/position announcement, the caller would be kicked out of the queue. No longer does this happen. 2007-10-18 15:45 +0000 [r86237-86296] Russell Bryant * codecs/codec_zap.c: Execute the RELEASE operation on transcoder channels in the destroy callback. (patch from jsloan) * main/utils.c: Revert a change that I made for issue #10979 which, as has been pointed out to me in issue #11018, doesn't really make sense. There is no reason to have the base64 decode function force a '\0' terminated buffer, when the result is almost always binary, anyway. In fact, this caused some breakage, as some code in res_crypto passed in a buffer exactly the right size to get its binary result, which got stomped on by this patch. (closes issue #11018, reported by dimas) 2007-10-17 21:39 +0000 [r86202] Mark Michelson * apps/app_queue.c: Changing the strategy field of the call_queue struct to be signed instead of unsigned, since the code attempts to set the strategy to -1 if you specify a bogus strategy. While this isn't a huge issue in 1.4, it could be a problem for someone who, say, tries to use the roundrobin strategy in trunk (despite all the deprecation warnings in 1.4). 2007-10-17 17:57 +0000 [r86149] Russell Bryant * channels/chan_sip.c: If Asterisk is in the middle of shutting down, respond to OPTIONS with 503 Unavailable. (closes issue #10994) Reported by: eserra Patches: sip-options-503.patch uploaded by eserra (license 45) 2007-10-17 16:58 +0000 [r86117] Joshua Colp * channels/chan_sip.c: Whoops, forgot to remove the original sip_scheddestroy. (closes issue #11010) Reported by: vadim 2007-10-17 15:23 +0000 [r86066] Tilghman Lesher * main/asterisk.c: When runuser/rungroup is specified, a remote console could only be attained by root (Closes issue #9999) 2007-10-17 15:06 +0000 [r86063] Joshua Colp * channels/chan_sip.c: Don't schedule dialog destruction if a MESSAGE is received using an existing dialog. (closes issue #11010) Reported by: vadim 2007-10-16 23:35 +0000 [r86028-86032] Mark Michelson * configs/queues.conf.sample: Since monitor-join is deprecated now, remove the example from the sample queues.conf file * UPGRADE.txt: Updating UPGRADE.txt to reflect the deprecation of the monitor-join queue option * apps/app_queue.c: Adding deprecated warning to monitor-join option, since the plan is to no longer support this in favor of monitor-type = mixmonitor (related to issue #10885) 2007-10-16 22:36 +0000 [r85994-85997] Russell Bryant * include/asterisk/lock.h: really picky formatting tweak ... * include/asterisk/lock.h: Some locking errors exposed the fact that the lock debugging code itself was not thread safe. How ironic! Anyway, these changes ensure that the code that is accessing the lock debugging data is thread-safe. Many thanks to Ivan for finding and fixing the core issue here, and also thanks to those that tested the patch and provided test results. (closes issue #10571) (closes issue #10886) (closes issue #10875) (might close some others, as well ...) Patches: (from issue #10571) ivan_ast_1_4_12_rel_patch_lock.h.diff uploaded by Ivan (license 229) - a few small changes by me 2007-10-16 21:14 +0000 [r85958] Mark Michelson * apps/app_queue.c: Trying to remove a non-dynamic queue member via dynamic means can lead to some interesting (read nasty) situations. This patch clears up the issue by making only dynamic queue members removable via dynamic methods. 2007-10-16 19:41 +0000 [r85921] Tilghman Lesher * main/stdtime/localtime.c: Also set up gmtoff (this is used in the %z gnu extension to strftime) Reported and fixed by jcmoore Closes issue #11002 2007-10-16 19:10 +0000 [r85896] Russell Bryant * apps/app_voicemail.c: Remove a pointless lock. 2007-10-16 15:21 +0000 [r85852] Mark Michelson * apps/app_queue.c: Fixing a double free which happens in the statechange thread. (closes issue #10987, reported by andrew) 2007-10-16 14:52 +0000 [r85818-85850] Joshua Colp * apps/app_hasnewvoicemail.c: Check to make sure a value has been given to the VMCOUNT dialplan function. (closes issue #10996) Reported by: marsosa * main/threadstorage.c: Fix memory allocation issue in threadstorage. (closes issue #10995) Reported by: snuffy Patches: new-patch.diff uploaded by snuffy (license 35) 2007-10-16 10:46 +0000 [r85800] Philippe Sultan * channels/chan_gtalk.c: Fix the output for this channel help CLI command 2007-10-15 21:10 +0000 [r85717-85720] Russell Bryant * apps/app_queue.c: Ensure that no pending state changes are leaked when the device state change thread gets stopped on module unload. * apps/app_queue.c: Previously, app_queue created a thread to handle every single device state change. I changed this a while ago in trunk for performance reasons. However, bug 8407 points out that it is actually a race condition, causing device state changes to get processed in random order. So, I backported my changes from trunk to 1.4. (closes issue #8407, patch provided by tim_ringenbach, committed patch by me) 2007-10-15 20:29 +0000 [r85687] Tilghman Lesher * apps/app_stack.c: Don't execute a gosub if the arguments is zero-len (not just NULL) Reported by davevg Fixed by me Closes issue #10985 2007-10-15 20:21 +0000 [r85686] Russell Bryant * main/say.c: Add a small fix for the tw version of saying dates. (closes issue #7827) Reported by: sharkey Patches: say.nits.patch uploaded by sharkey (license 172) 2007-10-15 20:15 +0000 [r85684] Jason Parker * Makefile: Properly use DESTDIR in 'config' target. Do not try to run chkconfig or similar if using DESTDIR. Issue 10938, patch by cabal95. 2007-10-15 19:22 +0000 [r85604-85649] Russell Bryant * main/utils.c: Be pedantic about handling memory allocation failure. * main/utils.c: The loop in the handler for the "core show locks" could potentially block for some amount of time. Be a little bit more careful and prepare all of the output in an intermediary buffer while holding a global resource. Then, after releasing it, send the output to ast_cli(). * channels/chan_sip.c: Make the default for the srvlookup option to be yes. It doesn't really make sense for it to default to off. The default configuration file has it on, and proper RFC behavior, as indicated by a comment in the code, is for it to be on. So, let's have it on by default to make lives easier. (closes issue #10954, suggested by jtodd) 2007-10-15 16:39 +0000 [r85571] Joshua Colp * configs/features.conf.sample: Document that DTMF based features only work when two channels are bridged together. (closes issue #10773) Reported by: pbayley 2007-10-15 16:34 +0000 [r85561] Russell Bryant * include/asterisk/strings.h: Make a few changes so that characters in the upper half of the ISO-8859-1 character set don't get stripped when reading configuration. (closes issue #10982, dandre) 2007-10-15 16:22 +0000 [r85559] Joshua Colp * main/rtp.c: Bring both DTMF begin and end frames up through to the core for DTMF feature handling. (closes issue #10826) Reported by: dimas 2007-10-15 15:40 +0000 [r85556] Russell Bryant * pbx/pbx_dundi.c: Ensure the buffer passed to ast_canmatch_extension() is properly initialized so that it is null terminated. (issue #10977) Reported by: dimas Patches: pbxdundi.patch uploaded by dimas (license 88) - small mods by me 2007-10-15 14:55 +0000 [r85552] Joshua Colp * main/rtp.c: If Monitor or a spy was added to a P2P or native bridged channel bring the channel back to the generic bridging core so the monitor or spy operations work. (closes issue #10943) Reported by: julianjm 2007-10-15 13:16 +0000 [r85540-85548] Russell Bryant * main/db.c: Suppress a LOG_DEBUG message if debug is not enabled. (closes issue #10980) Reported by: casper Patches: db.c.84633.diff uploaded by casper (license 55) * main/asterisk.c: Make sure remote consoles unmute themselves again after reconnecting. (closes issue #10847) Reported by: atis Patches: console_unmute_on_reconnect.patch uploaded by atis (license 242) * main/utils.c: Make sure that the base64 decoder returns a terminated string. (closes issue #10979) Reported by: ys Patches: util.c.diff uploaded by ys (license 281) - small mods by me * pbx/pbx_config.c: Don't create the context for users in users.conf until we know at least one user exists. (closes issue #10971) Reported by: dimas Patches: pbxconfig.patch uploaded by dimas (license 88) 2007-10-13 15:26 +0000 [r85536] Tilghman Lesher * configs/extensions.ael.sample: Remove deprecated syntax from sample ael file Reported and patched by: dimas Closes issue #10967 2007-10-13 05:48 +0000 [r85532-85533] Russell Bryant * main/asterisk.c, main/cli.c, include/asterisk/logger.h: Fix an issue with console verbosity when running asterisk -rx to execute a command and retrieve its output. The issue was that there was no way for the main Asterisk process to know that the remote console was connecting in the -rx mode. The way that James has fixed this is to have all remote consoles muted by default. Then, regular remote consoles automatically execute a CLI command to unmute themselves when they first start up. (closes issue #10847) Reported by: atis Patches: asterisk-consolemute.diff.txt uploaded by jamesgolovich (license 176) * main/asterisk.c, main/cli.c, include/asterisk/cli.h: Properly handle the case where read() may return the text for more than one CLI command at once for a remote console. (closes issue #10888) Reported by: jamesgolovich Patches: asterisk-climultiple.diff.txt uploaded by jamesgolovich (license 176) 2007-10-12 18:30 +0000 [r85523] Tilghman Lesher * doc/asterisk-mib.txt, doc/PEERING, LICENSE: Change Digium address 2007-10-12 15:45 +0000 [r85515-85517] Russell Bryant * res/res_smdi.c: Fix a spelling error in a log message. SMDI, not SDMI. (closes issue #10959) * pbx/pbx_realtime.c: Fix the potential use of an uninitialized buffer in a log message. (closes issue #10958) Reported by: dimas Patches: realtime.patch uploaded by dimas (license 88) 2007-10-11 15:26 +0000 [r85397] Joshua Colp * channels/chan_sip.c: When creating a new packet don't try to stop retransmission of it. It was just allocated/created so it's impossible for it to have already been scheduled. (closes issue #10945) Reported by: flefoll Patches: chan_sip.c.br14.85280.xmit_reliable-patch uploaded by flefoll (license 244) 2007-10-11 04:35 +0000 [r85356] Tilghman Lesher * main/pbx.c: A dollar sign by itself, not indicating a start of a variable or expression prematurely ends substitution (closes issue #10939) 2007-10-10 Russell Bryant * Asterisk 1.4.13 released. 2007-10-10 15:56 +0000 [r85316] Russell Bryant * include/asterisk/file.h: I introduced a new member to the ast_filestream struct in 1.4.12, but put it in the middle of the struct, instead of at the end. One of the Debian folks, paravoid, pointed out that this breaks binary compatability with modules compiled against older headers. So, I'm moving the new member to the end of the struct to resolve the situation. 2007-10-10 15:51 +0000 [r85315] Mark Michelson * main/utils.c: The thread ID should be unsigned. 2007-10-10 14:42 +0000 [r85277-85280] Joshua Colp * channels/chan_sip.c: If devicestate is passed a port number strip it out. (closes issue #10930) Reported by: ibc * channels/chan_sip.c: Add support for handling a 182 Queued response. (closes issue #10924) Reported by: ramonpeek Patches: queued-182.diff uploaded by ramonpeek (license 266) 2007-10-10 14:26 +0000 [r85276] Mark Michelson * apps/app_voicemail.c: A bunch of changes from sprintf to snprintf. See security advisory AST-2002-022 2007-10-10 14:14 +0000 [r85242] Joshua Colp * apps/app_voicemail.c: Close voicemail message description file if duration did not meet the minimum, or else we will eventually run out of file descriptors. (closes issue #10918) Reported by: brak2718 Patches: vm1.4.12.1.patch uploaded by brak2718 (license 279) 2007-10-10 06:24 +0000 [r85195] Kevin P. Fleming * include/asterisk/frame.h: use a macro instead of an inline function, so that backtraces will report the caller of ast_frame_free() properly 2007-10-09 21:55 +0000 [r85158] Tilghman Lesher * main/channel.c, main/utils.c, include/asterisk/lock.h: This commit fixes the following issues: - Deadlock in ast_write (issue #10406) - Deadlock in ast_read (issue #10406) - Possible mutex initialization error in lock.h (issue #10571) 2007-10-09 14:30 +0000 [r84990-85093] Joshua Colp * channels/chan_sip.c: Don't perform a reinvite if a transfer is in progress. (issue #10915) Reported by: ramonpeek * main/rtp.c: Only update codec information if the channel has a technology private structure. (issue #10915) Reported by: ramonpeek * main/rtp.c: Update codec information as well as address when doing hold reinvites. (issue #10868) Reported by: mavince * main/channel.c: Don't keep trying to native bridge if either of the channels are involved in a masquerade operation to be done. (closes issue #10696) Reported by: tbelder 2007-10-08 03:28 +0000 [r84957] Russell Bryant * Makefile.rules: Enable file dependency tracking for _all_ builds, and not just for builds with dev-mode enabled. I have seen enough problems caused by this that I don't think it's worth keeping. I want to continue to encourage anybody that is interested to continue to run Asterisk from svn. Furthermore, I do not want their systems to break when we change a structure definition in a header file. :) 2007-10-07 16:15 +0000 [r84890-84902] Philippe Sultan * res/res_jabber.c: Presence packets from a client who's connected with our Jabber ID are valid, therefore, those clients must be considered as buddies. The resource string helps us make the distinction between clients. Closes issue #10707, reported by yusufmotiwala. * res/res_jabber.c: Prevent Asterisk from crashing when receiving a presence packet without resource from a buddy that is known to have a resource list. Revert a change I previously made, where Asterisk could point to a freed memory location. 2007-10-05 19:42 +0000 [r84851] Tilghman Lesher * main/db.c: Log exactly why we can't open the database, if we fail (closes issue #10887) 2007-10-05 18:55 +0000 [r84818] Joshua Colp * main/rtp.c: Update the remembered RTP peer information when putting an endpoint on hold or taking it off hold so that the RTP stack does not initiate a needless reinvite. (closes issue #10868) Reported by: mavince 2007-10-05 16:44 +0000 [r84783] Russell Bryant * channels/chan_zap.c: Do deadlock avoidance in a couple more places. You can't lock two channels at the same time without doing extra work to make sure it succeeds. (closes issue #10895, patch by me) 2007-10-05 Russell Bryant * Asterisk 1.4.12.1 released. (This is mainly to include the app_queue fix for a memory leak on reload, but includes a couple of other bug fixes, as well.) 2007-10-05 01:39 +0000 [r84742] Russell Bryant * main/manager.c: Fix a copy/paste error in the description of UpdateConfig that was pointed out by JerJer on #asterisk-dev 2007-10-04 21:57 +0000 [r84692] Mark Michelson * apps/app_queue.c: Don't allocate space for queue members unless it's needed. You end up deleting dynamic members on a reload. Not good. closes issue (#10879, reported by dazza76, patched by me) 2007-10-04 21:36 +0000 [r84690] Kevin P. Fleming * channels/chan_zap.c: callers of sig2str already add the word 'signalling' in the appropriate place, so don't duplicate it 2007-10-04 14:51 +0000 [r84637] Joshua Colp * apps/app_queue.c: Create a duplicate of the channel's member name as the tab completion stuff will free it. (closes issue #10884) Reported by: adamg 2007-10-03 22:59 +0000 [r84581] Tilghman Lesher * main/rtp.c: When an RFC 2833 event is sent that we don't recognize, ignore it, don't queue a NULL digit (closes issue #10877) 2007-10-03 18:20 +0000 [r84511-84544] Steve Murphy * pbx/pbx_ael.c: closes issue #10870 ; where a CUT() function call in a switch expr doesn't execute correctly, because the commas in the function args are not converted to vertbars before the func is called. I modified just the switch code to convert the commas to vertbars if there, but if more of these sort of probs are found, I may have to resort to something a little more fundamental. We'll see, I guess. * pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18, pbx/ael/ael-test/ref.ael-vtest13, pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test3, pbx/pbx_ael.c, pbx/ael/ael-test/ref.ael-test5: closes issue #10834 ; where a null input to a switch statement results in a hangup; since switch is implemented with extensions, and the default case is implemented with a '.', and the '.' matches 1 or more remaining characters, the case where 0 characters exist isn't matched, and the extension isn't matched, and the goto fails, and a hangup occurs. Now, when a default case is generated, it also generates a single fixed extension that will match a null input. That extension just does a goto to the default extension for that switch. I played with an alternate solution, where I just tack an extra char onto all the patterns and the goto, but not the default case's pattern. Then even a null input will still have at least one char in it. But it made me nervous, having that extra char in , even if that's a pretty secret and low-level issue. 2007-10-02 Russell Bryant * Asterisk 1.4.12 released. 2007-10-02 20:06 +0000 [r84474] Russell Bryant * Makefile, build_tools/prep_tarball: * Don't build the menuselect-tree for the tarball, as it requires running the configure script first * Change the Makefile to note that menuselect-tree depends on the configure script. 2007-10-02 19:01 +0000 [r84410-84437] Jason Parker * res/res_features.c: Fix some odd formatting I missed.. * res/res_features.c: Finish up on transferee channel before return on failure. Issue 10821, patch by Ivan 2007-10-02 14:12 +0000 [r84370] Russell Bryant * channels/chan_sip.c: Use snprintf instead of sprintf in one place. There is no vulnerability here due to various buffer sizes around the code, but I still didn't like seeing a non length-limited copy of data coming off of the wire into a stack buffer, as this would be a problem in the future if buffer sizes elsewhere got changed or size limitations removed ... 2007-10-02 09:48 +0000 [r84345] Christian Richter * channels/chan_misdn.c: terminate USERUSER String with 0 2007-10-01 21:52 +0000 [r84291] Jason Parker * Makefile, Makefile.rules, channels/Makefile: Add dist-clean support for subdirs. Change h323 to only remove the Makefile on a dist-clean, rather than a clean. This fixes a bug I found with trying to run make after a make clean 2007-10-01 21:25 +0000 [r84274] Dwayne M. Hubbard * main/channel.c, main/manager.c, channels/chan_agent.c: moved get_base_channel() code from action_redirect to ast_channel_masquerade() for issue 7706 and BE-160 2007-10-01 21:18 +0000 [r84273] Steve Murphy * pbx/pbx_ael.c: Anything to keep gcc 4.2 happy... 2007-10-01 21:07 +0000 [r84271] Russell Bryant * main/utils.c, include/asterisk/lock.h: Fulfull a feature request from Qwell on the "core show locks" output. It will now note the lock type for each lock that a thread holds. (mutex, rdlock, or wrlock) 2007-10-01 20:27 +0000 [r84239] Steve Murphy * pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/pbx_ael.c: closes issue #10777 -- by returning a null for the parse tree when there's really nothing there, and making sure we don't try to do checking on a null tree. 2007-10-01 19:56 +0000 [r84166-84236] Russell Bryant * res/res_agi.c: Add another sanity check in the AGI read loop. We really don't care about EAGAIN unless we didn't read an entire line. If there is a newline at the end if the read buffer, break, because we got the whole thing. (reported and patched by bmd) * include/asterisk/lock.h: Show rwlocks in the "core show locks" output. Before, it only showed mutexes. * channels/Makefile: Remove another file in "make clean". (closes issue #10814, paravoid) * apps/app_dial.c: Simplify the CAN_EARLY_BRIDGE macro a bit. 2007-10-01 14:10 +0000 [r84158-84163] Joshua Colp * configs/usbradio.conf.sample (removed): Remove chan_usbradio config file from tree, it is not present in here. (closes issue #10839) Reported by: casper * res/res_musiconhold.c: Fix randomness. save_pos was being set to 0 initially instead of -1, causing it to jump to position 0 when moh started. (closes issue #10859) Reported by: jamesgolovich Patches: asterisk-mohpos2.diff.txt uploaded by jamesgolovich (license 176) * apps/app_dial.c: Only attempt early bridging if the options given to Dial() permit it. (closes issue #10861) Reported by: peekyb 2007-09-30 20:02 +0000 [r84146] Russell Bryant * include/asterisk/module.h: Fix the AST_MODULE_INFO macro for C++ modules. The load and reload parameters were in the wrong place. (closes issue #10846, alebm) 2007-09-29 23:00 +0000 [r84133-84135] Steve Murphy * pbx/ael/ael-test/ael-ntest22/t1/a.ael (added), pbx/ael/ael-test/ael-ntest22/t1/b.ael (added), pbx/ael/ael-test/ael-ntest22/t1/c.ael (added), pbx/ael/ael-test/ael-ntest22/t2/d.ael (added), pbx/ael/ael-test/ael-ntest22/t2/e.ael (added), pbx/ael/ael-test/ael-ntest22/t2/f.ael (added), pbx/ael/ael-test/ref.ael-test2, pbx/ael/ael-test/ref.ael-ntest22 (added), pbx/ael/ael-test/ael-ntest22/t3/g.ael (added), pbx/ael/ael-test/ref.ael-test3, pbx/ael/ael-test/ael-ntest22/t3/h.ael (added), pbx/ael/ael-test/ref.ael-test4, pbx/ael/ael-test/ael-ntest22/t3/i.ael (added), pbx/ael/ael-test/ael-ntest22/t3/j.ael (added), pbx/ael/ael-test/ael-ntest22/qq.ael (added), pbx/ael/ael-test/ael-ntest22/t1 (added), pbx/ael/ael-test/ael-ntest22/t2 (added), pbx/ael/ael-test/ael-ntest22/t3 (added), pbx/ael/ael-test/ael-ntest22/extensions.ael (added), pbx/ael/ael-test/ael-ntest22 (added): This is a regression update that matches what I did in 84134 for AEL regressions. * pbx/ael/ael_lex.c, pbx/ael/ael.flex: This issue sort of closes 10786; All config files support #include with globbing (you know, *,[chars],?,{list,list},etc), so I've updated the AEL system to support this also. 2007-09-28 14:13 +0000 [r84049-84078] Tilghman Lesher * main/say.c: Correct pronunciations of numbers for .nl (Closes issue #10837) * main/channel.c: Avoid a deadlock with ALL of the locks in the masquerade function, not just the pairs of channels. (Closes issue #10406) 2007-09-27 23:12 +0000 [r84018] Dwayne M. Hubbard * main/manager.c, channels/chan_agent.c, include/asterisk/channel.h: if an Agent is redirected, the base channel should actually be redirected. This was causing multiple issues, especially issue 7706 and BE-160 2007-09-27 00:01 +0000 [r83976] Russell Bryant * pbx/pbx_dundi.c: remove a todo item that has been completed 2007-09-26 23:53 +0000 [r83974] Kevin P. Fleming * channels/chan_alsa.c: avoid the weird usage of assert() in the ALSA header files that gcc 4.2 wants to complain about 2007-09-26 21:35 +0000 [r83910-83943] Russell Bryant * channels/chan_sip.c: I changed my mind ... I think this should be a LOG_NOTICE. * channels/chan_sip.c: Add a log message that was requested by the masses in the developer tutorial session at Astricon. chan_sip did not output any message when a call was rejected because the extension was not found. This adds a verbose message (at verbose level 3) to note when this happens. * channels/chan_misdn.c: Fix building chan_misdn under dev-mode. (please run the configure script with --enable-dev-mode so this doesn't happen again ...) 2007-09-26 18:35 +0000 [r83879] Tilghman Lesher * channels/chan_zap.c: Remove unused 4k of memory on the program stack (closes issue #10827) 2007-09-25 14:13 +0000 [r83637-83773] Tilghman Lesher * main/app.c: jmls pointed out that unsetting the group and setting the group to the blank string aren't quite the same. * build_tools/make_defaults_h: In the source, keys are relative to the datadir, not varlib (which is the same in most cases, but it's good to be accurate). Closes issue #10811 * doc/realtime.txt: Oops. Removed the unworkable workaround. This note should never have been in the release. * main/app.c: Making change to group splitting, as discussed on the -dev list. The main effect of this will be to permit Set(GROUP([cat])=), i.e. unsetting a group. 2007-09-24 07:54 +0000 [r83620] Christian Richter * channels/chan_misdn.c: fixed round_robin group dial method, this never worked well on BRI Ports (2 channels) 2007-09-22 19:39 +0000 [r83558-83589] Steve Murphy * pbx/pbx_ael.c: This closes issue #10788 -- The exact same fixes are made here for the first arg in the for(arg1; arg2; arg3) {} statement, as were done for the 3rd arg. It can now be an assignment that will embedded in a Set() app, or a macro call, or an app call. * pbx/pbx_ael.c: This closes issue #10788 -- the 3rd arg in the for statement is now wrapped in Set() only if there's an '=' in that string. Otherwise, if it begins with '&', then a Macro call is generated; otherwise it is made into an app call. A bit more accomodating, keeps the new guys happy, and the guys with ael-1 code should be happy, too 2007-09-21 14:37 +0000 [r83432] Russell Bryant * main/rtp.c, channels/misdn_config.c, main/cdr.c, main/channel.c, channels/chan_misdn.c, pbx/ael/ael.tab.c, main/ast_expr2f.c, main/file.c, include/asterisk/sched.h, channels/chan_h323.c, pbx/pbx_dundi.c, utils/ael_main.c, main/ast_expr2.fl, channels/chan_mgcp.c, main/sched.c, res/res_config_pgsql.c, main/dnsmgr.c, channels/chan_sip.c, pbx/ael/ael.y, main/db1-ast/hash/hash.c, include/asterisk/channel.h, channels/chan_iax2.c: gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set of changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2. (closes issue #10774, patch from qwell) 2007-09-21 13:34 +0000 [r83400] Joshua Colp * channels/chan_sip.c: Fix video under certain circumstances. It would have been possible for the formats on the channel to not contain the video format. (closes issue #10782) Reported by: cwhuang 2007-09-20 21:16 +0000 [r83316-83348] Russell Bryant * main/asterisk.c: When daemonizing, don't change working directory to "/". It makes it not be able to do a core dump when not running as uid=root. (closes issue #10766, xrg) * contrib/scripts/safe_asterisk: Change safe_asterisk to explicitly ask for /bin/bash, as it uses bashisms. (closes issue #10772, reported by culrich) 2007-09-20 17:09 +0000 [r83246] Jason Parker * apps/app_disa.c: If # is pressed after dialing an extension in DISA, stop trying to collect more digits. (issue #10754) Reported by: atis Patches: app_disa.c.branch.patch uploaded by atis (license 242) app_disa.c.trunk.patch uploaded by atis (license 242) 2007-09-20 16:25 +0000 [r83230-83232] Joshua Colp * channels/chan_sip.c: Make sure the minimum T1 timer value is obeyed in all cases. (closes issue #10768) Reported by: flefoll Patches: chan_sip.c.trunk.83071.retrans-patch uploaded by flefoll (license 244) chan_sip.c.br14.83070.retrans-patch uploaded by flefoll (license 244) * channels/chan_sip.c: Fix a minor spelling error. (closes issue #10769) Reported by: flefoll Patches: chan_sip.c.trunk.83071.inita-patch uploaded by flefoll (license 244) chan_sip.c.br14.83070.inita-patch uploaded by flefoll (license 244) 2007-09-19 19:50 +0000 [r83121-83179] Russell Bryant * apps/app_system.c: The System() and TrySystem() applications can take a substantial amount of time to execute while not servicing the channel. So, put the channel in autoservice while the command is being executed. (closes issue #10726, reported by mnicholson) * funcs/func_curl.c: Using curl can take a substantial amount of time, so the channel should be autoserviced while waiting for it to complete. (closes issue #10725, reported by mnicholson) * channels/chan_iax2.c: When handling a reload of chan_iax2, don't use an ao2_callback() to POKE all peers. Instead, use an iterator. By using an iterator, the peers container is not locked while the POKE is being done. It can cause a deadlock if the peers container is locked because poking a peer will try to lock pvt structs, while there is a lot of other code that will hold a pvt lock when trying to go lock the peers container. (reported to me directly by Loic Didelot. Thank you for the debug info!) * main/manager.c: Fix up another potential race condition. Do the loop decrementing use count on events with the eventq protected from being changed. (reported on IRC by Ivan) 2007-09-19 13:47 +0000 [r83070-83074] Joshua Colp * apps/app_queue.c: Protect the CDR record from modification by pbx_exec so that the application data contains the Queue data. (closes issue #10761) Reported by: snar Patches: app-queue-mixmonitor.patch uploaded by snar (license 245) * channels/chan_sip.c: (closes issue #10760) Reported by: dimas Patches: chan_sip.patch uploaded by dimas (license 88) Read in subscribecontext option in general to be the default. 2007-09-19 09:32 +0000 [r83023-83024] Christian Richter * channels/chan_misdn.c: removed comment which violates the coding guidelines. * channels/misdn_config.c, channels/chan_misdn.c, channels/misdn/chan_misdn_config.h: added 'astdtmf' option to allow configuring the asterisk dtmf detector instead of the mISDN_dsp ones. also added the patch from irroot #10190, so that dtmf tones detected by the asterisk detector are passed outofband to asterisk, to make any use of dtmf tones at all. 2007-09-19 00:19 +0000 [r82992] Russell Bryant * apps/app_flash.c: Change the description of app_flash to note how it can be a useful tool instead of just saying that it is generally a worthless feature. (Thanks to Jim Van Meggelen for pointing it out and providing the proposed text) 2007-09-18 23:41 +0000 [r82961] Joshua Colp * apps/app_queue.c: Initialize a variable to NULL to make the world happy. 2007-09-18 22:42 +0000 [r82929] Russell Bryant * include/asterisk/agi.h, res/res_agi.c: Add a new patch to handle interrupting the fgets() call when using FastAGI. This version of the patch maintains the original behavior of the code when not using FastAGI. (closes issue #10553) Reported by: juggie Patches: res_agi_fgets-4.patch uploaded by juggie (license 24) res_agi_fgets_1.4svn.patch uploaded by juggie (license 24) Slight mods by me Tested by: juggie, festr 2007-09-18 21:49 +0000 [r82887-82913] Doug Bailey * main/manager.c: Corrected patch applied in revision r82887. * main/manager.c: Fixed a bug where http manager sessions prevented the eventq from being cleaned out because http manager sessions do not have a valid file descriptor. 2007-09-18 20:56 +0000 [r82867] Russell Bryant * main/manager.c: Fix a memory leak that can occur on systems under higher load. The issue is that when events are appended to the master event queue, they use the number of active sessions as a use count so it will know when all active sessions at the time the event happened have consumed it. However, the handling of the number of sessions was not properly synchronized, so the use count was not always correct, causing an event to disappear early, or get stuck in the event queue for forever. (closes issue #9238, reported by bweschke, patch from Ivan, modified by me) 2007-09-18 20:09 +0000 [r82865] Mark Michelson * apps/app_queue.c: Moving the logic for handling an empty membername to the create_member function so that there is a common place where this occurs instead of being spread out to several different places. 2007-09-18 18:59 +0000 [r82834] Kevin P. Fleming * apps/app_queue.c: there is no need for conditional logic to select ->interface or ->membername, snince ->membername will always be populated 2007-09-18 16:31 +0000 [r82802] Russell Bryant * pbx/pbx_dundi.c: When copying the contents from the wildcard peer, do a deep copy instead of shallow copy so that it doesn't crash when beging destroyed. (closes issue #10546, patch by me) 2007-09-18 15:28 +0000 [r82751] Jason Parker * configs/sip.conf.sample: Correct the allowexternaldomains option in SIP sample config. Issue 10753 2007-09-17 20:16 +0000 [r82594-82676] Russell Bryant * apps/app_voicemail.c, main/stdtime/localtime.c: Put a memset in ast_localtime() instead of a couple places in app_voicemail to prevent the problem everywhere instead of just a couple of places. (related to issue #10746) * apps/app_voicemail.c: Initialize some memory to fix crashes when leaving voicemail. This problem was fixed by running Asterisk under valgrind. (closes issue #10746, reported by arcivanov, patched by me) *** IMPORTANT NOTE: We need to check to see if this same bug exists elsewhere. * res/res_features.c: Handle the case where there are multiple dynamic features with the same digit mapping, but won't always match the activated on/by access controls. In that case, the code needs to keep trying features for a match. (reported by Atis on the asterisk-dev list, patched by me) 2007-09-17 16:40 +0000 [r82590-82592] Kevin P. Fleming * channels/chan_iax2.c: revert a change that wasn't supposed to be committed... doh! * apps/app_queue.c, channels/chan_iax2.c: fix a couple of places where a logical member name (if specified) was not used, but instead the direct interface was listed 2007-09-17 02:00 +0000 [r82514] Joshua Colp * main/pbx.c: (closes issue #10734) Reported by: asgaroth Instead of passing a NULL pointer into snprintf pass "". It makes Solaris much happier. 2007-09-14 21:19 +0000 [r82444] Steve Murphy * main/cdr.c: closes issue #10668; thanks to arkadia for his patch; had to leave out the bit about ending the previous cdr in the fork; it would destroy current implementations. 2007-09-14 21:17 +0000 [r82435] Russell Bryant * configs/zapata.conf.sample: Add a note to help clarify the value set with the echocancel option. (inspired by Malcolm's blog post on blogs.digium.com about HPEC) 2007-09-14 18:35 +0000 [r82396-82398] Mark Michelson * apps/app_queue.c: Crap, I broke the build. Fixed. * apps/app_queue.c: Adding member name field to manager events where they were missing before (closes issue #10721, reported by snar) 2007-09-14 17:48 +0000 [r82394] Jason Parker * channels/chan_zap.c: If a channel does not have an owner, do not try to set a channel variable. This will end up making the channel variable global, which is not right. Closes issue #10720, patch by flefoll. 2007-09-14 15:50 +0000 [r82382-82385] Russell Bryant * build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Add checking for libusb here, so nobody has to deal with conflicts in the chan_usbradio-1.4 branch every time the configure script gets changed * channels/chan_usbradio.c (removed), channels/xpmr (removed), channels/Makefile: Remove chan_usbradio from the main 1.4 branch. It can't live here because we have a strict policy to not include new features in release branches. However, I'm going to merge it into trunk, and I also have a special 1.4 based branch that includes this module. svn co http://svn.digium.com/svn/asterisk/team/jdixon/chan_usbradio-1.4 2007-09-14 14:42 +0000 [r82376] Mark Michelson * doc/CODING-GUIDELINES: Fixing a typo in the coding guidelines (closes issue #10717, reported and patched by leedm777) 2007-09-14 01:24 +0000 [r82368] Jim Dixon * apps/app_rpt.c: Fixed problem with changes made to cdr functionality 2007-09-14 00:52 +0000 [r82367] Kevin P. Fleming * channels/chan_usbradio.c: this new driver may not live in this branch for long (since it is a new feature), but it definitely should not be built by default 2007-09-14 00:34 +0000 [r82366] Jim Dixon * apps/app_rpt.c, channels/xpmr/xpmr_coef.h (added), channels/chan_usbradio.c (added), channels/xpmr/xpmr.h (added), channels/xpmr (added), channels/xpmr/LICENSE (added), channels/xpmr/sinetabx.h (added), configs/usbradio.conf.sample (added), channels/Makefile, channels/xpmr/xpmr.c (added): Added channel driver for USB Radio device and support thereof. 2007-09-13 23:11 +0000 [r82358] Jason Parker * pbx/pbx_spool.c: Fix a small typo. retrytime > waittime 2007-09-13 20:16 +0000 [r82346] Mark Michelson * apps/app_queue.c: Preemptively fixing a possible segfault. It is possible that queuename is NULL (meaning pause ALL queues), so use q->name instead. 2007-09-13 20:11 +0000 [r82344] Jason Parker * cdr/cdr_csv.c: Fix a crash that could occur in cdr_csv when mutliple threads tried to close the same file. Do we actually need the locking here? What happens if you open the same file twice, and two threads try to write to it at the same time? Is fputs() going to write out the entire line at once? I suspect that it could be possible for the second fopen to run during the first fputs, so the position could be in the middle of the previously written line... Issue 10347, initial patch by explidous (but I removed all of the paranoia stuff..) 2007-09-13 18:57 +0000 [r82337-82339] Russell Bryant * main/astobj2.c: resolve a warning when not building under dev mode * main/astobj2.c, main/asterisk.c, include/asterisk.h: Only compile in tracking astobj2 statistics if dev-mode is enabled. Also, when dev mode is enabled, register the CLI command that can be used to run the astobj2 test and print out statistics. 2007-09-13 18:12 +0000 [r82335] Kevin P. Fleming * /, LICENSE: Merged revisions 82334 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r82334 | kpfleming | 2007-09-13 11:10:12 -0700 (Thu, 13 Sep 2007) | 2 lines clarify the OpenSSL and OpenH323 license exceptions ........ 2007-09-13 16:25 +0000 [r82326] Mark Michelson * apps/app_queue.c: Added logic to handle the unlikely case that someone has two queues with the same name. Asterisk will log a warning message letting the user know that one was already defined with that name and is it skipping all further instances. This also will work for realtime queues but in order for that to happen, the user would have to trigger a perfectly timed reload as a realtime queue is being looked up, which is highly unlikely (but taken care of nonetheless). 2007-09-13 11:47 +0000 [r82309] Philippe Sultan * channels/chan_gtalk.c: Closes issue #9401, reported and patched by irrot, with slight modifications by me. Handle DTMF sent by Asterisk properly. 2007-09-12 21:56 +0000 [r82296] Russell Bryant * res/res_agi.c: Fix a check of the wrong pointer, as pointed out by an XXX comment left in the code. The problem was harmless, however. 2007-09-12 21:28 +0000 [r82291] Tilghman Lesher * main/stdtime/tzfile.h: Oops, wrong location for FreeBSD zone files 2007-09-12 20:24 +0000 [r82286] Dwayne M. Hubbard * apps/app_meetme.c: remove a race condition for the creation of recordthread's, and fix a small memory leak. This closes issue# 10636 2007-09-12 20:12 +0000 [r82285] Tilghman Lesher * main/stdtime/private.h, main/stdtime/tzfile.h, include/asterisk/localtime.h, main/stdtime/localtime.c: Working on issue #10531 exposed a rather nasty 64-bit issue on ast_mktime, so we updated the localtime.c file from source. Next we'll have to write ast_strptime to match. 2007-09-12 15:16 +0000 [r82278-82280] Russell Bryant * main/asterisk.c: Clean up the output of "asterisk -h". This tweaks the wording and wraps lines at 80 characters. (closes issue #10699, seanbright) * res/res_agi.c: revert patch from issue #10553, as someone not using fastagi reported that this broke their system. 2007-09-12 14:30 +0000 [r82274-82276] Mark Michelson * apps/app_voicemail.c: Accidentally committed changes to app_voicemail which do NOT need to be in the 1.4 branch yet. reverting... * apps/app_voicemail.c, apps/app_queue.c: We should only initialize a realtime queue when it is allocated, not every time we access it. This prevents the members ao2_container from being reallocated every time the queue is accessed. I also removed a debug message I had accidentally left in on a previous commit. 2007-09-11 22:37 +0000 [r82267] Russell Bryant * apps/app_queue.c: Fix incorrect uses of ao2_find(). Every one of these calls was reading bogus memory ... 2007-09-11 21:41 +0000 [r82265] Joshua Colp * codecs/gsm/src/lpc.c, codecs/gsm/src/long_term.c: (closes issue #10679) Reported by: andrew Build under dev mode when K6OPTS is enabled. 2007-09-11 20:49 +0000 [r82263] Russell Bryant * apps/app_queue.c: Fix another missing unref of member objects. This one was pointed out by Marta. When building the outgoing list in try_calling(), a member reference is stored in each outgoing entry. However, when this list got destroyed, the reference was not released. 2007-09-11 20:36 +0000 [r82261] Steve Murphy * main/cdr.c: this change should fix issue # 10659 -- what I worry about is how many other bug reports it may generate. Hopefully, we can please the/a majority. Hopefully. We shall see. Calls not marked ANSWERED and with only one channel name will not be posted. This should eliminate the double CDR's. 2007-09-11 16:05 +0000 [r82252] Mark Michelson * apps/app_queue.c: All instances of ao2_iterators which were just named 'i' have been renamed to 'mem_iter' so that when refcounted queues are merged into trunk, there will be little confusion regarding iterator names, especially when a queue and member iterator are used in the same function. 2007-09-11 16:03 +0000 [r82250] Russell Bryant * pbx/pbx_dundi.c: The sample dundi.conf claims support for a wildcard peer entry - [*], but the code did not support it. This patch makes it work. (closes issue #10546, patch by dds, with some changes by me) 2007-09-11 16:01 +0000 [r82249] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: fixed a hold/retrieve issue. 2007-09-11 15:26 +0000 [r82245] Russell Bryant * res/res_agi.c: (closes issue #10553) Reported by: juggie Patches: res_agi_fgets-2.patch uploaded by juggie (license 24) Tested by: juggie When using fastagi, fgets() can return before a full line is read. Add explicit handling for the case where it gets interrupted. 2007-09-11 14:56 +0000 [r82243] Joshua Colp * pbx/pbx_dundi.c: (closes issue #10577) Reported by: jamesgolovich Patches: asterisk-dundifree.diff.txt uploaded by jamesgolovich (license 176) Don't leak memory when unloading DUNDi. 2007-09-11 14:34 +0000 [r82198-82240] Russell Bryant * apps/app_queue.c: Add a couple more missing unrefs of queue member objects * apps/app_queue.c: Add a missing unref of a queue member in an error handling block * apps/app_queue.c: Document why membercount can not simply be replaced by ao2_container_count() * main/astobj2.c: backport astobj2 race condition fix. This function is the exact same as trunk so it applies here as well. 2007-09-10 18:02 +0000 [r82155] Tilghman Lesher * apps/app_queue.c: Convert struct member to use refcounts (closes issue #10199) 2007-09-10 15:02 +0000 [r82091] Mark Michelson * configs/misdn.conf.sample: Removing non-existent options from misdn configuration sample. (closes issue #10678, reported and patched by IgorG) 2007-09-09 02:35 +0000 [r82028] Tilghman Lesher * include/asterisk/lock.h: Fix inline compiles on really old compilers (who uses gcc 2.7 anymore, really?) 2007-09-08 18:41 +0000 [r81952-81997] Russell Bryant * main/asterisk.c: Fix a small memory leak. ast_unregister_atexit() did not free the entry it removed. * .cleancount: (closes issue #10672) Bump the cleancount so that a "make clean" will be forced. This is needed because my fix in revision 81599 made a change to a data structure in file.h, and since file dependency tracking is only on with dev-mode enabled, file format modules that don't get rebuilt may crash, as is the case with this issue. This makes me wonder - how much faster does the code build without the file dependency tracking enabled? If it doesn't make much of a difference, then it may be worth just keeping it on all of the time, or perhaps just not in release tarballs, so that this type of issue is avoided. 2007-09-07 19:48 +0000 [r81923] Jason Parker * apps/app_queue.c: Allow the MEMBERINTERFACE variable to be used as the mixmonitor filename. This moves the setting of the MEMBERINTERFACE variable to before mixmonitor. Issue 10671, patch by sim. 2007-09-07 15:25 +0000 [r81886] Mark Michelson * configs/queues.conf.sample: Moving the explanation for joinempty to a more appropriate place 2007-09-06 22:28 +0000 [r81832] Russell Bryant * channels/chan_sip.c: (closes issue #9724, closes issue #10374) Reported by: kenw Patches: 9724.txt uploaded by russell (license 2) Tested by: kenw, russell Resolve a deadlock that occurs when doing a SIP transfer to parking. I come across this type of deadlock fairly often it seems. It is very important to mind the boundary between the channel driver and the core in respect to the channel lock and the channel-pvt lock. Channel drivers lock to lock the pvt and then the channel once it calls into the core, while the core will do it in the opposite order. The way this is avoided is by having channel drivers either release their pvt lock while calling into the core, or such as in this case, unlocking the pvt just long enough to acquire the channel lock. 2007-09-06 22:05 +0000 [r81778-81826] Jason Parker * Makefile: We added COPTS for ASTCFLAGS additions, but not LDOPTS for ASTLDFLAGS. This adds LDOPTS * include/asterisk/astobj2.h: This should fix a build issue that people building against uClibc were seeing with the addition of astobj2 2007-09-06 19:40 +0000 [r81776] Joshua Colp * apps/app_meetme.c: (closes issue #10122) Reported by: stevefeinstein Patches: meetme-unmute-manager.diff uploaded by qwell (license 4) Tested by: stevefeinstein After looking over the code I agree with Qwell. Setting the file descriptor to conference each time just causes a fight back and forth. 2007-09-06 16:56 +0000 [r81743] Philippe Sultan * include/asterisk/jabber.h, channels/chan_gtalk.c: Various string length fixes. Removed an unused variable in aji_client structure (context) 2007-09-06 16:25 +0000 [r81682-81713] Mark Michelson * apps/app_queue.c: Fixes an issue where valid DTMF had to be pressed twice to exit a queue if a member's phone was ringing. (closes issue #10655, reported by strider2k, patched by me) * res/res_features.c: Fixes a memory leak (closes issue #10658, reported and patched by Ivan) 2007-09-06 14:20 +0000 [r81650] Philippe Sultan * res/res_jabber.c: According to both RFC 3920 - section 9.1.2 - and Google's XMPP server complaint, if set, the 'from' attribute must be set to the user's full JID. 2007-09-05 20:53 +0000 [r81599] Russell Bryant * include/asterisk/file.h, main/say.c, res/res_features.c, main/file.c, include/asterisk/channel.h: Fix an issue that can occur when you do an attended transfer to parking. If you complete the transfer before the announcement of the parking spot finishes, then the channel being parked will hear the remainder of the announcement. These changes make it so that will not happen anymore. Basically, res_features sets a flag on the channel is playing the announcement to so that the file streaming core knows that it needs to watch out for a channel masquerade, and if it occurs, to abort the announcement. (closes BE-182) 2007-09-05 17:18 +0000 [r81569] Tilghman Lesher * include/asterisk/lock.h: Solaris x86 compatibility fix 2007-09-05 15:19 +0000 [r81525] Mark Michelson * apps/app_queue.c: Fixing the build... 2007-09-05 15:14 +0000 [r81523] Jason Parker * channels/chan_phone.c: Do not try to unregister a NULL channel tech. Also changed load_module function to use defines rather than numbers for return values. Issue 10651, patch by rbraun_proformatique, with additions by me. 2007-09-05 15:03 +0000 [r81520] Mark Michelson * apps/app_queue.c: Reverting behavior of QUEUE_MEMBER_COUNT to only count members who are logged in and available. (related to issue #10652, reported by wuwu) 2007-09-05 13:11 +0000 [r81492] Joshua Colp * main/channel.c: (closes issue #10650) Reported by: tacvbo Only print out that the spy was removed while holding the spy lock. 2007-09-04 20:54 +0000 [r81453-81455] Jason Parker * apps/app_followme.c: Rather than attempt to play a file, we can just check whether it exists. Issue 10634, patch by me, testing by pabelanger, sanity checked by bweschke * configs/followme.conf.sample: Change default followme config file to point to the correct files. Issue 10644, patch by pabelanger 2007-09-04 18:37 +0000 [r81448] Russell Bryant * main/astobj2.c, include/asterisk/astobj2.h, channels/chan_iax2.c: Remove the typedefs on ao2_container and ao2_iterator. This is simply because we don't typedef objects anywhere else in Asterisk, so we might as well make this follow the same convention. 2007-09-04 16:40 +0000 [r81442] Kevin P. Fleming * channels/chan_sip.c: there is no point in sending 401 Unauthorized to a UAS that sent us a properly-formatted Authentication header with the expected username and nonce but an incorrect response (which indicates the shared secret does not match)... instead, let's send 403 Forbidden so that the UAS doesn't retry with the same authentication credentials repeatedly 2007-09-04 14:23 +0000 [r81435-81439] Joshua Colp * channels/chan_iax2.c: (closes issue #10632) Reported by: jamesgolovich Patches: asterisk-iaxfirmwareleak.diff.txt uploaded by jamesgolovich (license 176) Fix memory leak when unloading chan_iax2. The firmware files were not being freed. * main/channel.c: (closes issue #10476) Reported by: mdu113 Only look for the end of a digit when waiting for a digit. This in turn disables emulation in the core. * main/dns.c: (closes issue #10610) Reported by: john Patches: dns.c.patch uploaded by john (license 218) Tested by: mvanbaak Don't return a match if no SRV record actually exists. 2007-09-03 18:57 +0000 [r81433] Russell Bryant * channels/chan_iax2.c: Remove a couple of calls to ast_string_field_free_pools() on peers in error handling blocks in the code for building peers. The peer object destructor does this and doing it twice will cause a crash. (closes issue #10625, reported by and patched by pnlarsson) 2007-09-01 15:57 +0000 [r81426-81428] Mark Michelson * apps/app_queue.c: Changed a comment to be more accurate. (really this is just a test to make sure I can commit properly from home) * main/astobj2.c, include/asterisk/astobj2.h: Making match_by_addr into ao2_match_by_addr and making it available everywhere since it could be a handy callback to have 2007-08-31 21:27 +0000 [r81418] Russell Bryant * include/asterisk/astobj2.h: Remove references to a debugging parameter that does not exist 2007-08-31 19:48 +0000 [r81416] Mark Michelson * apps/app_queue.c: Fixed broken behavior of a reload on realtime queues. Prior to this patch, if a reload was issued and a realtime queue had callers waiting in it, then the queue would be removed from the queue list, but it would not actually be freed (in fact, a debug message warning about a memory leak would come up). With this patch, reloads do not touch realtime queues at all. 2007-08-31 19:16 +0000 [r81415] Tilghman Lesher * funcs/func_logic.c: The IF() function was not allowing true values that had embedded colons (closes issue #10613) 2007-08-31 18:44 +0000 [r81412] Jason Parker * apps/app_dial.c: Re-order dial options to be in line with the existing alpha order. Issue 10621, initial patch by junky 2007-08-31 17:38 +0000 [r81410] Philippe Sultan * channels/chan_gtalk.c: Make the 'gtalk show channels' CLI command available. Closes issue 10548, reported by keepitcool. 2007-08-31 15:53 +0000 [r81406] Joshua Colp * res/res_speech.c: Make it the engine's responsible to check for the presence of results. 2007-08-31 15:51 +0000 [r81405] Kevin P. Fleming * codecs/codec_zap.c: add missing "transcoder show" (and deprecated "show transcoder") CLI commands that were in 1.2 but never added to 1.4 2007-08-31 14:38 +0000 [r81401-81403] Joshua Colp * res/res_features.c: (closes issue #10618) Reported by: dimas Don't pass through the stopped sounds frame.... just drop it. * res/res_features.c: (closes issue #10009) Reported by: dimas Don't output a bridge failed warning message if it failed because one of the channels was part of the masquerade process. That is perfectly normal. 2007-08-30 22:05 +0000 [r81397] Mark Michelson * apps/app_queue.c: Removing an extraneous (and possibly misleading) log message. Firstly, if the announce file isn't found, the streaming functions will report it. Secondly, not all non-zero returns from play_file mean that the announce file wasn't found. Positive return values simply mean that a digit was pressed (most likely to skip through the announcement). (closes issue #10612, reported and patched by dimas) 2007-08-30 21:23 +0000 [r81395] Joshua Colp * channels/chan_sip.c: (closes issue #10514) Reported by: casper Patches: chan_sip.c.80129.diff uploaded by casper (license 55) Remove needless check for AUTH_UNKNOWN_DOMAIN. It was impossible for it to ever be that value. 2007-08-30 21:11 +0000 [r81392] Steve Murphy * main/cdr.c: via issue 10599, where 'CDR already initialized' messages are being generated. Since all channels will have an init'd CDR attached at creation time, this message is now particularly useless. Removed. 2007-08-30 15:38 +0000 [r81383] Russell Bryant * channels/h323/ast_h323.cxx: Add missing checks for the PTRACING define. (closes issue #10559, paravoid) 2007-08-30 15:35 +0000 [r81381] Mark Michelson * apps/app_queue.c: Changed some manager event messages to reflect whether a queue member is a realtime member or not 2007-08-30 15:33 +0000 [r81379] Russell Bryant * configs/modem.conf.sample (removed), configs/enum.conf.sample, configs/extensions.ael.sample: Fix a typo, update a reload command, and remove an unused configuration file. (closes issue #10606, casper) 2007-08-30 14:53 +0000 [r81375] Joshua Colp * main/pbx.c: (closes issue #10603) Reported by: jmls Patches: pbx.diff uploaded by jmls (license 141) Backport changes from 81372. Add REASON dialplan variable for when an originated call fails and the failed extension is executed. 2007-08-30 14:43 +0000 [r81373] Christian Richter * channels/chan_misdn.c: Fixed some warnings. 2007-08-30 14:23 +0000 [r81369] Joshua Colp * res/res_features.c: (issue #10599) Reported by: dimas Handle the -1 control subclass during feature dialing (it indicates to stop sounds). 2007-08-30 08:31 +0000 [r81367] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: Fixed a severe issue where a misdn_read would lock the channel, but read would not return because it blocks. later chan_misdn would try to queue a frame like a AST_CONTROL_ANSWER which could result in a deadlock situation. misdn_read will now not block forever anymore, and we don't queue the ANSWER frame at all when we already was called with misdn_answer -> answer would be called twice. Also we don't explicitly send a RELEASE_COMPLETE on receiption of a RELEASE anymore, because mISDN does that for us, this resulted in a problem on some switches, which would block our port after some calls for a short while. 2007-08-29 16:35 +0000 [r81346-81349] Mark Michelson * apps/app_queue.c: This patch, in essence, will correctly pause a realtime queue member and reflect those changes in the realtime engine. (issue #10424, reported by irroot, patch by me) This patch creates a new function called update_realtime_member_field, which is a generic function which will allow any one field of a realtime queue member to be updated. This patch only uses this function to update the paused status of a queue member, but it lays the foundation for persisting the state of a realtime member the same way that static members' state is maintained when using the persistentmembers setting * apps/app_queue.c: Changed some tabs to spaces 2007-08-29 15:57 +0000 [r81342] Russell Bryant * main/Makefile: If chan_h323 is not being built, don't use g++ to do the final link of Asterisk. (in response to a question on the asterisk-dev list) 2007-08-29 15:52 +0000 [r81340] Mark Michelson * apps/app_queue.c: This fix creates a more accurate way of detecting whether realtime members were deleted. (closes issue 10541, reported by Alric, patched by me) The REALLY nice things about this patch is that queue members now have a "realtime" field which will be true if the member is a realtime member. This means we can check this value prior to certain processing if it should ONLY be done for realtime members. 2007-08-29 14:13 +0000 [r81331] Joshua Colp * channels/chan_sip.c: (closes issue #9690) Reported by: mattv Make rtp timeouts work even if two RTP streams are directly bridged in the RTP stack. 2007-08-28 21:38 +0000 [r81226-81291] Russell Bryant * channels/chan_iax2.c: Change the message about receiving a mini-frame before the first full voice frame to a DEBUG message. * pbx/pbx_dundi.c: revert unintentional changes in rev 81226 * configs/indications.conf.sample, pbx/pbx_dundi.c: Add Russian tones. (closes issue #7953, hanabana) 2007-08-28 14:12 +0000 [r81120-81189] Mark Michelson * contrib/scripts/vmail.cgi: Fixes a forwarding problem when using res_config_mysql (closes issue #10573, reported by chrisvaughan, patch suggested by chrisvaughan as well) * apps/app_queue.c: Resolve a potential deadlock. In this case, a single queue is locked, then the queue list. In changethread(), the queue list is locked, and then each individual queue is locked. Under the right circumstances, this could deadlock. As such, I have unlocked the individual queue before locking the queue list, and then locked the queue back after the queue list is unlocked. * channels/chan_agent.c: DTMF begin frames should be ignored so that when an agent acks a call with the '#' key, he doesn't cause a queue's announce file to be interrupted. Also went ahead and did the same for the '*' key and for ending a call. (closes issue #10528, reported by deskhack, patched by me) 2007-08-27 17:27 +0000 [r81042-81074] Russell Bryant * pbx/pbx_dundi.c: Add a \todo to note that this module leaks most of the memory it allocates on unload and should be fixed (when I'm not in the middle of something else ...). * pbx/pbx_dundi.c: explicity define a variable as a boolean * res/res_musiconhold.c: (closes issue #10419) Reported by: mustardman Patches: asterisk-mohposition.diff.txt uploaded by jamesgolovich (license 176) This patch fixes a few problems with music on hold. * Fix issues with starting at the beginning of a file when it shouldn't. * Fix the inuse counter to be decremented even if the class had not been set to be deleted when not in use anymore * Don't arbitrarily limit the number of MOH files to 255 2007-08-27 15:01 +0000 [r81012] Joshua Colp * channels/chan_sip.c: (closes issue #10561) Reported by: jesselang Patches: chan_sip-ChannelReload-20080825.patch uploaded by jesselang (license 202) Remove an extra \r\n to make the ChannelReload event conform with every other event. 2007-08-27 14:55 +0000 [r81010] Mark Michelson * apps/app_queue.c: Found a case where the queue's membercount is off. It does not take into account dynamic members on a reload. 2007-08-27 13:20 +0000 [r80974] Joshua Colp * main/rtp.c: (closes issue #10562) Reported by: idkpmiller Correct jitter value output in the CLI to be as expected. 2007-08-26 18:11 +0000 [r80932] Russell Bryant * channels/chan_iax2.c: Remove an extra signal_condition() for the scheduler thread. (closes issue #10564, patch from casper) 2007-08-25 17:37 +0000 [r80895] Russell Bryant * channels/chan_iax2.c: Fix some issues with the handling of the scheduler in chan_iax2. Most of the places that scheduled items to be executed by the scheduler thread did not signal the scheduler thread to wake up so that it could recalculate the time until the next action. These changes will make the scheduler thread more responsive and ensure that actions get executed as close to when intended as possible instead of it being possible for very long delays. 2007-08-24 22:59 +0000 [r80878] Dwayne M. Hubbard * apps/app_zapateller.c: An empty string is an empty callerid ... so zap it. This closes issue #10502, which was pointed out by dswartz. Thank you, and may the swartz be with you 2007-08-24 21:22 +0000 [r80820-80849] Russell Bryant * channels/chan_iax2.c: If dnsmgr is in use, and no DNS servers are available when Asterisk first starts, then don't give up on poking peers. Allow the poke to get rescheduled so that it will work once the dnsmgr is able to resolve the host. (closes issue #10521, patch by jamesgolovich) * main/dsp.c: Improve the debouncing logic in the DTMF detector to fix some reliability issues. Previously, this code used a shift register of hits and non-hits. However, if the start of the digit isn't clean, it is possible for the leading edge detector to miss the digit. These changes replace the flawed shift register logic and also does the debouncing on the trailing edge as well. (closes issue #10535, many thanks to softins for the patch) 2007-08-24 19:52 +0000 [r80818] BJ Weschke * apps/app_queue.c: A minor correction to the available logic of autofill. If a queue member is paused, they're not really "available" so don't count them as such. Somewhat related to issue #10155 2007-08-24 18:52 +0000 [r80789] Steve Murphy * main/cdr.c: From a complaint by jmls, I realize that the message in cdr_disposition is unnecessary. To get failure disposition, just return -1; no use having more than one case do that. 2007-08-24 15:51 +0000 [r80750] Mark Michelson * apps/app_voicemail.c: Fix a possible crash in IMAP voicemail. 2007-08-24 15:41 +0000 [r80747] Tilghman Lesher * main/pbx.c, UPGRADE.txt: Make the deprecation warning inline with the code, instead of only in documentation (closes issue #10549) 2007-08-24 15:28 +0000 [r80722] Russell Bryant * utils/ael_main.c: Tweak the formatting of this MODULEINFO block. I think this would have caused a "*" to get in the menuselect-tree file. 2007-08-24 14:48 +0000 [r80689-80717] Steve Murphy * utils/ael_main.c: This change addresses JerJer's complaint that aelparse builds and installs even if pbx_ael is unchecked in the menuselect stuff. * pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/ael/ael-test/ref.ael-test6: backport of 80649, a fix to an unreported problem in the ael parser, that results in a crash on a 64bit machine 2007-08-24 11:42 +0000 [r80661] Philippe Sultan * channels/chan_gtalk.c: Closes issue #10509 Googletalk calls are answered too early, which results in CDRs wrongly stating that a call was ANSWERED when the calling party cancelled a call before before being established. We must not answer the call upon reception of a 'transport-accept' iq packet, but this packet still needs to be acknowledged, otherwise the remote peer would close the call (like in #8970). 2007-08-23 21:34 +0000 [r80601-80617] Dwayne M. Hubbard * channels/misdn/isdn_lib.c: make misdn/isdn_lib compile without warnings * channels/chan_misdn.c: make chan_misdn compile without warnings 2007-08-23 20:16 +0000 [r80539-80573] Russell Bryant * include/asterisk/features.h, res/res_features.c: When executing a dynamic feature, don't look it up a second time by digit pattern after we already looked it up by name. This causes broken behavior if there is more than one feature defined with the same digit pattern. (closes issue #10539, reported by bungalow, patch by me) * funcs/func_timeout.c: Revert very broken fix for issue #10540 ... none of these values take ms so I don't know what I was thinking * funcs/func_timeout.c: Fix func_timeout to take values in floating point so 1.5 actually means 1.5 seconds instead of being rounded. (closes issue #10540, reported by spendergrass, patch by me) 2007-08-23 17:14 +0000 [r80505-80507] Jason Parker * /: *sigh* * /: use autotagged externals 2007-08-23 17:08 +0000 [r80501] Kevin P. Fleming * channels/chan_zap.c: report the actual channel number that was unregistered, instead of assuming that the interface list consists of channels 1 through with no gaps in the sequence 2007-08-23 17:02 +0000 [r80360-80499] Russell Bryant * channels/chan_iax2.c: Fix some code where it was possible for a reference to a peer to not get released when it should. Thank you to Marta Carbone for pointing this out! * main/astobj2.c, include/asterisk/astobj2.h, channels/chan_iax2.c: This is a hack to maintain old behavior of chan_iax2. This ensures that if the peers and users are being stored in a linked list, that they go in the list in the same order that the older code used. This is necessary to maintain the behavior of which peers and users get matched when traversing the container. * res/res_agi.c: Revert res_agi fix that didn't quite work until we get it right ... * include/asterisk/astobj2.h: Add some more documentation on iterating ao2 containers. The documentation implies that is possible to miss an object or see an object twice while iterating. After looking through the code and talking with mmichelson, I have documented the exact conditions under which this can happen (which are rare and harmless in most cases). * main/astobj2.c: When converting this code to use the list macros, I changed it so objects are added to the head of a bucket instead of the tail. However, while looking over code with mmichelson, we noticed that the algorithm used in ao2_iterator_next requires that items are added to the tail. This wouldn't have caused any huge problem, but it wasn't correct. It meant that if an object was added to a container while you were iterating it, and it was added to the same bucket that the current element is in, then the new object would be returned by ao2_iterator_next, and any other objects in the bucket would be bypassed in the traversal. * channels/chan_sip.c: Don't crash when using realtime in chan_sip without an insecure setting in the database. (closes issue #10348, reported by link55, fixed by me) * main/astobj2.c (added), main/Makefile, include/asterisk/astobj2.h (added), doc/iax.txt, UPGRADE.txt, include/asterisk/strings.h, channels/chan_iax2.c: Merge changes from team/russell/iax_refcount. This set of changes fixes problems with the handling of iax2_user and iax2_peer objects. It was very possible for a thread to still hold a reference to one of these objects while a reload operation tries to delete them. The fix here is to ensure that all references to these objects are tracked so that they can't go away while still in use. To accomplish this, I used the astobj2 reference counted object model. This code has been in one of Luigi Rizzo's branches for a long time and was primarily developed by one of his students, Marta Carbone. I wanted to go ahead and bring this in to 1.4 because there are other problems similar to the ones fixed by these changes, so we might as well go ahead and use the new astobj if we're going to go through all of the work necessary to fix the problems. As a nice side benefit of these changes, peer and user handling got more efficient. Using astobj2 lets us not hold the container lock for peers or users nearly as long while iterating. Also, by changing a define at the top of chan_iax2.c, the objects will be distributed in a hash table, drastically increasing lookup speed in these containers, which will have a very big impact on systems that have a large number of users or peers. The use of the hash table will be made the default in trunk. It is not the default in 1.4 because it changes the behavior slightly. Previously, since peers and users were stored in memory in the same order they were specified in the configuration file, you could influence peer and user matching order based on the order they are specified in the configuration. The hash table does not guarantee any order in the container, so this behavior will be going away. It just means that you have to be a little more careful ensuring that peers and users are matched explicitly and not forcing chan_iax2 to have to guess which user is the right one based on secret, host, and access list settings, instead of simply using the username. If you have any questions, feel free to ask on the asterisk-dev list. * res/res_agi.c: Juggie in #asterisk-dev was reporting problems where fgets would return without reading the whole line when using fastagi. When this happens, errno was set to EINTR or EAGAIN. This patch accounts for the possibility and lets fgets continue in that case. 2007-08-22 18:53 +0000 [r80302-80330] Jason Parker * Makefile, build_tools/mkpkgconfig, build_tools/make_build_h, build_tools/strip_nonapi, build_tools/prep_moduledeps, build_tools/make_buildopts_h: Fix a few build issues in Solaris (and likely others). Use GREP and ID variables from autoconf. Reported to me in #asterisk-dev I forgot who reported this - sorry. :( * Makefile: Change a syntax that the GNU make in Solaris dislikes. * build_tools/make_version: Fix a bashism (we explicitly request /bin/sh). Remove some oddly placed quotes I found in passing. 2007-08-22 16:21 +0000 [r80257] Russell Bryant * Makefile: Honor the contents of the COPTS variable as custom target CFLAGS. Apparently this is what openwrt does. (reported by Brian Capouch on the asterisk-dev list, patch by me) 2007-08-22 16:14 +0000 [r80255] Joshua Colp * main/rtp.c: (closes issue #10526) Reported by: sinistermidget Revert commit from issue #10355 and return timestamp skew to 640. 2007-08-21 Russell Bryant * Asterisk 1.4.11 released. 2007-08-21 18:42 +0000 [r80183] Russell Bryant * channels/chan_sip.c: Don't record SIP dialog history if it's not turned on. Also, put an upper limit on how many history entires will be stored for each SIP dialog. It is currently set to 50, but can be increased if deemed necessary. (closes issue #10421, closes issue #10418, patches suggested by jmoldenhauer, patches updated by me) (Security implications documented in AST-2007-020) 2007-08-21 16:39 +0000 [r80166-80167] Steve Murphy * include/asterisk/alaw.h, include/asterisk/ulaw.h: ugh. removing the diffs from ulaw.h and alaw.h for now; accidentally added them in 80166 * main/alaw.c, include/asterisk/alaw.h, include/asterisk/ulaw.h: This patch solves problem 1 in 8126; it should not slow down the alaw codec, but should prevent signal degradation via multiple trips thru the codec. Fossil estimates the twice thru this codec will prevent fax from working. 4-6 times thru would result hearable, noticeable, voice degradation. 2007-08-21 15:22 +0000 [r80132] Russell Bryant * channels/chan_mgcp.c: Don't try to dereference the owner channel when it may not exist (issue #10507, maxper) 2007-08-21 15:03 +0000 [r80130] Jason Parker * configs/cdr.conf.sample: (issue #10510) Reported by: casper Patches: cdr.conf.diff uploaded by casper (license 55) Fix a few errors in sample cdr config file. 2007-08-20 21:57 +0000 [r80088] Russell Bryant * apps/app_queue.c: Fix the build of app_queue 2007-08-20 21:39 +0000 [r80049-80086] Mark Michelson * apps/app_queue.c: After a discussion on #asterisk-dev, it was decided that this should be in 1.4 as well. (issue #10424, reported and patched by irroot) * apps/app_queue.c: Found a pointless ternary if. member->dynamic was set to 1 and has no opportunity to change between then and this line, so "dynamic" will ALWAYS be output. 2007-08-20 16:08 +0000 [r80047] Jason Parker * configs/extensions.conf.sample: (issue #10499) Reported by: casper Patches: extensions.conf.sample.diff uploaded by casper (license 55) Update CLI examples in extensions.conf.sample to reflect command changes. 2007-08-20 15:34 +0000 [r80044] Mark Michelson * apps/app_voicemail.c: Ukrainian language voicemail support. (closes issue #10458, reported and patched by Oleh) 2007-08-20 02:42 +0000 [r79998] Tilghman Lesher * apps/app_voicemail.c: Missing curly braces. Oops. (Reported by snuffy via IRC) 2007-08-18 14:30 +0000 [r79947] Tilghman Lesher * apps/app_voicemail.c: Don't allocate vmu for messagecount when we could just use the stack instead (closes issue #10490) Also, remove a useless (and leaky) SQLAllocHandle (closes issue #10480) 2007-08-17 21:01 +0000 [r79912] Russell Bryant * channels/chan_zap.c: Avoid a crash in the handling of DTMF based Caller ID. It is valid for ast_read to return NULL in the case that the channel has been hung up. (crash reported by anonymouz666 on IRC in #asterisk-dev) 2007-08-17 19:14 +0000 [r79906] Mark Michelson * apps/app_voicemail.c: Patch allows for more seamless transition from file storage voicemail to ODBC storage voicemail. If a retrieval of a greeting from the database fails, but the file is found on the file system, then we go ahead an insert the greeting into the database. The result of this is that people who switch from file storage to ODBC storage do not need to rerecord their voicemail greetings. 2007-08-17 19:12 +0000 [r79902-79904] Jason Parker * channels/chan_sip.c, main/utils.c, include/asterisk/strings.h: Don't send a semicolon over the wire in sip notify messages. Caused by fix for issue 9938. I basically took the code that existed before 9938 was fixed, and copied it into a new function - ast_unescape_semicolon There should be very few places this will be needed (pbx_config does NOT need this (see issue 9938 for details)) Issue 10430, patch by me, with help/ideas from murf (thanks murf). * channels/chan_local.c: Re-add the setting of callerid name and number. Issue 10485, reported by and fix explained by paradise. 2007-08-17 13:37 +0000 [r79857] Russell Bryant * channels/chan_sip.c: Fix some crashes in chan_sip. This patch changes various places that add items to the scheduler to ensure that they don't overwrite the ID of a previously scheduled item. If there is one, it should be removed. (closes issue #10391, closes issue #10256, probably others, patch by me) 2007-08-17 08:22 +0000 [r79833] Christian Richter * channels/chan_misdn.c: sometimes we don't need to signal dtmf tones to asterisk, we just want them to go through as inband. Otherwise they might be generated by the other channel partner and then there is a double tone. 2007-08-16 22:32 +0000 [r79756-79792] Russell Bryant * res/res_musiconhold.c: Fix a little race condition that could cause a crash if two channels had MOH stopped at the same time that were using a class that had been marked for deletion when its use count hits zero. * res/res_musiconhold.c: This patch fixes a bug where reloading the module with "module reload" did not delete classes from memory that were no longer in the config. This patch fixes that problem as well as another one. Previously, if you reloaded MOH using the "moh reload" CLI command, which behaved differently than "module reload ...", MOH had to be stopped on every channel and started again immediately. However, there was no way to tell what class was being used, so they would all fall back to the default class. (closes issue #10139) Reported by: blitzrage Patches: asterisk-10139-advanced.diff.txt uploaded by jamesgolovich (license 176) Tested by: jamesgolovich * channels/chan_iax2.c: Fix more deadlocks in chan_iax2 that were introduced by making frame handling and scheduling multi-threaded. Unfortunately, we have to do some expensive deadlock avoidance when queueing frames on to the ast_channel owner of the IAX2 pvt struct. This was already handled for regular frames, but ast_queue_hangup and ast_queue_control were still used directly. Making these changes introduced even more places where the IAX2 pvt struct can disappear in the context of a function holding its lock due to calling a function that has to unlock/lock it to avoid deadlocks. I went through and fixed all of these places to account for this possibility. (issue #10362, patch by me) 2007-08-16 21:16 +0000 [r79690-79748] Mark Michelson * channels/chan_agent.c: Fixes a problem where agents would get stuck busy due to their wrapuptime being longer than the queue's wrapuptime and ringinuse=no for the queue. (closes issue #10215, reported by Doug, repaired by me) Special thanks to fkasumovic for pointing out the source of the problem and to bweschke for helping to come up with a solution! * apps/app_voicemail.c: base_encode is not trying to open a log file, so we should not call it a log file in the warning. (related to issue #10452, reported by bcnit) 2007-08-16 09:37 +0000 [r79665] Philippe Sultan * res/res_jabber.c: A fix for two critical problems detected while working with Daniel McKeehan in issue #10184. Upon priority change, the resource list is not NULL terminated when moving an item to the end of the list. This makes Asterisk endlessy loop whenever it needs to read the list. Jids with different resource and priority values, like in Gmail's and GoogleTalk's jabber clients put that problem in evidence. Upon reception of a 'from' attribute with an empty resource string, Asterisk crashes when trying to access the found->cap pointer if the resource list for the given buddy is not empty. This situation is perfectly valid and must be handled. The Gizmoproject's jabber client put that problem in evidence. Also added a few comments in the code as well as a handle for the capabilities from Gmail's jabber client, which are stored in a caps:c tag rather than the usual c tag. Closes issue #10184. 2007-08-16 08:21 +0000 [r79642] Christian Richter * channels/misdn/ie.c: 0x80 + protocol is wrong for USERUSER when we want to send IA5 Chars. 2007-08-15 14:40 +0000 [r79553] Joshua Colp * main/rtp.c: (closes issue #10440) Reported by: irroot (closes issue #10454) Reported by: flo_turc Increase maximum timestamp skew to 120. 20 was apparently far too low. 2007-08-15 14:26 +0000 [r79527] Mark Michelson * apps/app_voicemail.c: Fixed an error in the Russian language voicemail intro. (issue #10458, reported and patched by Oleh) 2007-08-15 14:18 +0000 [r79523] Joshua Colp * channels/chan_sip.c: (closes issue #10456) Reported by: irroot Patches: sip_timeout.patch uploaded by irroot (license 52) Change hardcoded timer value to defined value. I'm doing this in 1.4 as well so if it needs to be changed in the future this place would not have been forgotten. 2007-08-14 18:49 +0000 [r79436-79470] Russell Bryant * channels/chan_iax2.c: Fix another spot where an iax2_peer would be leaked if realtime was in use. * channels/chan_iax2.c: Fix some memory leaks throughout chan_iax2 related to the use of realtime. I found these while working on iax2_peer object reference tracking. 2007-08-14 15:27 +0000 [r79397] Joshua Colp * res/res_features.c: (closes issue #10415) Reported by: atis Revert fix for #10327 as it causes more issues then it solves. 2007-08-13 22:40 +0000 [r79363] Steve Murphy * pbx/pbx_ael.c: memset really, really needs to be used here. 2007-08-13 21:57 +0000 [r79334] Joshua Colp * res/res_speech.c, apps/app_speech_utils.c, include/asterisk/speech.h: Instead of accepting a single DTMF character accept a full string. 2007-08-13 20:37 +0000 [r79272-79301] Russell Bryant * channels/chan_iax2.c: Don't call find_peer in registry_authrequest with the pvt lock held to avoid a deadlock. * channels/chan_iax2.c: Release the pvt lock before calling find_peer in register_verify to avoid a deadlock. Also, remove some unnecessary locking in auth_fail that was only done recursively. * channels/chan_iax2.c: Don't call find_peer within update_registry with a pvt lock held. This can cause a deadlock as the code will eventually call find_callno. * channels/chan_iax2.c: I am fighting deadlocks in chan_iax2. I have tracked them down to a single core issue. You can not call find_callno() while holding a pvt lock as this function has to lock another (every) other pvt lock. Doing so can lead to a classic deadlock. So, I am tracking down all of the code paths where this can happen and fixing them. The fix I committed earlier today was along the same theme. This patch fixes some code down the path of authenticate_reply. 2007-08-13 17:49 +0000 [r79255] Steve Murphy * pbx/ael/ael-test/ref.ael-vtest21 (added), pbx/ael/ael-test/ref.ael-test19, pbx/ael/ael-test/ael-vtest21/extensions.ael (added), pbx/ael/ael-test/ael-vtest21 (added), pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test11, pbx/pbx_ael.c, pbx/ael/ael-test/ref.ael-test14, utils/ael_main.c: This patch fixes bug 10411. I added a new regression test, some regression test cleanups 2007-08-13 15:28 +0000 [r79214] Russell Bryant * channels/chan_iax2.c: Fix a potential deadlock in socket_process. check_provisioning can eventually call find_callno. You can't hold a pvt lock while calling find_callno because it goes through and locks every single one looking for a match. 2007-08-13 14:51 +0000 [r79174-79207] Joshua Colp * res/res_speech.c, apps/app_speech_utils.c, include/asterisk/speech.h: Add an API call to allow the engine to know that DTMF was received. * channels/chan_oss.c, channels/chan_mgcp.c, channels/chan_phone.c, channels/chan_local.c, channels/chan_misdn.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_skinny.c, channels/chan_h323.c, channels/chan_gtalk.c, channels/chan_iax2.c: (closes issue #10437) Reported by: haklin Don't set the callerid name and number a second time on a newly created channel. ast_channel_alloc itself already sets it and setting it twice would cause a memory leak. 2007-08-11 05:23 +0000 [r79142] Tilghman Lesher * res/res_odbc.c: Ensure the connection gets marked as used at allocation time (closes issue #10429, report and fix by mnicholson) 2007-08-10 20:53 +0000 [r79044-79099] Steve Murphy * main/channel.c, pbx/pbx_spool.c, include/asterisk/channel.h: From a user complaint on #asterisk, I have forced pbx_spool to explain what reason codes mean, when they are logged * main/cdr.c: Re bug behavior mentioned in #asterisk, made this tweak to code, to prevent hundreds of log messages from being generated * main/cdr.c: This will help debug; from a question asked on #asterisk 2007-08-10 Russell Bryant * Asterisk 1.4.10.1 released. 2007-08-10 15:20 +0000 [r78995] Russell Bryant * include/asterisk/lock.h: The last set of changes that I made to "core show locks" made it not able to track mutexes unless they were declared using AST_MUTEX_DEFINE_STATIC. Locks initialized with ast_mutex_init() were not tracked. It should work now. 2007-08-10 14:15 +0000 [r78951-78955] Joshua Colp * main/file.c: Don't bother having the core pass through or emulate begin DTMF frames when in an ast_waitstream. It only cares about the end of DTMF. * configs/queues.conf.sample: (closes issue #10422) Reported by: bhowell Add note to sample configuration about module load order and how it can cause perfectly good queue members to be marked as invalid. 2007-08-10 13:24 +0000 [r78936] Christian Richter * channels/chan_misdn.c, channels/misdn/ie.c, channels/misdn/isdn_msg_parser.c: fixed a bug with the useruser information element. We send them now also in the disconnect message. 2007-08-09 23:47 +0000 [r78907] Mark Michelson * apps/app_voicemail.c: Improved a bit of logic regarding comma-separated mailboxes in has_voicemail. Also added some braces to some compound if statements since unbraced if statements scare me in general. 2007-08-09 23:10 +0000 [r78891] Steve Murphy * Makefile: This fixes bug 10416; thanks to mvanbaak for the pretty output 2007-08-09 22:03 +0000 [r78826-78860] Mark Michelson * apps/app_voicemail.c: Removing some extra debug code I left in my last commit * apps/app_voicemail.c: Quite a few changes regarding IMAP storage. 1. instead of using inboxcount as the core message counting function, we use messagecount instead. This makes it possible to count messages in folders besides just INBOX and Old. 2. inboxcount and hasvoicemail now use messagecount as their means of determining return values. 3. Added a copy_message function for IMAP storage. Unfortunately I don't have the means to test it, but it seems like a pretty straightforward function. 4. Removed a #ifndef IMAP_STORAGE and matching #endif from leave_voicemail for a couple of reasons. One, we want to support copying mail to multiple IMAP boxes, and two, IMAP was broken because a STORE macro had been moved into this section of code. * channels/chan_sip.c: I broke canreinvite...Now I'm fixing it. I put some new code in the wrong place and so I've reverted the canreinvite section to how it was and put my new code where it should be. 2007-08-09 17:58 +0000 [r78717-78778] Russell Bryant * apps/app_voicemail.c: add a comment to indicate that inboxcount for ODBC_STORAGE needs to be fixed to support multiple mailboxes * apps/app_voicemail.c: Fix subscriptions to multiple mailboxes for ODBC_STORAGE. Also, leave a comment for this to be fixed for IMAP_STORAGE, as well. I left IMAP alone since I know MarkM was working on this code right now for another reason. This is broken even worse in trunk, but for a different reason. The fact that the mailbox option supported multiple mailboxes is completely not obvious from the code in the channel drivers. Anyway, I will fix that in another commit ... * apps/app_meetme.c: Fix a problem with the combination of the 'F' option to pass DTMF through a conference and options that use DTMF to activate various features. The problem was that the BEGIN frame would be passed through, but the END frame would get intercepted to activate a feature. Then, the other conference members would hear DTMF for forever, which they didn't seem to like very much. (closes issue #10400, reported by stevefeinstein, fixed by me) 2007-08-08 19:29 +0000 [r78646] Jason Parker * doc/jabber.txt: Fix mogs email address. 2007-08-08 18:16 +0000 [r78575-78620] Mark Michelson * apps/app_voicemail.c: Fixed some compiler warnings so that compiling with dev-mode and IMAP storage would not have any errors. This section of code may get changed again shortly since my change uncovers a rather silly bit of logic. * apps/app_queue.c: Changing a bit of logic so that someone will NEVER exit the queue on timeout unless they have enabled the 'n' option. This commit relates to issue #10320. Thanks to jfitzgibbon for detailing the idea behind this code change. 2007-08-08 13:51 +0000 [r78569] Joshua Colp * configs/sip.conf.sample: (closes issue #10335) Reported by: adamgundy Update sip.conf to include another scenario where directrtpsetup will fail. 2007-08-07 Russell Bryant * Asterisk 1.4.10 released. 2007-08-07 20:57 +0000 [r78488] Russell Bryant * res/res_config_odbc.c: Fix the build of this module on 64-bit platforms 2007-08-07 19:43 +0000 [r78450] Mark Michelson * apps/app_voicemail.c: The logic behind inboxcount's return value was reversed in has_voicemail and message_count. (closes issue #10401, reported by st1710, patched by me) 2007-08-07 19:34 +0000 [r78437] Tilghman Lesher * res/res_odbc.c: Don't free the environment handle when the connection fails, because other connections might be depending upon it 2007-08-07 19:11 +0000 [r78416] Jason Parker * channels/chan_sip.c: Allow chan_sip to build in devmode 2007-08-07 19:09 +0000 [r78415] Tilghman