2009-01-23 Tilghman Lesher * Asterisk 1.4.22.2 released. * channels/chan_iax2.c: Regression fixes for security fix AST-2009-01 2009-01-06 Tilghman Lesher * Asterisk 1.4.22.1 released. * channels/chan_iax2.c: Security fix AST-2009-01 2008-10-01 Russell Bryant * Asterisk 1.4.22 released. 2008-09-09 Russell Bryant * Asterisk 1.4.22-rc5 released. 2008-09-09 15:40 +0000 [r142063] Russell Bryant * res/res_features.c: Ensure that the stored CDR reference is still valid after the bridge before poking at it. Also, keep the channel locked while messing with this CDR. (fixes crashes reported in issue #13409) 2008-09-08 21:10 +0000 [r141809] Mark Michelson * channels/chan_sip.c: Fix pedantic mode of chan_sip to only check the remote tag of an endpoint once a dialog has been confirmed. Up until that point, it is possible and legal for the far-end to send provisional responses with a different To: tag each time. With this patch applied, these provisional messages will not cause a matching problem. (closes issue #11536) Reported by: ibc Patches: 11536v2.patch uploaded by putnopvut (license 60) 2008-09-08 21:02 +0000 [r141806] Russell Bryant * main/pbx.c: When doing an async goto, detect if the channel is already in the middle of a masquerade. This can happen when chan_local is trying to optimize itself out. If this happens, fail the async goto instead of bursting into flames. (closes issue #13435) Reported by: geoff2010 2008-09-08 Russell Bryant * Asterisk 1.4.22-rc4 released. 2008-09-08 20:15 +0000 [r141741] Jason Parker * Makefile, redhat (removed): Remove RPM package targets from Makefile (and all associated parts). This has never worked in 1.4, and we decided that it makes no sense to be done here. There are many distros out there that already have "proper" spec files that can be (re)used. Closes issue #13113 Closes issue #10950 Closes issue #10952 2008-09-08 16:26 +0000 [r141678] Russell Bryant * configure, configure.ac: Actually use Zaptel CFLAGS if using Zaptel instead of DAHDI This fixes building against Zaptel when using a custom path 2008-09-06 20:13 +0000 [r141565] Steve Murphy * channels/chan_sip.c: This fix comes from Joshua Colp The Brilliant, who, given the trace, came up with a solution. This will most likely will close 13235 and 13409. I'll wait till Monday to verify, and then close these bugs. 2008-09-06 15:23 +0000 [r141503] Tilghman Lesher * res/res_agi.c: Reverting behavior change (AGI should not exit non-zero on SUCCESS) (closes issue #13434) Reported by: francesco_r 2008-09-05 21:10 +0000 [r141217-141366] Mark Michelson * channels/chan_agent.c: Agent's should not try to call a channel's indicate callback if the channel has been hung up. It will likely crash otherwise ABE-1159 * apps/app_voicemail.c: Since greetings are not stored in IMAP, we should not be DISPOSE'ing of them the same way we do with other messages. (closes issue #13414) Reported by: mthomasslo Patches: 13414v2.patch uploaded by putnopvut (license 60) Tested by: mthomasslo * channels/chan_sip.c: Commit 140417 had a logic flaw in it which caused port 5060 to always be used when dialing a peer if no explicit port was specified. This broke the behavior of implicitly using the port from which the peer registered if no port is specified. This commit fixes the logic flaw. (closes issue #13424) Reported by: mdu113 Patches: 13424.patch uploaded by putnopvut (license 60) Tested by: mdu113 2008-09-05 14:15 +0000 [r141094-141156] Steve Murphy * main/channel.c: A small change to prevent double-posting of CDR's; thanks to Daniel Ferrer for bringing it to our attention * pbx/ael/ael-test/ref.ael-vtest25 (added), pbx/ael/ael-test/ael-vtest25/extensions.ael (added), pbx/ael/ael-test/ael-vtest25 (added), pbx/ael/ael_lex.c, pbx/ael/ael-test/ref.ael-test6, pbx/ael/ael.flex: (closes issue #13357) Reported by: pj Tested by: murf (closes issue #13416) Reported by: yarns Tested by: murf If you find this message overly verbose, relax, it's probably not meant for you. This message is meant for probably only two people in the whole world: me, or the poor schnook that has to maintain this code because I'm either dead or unavailable at the moment. This fix solves two reports, both having to do with embedding a function call in a ${} construct. It was tricky because the funccall syntax has parenthesis () in it. And up till now, the 'word' token in the flex stuff didn't allow that, because it would tend to steal the LP and RP tokens. To be truthful, the "word" token was the trickiest, most unstable thing in the whole lexer. I was lucky it made this long without complaints. I had to choose every character in the pattern with extreme care, and I knew that someday I'd have to revisit it. Well, the day has come. So, my brilliant idea (and I'm being modest), was to use the surrounding ${} construct to make a state machine and capture everything in it, no matter what it contains. But, I have to now treat the word token like I did with comments, in that I turn the whole thing into a state-machine sort of spec, with new contexts "curlystate", "wordstate", and "brackstate". Wait a minute, "brackstate"? Yes, well, it didn't take very many regression tests to point out if I do this for ${} constructs, I also have to do it with the $[] constructs, too. I had to create a separate pcbstack2 and pcbstack3 because these constructs can occur inside macro argument lists, and when we have two state machines operating on the same structures we'd get problems otherwise. I guess I could have stopped at pcbstack2 and had the brackstate stuff share it, but it doesn't hurt to be safe. So, the pcbpush and pcbpop routines also now have versions for "2" and "3". I had to add the {KEYWORD} construct to the initial pattern for "word", because previously word would match stuff like "default7", because it was a longer match than the keyword "default". But, not any more, because the word pattern only matches only one or two characters now, and it will always lose. So, I made it the winner again by making an optional match on any of the keywords before it's normal pattern. I added another regression test to make sure we don't lose this in future edits, and had to fix just one regression, where it no longer reports a 'cascaded' error, which I guess is a plus. I've given some thought as to whether to apply these fixes to 1.4 and the 1.6.x releases, vs trunk; I decided to put it in 1.4 because one of the bug reports was against 1.4; and it is unexpected that AEL cannot handle this situation. It actually reduced the amount of useless "cascade" error messages that appeared in the regressions (by one line, ehhem). There is a possible side-effect in that it does now do more careful checking of what's in those ${} constructs, as far as matching parens, and brackets are concerned. Some users may find a an insidious problem and correct it this way. This should be exceedingly rare, I hope. 2008-09-04 17:00 +0000 [r141028] Jeff Peeler * res/res_features.c, res/res_agi.c: (closes issue #11979) Fixes multiple parking problems: Crash when executing a park on an extension dialed by AGI due to not returning the proper return code. Crash when using a builtin feature that was a subset of a enabled dynamic feature. Crash due to always hanging up the peer despite the fact that the peer was supposed to be parked. 2008-09-03 Russell Bryant * Asterisk 1.4.22-rc3 released. 2008-09-03 14:29 +0000 [r140850] Mark Michelson * apps/app_voicemail.c: Fix voicemail forwarding when using ODBC storage. (closes issue #13387) Reported by: moliveras Patches: 13387.patch uploaded by putnopvut (license 60) Tested by: putnopvut, moliveras 2008-09-03 13:24 +0000 [r140816] Russell Bryant * main/poll.c: Don't freak out if the poll emulation receives NULL for the pollfds array (closes issue #13307) Reported by: jcovert 2008-09-02 23:47 +0000 [r140751] Mark Michelson * apps/app_voicemail.c: After adding the context checking to app_voicemail for IMAP storage, I left out a crucial place to copy the context to the vm_state structure. This is the correction. 2008-09-02 23:36 +0000 [r140670-140747] Steve Murphy * main/cdr.c: I am turning the warnings generated in ast_cdr_free and post_cdr into verbose level 2 messages. Really, they matter little to end users. You either get the CDR's you wanted, or you don't, and it is a bug. * main/channel.c: After reconsidering, with respect to 13409, ast_cdr_detach should be OK, better in fact, than ast_cdr_free, which generates lots of useless warnings that will undoubtably generate complaints. * main/channel.c, main/pbx.c: (closes issue #13409) Reported by: tomaso Patches: asterisk-1.6.0-rc2-cdrmemleak.patch uploaded by tomaso (license 564) I basically spent the day, verifying that this patch solves the problem, and doesn't hurt in non-problem cases. Why valgrind did not plainly reveal this leak absolutely mystifies and stuns me. Many, many thanks to tomaso for finding and providing the fix. 2008-09-02 18:14 +0000 [r140605] Sean Bright * channels/chan_iax2.c: Make sure to use the correct length of the mohinterpret and mohsuggest buffers when copying configuration values. (closes issue #13336) Reported by: decryptus_proformatique Patches: chan_iax2_mohinterpret_mohsuggest_general_settings.patch uploaded by decryptus (license 555) 2008-08-29 17:34 +0000 [r140417-140488] Mark Michelson * main/manager.c, apps/app_queue.c, channels/chan_iax2.c: After working on the ao2_containers branch, I noticed something a bit strange. In all cases where we provide a callback function to ao2_container_alloc, the callback function would only return 0 or CMP_MATCH. After inspecting the ao2_callback() code carefully, I found that if you're only looking for one specific item, then you should return CMP_MATCH | CMP_STOP. Otherwise, astobj2 will continue traversing the current bucket until the end searching for more matches. In cases like chan_iax2 where in 1.4, all the peers are shoved into a single bucket, this makes for potentially terrible performance since the entire bucket will be traversed even if the peer is one of the first ones come across in the bucket. All the changes I have made were for cases where the callback function defined was passed to ao2_container_alloc so that calls to ao2_find could find a unique instance of whatever object was being stored in the container. * apps/app_voicemail.c: Add context checking when retrieving a vm_state. This was causing a problem for people who had identically named mailboxes in separate voicemail contexts. This commit affects IMAP storage only. (closes issue #13194) Reported by: moliveras Patches: 13194.patch uploaded by putnopvut (license 60) Tested by: putnopvut, moliveras * channels/chan_sip.c: Fix SIP's parsing so that if a port is specified in a string to Dial(), it is not ignored. (closes issue #13355) Reported by: acunningham Patches: 13355v2.patch uploaded by putnopvut (license 60) Tested by: acunningham 2008-08-27 19:49 +0000 [r140299] Mark Michelson * channels/chan_sip.c: Fix tag checking in get_sip_pvt_byid_locked when in pedantic mode. The problem was that the wrong tags would be compared depending on the direction of the call. (closes issue #13353) Reported by: flefoll Patches: chan_sip.c.br14.139015.patch-refer-pedantic uploaded by flefoll (license 244) 2008-08-26 16:49 +0000 [r140115] Jeff Peeler * channels/chan_dahdi.c: add HAVE_PRI if define around dahdi_close_pri_fd 2008-08-26 16:07 +0000 [r140060] Russell Bryant * channels/chan_sip.c: Fix some bogus scheduler usage in chan_sip. This code used the return value of a completely unrelated function to determine whether the scheduler should be run or not. This would have caused the scheduler to not run in cases where it should have. Also, leave a note about another scheduler issue that needs to be addressed at some point. 2008-08-26 15:57 +0000 [r140056] Jeff Peeler * channels/chan_dahdi.c: (closes issue #12071) Reported by: tzafrir Patches: dahdi_close.diff uploaded by tzafrir (license 46) Tested by: tzafrir, jpeeler This patch fixes closing open file descriptors in the case of an error. 2008-08-26 15:27 +0000 [r140051] Russell Bryant * channels/chan_iax2.c: Fix a race condition with the IAX scheduler thread. A lock and condition are used here to allow newly scheduled tasks to wake up the scheduler just in case the new task needs to run sooner than the current wakeup time when the thread is sleeping. However, there was a race condition such that a newly scheduled task would not properly wake up the scheduler or affect the wake up period. The order of execution would have been: 1) Scheduler thread determines wake up time of N ms. 2) Another thread schedules a task and signals the condition, with an execution time of < N ms. 3) Scheduler thread locks and goes to sleep for N ms. By moving the sleep time determination to inside the critical section, this possibility is avoided. 2008-08-26 15:22 +0000 [r140050] Terry Wilson * Makefile: sounds/Makefile installs sounds using the "new" language directory structure, but languageprefix needs to be set = yes for sounds in subdirectories (digits/1, etc.) to play as the correct language. Fix the generation of asterisk.conf to include languageprefix=yes 2008-08-26 14:09 +0000 [r140029] Kevin P. Fleming * channels/chan_dahdi.c: correct a file location in an error message 2008-08-25 21:47 +0000 [r139927] Jeff Peeler * main/manager.c: Fix a typo I made. Lesson learned, apply the patch if one exists. 2008-08-25 21:31 +0000 [r139909] Sean Bright * build_tools/get_moduleinfo, build_tools/get_makeopts: Some versions of awk (nawk, for example) don't like empty regular expressions so be slightly more verbose. (closes issue #13374) Reported by: dougm Patches: 13374.diff uploaded by seanbright (license 71) Tested by: dougm 2008-08-25 20:46 +0000 [r139869] Terry Wilson * channels/chan_sip.c: Make SIPADDHEADER() propagate indefinitely 2008-08-25 15:52 +0000 [r139769] Mark Michelson * main/config.c: Fix the logic in config_text_file_save so that if an UpdateConfig manager action is issued and the file specified in DstFileName does not yet exist, an error is not returned. (closes issue #13341) Reported by: vadim Patches: 13341.patch uploaded by putnopvut (license 60) (with small modification from seanbright) 2008-08-25 15:33 +0000 [r139764] Steve Murphy * main/pbx.c, res/res_features.c: This patch reverts the changes made via 139347, and 139635, as users are seeing adverse difference. I will un-close 13251. Back to the drawing board/ concept/ beginning/ whatever! 2008-08-22 22:24 +0000 [r139635] Steve Murphy * res/res_features.c: I found some problems with the code I committed earlier, when I merged them into trunk, so I'm coming back to clean up. And, in the process, I found an error in the code I added to trunk and 1.6.x, that I'll fix using this patch also. 2008-08-22 21:36 +0000 [r139621] Jeff Peeler * main/manager.c: (closes issue #13359) Reported by: Laureano Patches: originate_channel_check.patch uploaded by Laureano (license 265) 2008-08-22 19:45 +0000 [r139456-139553] Mark Michelson * include/asterisk/threadstorage.h: Fix compilation when DEBUG_THREAD_LOCALS is selected (closes issue #13298) Reported by: snuffy Patches: bug13298_20080822.diff uploaded by snuffy (license 35) * main/frame.c: Remove show_frame_stats_deprecated since it is not used anywhere and causes build errors if building under dev-mode with TRACE_FRAMES selected in menuselect. (closes issue #13362) Reported by: snuffy * channels/chan_iax2.c: Fix the build. Thanks, mvanbaak! * channels/chan_iax2.c: Prevent a deadlock in chan_iax2 resulting from incorrect locking order between iax2_pvt and ast_channel structures. AST-13 2008-08-21 23:39 +0000 [r139387] Jeff Peeler * channels/chan_dahdi.c: Fixes loop that could possibly never exit in the event of a channel never being able to be opened or specify after a restart. (closes issue #11017) 2008-08-21 23:03 +0000 [r139347] Steve Murphy * main/pbx.c, res/res_features.c: (closes issue #13251) Reported by: sergee Tested by: murf THis is a bold move for a static release fix, but I wouldn't have made it if I didn't feel confident (at least a *bit* confident) that it wouldn't mess everyone up. The reasoning goes something like this: 1. We simply cannot do anything with CDR's at the current point (in pbx.c, after the __ast_pbx_run loop). It's way too late to have any affect on the CDRs. The CDR is already posted and gone, and the remnants have been cleared. 2. I was very much afraid that moving the running of the 'h' extension down into the bridge code (where it would be now practical to do it), would result in a lot more calls to the 'h' exten, so I implemented it as another exten under another name, but found, to my pleasant surprise, that there was a 1:1 correspondence to the running of the 'h' exten in the pbx_run loop, and the new spot at the end of the bridge. So, I ifdef'd out the current 'h' loop, and moved it into the bridge code. The only difference I can see is the stuff about the AST_PBX_KEEPALIVE, and hopefully, if this is still an important decision point, I can replicate it if there are complaints. To be perfectly honest, the KEEPALIVE situation is not totally clear to me, and how it relates to a post-bridge situation is less clear. I suspect the users will point out everything in total clarity if this steps on anyone's toes! 3. I temporarily swap the bridge_cdr into the channel before running the 'h' exten, which makes it possible for users to edit the cdr before it goes out the door. And, of course, with the endbeforehexten config var set, the users can also get at the billsec/duration vals. After the h exten finishes, the cdr is swapped back and processing continues as normal. Please, all who deal with CDR's, please test this version of Asterisk, and file bug reports as appropriate! 2008-08-21 10:11 +0000 [r139283] Philippe Sultan * channels/chan_gtalk.c: Apply fix for issue #13310 to branch 1.4, too. 2008-08-20 22:14 +0000 [r139213] Russell Bryant * apps/app_chanspy.c: Fix a crash in the ChanSpy application. The issue here is that if you call ChanSpy and specify a spy group, and sit in the application long enough looping through the channel list, you will eventually run out of stack space and the application with exit with a seg fault. The backtrace was always inside of a harmless snprintf() call, so it was tricky to track down. However, it turned out that the call to snprintf() was just the biggest stack consumer in this code path, so it would always be the first one to hit the boundary. (closes issue #13338) Reported by: ruddy 2008-08-20 19:52 +0000 [r139151] Shaun Ruffell * codecs/codec_dahdi.c: Fix bug where the samples were not accurate when in G723 mode, which would cause the timestamp field of the RTP header to be invalid. 2008-08-20 19:35 +0000 [r139145] Kevin P. Fleming * channels/chan_dahdi.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Backport support for Zaptel/DAHDI channel-level alarms from trunk/1.6, because not doing so just makes it difficult for people with channels that are in alarm when Asterisk starts up to get them going once the alarm is cleared (closes issue #12160) Reported by: tzafrir Patches: asterisk-chanalarms_14.patch uploaded by tzafrir (license 46) Tested by: tzafrir 2008-08-20 17:14 +0000 [r139074] Steve Murphy * main/cdr.c: (closes issue #13263) Reported by: brainy Tested by: murf The specialized reset routine is tromping on the flags field of the CDR. I made a change to not reset the DISABLED bit. This should get rid of this problem. 2008-08-20 15:37 +0000 [r139015] Mark Michelson * channels/chan_sip.c: sip_read should properly handle a NULL return from sip_rtp_read. (closes issue #13257) Reported by: travishein 2008-08-19 23:22 +0000 [r138949] Jeff Peeler * include/asterisk/dahdi_compat.h: add DAHDI_POLICY_WHEN_FULL compatability define for Zaptel 2008-08-19 23:17 +0000 [r138942] Mark Michelson * channels/chan_agent.c: Reset agent_pvt variables back to the values in agents.conf (from what the corresponding channel variables were set to) when the agent logs out. (closes issue #13098) Reported by: davidw Patches: 20080731__issue13098_agent_ackcall_not_reset.diff uploaded by bbryant (license 36) Tested by: davidw 2008-08-19 22:56 +0000 [r138938] Jeff Peeler * channels/chan_dahdi.c: Add configuration option to chan_dahdi.conf to allow buffering policy and number of buffers to be configured per channel. Syntax: buffers=, Where the number of buffers is some non-negative integer and the policy is either "full", "half", or "immediate". 2008-08-19 18:50 +0000 [r138685-138886] Mark Michelson * apps/app_chanspy.c: Add a lock and unlock prior to the destruction of the chanspy_ds lock to ensure that no other threads still have it locked. While this should not happen under normal circumstances, it appears that if the spyer and spyee hang up at nearly the same time, the following may occur. 1. ast_channel_free is called on the spyee's channel. 2. The chanspy datastore is removed from the spyee's channel in ast_channel_free. 3. In the spyer's thread, the spyer attempts to remove and destroy the datastore from the spyee channel, but the datastore has already been removed in step 2, so the spyer continues in the code. 4. The spyee's thread continues and calls the datastore's destroy callback, chanspy_ds_destroy. This involves locking the chanspy_ds. 5. Now the spyer attempts to destroy the chanspy_ds lock. The problem is that in step 4, the spyee has locked this lock, meaning that the spyer is attempting to destroy a lock which is currently locked by another thread. The backtrace provided in issue #12969 supports the idea that this is possible (and has even occurred). This commit does not close the issue, but should help in preventing one type of crash associated with the use of app_chanspy. * apps/app_queue.c: Change the inequalities used in app_queue with regards to timeouts from being strict to non-strict for more accuracy. (closes issue #13239) Reported by: atis Patches: app_queue_timeouts_v2.patch uploaded by atis (license 242) 2008-08-18 16:57 +0000 [r138663] Kevin P. Fleming * codecs/codec_dahdi.c: look for transcoder in proper place based on build against Zaptel or DAHDI 2008-08-18 11:57 +0000 [r138569] Sean Bright * channels/chan_dahdi.c: You know what's awesome? Code that compiles... ;) 2008-08-18 02:05 +0000 [r138516] Jeff Peeler * channels/chan_dahdi.c: fix compilation warnings 2008-08-16 01:12 +0000 [r138309-138360] Jeff Peeler * channels/chan_dahdi.c: fixes use count to properly decrement if an active dahdi channel is destroyed allowing module to be unloaded * channels/chan_dahdi.c: add forgotten locks around ss_thread_count in ss_thread for dahdi restart 2008-08-15 22:33 +0000 [r138258] Tilghman Lesher * channels/chan_sip.c, configs/sip.conf.sample: More fixes for realtime peers. (closes issue #12921) Reported by: Nuitari Patches: 20080804__bug12921.diff.txt uploaded by Corydon76 (license 14) 20080815__bug12921.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 2008-08-15 21:28 +0000 [r138119-138238] Jeff Peeler * channels/chan_dahdi.c: initialize condition variable ss_thread_complete using ast_cond_init * channels/chan_dahdi.c: declared static mutexes using AST_MUTEX_DEFINE_STATIC macro * channels/chan_dahdi.c: Fixes the dahdi restart functionality. Dahdi restart allows one to restart all DAHDI channels, even if they are currently in use. This is different from unloading and then loading the module since unloading requires the use count to be zero. Reloading the module is different in that the signalling is not changed from what it was originally configured. Also, this fixes not closing all the file descriptors for D-channels upon module unload (which would prevent loading the module afterwards). (closes issue #11017) 2008-08-15 15:07 +0000 [r138027] Russell Bryant * main/autoservice.c: Ensure that when a hangup occurs in autoservice, that a hangup frame gets properly deferred to be read from the channel owner when it gets taken out of autoservice. (closes issue #12874) Reported by: dimas Patches: v1-12874.patch uploaded by dimas (license 88) 2008-08-15 14:51 +0000 [r137847-138023] Tilghman Lesher * funcs/func_strings.c: Additional check for more string specifiers than arguments. (closes issue #13299) Reported by: adomjan Patches: 20080813__bug13299.diff.txt uploaded by Corydon76 (license 14) func_strings.c-sprintf.patch uploaded by adomjan (license 487) Tested by: adomjan * channels/chan_dahdi.c: Oops, wrong direction * channels/chan_dahdi.c: When creating the secondary subchannel name, it is necessary to compare to the existing channel name without the "Zap/" or "DAHDI/" prefix, since our test string is also without that prefix. (closes issue #13027) Reported by: dferrer Patches: chan_zap-1.4.21.1_fix2.patch uploaded by dferrer (license 525) (Slightly modified by me, to compensate for both names) 2008-08-14 14:05 +0000 [r137731] Russell Bryant * configs/sip.conf.sample: Comments in this config file were aligned only if your tab size was set to 8. So, convert tabs to spaces so that things should be aligned regardless of what tab size you use in your editor. 2008-08-14 02:03 +0000 [r137677-137679] Kevin P. Fleming * Zaptel-to-DAHDI.txt: forgot one module name that changed * include/asterisk/dahdi_compat.h, channels/chan_dahdi.c, build_tools/menuselect-deps.in, configure, configure.ac, codecs/codec_dahdi.c: add support for Zaptel versions that contain the new transcoder interface 2008-08-13 21:35 +0000 [r137580] Jeff Peeler * channels/chan_dahdi.c: Register DAHDISendKeypadFacility application if dahdi_chan_mode is set to DAHDI + Zap. Mark ZapSendKeypadFacility application as deprecated on usage. 2008-08-13 20:46 +0000 [r137527-137530] Kevin P. Fleming * Zaptel-to-DAHDI.txt (added): add document describing what users will need to be aware of when upgrading to this version and using DAHDI * apps/app_meetme.c: remove some more chan_zap references * doc/asterisk-conf.txt, channels/chan_dahdi.c: document dahdichanname option in doc/asterisk-conf.txt make chan_dahdi read its configuration from zapata.conf if dahdichanname has been set to 'no' 2008-08-13 14:33 +0000 [r137348-137405] Sean Bright * doc/cdrdriver.txt: Update docs to reflect the change to cdr_tds * cdr/cdr_tds.c: Bring cdr_tds in line with the other CDR backends and have it try to store CDR(userfield) if it is set. The new behavior is to check for the userfield column on module load, and if it exists, we will store CDR(userfield) when CDRs are written. A similar patch already went into trunk and 1.6.0. (closes issue #13290) Reported by: falves11 2008-08-11 13:33 +0000 [r137188] Kevin P. Fleming * apps/app_meetme.c: convert this module to be able to handle DAHDI or Zaptel (reported on asterisk-users, don't know how this got missed before) 2008-08-11 00:20 +0000 [r137138] Tilghman Lesher * res/res_odbc.c: Deallocate database connection handle on disconnect, as we allocate another one on connect. (closes issue #13271) Reported by: dveiga 2008-08-09 17:11 +0000 [r136999] Russell Bryant * configure, configure.ac: Ensure PBX_DAHDI_TRANSCODE will evaluate to 0 if not found instead of empty. pointed out by tzafrir on #asterisk-dev 2008-08-09 15:25 +0000 [r136946] Tilghman Lesher * /, include/asterisk/compat.h, include/asterisk/astobj2.h: Merged revisions 136945 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r136945 | tilghman | 2008-08-09 10:24:36 -0500 (Sat, 09 Aug 2008) | 2 lines Regression fixes for Solaris ........ 2008-08-08 00:15 +0000 [r136726] Steve Murphy * pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18, pbx/ael/ael-test/ref.ael-vtest13, pbx/ael/ael-test/ref.ael-ntest10, pbx/pbx_ael.c, include/asterisk/ael_structs.h: (closes issue #13236) Reported by: korihor Wow, this one was a challenge! I regrouped and ran a new strategy for setting the ~~MACRO~~ value; I set it once per extension, up near the top. It is only set if there is a switch in the extension. So, I had to put in a chunk of code to detect a switch in the pval tree. I moved the code to insert the set of ~~exten~~ up to the beginning of the gen_prios routine, instead of down in the switch code. I learned that I have to push the detection of the switches down into the code, so everywhere I create a new exten in gen_prios, I make sure to pass onto it the values of the mother_exten first, and the exten next. I had to add a couple fields to the exten struct to accomplish this, in the ael_structs.h file. The checked field makes it so we don't repeat the switch search if it's been done. I also updated the regressions. 2008-08-07 18:25 +0000 [r136560] Kevin P. Fleming * build_tools/menuselect-deps.in, configure, configure.ac: change the required dependency for codec_dahdi to only be satisfied by DAHDI and not Zaptel, as the new transcoder interface is only in DAHDI 2008-08-07 18:14 +0000 [r136544] Shaun Ruffell * codecs/codec_dahdi.c: Updated codec_dahdi to use the new transcoder interface in the first DAHDI release. Codec dahdi no longer functions with the transcoder interface in zaptel at this time (which the last zaptel release was 1.4.11). NOTE: Still needs an update to the configure script to make sure that codec_dahdi is only built if the new transcoder interface is present in the drivers. (Issue: DAHDI-42) 2008-08-07 16:50 +0000 [r136488] Tilghman Lesher * apps/app_queue.c: Update persistent state on all exit conditions. (closes issue #12916) Reported by: sgenyuk Patches: app_queue.patch.txt uploaded by neutrino88 (license 297) Tested by: sgenyuk, aragon 2008-08-07 16:30 +0000 [r136404-136484] Kevin P. Fleming * include/asterisk/doxyref.h: add a raw list of all libraries that any part of Asterisk links directly to * apps/app_voicemail.c: work around a bug in gcc-4.2.3 that incorrectly ignores the casting away of 'const' for pointers when the developer knows it is safe to do so * Makefile: remove config.cache during distclean, in case the user is using autoconf caching 2008-08-07 01:31 +0000 [r136304-136348] Tilghman Lesher * channels/chan_dahdi.c: Also, parse useincomingcalleridonzaptransfer (and add appropriate deprecation warnings). * channels/chan_dahdi.c: For backwards compatibility with previous 1.4 versions which used "zapchan" in users.conf, ensure that we still support it. 2008-08-06 21:18 +0000 [r136241] Richard Mudgett * channels/misdn_config.c, channels/chan_misdn.c, configs/misdn.conf.sample: * The allowed_bearers setting in misdn.conf misspelled one of its options: digital_restricted. * Fixed some other spelling errors and typos. 2008-08-06 20:42 +0000 [r136238] Mark Michelson * apps/app_queue.c: We only need to unregister the QueueStatus manager command once on an unload 2008-08-06 20:14 +0000 [r136190] Tilghman Lesher * contrib/init.d/rc.redhat.asterisk: -C option takes a filename, not a directory path. (closes issue #13007) Reported by: klaus3000 2008-08-06 18:58 +0000 [r136168] Russell Bryant * Makefile: Remove the use of --no-print-directory when compiling subdirectories. This allows vim :make functionality to work properly when errors have occurred in the build. Without printing the directories, vim did not know how to find the file that the error occurred in. If the extra bit of build noise annoys anyone, just let me know, and I'll make this optional. 2008-08-06 15:58 +0000 [r136062] Mark Michelson * main/rtp.c, channels/chan_skinny.c: Since adding the AST_CONTROL_SRCUPDATE frame type, there are places where ast_rtp_new_source may be called where the tech_pvt of a channel may not yet have an rtp structure allocated. This caused a crash in chan_skinny, which was fixed earlier, but now the same crash has been reported against chan_h323 as well. It seems that the best solution is to modify ast_rtp_new_source to not attempt to set the marker bit if the rtp structure passed in is NULL. This change to ast_rtp_new_source also allows the removal of what is now a redundant pointer check from chan_skinny. (closes issue #13247) Reported by: pj 2008-08-06 03:53 +0000 [r135899-135949] Tilghman Lesher * main/channel.c: Fix a longstanding bug in channel walking logic, and fix the explanation to make sense. (Closes issue #13124) * main/translate.c: Since powerof() can return an error condition, it's foolhardy not to detect and deal with that condition. (Related to issue #13240) * include/asterisk/threadstorage.h, include/asterisk/utils.h: 1) Bugfix for debugging code 2) Reduce compiler warnings for another section of debugging code (Closes issue #13237) 2008-08-06 00:29 +0000 [r135841-135850] Mark Michelson * /: Remove properties that should not be here * apps/app_skel.c: Revert inadvertent changes to app_skel that occurred when I was testing for a memory leak * include/asterisk/abstract_jb.h, main/channel.c, /, apps/app_skel.c, main/abstract_jb.c, main/fixedjitterbuf.h: Merging the issue11259 branch. The purpose of this branch was to take into account "burps" which could cause jitterbuffers to misbehave. One such example is if the L option to Dial() were used to inject audio into a bridged conversation at regular intervals. Since the audio here was not passed through the jitterbuffer, it would cause a gap in the jitterbuffer's timestamps which would cause a frames to be dropped for a brief period. Now ast_generic_bridge will empty and reset the jitterbuffer each time it is called. This causes injected audio to be handled properly. ast_generic_bridge also will empty and reset the jitterbuffer if it receives an AST_CONTROL_SRCUPDATE frame since the change in audio source could negatively affect the jitterbuffer. All of this was made possible by adding a new public API call to the abstract_jb called ast_jb_empty_and_reset. (closes issue #11259) Reported by: plack Tested by: putnopvut 2008-08-05 23:13 +0000 [r135799] Steve Murphy * apps/app_dial.c, main/cdr.c, main/channel.c, res/res_features.c, include/asterisk/cdr.h: (closes issue #12982) Reported by: bcnit Tested by: murf I discovered that also, in the previous bug fixes and changes, the cdr.conf 'unanswered' option is not being obeyed, so I fixed this. And, yes, there are two 'answer' times involved in this scenario, and I would agree with you, that the first answer time is the time that should appear in the CDR. (the second 'answer' time is the time that the bridge was begun). I made the necessary adjustments, recording the first answer time into the peer cdr, and then using that to override the bridge cdr's value. To get the 'unanswered' CDRs to appear, I purposely output them, using the dial cmd to mark them as DIALED (with a new flag), and outputting them if they bear that flag, and you are in the right mode. I also corrected one small mention of the Zap device to equally consider the dahdi device. I heavily tested 10-sec-wait macros in dial, and without the macro call; I tested hangups while the macro was running vs. letting the macro complete and the bridge form. Looks OK. Removed all the instrumentation and debug. 2008-08-05 21:34 +0000 [r135747] Tilghman Lesher * channels/chan_iax2.c: In a conversion to use ast_strlen_zero, the meaning of the flag IAX_HASCALLERID was perverted. This change reverts IAX2 to the original meaning, which was, that the callerid set on the client should be overridden on the server, even if that means the resulting callerid is blank. In other words, if you set "callerid=" in the IAX config, then the callerid should be overridden to blank, even if set on the client. Note that there's a distinction, even on realtime, between the field not existing (NULL in databases) and the field existing, but set to blank (override callerid to blank). 2008-08-05 13:25 +0000 [r135597] Sean Bright * main/cli.c: Use PATH_MAX for filenames 2008-08-04 20:15 +0000 [r135536] Russell Bryant * configs/chan_dahdi.conf.sample: fix a config sample typo 2008-08-04 17:07 +0000 [r135479-135482] Tilghman Lesher * contrib/init.d/rc.mandrake.asterisk: Define ASTSBINDIR for script * apps/app_voicemail.c: Memory leak on unload (closes issue #13231) Reported by: eliel Patches: app_voicemail.leak.patch uploaded by eliel (license 64) 2008-08-04 16:26 +0000 [r135473] Russell Bryant * configs/chan_dahdi.conf.sample: Add a minor clarification to the documentation of mohinterpret and mohsuggest 2008-08-01 11:43 +0000 [r135055-135058] Michiel van Baak * apps/app_ices.c: make app_ices compile on OpenBSD. * channels/chan_skinny.c: fix some potential deadlocks in chan_skinny (closes issue #13215) Reported by: qwell Patches: 2008080100_bug13215.diff.txt uploaded by mvanbaak (license 7) Tested by: mvanbaak 2008-07-31 22:18 +0000 [r134983] Kevin P. Fleming * main/http.c: accomodate users who seem to lack a sense of humor :-) 2008-07-31 21:53 +0000 [r134976] Tilghman Lesher * sample.call, main/manager.c, pbx/pbx_spool.c: Specify codecs in callfiles and manager, to allow video calls to be set up from callfiles and AMI. (closes issue #9531) Reported by: Geisj Patches: 20080715__bug9531__1.4.diff.txt uploaded by Corydon76 (license 14) 20080715__bug9531__1.6.0.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 2008-07-31 19:37 +0000 [r134915] Russell Bryant * apps/app_ices.c: Get app_ices working again (closes issue #12981) Reported by: dlogan Patches: 20080709__app_ices_v2_update_trunk.diff uploaded by bbryant (license 36) 20080709__app_ices_v2_update_14.diff uploaded by bbryant (license 36) Tested by: bbryant 2008-07-31 19:23 +0000 [r134883] Steve Murphy * res/res_features.c: (closes issue #11849) Reported by: greyvoip Tested by: murf OK, a few days of debugging, a bunch of instrumentation in chan_sip, main/channel.c, main/pbx.c, etc. and 5 solid notebook pages of notes later, I have made the small tweek necc. to get the start time right on the second CDR when: A Calls B B answ. A hits Xfer button on sip phone, A dials C and hits the OK button, A hangs up C answers ringing phone B and C converse B and/or C hangs up But does not harm the scenario where: A Calls B B answ. B hits xfer button on sip phone, B dials C and hits the OK button, B hangs up C answers ringing phone A and C converse A and/or C hangs up The difference in start times on the second CDR is because of a Masquerade on the B channel when the xfer number is sent. It ends up replacing the CDR on the B channel with a duplicate, which ends up getting tossed out. We keep a pointer to the first CDR, and update *that* after the bridge closes. But, only if the CDR has changed. I hope this change is specific enough not to muck up any current CDR-based apps. In my defence, I assert that the previous information was wrong, and this change fixes it, and possibly other similar scenarios. I wonder if I should be doing the same thing for the channel, as I did for the peer, but I can't think of a scenario this might affect. I leave it, then, as an exersize for the users, to find the scenario where the chan's CDR changes and loses the proper start time. 2008-07-31 16:45 +0000 [r134814] Russell Bryant * channels/iax2-parser.c: In case we have some processing threads that free more frames than they allocate, do not let the frame cache grow forever. (closes issue #13160) Reported by: tavius Tested by: tavius, russell 2008-07-31 15:56 +0000 [r134758] Mark Michelson * apps/app_queue.c: Add more timeout checks into app_queue, specifically targeting areas where an unknown and potentially long time has just elapsed. Also added a check to try_calling() to return early if the timeout has elapsed instead of potentially setting a negative timeout for the call (thus making it have *no* timeout at all). (closes issue #13186) Reported by: miquel_cabrespina Patches: 13186.diff uploaded by putnopvut (license 60) Tested by: miquel_cabrespina 2008-07-30 22:39 +0000 [r134704] Tilghman Lesher * main/sched.c, include/asterisk/sched.h: Oops, wrong define 2008-07-30 22:02 +0000 [r134652] Steve Murphy * pbx/pbx_ael.c: (closes issue #13197) Reported by: pj (closes issue #13051) Reported by: pj This patch substitutes commas in the expr supplied to the if () statement, as in if ( expr ) ... This solves both the bugs above, and makes the source symmetric with switch statements, which were earlier reported to need this sort of treatment. I tested this using the examples, both for the compiler and at run time. Looks good. 2008-07-30 21:38 +0000 [r134649] Tilghman Lesher * configure, configure.ac: Qwell pointed out, via IRC, that the previous fix only worked when explicitly set. When nothing is set, and the option is implied, it breaks, because configure sets the prefix to 'NONE'. Fixing. 2008-07-30 20:37 +0000 [r134540-134595] Russell Bryant * pbx/pbx_dundi.c: Reduce stack consumption by 12.5% of the max stack size to fix a crash when compiled with LOW_MEMORY. (closes issue #13154) Reported by: edantie * funcs/func_curl.c: Fix a memory leak in func_curl. Every thread that used this function leaked an allocation the size of a pointer. (reported by jmls in #asterisk-dev) 2008-07-30 19:47 +0000 [r134480-134536] Tilghman Lesher * configure, configure.ac: Only override sysconfdir and mandir when prefix=/usr (closes issue #13093) Reported by: pabelanger * res/res_agi.c: launch_netscript sometimes returns -1, which fails to set AGISTATUS. Map failure to -1, so that AGISTATUS is always set. (closes issue #13199) Reported by: smw1218 2008-07-30 18:31 +0000 [r134475] Mark Michelson * main/app.c: Fix a spot where a function could return without bringing a channel out of autoservice. 2008-07-30 15:29 +0000 [r134254-134352] Kevin P. Fleming * Makefile: use the proper method for building version.h * include/asterisk/dahdi_compat.h, apps/app_dahdibarge.c, channels/chan_dahdi.c, apps/app_meetme.c, apps/app_flash.c, apps/app_dahdiscan.c, apps/app_dahdiras.c, codecs/codec_dahdi.c: build against the now-typedef-free dahdi/user.h 2008-07-29 15:54 +0000 [r134223] Mark Michelson * apps/app_voicemail.c: Merging the imap_consistency branch. The main aim of this branch was to make the IMAP code function in the same manner as the ODBC code does, eliminating the need for so many IMAP-specific code chunks. The focal point of all of this work was to make the various macros (e.g. RETRIEVE, DISPOSE) functionally equivalent. While doing the above work, I also fixed a few bugs that I came across in my testing. Among these were 1. Fixed message forwarding. This was completely broken when using IMAP. 2. Fixed the inability to save new messages as old and vice versa. 3. Fixed the "delete" options in voicemail.conf when using IMAP storage. Even though a few bugs were fixed and the code is a lot more consistent, the one thing that was *not* improved in this branch was performance. The merge of this to trunk may not come immediately due to the amount of work it will probably involve. (closes issue #12764) Reported by: balsamcn 2008-07-28 21:50 +0000 [r134161] Tilghman Lesher * apps/app_voicemail.c: Detect when sox fails to raise the volume, because sox can't read the file. (closes issue #12939) Reported by: rickbradley Patches: 20080728__bug12939.diff.txt uploaded by Corydon76 (license 14) Tested by: rickbradley 2008-07-26 15:31 +0000 [r133980] Russell Bryant * main/asterisk.c, include/asterisk/doxyref.h: Add the licensing section to the docs in 1.4, as well, so that we can work on having an accurate list for each version of Asterisk that is supported 2008-07-25 18:00 +0000 [r133649-133709] Tilghman Lesher * apps/app_voicemail.c: Remove unnecessary mmap flag (Closes issue #13161) * main/channel.c, channels/chan_agent.c, main/devicestate.c: Fix some errant device states by making the devicestate API more strict in terms of the device argument (only without the unique identifier appended). (closes issue #12771) Reported by: davidw Patches: 20080717__bug12771.diff.txt uploaded by Corydon76 (license 14) Tested by: davidw, jvandal, murf 2008-07-25 15:00 +0000 [r133578] Russell Bryant * /, LICENSE: Merged revisions 133577 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r133577 | russell | 2008-07-25 10:00:13 -0500 (Fri, 25 Jul 2008) | 2 lines Fix the IAX2 URI for calling Digium ........ 2008-07-25 14:40 +0000 [r133572] Mark Michelson * channels/chan_sip.c: We need to make sure to null-terminate the "name" portion of SIP URI parameters so that there are no bogus comparisons. Thanks to bbryant for pointing this out. 2008-07-24 21:17 +0000 [r133361-133488] Tilghman Lesher * channels/chan_sip.c: Fix rtautoclear and rtcachefriends (Closes issue #12707) * /: Blocked revisions 133360 via svnmerge ........ r133360 | tilghman | 2008-07-23 22:46:01 -0500 (Wed, 23 Jul 2008) | 2 lines This part was not correctly patched for AST-2008-010. ........ 2008-07-23 21:49 +0000 [r133295] Jason Parker * channels/chan_dahdi.c: inbandrelease is gone - it's now inbanddisconnect 2008-07-23 21:05 +0000 [r133226-133237] Kevin P. Fleming * include/asterisk/stringfields.h, main/utils.c: revert an optimization that broke ABI... thanks russell! * apps/app_chanspy.c, include/asterisk/options.h, main/asterisk.c, apps/app_dahdibarge.c, channels/chan_dahdi.c, apps/app_dahdiras.c: make some more changes to the dahdi/zap channel name support stuff to ensure allthe globals are 'const', and clean up mmichelson's changes to app_chanspy to simplify the code 2008-07-23 19:39 +0000 [r132974-133169] Mark Michelson * apps/app_chanspy.c, include/asterisk/options.h, main/asterisk.c, channels/chan_dahdi.c: As suggested by seanbright, the PSEUDO_CHAN_LEN in app_chanspy should be set at load time, not at compile time, since dahdi_chan_name is determined at load time. Also changed the next_unique_id_to_use to have the static qualifier. Also added the dahdi_chan_name_len variable so that strlen(dahdi_chan_name) isn't necessary. Thanks to seanbright for the suggestion. * apps/app_chanspy.c: Zap/pseudo is ten characters, but DAHDI/pseudo is twelve. The strncmp call in next_channel should account for this. * apps/app_chanspy.c: Update the "last" channel in next_channel in app_chanspy so that the same pseudo channel isn't constantly returned. related to issue #13124 * channels/chan_dahdi.c: Small cleanup. Move the declaration of the DAHDI_SPANINFO variable to the block where it is used. This allows one less #ifdef HAVE_PRI to clutter things up. Thanks to Tzafrir for pointing this out on #asterisk-dev * channels/chan_dahdi.c: Fix building of chan_dahdi when HAVE_PRI is not defined. 2008-07-23 15:52 +0000 [r132872-132942] Kevin P. Fleming * channels/chan_dahdi.c: ensure that after a channel is created, if it happened to be in 'channel alarm' state, when that alarm clears we won't generate a spurious 'alarm cleared' message (closes issue #12160) Reported by: tzafrir * include/asterisk/stringfields.h, main/utils.c: minor optimization for stringfields: when a field is being set to a larger value than it currently contains and it happens to be the most recent field allocated from the currentl pool, it is possible to 'grow' it without having to waste the space it is currently using (or potentially even allocate a new pool) 2008-07-23 11:37 +0000 [r132826] Christian Richter * channels/misdn/isdn_lib.c: another Fix because of r119585, this commit has broken high frequented BRI Ports, there was a possibility that a channel, that was marked as in_use would be reused later, the corresponding port could got stuck then. So it is recommended to upgrade for chan_misdn users. 2008-07-22 22:14 +0000 [r132790] Mark Michelson * channels/chan_sip.c: Allow Spiraled INVITEs to work correctly within Asterisk. Prior to this change, a spiraled INVITE would cause a 482 Loop Detected to be sent to the caller. With this change, if a potential loop is detected, the Request-URI is inspected to see if it has changed from what was originally received. If pedantic mode is on, then this inspection is fully RFC 3261 compliant. If pedantic mode is not on, then a string comparison is used to test the equality of the two R-URIs. This has been tested by using OpenSER to rewrite the R-URI and send the INVITE back to Asterisk. (closes issue #7403) Reported by: stephen_dredge 2008-07-22 22:11 +0000 [r132784-132787] Kevin P. Fleming * include/asterisk/options.h, main/asterisk.c, apps/app_dahdibarge.c, channels/chan_dahdi.c, apps/app_flash.c, apps/app_dahdiras.c: fix up namespace pollution for dahdi_chan_mode enum correct registration of AMI actions in chan_dahdi; in zap-only mode, only register the Zap flavors of the actions (and use Zap prefixes for headers and acks), but in dahdi+zap mode, register both Zap and DAHDI flavors of actions * Makefile.rules: add rules to create preprocessor output... useful for debugging macros 2008-07-22 21:19 +0000 [r132713] Tilghman Lesher * configs/iax.conf.sample, /, channels/chan_iax2.c: Merged revisions 132711 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r132711 | tilghman | 2008-07-22 16:14:10 -0500 (Tue, 22 Jul 2008) | 2 lines Fixes for AST-2008-010 and AST-2008-011 ........ 2008-07-22 21:17 +0000 [r132704-132712] Kevin P. Fleming * channels/chan_dahdi.c: ensure that if any alarms exist at channel creation time, they are handled identically to if they occurred later, so that later alarm clearing will work properly and 'make sense' (closes issue #12160) Reported by: tzafrir * configure, configure.ac, acinclude.m4: make AST_C_COMPILE_CHECK able to print a 'pretty' description of what it is doing 2008-07-22 20:10 +0000 [r132645] Olle Johansson * channels/chan_sip.c, doc/sip-retransmit.txt (added): The most common question on the #asterisk iRC channel and on mailing lists seems to be in regards to an error message when retransmit fails. This is frequently misunderstood as a failure of Asterisk, not a failure of the network to reach the other party. This document tries to assist the Asterisk user in sorting out these issues by explaining the logic and pointing at some possible causes. Hopefully, we will get other questions now :-) 2008-07-22 19:57 +0000 [r132571-132642] Kevin P. Fleming * channels/chan_dahdi.c: correct wording in comment * channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, configure, include/asterisk/autoconfig.h.in, configure.ac: use renamed libpri API call for controlling this feature (was improperly named before) * channels/chan_dahdi.c: teach chan_dahdi how to find the D-channel on BRI spans, and don't attempt to use channel 24 as a D-channel on spans of unexpected sizes 2008-07-21 20:51 +0000 [r132506-132507] Brett Bryant * apps/app_sendtext.c: Fix a bug where SENDTEXTSTATUS isn't set properly when it isn't supported on a channel (yet _another_ useful patch by eliel). (issue #13081) Reported by: eliel Patches: app_sendtext1.4.c uploaded by eliel (license 64) Tested by: eliel * channels/chan_iax2.c: Fix a bug in 1.4 branch with iax2 channels not being removed when a call was rejected (from the calling box, not the box that denied the registration). Related to revisions 132466 in trunk, and 132467 in 1.6.0. Earlier I had accidently tested 1.4 with a backport from those revisions, so I didn't see this problem (oops). 2008-07-19 16:45 +0000 [r132311] Kevin P. Fleming * LICENSE: grant a license exception to allow distribution of Asterisk binaries that use the UW IMAP Toolkit (which is licensed under a non-GPL-compatible license) 2008-07-18 19:06 +0000 [r131970-132112] Tilghman Lesher * main/say.c: Fix for Taiwanese number syntax (closes issue #12319) Reported by: CharlesWang Patches: saynumber-tw-1.4.18.1.patch uploaded by CharlesWang (license 444) * main/config.c: Textual clarification (closes issue #13106) Reported by: flefoll Patches: config.c.br14.120173.patch-unknown-directive uploaded by flefoll (license 244) * include/asterisk/sched.h, channels/chan_iax2.c: Spinlock within the destroy, to allow a scheduled job to continue, if it's waiting on the mutex which the destroy thread has. * main/sched.c: Oops * main/sched.c, include/asterisk/sched.h: Preserve ABI compatibility with last change * main/sched.c, include/asterisk/sched.h, channels/chan_iax2.c: Make the ast_assert call within ast_sched_del report something useful. 2008-07-18 16:15 +0000 [r131921] Kevin P. Fleming * main/dlfcn.c (removed), main/loader.c, main/Makefile, include/asterisk/dlfcn-compat.h (removed): remove the dlfcn compatibility stuff, because no platforms that Asterisk currently runs on it use it, and it doesn't build anyway 2008-07-18 15:34 +0000 [r131915] Brett Bryant * res/res_features.c: Fix a bug in blind transfers where the BLINDTRANSFER variable isn't always set to the other end of the blind transfer. (closes issue #12586) 2008-07-17 20:35 +0000 [r131790] Tilghman Lesher * channels/chan_dahdi.c: Revert part of issue #5620 (revision 6965) as it appears that it was in error. This should fix talk call progress on analog lines. (closes issue #12178) Reported by: michael-fig Patches: 20080717__bug12178.diff.txt uploaded by Corydon76 (license 14) 2008-07-16 22:17 +0000 [r131491] Brett Bryant * channels/chan_iax2.c: Fix a bug in iax2 registration that allowed peers to register with case-insensitive names (user_cmp_cb and peer_cmp_cb are now both case-sensitive). (closes issue #13091) 2008-07-16 21:46 +0000 [r131480] Tilghman Lesher * channels/chan_iax2.c: Apparently, in certain cases, a callno is already destroyed when iax2_destroy is called. 2008-07-16 20:47 +0000 [r131421] Russell Bryant * channels/chan_iax2.c: Always ensure that the channel's tech_pvt reference is NULL after calling the destroy callback. (closes issue #13060) Reported by: jpgrayson Patches: chan_iax2_tech_pvt_crash.patch uploaded by jpgrayson (license 492) 2008-07-16 20:23 +0000 [r131299-131369] Mark Michelson * apps/app_queue.c: Move the init_queue call back to where it used to be (changed Sept 12 last year). It was moved then to prevent a memory leak. Since then, the same memory leak recurred and was fixed in a better way. Now it has been found that the placement of this init_queue call can cause problems if a realtime queue has values changed to an empty string. The problem is that the default value for that queue parameter would not be set. (closes issue #13084) Reported by: elbriga * apps/app_queue.c: Apparently, "thread safety" is important, whatever that means. :P (Thanks Russell!) * apps/app_queue.c: Make absolutely certain that the transfer datastore is removed from the calling channel once the caller is finished in the queue. This could have weird con- sequences when dialing local queue members when multiple transfers occur on a single call. Also fixed a memory leak that would occur when an attended transfer occurred from a queue member. (closes issue #13047) Reported by: festr 2008-07-16 17:53 +0000 [r131242] Steve Murphy * pbx/pbx_ael.c: (closes issue #13090) Reported by: murf The problem was that, esoteric as it is, because the hangerupper context immediately preceded the std-priv-extent macro, that the checking code accidentally would fall from traversing hangerupper into the std-priv-exten macro, where it would hit the hangerupper in the 'includes', and proceed into an infinite recursion. A small fix to traverse into the statements of the context instead of the context solves this issue. I also added some commented out printfs for debug, which were pretty handy in the face of a dorky gdb. This was a problem around since the package was first written; but evidently pretty rare in turning up in the field. 2008-07-15 17:47 +0000 [r131012] Michiel van Baak * main/cdr.c: remove 4 lines of redundant code. (closes issue #13080) Reported by: gknispel_proformatique Patches: trunk_ast_cdr_setapp.patch uploaded by gknispel (license 261) 2008-07-15 17:19 +0000 [r130889-130959] Tilghman Lesher * main/manager.c, channels/chan_sip.c: astman_send_error does not need a newline appended -- the API takes care of that for us. (closes issue #13068) Reported by: gknispel_proformatique Patches: asterisk_1_4_astman_send.patch uploaded by gknispel (license 261) asterisk_trunk_astman_send.patch uploaded by gknispel (license 261) * channels/chan_iax2.c: Override the callerid in all cases when the callerid is set in the user, not just when a remote callerid is set. Also, if not set in the user, allow the remote CallerID to pass through. (closes issue #12875) Reported by: dimas Patches: 20080714__bug12875.diff.txt uploaded by Corydon76 (license 14) 2008-07-14 17:50 +0000 [r130792] Mark Michelson * apps/app_dial.c: Add a check to the CAN_EARLY_BRIDGE macro in app_dial to be sure there are no audiohooks present on the channels involved. This fixed a one-way audio situation I had in my test setup. I couldn't find any open issues that suggested one-way audio with regards to mixmonitor (or other audiohook) usage, though. 2008-07-14 17:10 +0000 [r130735] Michiel van Baak * main/dnsmgr.c: notify the user that dnsmgr refresh wont work when dnsmgr is not enabled. Previously this command would automagically appear and disappear. This was confusing. (closes issue #12796) Reported by: chappell Patches: dnsmgr_refresh_3.diff uploaded by chappell (license 8) Tested by: russell, chappell, mvanbaak 2008-07-14 10:38 +0000 [r130634] Russell Bryant * main/audiohook.c: Bump up the debug level for a message. 2008-07-13 22:48 +0000 [r130573] Michiel van Baak * main/manager.c: fix memory leak when originate from manager cannot create a thread (closes issue #13069) Reported by: gknispel_proformatique Patches: asterisk_trunk_action_originate.patch uploaded by gknispel (license 261) Tested by: gknispel_proformatique, mvanbaak 2008-07-13 17:56 +0000 [r130514] Tilghman Lesher * channels/chan_iax2.c: Reverting 2 changesets, as it breaks incoming IAX2 calls (Related to issue #12963) Reported by: mvanbaak 2008-07-12 10:25 +0000 [r130373] Michiel van Baak * pbx/pbx_ael.c: in 1.4 the functions still have | as argument seperator. This commit fixes the use of RAND in the ael random function. (closes issue #13061) Reported by: danpwi 2008-07-11 22:23 +0000 [r130298-130317] Kevin P. Fleming * Makefile: forcibly remove the modules that are changing names * include/asterisk/options.h, main/asterisk.c, cdr/cdr_csv.c, Makefile, main/channel.c, apps/app_dahdibarge.c, channels/chan_dahdi.c, doc/hardware.txt, apps/app_flash.c, apps/app_dahdiras.c, main/file.c, contrib/utils/zones2indications.c, include/asterisk/channel.h, channels/chan_iax2.c: a whole pile of Zaptel/DAHDI compatibility work, with lots more to come... this tree is not yet ready for users to be easily upgrading or switching, but it needs to be :-) 2008-07-11 20:03 +0000 [r130173-130236] Mark Michelson * main/audiohook.c: Remove redundant logic * main/audiohook.c: Fix a typo in audiohook_read_frame_both. While this change has not been proven to fix any specific issue, it is incorrect and could cause unforeseen problems. 2008-07-11 18:51 +0000 [r130102-130169] Tilghman Lesher * channels/chan_iax2.c: Ensure that a destination callno of 0 will not match for frames that do not start a dialog (new, lagrq, and ping). (closes issue #12963) Reported by: russellb Patches: chan_iax2_dup_new_fix4.patch uploaded by jpgrayson (license 492) * channels/chan_agent.c: Pass the devicestate from an underlying channel up through the Agent channel. This should make the Agent always report the correct device state, even when the underlying channel is used for other purposes. (closes issue #12773) Reported by: davidw Patches: 20080710__bug12773.diff.txt uploaded by Corydon76 (license 14) Tested by: davidw 2008-07-11 16:08 +0000 [r130039-130042] Kevin P. Fleming * doc/configuration.txt, configs/extensions.conf.sample, configs/sla.conf.sample, configs/zapata.conf.sample (removed), contrib/scripts/autosupport, README, configs/chan_dahdi.conf.sample (added), channels/chan_dahdi.c, include/asterisk/doxyref.h, doc/sla.tex, doc/ael.txt, configs/extensions.ael.sample, configs/smdi.conf.sample: new installations should be using DAHDI instead of Zaptel, so the sample config file is now chan_dahdi.conf instead of zapata.conf also, convert remaining references to zapata.conf in various places * configs/zapata.conf.sample, channels/chan_dahdi.c, configure, include/asterisk/autoconfig.h.in, configure.ac: add support for a configuration parameter for 'inband audio during RELEASE', which is currently mandatory in libpri-1.4.4 but will become configurable in libpri-1.4.5 later today (related to issue #13042) 2008-07-11 14:18 +0000 [r129970] Russell Bryant * include/asterisk/astobj.h: add a simple ASTOBJ_TRYWRLOCK macro ... 2008-07-11 14:14 +0000 [r129907-129967] Kevin P. Fleming * main/astmm.c: simplify calculation * main/astmm.c: fix a flaw found while experimenting with structure alignment and padding; low-fence checking would not work properly on 64-bit platforms, because the compiler was putting 4 bytes of padding between the fence field and the allocation memory block added a very obvious runtime warning if this condition reoccurs, so the developer who broke it can be chastised into fixing it :-) * sounds/Makefile: don't attempt to set user/group ownership of extracted sound files (reported on asterisk-users) (closes issue #13059) 2008-07-10 21:57 +0000 [r129741-129803] Tilghman Lesher * channels/chan_iax2.c: Correctly deal with duplicate NEW frames (due to retransmission). Also, fixup the destination call number matching to be more strict and reliable. (closes issue #12963) Reported by: jpgrayson Patches: chan_iax2_dup_new_fix3.patch uploaded by jpgrayson (license 492) Tested by: jpgrayson, Corydon76 * res/res_config_odbc.c: Oops 2008-07-10 16:03 +0000 [r129567] Russell Bryant * sample.call: Note that pbx_spool.so is the module used for call files (inspired by a question in #asterisk) 2008-07-10 13:57 +0000 [r129505] Sean Bright * main/editline: Update svn:ignore 2008-07-09 19:32 +0000 [r129436] Mark Michelson * main/rtp.c: Fix a problem where inbound rfc2833 audio would be sent to the core instead of being P2P bridged. When the core regenerated the rfc2833 packet for the outbound leg, the SSRC would be different than the RTP audio on the call leg causing DTMF detection issues on the far end. (closes issue #12955) Reported by: tonyredstone Patches: dynamic_rtp.patch uploaded by tsearle (license 373) Tested by: tonyredstone 2008-07-09 13:41 +0000 [r129343] Sean Bright * main/editline/makelist (removed), main/editline/makelist.in (added), main/editline/configure, main/editline/Makefile.in, main/editline/configure.in: Look for the system installed awk instead of assuming it's at /usr/bin/awk. Pointed out by jmls via #asterisk-dev. 2008-07-08 21:31 +0000 [r129158-129208] Mark Michelson * doc/imapstorage.txt: Update documentation to have the correct option name * apps/app_voicemail.c, doc/imapstorage.txt: Backport TCP-related timeouts to IMAP voicemail in 1.4 since it should solve bugs people are experiencing. Specifically, there are times where communication with the IMAP server causes system calls to block forever. If this should happen when querying the mailbox so that chan_sip's do_monitor thread can send MWI to a phone, it means that SIP calls cannot be processed any more. The timeout options are outlined in doc/imapstorage.txt. Defaults for the timeouts are sixty seconds. (closes issue #12987) Reported by: mthomasslo 2008-07-08 20:27 +0000 [r129047-129149] Tilghman Lesher * apps/app_dial.c, channels/chan_sip.c, include/asterisk/causes.h: Cause SIP to return a 480 instead of a 404 when a sip peer exists, but is not registered. (closes issue #12885) Reported by: ibc Patches: 20080701__bug12885__2.diff.txt uploaded by Corydon76 (license 14) Tested by: ibc * channels/chan_iax2.c: Timestamp decoding for video mini-frames is bogus, because the timestamp only includes 15 bits, unlike voice frames, which contain a 16-bit timestamp. (closes issue #13013) Reported by: jpgrayson Patches: chan_iax2_unwrap_ts.patch uploaded by jpgrayson (license 492) 2008-07-08 09:52 +0000 [r128912-128950] Olle Johansson * channels/chan_sip.c: Don't hangup the call if we can't resolve the Contact if there's a proxy route set for the call. ---- This comment was added a while ago and today it hit me badly. /* OEJ: Possible issue that may need a check: If we have a proxy route between us and the device, should we care about resolving the contact or should we just send it? */ * channels/chan_sip.c: Fix issues where repeated messages where ignored, but retransmitted reliably instead of unreliably. Reported by: johan Patches: 12746.txt uploaded by oej (license 306) Tested by: johan (issue #12746) 2008-07-08 00:01 +0000 [r128812-128856] Tilghman Lesher * apps/app_voicemail.c: Check for non-NULL before stripping characters. (closes issue #12954) Reported by: bfsworks Patches: 20080701__bug12954.diff.txt uploaded by Corydon76 (license 14) Tested by: deti * apps/app_voicemail.c: Stop using deprecated method, as requested by Kevin. 2008-07-07 22:41 +0000 [r128795] Russell Bryant * channels/chan_iax2.c: Fix handling of when a pvt disappears. Properly return the pvt locked and don't hold the pvt lock while destroying the ast_channel. (closes issue #13014) Reported by: jpgrayson Patches: chan_iax2_ast_iax2_new2.patch uploaded by jpgrayson (license 492) 2008-07-07 20:47 +0000 [r128737] Sean Bright * channels/chan_iax2.c: Remove spurious trailing whitespace from log messages and fix a spelling error in a log message. (closes issue #13017) Reported by: jpgrayson Patches: chan_iax2_space_after_newline.patch uploaded by jpgrayson (license 492) chan_iax2_spelling.patch uploaded by jpgrayson (license 492) 2008-07-07 17:02 +0000 [r128639] Mark Michelson * channels/chan_iax2.c: By using the iaxdynamicthreadcount to identify a thread, it was possible for thread identifiers to be duplicated. By using a globally-unique monotonically- increasing integer, this is now avoided. (closes issue #13009) Reported by: jpgrayson Patches: chan_iax2_dyn_threadnum.patch uploaded by jpgrayson (license 492) 2008-07-07 16:51 +0000 [r128637] Kevin P. Fleming * configure, configure.ac: use tzafrir's patch to fix this problem properly... i made the previous set of changes without thoroughly testing them, doh! (closes issue #12911) Reported by: tzafrir Patches: custum_dahdi_configure_2.diff uploaded by tzafrir (license 46) Tested by: tzafrir 2008-07-04 16:11 +0000 [r127973-128029] Tilghman Lesher * pbx/pbx_config.c: Move the free down one * main/pbx.c, include/asterisk/pbx.h, pbx/pbx_config.c: Fix the 'dialplan remove extension' logic, so that it a) works with cidmatch, and b) completes contexts correctly when the extension is ambiguous. (closes issue #12980) Reported by: licedey Patches: 20080703__bug12980.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 2008-07-03 22:20 +0000 [r127754-127895] Kevin P. Fleming * apps/Makefile: remove this, it has been moved to the main Makefile * Makefile, main/editline/np/vis.c: a couple of small Solaris-related fixes (closes issue #11885) Reported by: snuffy, asgaroth * configure, main/Makefile, configure.ac, acinclude.m4: ensure that DAHDI_INCLUDE and ZAPTEL_INCLUDE are added in all the places needed improve AST_EXT_LIB_CHECK to accept (and remember) additional CFLAGS data like it does in trunk already (closes issue #12911) Reported by: tzafrir 2008-07-03 00:16 +0000 [r127663] Steve Murphy * main/cdr.c, main/channel.c, channels/chan_dahdi.c, main/pbx.c, channels/chan_sip.c, res/res_features.c, include/asterisk/cdr.h: The CDRfix4/5/6 omnibus cdr fixes. (closes issue #10927) Reported by: murf Tested by: murf, deeperror (closes issue #12907) Reported by: falves11 Tested by: murf, falves11 (closes issue #11849) Reported by: greyvoip As to 11849, I think these changes fix the core problems brought up in that bug, but perhaps not the more global problems created by the limitations of CDR's themselves not being oriented around transfers. Reopen if necc, but bug reports are not the best medium for enhancement discussions. We need to start a second-generation CDR standardization effort to cover transfers. (closes issue #11093) Reported by: rossbeer Tested by: greyvoip, murf 2008-07-02 20:47 +0000 [r127560] Mark Michelson * channels/chan_agent.c: Fix thread-safety of some of the pbx_builtin_getvar_helper calls 2008-07-02 19:47 +0000 [r127501] Tilghman Lesher * main/acl.c: Merged revisions 127466 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r127466 | tilghman | 2008-07-02 13:31:11 -0500 (Wed, 02 Jul 2008) | 6 lines Solaris fix (closes issue #12949) Reported by: snuffy Patches: bug_12949.diff uploaded by snuffy (license 35) ........ 2008-07-01 23:36 +0000 [r127244] Mark Michelson * apps/app_voicemail.c: Add error message to failed open(2) calls inside the copy() function of app_voicemail. This idea came as part of my work in helping to resolve issue #12764. 2008-07-01 20:25 +0000 [r126999-127133] Tilghman Lesher * build_tools/cflags.xml, channels/chan_iax2.c: Disable the old, slow search for matching callno in chan_iax2 (but allow it to be reenabled for debugging) * channels/chan_iax2.c: Oops * channels/chan_iax2.c: Change around how we schedule pings and lagrqs, and fix a reason why the jobs were not getting properly cancelled. (closes issue #12903) Reported by: stevedavies Patches: 20080620__bug12903__2.diff.txt uploaded by Corydon76 (license 14) Tested by: stevedavies * channels/chan_iax2.c: Suppress annoying warning by finding the remaining cases where the callno is not in the hash. 2008-07-01 14:59 +0000 [r126735-126902] Olle Johansson * channels/chan_sip.c: Use domain part of SIP uri in register= configuration as fromdomain. Reported by: one47 Patches: sip-reg-fromdom2.dpatch uploaded by one47 (license 23) (closes issue #12474) * channels/chan_sip.c: Handle escaped URI's in call pickups. Patch by oej and IgorG. Reported by: IgorG Patches: bug12299-11062-v2.patch uploaded by IgorG (license 20) Tested by: IgorG, oej (closes issue #12299) * configs/sip.conf.sample: Clear up documentation on "domain=" setting in sip.conf Reported by: davidw (closes issue #12413) * channels/chan_sip.c: Report 200 OK to all in-dialog OPTIONs requests (to confirm that the dialog exist). Don't bother checking the request URI. (closes issue #11264) Reported by: ibc * channels/chan_sip.c: Fix bad XML for hold notification. Reported by: gowen72 Patches: hold.patch uploaded by gowen72 (license 432) (closes issue #12942) 2008-06-30 23:11 +0000 [r126680] Jeff Peeler * channels/chan_dahdi.c: Load the proper channel configuration file based on which driver was detected. 2008-06-30 22:30 +0000 [r126674] Tilghman Lesher * configs/zapata.conf.sample: Add note about other names for EuroISDN 2008-06-30 16:05 +0000 [r126573] Russell Bryant * include/asterisk/lock.h: Fix a typo in the non-DEBUG_THREADS version of the recently added DEADLOCK_AVOIDANCE() macro. This caused the lock to not actually be released, and as a result, not avoid deadlocks at all. This resolves the issues reported in the last while about Asterisk locking up all over the place (and most commonly, in chan_iax2). (closes issue #12927) (closes issue #12940) (closes issue #12925) (potentially closes others ...) 2008-06-30 12:50 +0000 [r126516] Olle Johansson * channels/chan_sip.c: Send all responses to an INVITE reliably, so that we retransmit if we don't get an ACK and also fail if we don't get the very same precious ACK. Based on patch by tsearle, with my own additions. (closes issue #12951) Reported by: tsearle Patches: busy_retransmit.patch uploaded by tsearle (license 373) 2008-06-29 18:05 +0000 [r126395] Kevin P. Fleming * pbx/Makefile: ignore warnings for prototypes in GTK headers 2008-06-27 22:01 +0000 [r125740-126056] Tilghman Lesher * channels/chan_sip.c: When we get a 408 Timeout, don't stop trying to re-register. (closes issue #12863) Reported by: ricvil * include/asterisk/tonezone_compat.h: Since HAVE_DAHDI is defined to HAVE_ZAPTEL in dahdi_compat.h, we must first check for HAVE_ZAPTEL. (closes issue #12938) Reported by: opticron Patches: tonezone_compat.diff uploaded by opticron (license 267) * main/utils.c, include/asterisk/lock.h: In this debugging function, copy to a buffer instead of using potentially unsafe pointers. * channels/chan_local.c: Add proper deadlock avoidance. (closes issue #12914) Reported by: ozan Patches: 20080625__bug12914.diff.txt uploaded by Corydon76 (license 14) Tested by: ozan 2008-06-26 23:03 +0000 [r125587] Jason Parker * main/utils.c: Make sure to unlock the lock_info lock (huh?). Possible deadlock? 2008-06-26 22:52 +0000 [r125476-125585] Mark Michelson * apps/app_queue.c: Add the interface of a queue member to the output of the "queue show" command so that it can easily be associated with a queue member's name. This helps so that the appropriate queue member can be removed or paused since the interface is required, not the member's name. (closes issue #12783) Reported by: davevg Patches: app_queue.diff uploaded by davevg (license 209) with small mod from me * apps/app_queue.c: Backport of attended transfer queue_log patch from trunk. This patch allows for attended transfers to be logged in the queue_log the same way that blind transfers have always been. It was decided by popular opinion on the asterisk-dev mailing list that this should be backported to 1.4. Thanks to everyone who gave an opinion. * apps/app_queue.c: Prior to this patch, the "queue show" command used cached information for realtime queues instead of giving up-to-date info. Now realtime is queried for the latest and greatest in queue info. (closes issue #12858) Reported by: bcnit Patches: queue_show.patch uploaded by putnopvut (license 60) 2008-06-26 16:32 +0000 [r125384] Olle Johansson * channels/chan_sip.c: Add support for peer realm based auth (a few missing lines, the rest is well documented but never worked) 2008-06-26 15:30 +0000 [r125327] Kevin P. Fleming * channels/chan_dahdi.c: ensure that (whenever possible) if we generate a log message because an ioctl() call to DAHDI/Zaptel failed, that we include the reason it failed by including the stringified error number (issue AST-80) 2008-06-26 11:01 +0000 [r125218-125276] Tilghman Lesher * main/rtp.c: Check for rtcp structure before trying to delete schedule. (closes issue #12872) Reported by: destiny6628 Patches: 20080621__bug12872.diff.txt uploaded by Corydon76 (license 14) Tested by: destiny6628 * configs/agents.conf.sample: Document ackcall=always. (closes issue #12852) Reported by: davidw 2008-06-25 22:21 +0000 [r125132] Kevin P. Fleming * apps/app_rpt.c, include/asterisk/dahdi_compat.h, channels/chan_dahdi.c, configure, include/asterisk/tonezone_compat.h (added), configure.ac: allow tonezone to live in a different place than DAHDI/Zaptel, since dahdi-tools and dahdi-linux are now separate packages and can be installed in different places don't include tonezone.h in dahdi_compat.h, because only a couple of modules need it get app_rpt building again after the DAHDI changes (closes issue #12911) Reported by: tzafrir 2008-06-25 00:46 +0000 [r124908-124965] Tilghman Lesher * channels/chan_dahdi.c: Pvt deadlock causes some channels to get stuck in Reserved status. (closes issue #12621) Reported by: fabianoheringer Patches: 20080612__bug12621.diff.txt uploaded by Corydon76 (license 14) Tested by: fabianoheringer * apps/app_voicemail.c: Occasionally control characters find their way into CallerID. These need to be stripped prior to placing CallerID in the headers of an email. (closes issue #12759) Reported by: RobH Patches: 20080602__bug12759__2.diff.txt uploaded by Corydon76 (license 14) Tested by: RobH * channels/chan_sip.c: Don't access the pvt structure if unable to acquire the lock. (closes issue #12162) Reported by: norman Patches: 12162-lockfail.diff uploaded by qwell (license 4) 2008-06-23 21:22 +0000 [r124743] Kevin P. Fleming * channels/chan_iax2.c: emit a warning if the old IAX2 call searching code finds a call when the new code did not... so that we can get rid of the old code in 2-3 months 2008-06-22 02:54 +0000 [r124540] Steve Murphy * apps/app_forkcdr.c: (closes issue #12910) Reported by: chris-mac Sorry, my testing did not contain the simple case of forkCDR(v), I am much embarrassed to admit. If I had, I would have more solidly initialized the opts element for varset. 2008-06-20 23:12 +0000 [r124395-124450] Tilghman Lesher * apps/app_rpt.c: usleep with a value over 1,000,000 is nonportable. Changing to use sleep() instead. (closes issue #12814) Reported by: pputman Patches: app_rtp_sleep.patch uploaded by pputman (license 81) * main/app.c: If the last character in a string to be parsed is the delimiter, then we should count that final empty string as an additional argument. 2008-06-20 21:14 +0000 [r124372] Jeff Gehlbach * doc/asterisk-mib.txt, doc/digium-mib.txt: Fix issues in digium-mib.txt and asterisk-mib.txt to placate smilint - bug 12905 2008-06-20 20:16 +0000 [r124182-124315] Tilghman Lesher * channels/chan_local.c: When using a Local channel, started by a call file, with a destination of an AGI script, the AGI script does not always get notified of a hangup if the underlying channel hangs up early. (closes issue #11833) Reported by: IgorG Patches: local_hangup-v1.diff uploaded by IgorG (license 20) * channels/chan_dahdi.c: It's possible for a hangup to be received, even just after the initial cid spill. (closes issue #12453) Reported by: Alex728 Patches: 20080604__bug12453.diff.txt uploaded by Corydon76 (license 14) 2008-06-19 20:28 +0000 [r124112] Mark Michelson * apps/app_voicemail.c: Fix IMAP forwarding so that messages are sent to the proper mailbox. (closes issue #12897) Reported by: jaroth Patches: destination_forward.patch uploaded by jaroth (license 50) 2008-06-19 19:55 +0000 [r124066] Brett Bryant * main/utils.c: Merge revision 124064 from trunk. Add errors that report any locks held by threads when they are being closed. 2008-06-19 16:58 +0000 [r123710-123930] Tilghman Lesher * main/channel.c: Change informative messages to use the _multiple variant when multiple formats are possible. (Closes issue #12848) Reported by klaus3000 * build_tools/strip_nonapi: Only process 40 arguments (20 files) at once with xargs, because some older shells may force xargs to separate on an odd boundary. (Closes issue #12883) Reported by Nik Soggia * configs/sip.conf.sample: Correct description of notifyringing option. (Closes issue #12890) Reported by gminet * main/asterisk.c: The RDTSC instruction was introduced on the Pentium line of microprocessors, and is not compatible with certain 586 clones, like Cyrix. Hence, asking for i386 compatibility was always incorrect. See http://en.wikipedia.org/wiki/RDTSC (Closes issue #12886) Reported by tecnoxarxa * main/say.c, doc/lang (added), doc/lang/hebrew.ods (added): Add support for saying numbers in Hebrew. (closes issue #11662) Reported by: greenfieldtech Patches: say.c.patch-12042008 uploaded by greenfieldtech (license 369) Hebrew-Sounds.ods uploaded by greenfieldtech (with signficant changes to the spreadsheet by me) * pbx/pbx_spool.c: Set the variables top-down, so that if a script sets a variable more than once, the last one will take precedence. (closes issue #12673) Reported by: phber Patches: 20080519__bug12673.diff.txt uploaded by Corydon76 (license 14) 2008-06-17 20:26 +0000 [r123485] Mark Michelson * channels/chan_sip.c: Make chan_sip build under dev mode with compilers >= GCC 4.2 Thanks to jpeeler for alerting me of this 2008-06-17 18:56 +0000 [r123391] Tilghman Lesher * channels/chan_iax2.c: Fix 3 more places where not locking the structure could cause the wrong lock to be unlocked. (Closes issue #12795) 2008-06-17 18:09 +0000 [r123274-123333] Mark Michelson * channels/chan_sip.c: Cisco BTS sends SIP responses with a tab between the Cseq number and SIP request method in the Cseq: header. Asterisk did not handle this properly, but with this patch, all is well. (closes issue #12834) Reported by: tobias_e Patches: 12834.patch uploaded by putnopvut (license 60) Tested by: tobias_e * apps/app_queue.c: davidw pointed out that the holdtime calculation used by app_queue does not use "boxcar" filtering as the comments say. The term "boxcar" means that the number of samples used to calculate stays constant, with new samples replacing the oldest ones. The queue holdtime calculation uses all holdtime samples collected since the queue was loaded, so the comment has been changed to be accurate. (closes issue #12781) Reported by: davidw 2008-06-17 15:48 +0000 [r123271] Russell Bryant * main/astobj2.c: Fix a memory leak in astobj2 that was pointed out by seanbright. When a container got destroyed, the underlying bucket list entry for each object that was in the container at that time did not get free'd. 2008-06-16 19:50 +0000 [r123110-123113] Tilghman Lesher * channels/chan_mgcp.c, channels/chan_dahdi.c, channels/chan_skinny.c, channels/chan_h323.c, channels/chan_iax2.c: Port "hasvoicemail" change from SIP to other channel drivers * channels/chan_sip.c: People expect that if "hasvoicemail" is set in users.conf, even if "mailbox" isn't set, that SIP will detect a mailbox. (closes issue #12855) Reported by: PLL Patches: 20080614__bug12855__2.diff.txt uploaded by Corydon76 (license 14) Tested by: PLL 2008-06-16 12:31 +0000 [r122869-122919] Joshua Colp * channels/chan_sip.c: Only compare the first 15 characters so that even if the charset is specified we still accept it as SDP. (closes issue #12803) Reported by: lanzaandrea Patches: chan_sip.c.diff uploaded by lanzaandrea (license 496) * channels/chan_sip.c: Don't send a BYE on a dialog that is already gone during a REFER. (closes issue #12865) Reported by: flefoll Patches: chan_sip.c.br14.121495.patch-ALREADYGONE uploaded by flefoll (license 244) 2008-06-13 21:44 +0000 [r122713] Mark Michelson * main/autoservice.c: Short circuit the loop in autoservice_run if there are no channels to poll. If we continued, then the result would be calling poll() with a NULL pollfd array. While this is fine with POSIX's poll(2) system call, those who use Asterisk's internal poll mechanism (Darwin systems) would have a failed assertion occur when poll is called. (related to issue #10342) 2008-06-13 18:57 +0000 [r122663] Jeff Peeler * include/asterisk/dahdi_compat.h, res/res_musiconhold.c: fixed dahdi compatability header from assuming either dahdi or zaptel is installed (may not have either) 2008-06-13 17:45 +0000 [r122617] Terry Wilson * apps/app_dial.c: Remove extra option from previous solution attempt 2008-06-13 17:36 +0000 [r122613] Jeff Peeler * configure, configure.ac: (closes issue #12846) Reported by: Netview Tested by: jpeeler Use correct location to search for tonezone. 2008-06-13 16:29 +0000 [r122589] Terry Wilson * apps/app_dial.c, res/res_features.c: This should fix the behavior of the 'T' dial feature being passed incorrectly to the transferee when builtin_atxfers are used. Also, doing a builtin_atxfer to parking was broken and is fixed here as well. (closes issue #11898) Reported by: sergee Tested by: otherwiseguy 2008-06-12 19:08 +0000 [r122314] Jeff Peeler * main/indications.c, include/asterisk/dahdi_compat.h (added), main/loader.c, main/channel.c, channels/chan_dahdi.c (added), configure, apps/app_zapscan.c (removed), apps/app_zapras.c (removed), main/app.c, include/asterisk/options.h, apps/app_rpt.c, channels/chan_mgcp.c, apps/app_read.c, channels/chan_zap.c (removed), apps/app_page.c, include/asterisk/indications.h, apps/app_dahdiras.c (added), configure.ac, apps/app_disa.c, include/asterisk/channel.h, apps/app_getcpeid.c, apps/app_queue.c, apps/app_zapbarge.c (removed), channels/chan_misdn.c, apps/app_flash.c, build_tools/menuselect-deps.in, funcs/func_channel.c, main/file.c, res/snmp/agent.c, contrib/utils/zones2indications.c, codecs/codec_dahdi.c (added), res/res_indications.c, pbx/pbx_config.c, makeopts.in, apps/app_chanspy.c, main/asterisk.c, apps/app_dahdibarge.c (added), apps/app_meetme.c, include/asterisk/autoconfig.h.in, apps/app_dahdiscan.c (added), acinclude.m4, res/res_musiconhold.c, codecs/codec_zap.c (removed), channels/chan_iax2.c: Adds DAHDI support alongside Zaptel. DAHDI usage favored, but all Zap stuff should continue working. Release announcement to follow. 2008-06-12 18:50 +0000 [r122311] Mark Michelson * apps/app_queue.c: Properly play a holdtime message if the announce-holdtime option is set to "once." (closes issue #12842) Reported by: ramonpeek Patches: patch001.diff uploaded by ramonpeek (license 266) 2008-06-12 18:22 +0000 [r122259] Russell Bryant * channels/chan_iax2.c: Fix some race conditions that cause ast_assert() to report that chan_iax2 tried to remove an entry that wasn't in the scheduler 2008-06-12 15:46 +0000 [r122208] Jeff Peeler * apps/app_parkandannounce.c, res/res_features.c: (closes issue #12193) Reported by: davidw Patch by: Corydon76, modified by me to work properly with ParkAndAnnounce app 2008-06-12 15:18 +0000 [r122130-122137] Tilghman Lesher * apps/app_meetme.c: Flipflop the sections for two options, since the section for 'X' (exit context) may otherwise absorb keypresses meant for 's' (admin/user menu). (closes issue #12836) Reported by: blitzrage Patches: 20080611__bug12836.diff.txt uploaded by Corydon76 (license 14) Tested by: blitzrage * main/channel.c: Occasionally, the alertpipe loses its nonblocking status, so detect and correct that situation before it causes a deadlock. (Reported and tested by ctooley via #asterisk-dev) 2008-06-12 14:51 +0000 [r122127] Steve Murphy * main/cdr.c, apps/app_forkcdr.c: Arkadia tried to warn me, but the code added to ast_cdr_busy, _failed, and _noanswer was redundant. Didn't spot it until I was resolving conflicts in trunk. Ugh. Redundant code removed. It wasn't harmful. Just dumb. 2008-06-12 Russell Bryant * Asterisk 1.4.21 released. 2008-06-06 Russell Bryant * Asterisk 1.4.21-rc2 released. 2008-06-05 18:03 +0000 [r120731-120735] Russell Bryant * UPGRADE-1.2.txt: fix filename * UPGRADE-1.2.txt (added), UPGRADE.txt: Add the UPGRADE.txt file from Asterisk 1.2, for handy reference. 2008-06-05 16:56 +0000 [r120675] Philippe Sultan * res/res_jabber.c: Ignore appended resource when comparing JIDs. 2008-06-05 16:38 +0000 [r120671] Russell Bryant * doc/smdi.txt, res/res_smdi.c: It turns out that searching on the forwarding station isn't very useful for most people, so pull in the changes that allow searching for SMDI messages based on other components of the SMDI message. Also, update the SMDI documentation. 2008-06-04 22:05 +0000 [r120513] Mark Michelson * apps/app_queue.c: Make sure that the string we set will survive the unref of the queue member. Thanks to Russell, who pointed this out. 2008-06-04 18:35 +0000 [r120425] Tilghman Lesher * channels/chan_zap.c: If we fail to setup the PRI request channel, don't continue, exit with an error. (closes issue #11989) Reported by: Corydon76 Patches: 20080213__zap_memleak.diff.txt uploaded by Corydon76 (license 14) 2008-06-04 16:26 +0000 [r120371] Russell Bryant * pbx/pbx_config.c: Make the "dialplan remove include" CLI command actually work. Also, tweak some formatting, and make the success message a little bit more clear. (closes AST-52) 2008-06-04 14:11 +0000 [r120285] Mark Michelson * apps/app_queue.c: Tab completion when removing a member should give the member's interface, not the name, since the interface is what is expected for the command. (closes issue #12783) Reported by: davevg 2008-06-04 13:31 +0000 [r120282] Joshua Colp * main/pbx.c, pbx/pbx_config.c: Fix a log message and add a message for when the dialplan is done reloading. (closes issue #12716) Reported by: chappell Patches: dialplan_reload_2.diff uploaded by chappell (license 8) 2008-06-03 22:41 +0000 [r120226] Tilghman Lesher * pbx/pbx_loopback.c: Due to incorrect use of the AST_LIST_INSERT_HEAD() macro the loopback switch cannot perform any translation on the extension number before searching for it in the target context. (closes issue #12473) Reported by: chappell Patches: pbx_loopback.c.diff uploaded by chappell (license 8) 2008-06-03 22:15 +0000 [r120173] Jeff Peeler * main/config.c: (closes issue #11594) Reported by: yem Tested by: yem This change decreases the buffer size allocated on the stack substantially in config_text_file_load when LOW_MEMORY is turned on. This change combined with the fix from revision 117462 (making mkintf not copy the zt_chan_conf structure) was enough to prevent the crash. 2008-06-03 21:34 +0000 [r120168] Russell Bryant * channels/chan_iax2.c: Fix another place where peer->callno could change at a very bad time, and also fix a place where a peer was used after the reference was released. (inspired by rev 120001) 2008-06-03 Russell Bryant * Asterisk 1.4.21-rc1 released. 2008-06-03 18:23 +0000 [r120001-120061] Tilghman Lesher * main/manager.c: When listing the manager users, managers in users.conf are not shown, even though they are allowed to connect. (closes issue #12594) Reported by: bkruse Patches: 12594-managerusers-2.diff uploaded by qwell (license 4) Tested by: bkruse * channels/chan_iax2.c: Save the callno when we're poking, because our peer structure could change during deadlock avoidance (and thus we unlock the wrong callno, causing a cascade failure). (closes issue #12717) Reported by: gewfie Patches: 20080525__bug12717.diff.txt uploaded by Corydon76 (license 14) Tested by: gewfie 2008-06-03 15:26 +0000 [r119929-119966] Steve Murphy * pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18, pbx/ael/ael-test/ref.ael-vtest13, pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test3, pbx/ael/ael-test/ref.ael-test5, pbx/ael/ael-test/ref.ael-test15: Updated the regressions on AEL. Hadn't updated this for the changes I made to preserve ${EXTEN} in switches, which affected several tests because it adds extra priorities, and at least one needed to be updated because of the removal of the empty extension warning message. * pbx/pbx_ael.c: as per http://lists.digium.com/pipermail/asterisk-users/2008-June/212934.html, which is a message from Philipp Kempgen, requesting that the WARNING that an extension is empty be reduced to a NOTICE or less, as empty extensions are syntactically possible, and no big deal. With which I agree, and have removed that WARNING message entirely. I think it is not necessary to see this message. It didn't state that a NoOp() was inserted automatically on your behalf, and really, as users, who cares? Why freak out dialplan writers with unnecessary warnings? The details of the machinations a compiler goes thru to produce working assembly code is of little interest to most programmers-- we will follow the unix principal of doing our work silently. 2008-06-03 14:46 +0000 [r119926] Joshua Colp * channels/chan_sip.c: Treat ECONNREFUSED as an error that will stop further retransmissions. (issue #AST-58, patch from Switchvox) 2008-06-02 20:08 +0000 [r119742-119838] Russell Bryant * channels/chan_iax2.c: Revert a change made for issue #12479. This change caused a regression such that a dial string such as (IAX2/foo) did not automatically fall back to dialing the 's' extension anymore. (closes issue #12770) Reported by: dagmoller * main/manager.c: Improve CLI command blacklist checking for the command manager action. Previously, it did not handle case or whitespace properly. This made it possible for blacklisted commands to get executed anyway. (closes issue #12765) 2008-06-02 14:32 +0000 [r119740] Philippe Sultan * channels/chan_gtalk.c, res/res_jabber.c: Do not link the guest account with any configured XMPP client (in jabber.conf). The actual connection is made when a call comes in Asterisk. Fix the ast_aji_get_client function that was not able to retrieve an XMPP client from its JID. (closes issue #12085) Reported by: junky Tested by: phsultan 2008-06-02 12:30 +0000 [r119687] Russell Bryant * channels/chan_iax2.c: Even of the first PING or LAGRQ doesn't get sent because it comes up too soon, make sure to reschedule so it gets sent later. 2008-06-02 09:29 +0000 [r119585-119636] Christian Richter * channels/misdn/isdn_lib.c: fixed compile issue when dev-mode is enabled * channels/misdn/isdn_lib.c, channels/misdn/isdn_lib.h: Added counter for unhandled_bmsg Print, this prevents the logs to be flooded to fast and save CPU in this error scenario. Added 'last_used' element to bc structure, when a bchannel changes from used to free this exact time will be marked in last_used. When a new channel is requested the find_free_chan function will check if the new empty channel was used within the last second, if yes it will search for the next channel, if no it will return this channel. This simple mechanism has prooven to prevent race conditions where the NT and TE tried to allocate the exact same channel at the same time (RELEASE cause: 44). 2008-06-02 01:06 +0000 [r119530-119533] Russell Bryant * channels/chan_iax2.c: Change a debug message to an actual debug message * apps/app_dial.c: Fix another typo in documentation 2008-06-01 20:47 +0000 [r119478] Michiel van Baak * apps/app_dial.c: small typo fix 'retires' => 'retries' 2008-05-30 21:17 +0000 [r119404] Tilghman Lesher * apps/app_queue.c: When joinempty=strict, it only failed on join if there were busy members. If all members were logged out OR paused, then it (incorrectly) let callers join the queue. (closes issue #12451) Reported by: davidw 2008-05-30 19:46 +0000 [r119354] Joshua Colp * main/autoservice.c: Fix a bug I found while testing for another issue. 2008-05-30 16:44 +0000 [r119301] Michiel van Baak * contrib/scripts/safe_asterisk, contrib/init.d/rc.suse.asterisk, contrib/init.d/rc.debian.asterisk, contrib/init.d/rc.mandrake.asterisk, contrib/init.d/rc.redhat.asterisk, contrib/init.d/rc.gentoo.asterisk, contrib/init.d/rc.slackware.asterisk: dont use a bashism way to check the $VERSION variable. The rc/init.d scripts, and safe_asterisk work on normal sh now again. Tested on: OpenBSD 4.2 (me) Debian etch (me) Ubuntu Hardy (me and loloski) FC9 (loloski) (closes issue #12687) Reported by: loloski Patches: 20080529-12687-safe_asterisk-fixversion.diff.txt uploaded by mvanbaak (license 7) Tested by: loloski, mvanbaak 2008-05-30 12:55 +0000 [r119076-119238] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 119237 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r119237 | russell | 2008-05-30 07:49:39 -0500 (Fri, 30 May 2008) | 7 lines - Instead of only enforcing destination call number checking on an ACK, check all full frames except for PING and LAGRQ, which may be sent by older versions too quickly to contain the destination call number. (As suggested by Tim Panton on the asterisk-dev list) - Merge changes from team/russell/iax2-frame-race, which prevents PING and LAGRQ from being sent before the destination call number is known. ........ * main/autoservice.c: Fix a race condition in channel autoservice. There was still a small window of opportunity for a DTMF frame, or some other deferred frame type, to come in and get dropped. (closes issue #12656) (closes issue #12656) Reported by: dimas Patches: v3-12656.patch uploaded by dimas (license 88) -- with some modifications by me * include/asterisk/audiohook.h: Oddly enough, all of the contents of audiohook.h were in there twice. I have removed the second copy. 2008-05-29 20:24 +0000 [r119071] Tilghman Lesher * channels/chan_zap.c: Call waiting tone occurs too often, because it's getting serviced by both subchannels. (closes issue #11354) Reported by: cahen Patches: 20080512__bug11354.diff.txt uploaded by Corydon76 (license 14) 2008-05-29 19:04 +0000 [r118956-119012] Russell Bryant * apps/app_milliwatt.c: - Fix a typo in the argument to Playtones - use ast_safe_sleep() instead of calling the wait application (thanks to tilghman for pointing these out!) * /, channels/chan_iax2.c: Merged revisions 119008 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r119008 | russell | 2008-05-29 13:45:21 -0500 (Thu, 29 May 2008) | 7 lines Merge changes from team/russell/iax2-another-fix-to-the-fix As described in the following post to the asterisk-dev mailing list, only enforce destination call numbers when processing an ACK. http://lists.digium.com/pipermail/asterisk-dev/2008-May/033217.html (closes issue #12631) ........ * apps/app_milliwatt.c: - Mark app_milliwatt dependent on res_indications (thanks to jsmith) - fix a typo in a log message (thanks to qwell) * apps/app_milliwatt.c: Change milliwatt to use the proper tone by default (1004 Hz) instead of 1000 Hz. An option is there to use 1000 Hz for anyone that might want it. 2008-05-29 17:33 +0000 [r118953-118954] Tilghman Lesher * include/asterisk/lock.h: Define also when not DEBUG_THREADS * channels/chan_mgcp.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_agent.c, channels/chan_alsa.c, main/utils.c, include/asterisk/lock.h, channels/chan_iax2.c: Add some debugging code that ensures that when we do deadlock avoidance, we don't lose the information about how a lock was originally acquired. 2008-05-29 00:25 +0000 [r118858] Steve Murphy * main/cdr.c, apps/app_forkcdr.c: (closes issue #10668) (closes issue #11721) (closes issue #12726) Reported by: arkadia Tested by: murf These changes: 1. revert the changes made via bug 10668; I should have known that such changes, even tho they made sense at the time, seemed like an omission, etc, were actually integral to the CDR system via forkCDR. It makes sense to me now that forkCDR didn't natively end any CDR's, but rather depended on natively closing them all at hangup time via traversing and closing them all, whether locked or not. I still don't completely understand the benefits of setvar and answer operating on locked cdrs, but I've seen enough to revert those changes also, and stop messing up users who depended on that behavior. bug 12726 found reverting the changes fixed his changes, and after a long review and working on forkCDR, I can see why. 2. Apply the suggested enhancements proposed in 10668, but in a completely compatible way. ForkCDR will behave exactly as before, but now has new options that will allow some actions to be taken that will slightly modify the outcome and side-effects of forkCDR. Based on conversations I've had with various people, these small tweaks will allow some users to get the behavior they need. For instance, users executing forkCDR in an AGI script will find the answer time set, and DISPOSITION set, a situation not covered when the routines were first written. 3. A small problem in the cdr serializer would output answer and end times even when they were not set. This is now fixed. 2008-05-28 16:10 +0000 [r118716] Brett Bryant * channels/chan_iax2.c: merge revision 118702 from trunk to 1.4 -- Fixes a bug in chan_iax that uses send_command to poke a peer while a channel is unlocked in some cases, and because it can cause seemingly random failures could be related to some bugs in the tracker... 2008-05-28 14:23 +0000 [r118558-118646] Joshua Colp * channels/chan_sip.c, configs/sip.conf.sample, CHANGES: Add an option to use the source IP address of RTP as the destination IP address of UDPTL when a specific option is enabled. If the remote side is properly configured (ports forwarded) then UDPTL will flow. (closes issue #10417) Reported by: cstadlmann * channels/chan_sip.c: Fix an issue where codec preferences were not set on dialogs that were not authenticated via a user or peer and allow framing to work without rtpmap in the SDP. (closes issue #12501) Reported by: slimey 2008-05-27 19:15 +0000 [r118551] Tilghman Lesher * main/cli.c: When showing an error message for a command, don't shorten the command output, as it tends to confuse the user (it's fine for suggesting other commands, however). Reported by: seanbright (on #asterisk-dev) Fixed by: me 2008-05-27 19:07 +0000 [r118509] Mark Michelson * apps/app_chanspy.c: Russell noted to me that in the case that separate threads use their own addressing system, the fix I made for issue 12376 does not guarantee uniqueness to the datastores' uids. Though I know of no system that works this way, I am going to change this right now to prevent trying to track down some future bug that may occur and cause untold hours of debugging time to track down. The change involves using a global counter which increases with each new chanspy_ds which is created. This guarantees uniqueness. 2008-05-27 18:58 +0000 [r118465] Tilghman Lesher * main/asterisk.c: NULL character should terminate only commands back to the core, not log messages to the console. (closes issue #12731) Reported by: seanbright Patches: 20080527__bug12731.diff.txt uploaded by Corydon76 (license 14) Tested by: seanbright 2008-05-27 17:17 +0000 [r118416] Michiel van Baak * apps/app_voicemail.c: small update to the g() option of app_voicemail to note that gain changes only work on zap channels right now. issue #12578 shows it's not clear right now. 2008-05-27 16:38 +0000 [r118365] Mark Michelson * apps/app_chanspy.c: Add a unique id to the datastore allocated in app_chanspy since it is possible that multiple spies may be listening to the same channel. (closes issue #12376) Reported by: DougUDI Patches: 12376_chanspy_uid.diff uploaded by putnopvut (license 60) Tested by: destiny6628 (closes issue #12243) Reported by: atis 2008-05-27 15:45 +0000 [r118358] Tilghman Lesher * configs/queues.conf.sample: Add a note that pbx_config.so is needed for Local channels. (Closes issue #12671) 2008-05-25 16:02 +0000 [r118251] Tilghman Lesher * channels/chan_sip.c: Realtime flag affects construction in multiple ways, so consulting whether rtcachefriends was set was done too soon (needed to be done inside build_peer, not just as a flag to build_peer). Also, fullcontact needed to be reconstructed, because realtime separates the embedded ';' into multiple fields. (closes issue #12722) Reported by: barthpbx Patches: 20080525__bug12722.diff.txt uploaded by Corydon76 (license 14) Tested by: barthpbx (Much of the discussion happened on #asterisk-dev for diagnosing this issue) 2008-05-23 21:21 +0000 [r118163] Jeff Peeler * channels/chan_zap.c: Fix a few things I missed to ensure zt_chan_conf structure is not modified in mkintf 2008-05-23 13:18 +0000 [r118052-118055] Tilghman Lesher * include/asterisk/utils.h: Add format type checking for recently de-inlined function * doc/cli.txt (added), doc/00README.1st: Add information on using the Asterisk console, including tab command line completion. (Closes issue #12681) 2008-05-23 12:30 +0000 [r118048] Russell Bryant * include/asterisk/utils.h, main/utils.c: Don't declare a function that takes variable arguments as inline, because it's not valid, and on some compilers, will emit a warning. http://gcc.gnu.org/onlinedocs/gcc/Inline.html#Inline (closes issue #12289) Reported by: francesco_r Patches by Tilghman, final patch by me 2008-05-22 18:53 +0000 [r117809-117899] Tilghman Lesher * main/asterisk.c: Also remove preamble from asynchronous events (reported by jsmith on #asterisk-dev) * funcs/func_realtime.c: Take into account the length of delimiters when calculating result string length. (closes issue #12696) Reported by: adomjan Patches: func_realtime.c-longdelimiter.patch uploaded by adomjan (license 487) 2008-05-21 20:11 +0000 [r117582] Jeff Peeler * channels/chan_zap.c: Ensure that passed in zt_chan_conf structure is not modified in mkintf. 2008-05-21 19:38 +0000 [r117574] Joshua Colp * channels/chan_sip.c: Apply the autoframing setting to dialogs that do not get matched against a user or peer. 2008-05-21 18:44 +0000 [r117519-117523] Tilghman Lesher * pbx/pbx_spool.c: Revert accidental commit of the last change * main/asterisk.c, pbx/pbx_spool.c: Strip the preamble from the output also when -rx is not being used (Related to issue #12702) 2008-05-21 18:28 +0000 [r117479-117514] Russell Bryant * main/asterisk.c: Don't filter the magic character in the network verboser. It gets filtered once it reaches the client. (related to issue #12702, pointed out by tilghman) * main/asterisk.c, pbx/pbx_gtkconsole.c: 1) Don't print the verbose marker in front of every message from ast_verbose() being sent to remote consoles. 2) Fix pbx_gtkconsole to filter out the verbose marker. (related to issue #12702) * main/asterisk.c: Don't display the verbose marker for calls to ast_verbose() that do not include a VERBOSE_PREFIX in front of the message. (closes issue #12702) Reported by: johnlange Patched by me 2008-05-21 16:58 +0000 [r117462] Jeff Peeler * channels/chan_zap.c: Pass a pointer for the conf parameter to the function mkintf rather than the whole zt_chan_conf structure. 2008-05-20 Russell Bryant * Asterisk 1.4.20 released. 2008-05-14 Russell Bryant * Asterisk 1.4.20-rc3 released. 2008-05-14 12:51 +0000 [r116230] Olle Johansson * channels/chan_sip.c: Accept text messages even with Content-Type: text/plain;charset=Södermanländska 2008-05-13 23:47 +0000 [r116088] Mark Michelson * main/channel.c, include/asterisk/lock.h: A change to the way channel locks are handled when DEBUG_CHANNEL_LOCKS is defined. After debugging a deadlock, it was noticed that when DEBUG_CHANNEL_LOCKS is enabled in menuselect, the actual origin of channel locks is obscured by the fact that all channel locks appear to happen in the function ast_channel_lock(). This code change redefines ast_channel_lock to be a macro which maps to __ast_channel_lock(), which then relays the proper file name, line number, and function name information to the core lock functions so that this information will be displayed in the case that there is some sort of locking error or core show locks is issued. 2008-05-13 21:17 +0000 [r115990-116038] Russell Bryant * channels/chan_local.c: Fix a deadlock involving channel autoservice and chan_local that was debugged and fixed by mmichelson and me. We observed a system that had a bunch of threads stuck in ast_autoservice_stop(). The reason these threads were waiting around is because this function waits to ensure that the channel list in the autoservice thread gets rebuilt before the stop() function returns. However, the autoservice thread was also locked, so the autoservice channel list was never getting rebuilt. The autoservice thread was stuck waiting for the channel lock on a local channel. However, the local channel was locked by a thread that was stuck in the autoservice stop function. It turned out that the issue came down to the local_queue_frame() function in chan_local. This function assumed that one of the channels passed in as an argument was locked when called. However, that was not always the case. There were multiple cases in which this channel was not locked when the function was called. We fixed up chan_local to indicate to this function whether this channel was locked or not. The previous assumption had caused local_queue_frame() to improperly return with the channel locked, where it would then never get unlocked. (closes issue #12584) (related to issue #12603) * main/autoservice.c: Fix an issue that I noticed in autoservice while mmichelson and I were debugging a different problem. I noticed that it was theoretically possible for two threads to attempt to start the autoservice thread at the same time. This change makes the process of starting the autoservice thread, thread-safe. 2008-05-13 20:28 +0000 [r115944] Joshua Colp * channels/chan_alsa.c: Use the right flag to open the audio in non-blocking. (closes issue #12616) Reported by: nicklewisdigiumuser 2008-05-13 18:36 +0000 [r115884] Tilghman Lesher * main/asterisk.c: If the socket dies (read returns 0=EOF), return immediately. (Closes issue #12637) 2008-05-12 17:51 +0000 [r115735] Mark Michelson * main/utils.c: If a thread holds no locks, do not print any information on the thread when issuing a core show locks command. This will help to de-clutter output somewhat. Russell said it would be fine to place this improvement in the 1.4 branch, so that's why it's going here too. 2008-05-09 16:34 +0000 [r115579] Joshua Colp * configure, include/asterisk/autoconfig.h.in, configure.ac: Improve res_ninit and res_ndestroy autoconf logic on the Darwin platform. 2008-05-08 19:19 +0000 [r115545-115568] Russell Bryant * channels/chan_iax2.c: Remove debug output. * /, channels/chan_iax2.c: Merged revisions 115564 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r115564 | russell | 2008-05-08 14:14:04 -0500 (Thu, 08 May 2008) | 25 lines Fix a race condition that bbryant just found while doing some IAX2 testing. He was running Asterisk trunk running IAX2 calls through a few Asterisk boxes, however, the audio was extremely choppy. We looked at a packet trace and saw a storm of INVAL and VNAK frames being sent from one box to another. It turned out that what had happened was that one box tried to send a CONTROL frame before the 3 way handshake had completed. So, that frame did not include the destination call number, because it didn't have it yet. Part of our recent work for security issues included an additional check to ensure that frames that are supposed to include the destination call number have the correct one. This caused the frame to be rejected with an INVAL. The frame would get retransmitted for forever, rejected every time ... This race condition exists in all versions that got the security changes, in theory. However, it is really only likely that this would cause a problem in Asterisk trunk. There was a control frame being sent (SRCUPDATE) at the _very_ beginning of the call, which does not exist in 1.2 or 1.4. However, I am fixing all versions that could potentially be affected by the introduced race condition. These changes are what bbryant and I came up with to fix the issue. Instead of simply dropping control frames that get sent before the handshake is complete, the code attempts to wait a little while, since in most cases, the handshake will complete very quickly. If it doesn't complete after yielding for a little while, then the frame gets dropped. ........ * channels/chan_sip.c: Don't give up on attempting an outbound registration if we receive a 408 Timeout. (closes issue #12323) * contrib/scripts/postgres_cdr.sql (removed): remove postgres_cdr.sql, as the CDR schema is in realtime_pgsql.sql, as well (closes issue #9676) * contrib/init.d/rc.debian.asterisk: Don't exit the script if Asterisk is not running. (closes issue #12611) * main/pbx.c: Don't use a channel before checking for channel allocation failure. (closes issue #12609) Reported by: edantie * contrib/init.d/rc.debian.asterisk: Use the same method for executing Asterisk as the rest of the script. (closes issue #12611) Reported by: b_plessis 2008-05-07 Russell Bryant * Asterisk 1.4.20-rc2 released. 2008-05-07 18:17 +0000 [r115512-115517] Russell Bryant * channels/chan_sip.c: Track peer references when stored in the sip_pvt struct as the peer related to a qualify ping or a subscription. This fixes some realtime related crashes. (closes issue #12588) (closes issue #12555) 2008-05-06 19:55 +0000 [r115418-115422] Jason Parker * /, contrib/scripts/get_ilbc_source.sh: Merged revisions 115421 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r115421 | qwell | 2008-05-06 14:54:57 -0500 (Tue, 06 May 2008) | 7 lines read requires an argument on some non-bash shells (closes issue #12593) Reported by: bkruse Patches: getilbc.sh_12593_v1.diff uploaded by bkruse (license 132) ........ * res/res_musiconhold.c: Switch to using ast_random() rather than just rand(). This does not fix the bug reported, but I believe it is correct. (from issue #12446) Patches: bug_12446.diff uploaded by snuffy (license 35) 2008-05-06 19:31 +0000 [r115415] Tilghman Lesher * main/asterisk.c: Don't print the terminating NUL. (Closes issue #12589) 2008-05-06 13:54 +0000 [r115341] Joshua Colp * configure, configure.ac: Add in missing argument. 2008-05-05 22:50 +0000 [r115333] Tilghman Lesher * main/asterisk.c, main/logger.c: Separate verbose output from CLI output, by using a preamble. (closes issue #12402) Reported by: Corydon76 Patches: 20080410__no_verbose_in_rx_output.diff.txt uploaded by Corydon76 (license 14) 20080501__no_verbose_in_rx_output__1.4.diff.txt uploaded by Corydon76 (license 14) 2008-05-05 22:10 +0000 [r115327] Joshua Colp * build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, codecs/codec_speex.c, configure.ac: Make sure that either the main speex library contains preprocess functions or that speexdsp does. If both fail then speex stuff can not be built. 2008-05-05 21:41 +0000 [r115320] Mark Michelson * apps/app_queue.c: Don't consider a caller "handled" until the caller is bridged with a queue member. There was too much of an opportunity for the member to hang up (either during a delay, announcement, or overly long agi) between the time that he answered the phone and the time when he actually was bridged with the caller. The consequence of this was that if the member hung up in that interval, then proper abandonment details would not be noted in the queue log if the caller were to hang up at any point after the member hangup. (closes issue #12561) Reported by: ablackthorn 2008-05-05 20:17 +0000 [r115308-115312] Tilghman Lesher * Makefile: Reverse order, such that user configs override default selections * include/asterisk/res_odbc.h: Err, the documentation on the return value of ast_odbc_backslash_is_escape is exactly backwards. 2008-05-05 19:49 +0000 [r115297-115304] Russell Bryant * channels/chan_sip.c: Avoid putting opaque="" in Digest authentication. This patch came from switchvox. It fixes authentication with Primus in Canada, and has been in use for a very long time without causing problems with any other providers. (closes issue AST-36) 2008-05-05 03:22 +0000 [r115285] Tilghman Lesher * contrib/scripts/safe_asterisk, contrib/init.d/rc.suse.asterisk, contrib/init.d/rc.debian.asterisk, contrib/init.d/rc.mandrake.asterisk, contrib/init.d/rc.redhat.asterisk, contrib/init.d/rc.gentoo.asterisk, contrib/init.d/rc.slackware.asterisk: When starting Asterisk, bug out if Asterisk is already running. (closes issue #12525) Reported by: explidous Patches: 20080428__bug12525.diff.txt uploaded by Corydon76 (license 14) Tested by: mvanbaak 2008-05-04 02:09 +0000 [r115276-115282] Joshua Colp * configure, acinclude.m4: Expand the test function for GCC attributes so that more complex attributes are properly recognized. * include/asterisk/compiler.h: For my next trick I will make these work with what our autoconf header file gives us. * configure, acinclude.m4: Treat warnings as errors when checking if a GCC attribute exists. We have to do this as GCC will just ignore the attribute and pop up a warning, it won't actually fail to compile. 2008-05-02 20:25 +0000 [r115257] Brett Bryant * channels/chan_zap.c, configure, include/asterisk/autoconfig.h.in, configure.ac, CHANGES: Add new "pri show version" command to show the libpri version for support reasons. 2008-05-02 14:28 +0000 [r115196] Mark Michelson * include/asterisk/sched.h: Clarify a comment that was, well, just wrong. It turns out that ignoring the way that macros expand. Instead, I have clarified in the comment why the macro will work even if the scheduler id for the task to be deleted changes during the execution of the macro. 2008-05-01 23:20 +0000 [r115017-115102] Tilghman Lesher * include/asterisk/res_odbc.h: Change the comment of deprecated to an actual compiler deprecation * main/utils.c: '#' is another reserved character for URIs that also needs to be escaped. (closes issue #10543) Reported by: blitzrage Patches: 20080418__bug10543.diff.txt uploaded by Corydon76 (license 14) 2008-05-01 Russell Bryant * Asterisk 1.4.20-rc1 released. 2008-04-30 16:30 +0000 [r114891] Russell Bryant * include/asterisk/dlinkedlists.h (added), channels/chan_iax2.c: Merge changes from team/russell/iax2_find_callno and iax2_find_callno_1.4 These changes address a critical performance issue introduced in the latest release. The fix for the latest security issue included a change that made Asterisk randomly choose call numbers to make them more difficult to guess by attackers. However, due to some inefficient (this is by far, an understatement) code, when Asterisk chose high call numbers, chan_iax2 became unusable after just a small number of calls. On a small embedded platform, it would not be able to handle a single call. On my Intel Core 2 Duo @ 2.33 GHz, I couldn't run more than about 16 IAX2 channels. Ouch. These changes address some performance issues of the find_callno() function that have bothered me for a very long time. On every incoming media frame, it iterated through every possible call number trying to find a matching active call. This involved a mutex lock and unlock for each call number checked. So, if the random call number chosen was 20000, then every media frame would cause 20000 locks and unlocks. Previously, this problem was not as obvious since Asterisk always chose the lowest call number it could. A second container for IAX2 pvt structs has been added. It is an astobj2 hash table. When we know the remote side's call number, the pvt goes into the hash table with a hash value of the remote side's call number. Then, lookups for incoming media frames are a very fast hash lookup instead of an absolutely insane array traversal. In a quick test, I was able to get more than 3600% more IAX2 channels on my machine with these changes. 2008-04-30 16:23 +0000 [r114890] Olle Johansson * channels/chan_sip.c: Don't crash on bad SIP replys. Fix created in Huntsville together with Mark M (putnopvut) (closes issue #12363) Reported by: jvandal Tested by: putnopvut, oej 2008-04-30 14:46 +0000 [r114875-114880] Kevin P. Fleming * channels/iax2.h, channels/chan_iax2.c: use the ARRAY_LEN macro for indexing through the iaxs/iaxsl arrays so that the size of the arrays can be adjusted in one place, and change the size of the arrays from 32768 calls to 2048 calls when LOW_MEMORY is defined * Makefile.rules: pay attention to *all* header files for dependency tracking, not just the local ones (inspired by r578 of asterisk-addons by tilghman) 2008-04-29 19:40 +0000 [r114848] Mark Michelson * apps/app_queue.c: Use the MACRO_CONTEXT and MACRO_EXTEN channel variables instead of the channel's macrocontext and macroexten fields. This is needed because if macros are daisy-chained, the incorrect context and extension are placed on the new channel. I also added locking to the channel prior to accessing these variables as noted in trunk's janitor project file. (closes issue #12549) Reported by: darren1713 Patches: app_queue.c.macroextenpatch uploaded by darren1713 (license 116) (with modifications from me) Tested by: putnopvut 2008-04-29 17:08 +0000 [r114829] Jason Parker * res/res_config_pgsql.c: Change warning message to debug, since there are cases where 0 results is perfectly fine. 2008-04-29 12:53 +0000 [r114823] Kevin P. Fleming * /, contrib/scripts/get_ilbc_source.sh: Merged revisions 114822 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r114822 | kpfleming | 2008-04-29 07:52:32 -0500 (Tue, 29 Apr 2008) | 2 lines stop script from appending source code if run multiple times ........ 2008-04-28 04:47 +0000 [r114708] Tilghman Lesher * apps/app_voicemail.c, channels/chan_gtalk.c: When modules are embedded, they take on a different name, without the ".so" extension. Specifically check for this name, when we're checking if a module is loaded. (Closes issue #12534) 2008-04-27 01:26 +0000 [r114695] Sean Bright * configure, configure.ac: When we don't explicitly pass a path to the --with-tds configure option, we may end up finding tds.h in /usr/local/include instead of /usr/include. If this happens, the grep that looks for the version (from tdsver.h) will fail and we'll have some problems during the build. 2008-04-26 13:15 +0000 [r114689] Tilghman Lesher * contrib/scripts/vmail.cgi: Clicking forward without selecting a message leaves an errant .lock file. (closes issue #12528) Reported by: pukepail Patches: patch.diff uploaded by pukepail (license 431) 2008-04-25 21:54 +0000 [r114673] Russell Bryant * channels/chan_iax2.c: Use consistent logic for checking to see if a call number has been chosen yet. Also, remove some redundant logic I recently added in a fix. 2008-04-25 19:32 +0000 [r114662] Mark Michelson * apps/app_chanspy.c: Move the unlock of the spyee channel to outside the start_spying() function so that the channel is not unlocked twice when using whisper mode. 2008-04-25 15:53 +0000 [r114649] Tilghman Lesher * configs/zapata.conf.sample, configs/iax.conf.sample, configs/iaxprov.conf.sample, configs/sip.conf.sample: Reference documentation files that actually exist. (closes issue #12516) Reported by: linuxmaniac Patches: diff_rev114611.patch uploaded by linuxmaniac (license 472) 2008-04-24 21:35 +0000 [r114624-114632] Mark Michelson * channels/chan_sip.c: Re-invite RTP during a masquerade so that, for instance, an AMI redirect of two channels which are natively bridged will preserve audio on both channels. This prevents a problem with Asterisk not re-inviting due to one of the channels having being a zombie. (closes issue #12513) Reported by: mneuhauser Patches: asterisk-1.4-114602_restore-RTP-on-fixup.patch uploaded by mneuhauser (license 425) * apps/app_queue.c: Output of channel variables when eventwhencalled=vars was set was being truncated two characters. This patch corrects the problem. (closes issue #12493) Reported by: davidw * channels/chan_local.c: Resolve a deadlock in chan_local by releasing the channel lock temporarily. (closes issue #11712) Reported by: callguy Patches: 11712.patch uploaded by putnopvut (license 60) Tested by: acunningham 2008-04-24 19:53 +0000 [r114621] Tilghman Lesher * channels/chan_local.c: Ensure that when we set the accountcode, it actually shows up in the CDR. (Fix for AMI Originate) (Closes issue #12007) 2008-04-24 15:55 +0000 [r114608] Russell Bryant * channels/chan_iax2.c: Fix a silly mistake in a change I made yesterday that caused chan_iax2 to blow up very quickly. (issue #12515) 2008-04-24 14:55 +0000 [r114603] Olle Johansson * channels/chan_sip.c: Only have one max-forwards header in outbound REFERs. Discovered in the Asterisk SIP Masterclass in Orlando. Thanks Joe! 2008-04-23 22:18 +0000 [r114597-114600] Russell Bryant * main/http.c: Improve some broken cookie parsing code. Previously, manager login over HTTP would only work if the mansession_id cookie was first. Now, the code builds a list of all of the cookies in the Cookie header. This fixes a problem observed by users of the Asterisk GUI. (closes AST-20) * apps/app_chanspy.c, main/http.c: Fix an issue that caused getting the correct next channel to not always work. Also, remove setting the amount of time to wait for a digit from 5 seconds back down to 1/10 of a second. I believe this was so the beep didn't get played over and over really fast, but a while back I put in another fix for that issue. (closes issue #12498) Reported by: jsmith Patches: app_chanspy_channel_walk.trunk.patch uploaded by jsmith (license 15) 2008-04-23 18:28 +0000 [r114594] Jason Parker * res/res_musiconhold.c: Fix reload/unload for res_musiconhold module. (closes issue #11575) Reported by: sunder Patches: M11575_14_rev3.diff uploaded by junky (license 177) bug11575_trunk.diff.txt uploaded by jamesgolovich (license 176) 2008-04-23 17:55 +0000 [r114587-114591] Russell Bryant * main/manager.c, include/asterisk/manager.h: Store the manager session ID explicitly as 4 byte ID instead of a ulong. The mansession_id cookie is coded to be limited to 8 characters of hex, and this could break logins from 64-bit machines in some cases. (inspired by AST-20) * channels/chan_iax2.c: Fix find_callno_locked() to actually return the callno locked in some more cases. 2008-04-23 16:51 +0000 [r114584] Olle Johansson * channels/chan_sip.c: Add 502 support for both directions, not only one... (see r114571) 2008-04-23 14:54 +0000 [r114579] Joshua Colp * main/pbx.c: Instead of stopping dialplan execution when SayNumber attempts to say a large number that it can not print out a message informing the user and continue on. (closes issue #12502) Reported by: bcnit 2008-04-22 23:51 +0000 [r114571] Tilghman Lesher * channels/chan_sip.c: Treat a 502 just like a 503, when it comes to processing a response code 2008-04-22 22:15 +0000 [r114522-114558] Russell Bryant * channels/chan_iax2.c: When we receive a full frame that is supposed to contain our call number, ensure that it has the correct one. (closes issue #10078) (AST-2008-006) * main/rtp.c, main/channel.c, formats/format_pcm.c, main/file.c: I thought I was going to be able to leave 1.4 alone, but that was not the case. I ran into some problems with G.722 in 1.4, so I have merged in all of the fixes in this area that I have made in trunk/1.6.0, and things are happy again. * res/res_musiconhold.c: Trivial change to read the number of samples from a frame before calling ast_write() * res/res_features.c: After a parked call times out, allow the call back to the parker to time out. (closes issue #10890) * channels/chan_iax2.c: If the dial string passed to the call channel callback does not indicate an extension, then consider the extension on the channel before falling back to the default. (closes issue #12479) Reported by: darren1713 Patches: exten_dial_fix_chan_iax2.c.patch uploaded by darren1713 (license 116) * channels/chan_sip.c, include/asterisk/sched.h: Merge changes from team/russell/issue_9520 These changes make sure that the reference count for sip_peer objects properly reflects the fact that the peer is sitting in the scheduler for a scheduled callback for qualifying peers or for expiring registrations. Without this, it was possible for these callbacks to happen at the same time that the peer was being destroyed. This was especially likely to happen with realtime peers, and for people making use of the realtime prune CLI command. (closes issue #9520) Reported by: kryptolus Committed patch by me 2008-04-21 14:39 +0000 [r114322] Joshua Colp * channels/chan_sip.c: Only drop audio if we receive it without a progress indication. We allow other frames through such as DTMF because they may be needed to complete the call. (closes issue #12440) Reported by: aragon 2008-04-19 13:57 +0000 [r114297-114299] Tilghman Lesher * apps/app_playback.c: Ensure that help text terminates with a newline * res/res_musiconhold.c: MOH usage information needs a terminating newline, or else "asterisk -rx 'help moh reload'" will hang. Reported via -dev list, fixed by me. 2008-04-18 21:48 +0000 [r114275-114284] Russell Bryant * main/manager.c: Don't destroy a manager session if poll() returns an error of EAGAIN. * Makefile: ensure directories are created before we try to install stuff into them * Makefile: SUBDIRS_INSTALL is already listed as a subtarget for bininstall 2008-04-18 17:44 +0000 [r114257] Mark Michelson * channels/chan_zap.c, main/callerid.c: Clearing up error messages so they make a bit more sense. Also removing a redundant error message. Issue AST-15 2008-04-18 15:24 +0000 [r114248] Russell Bryant * channels/chan_agent.c: Ensure that we don't ast_strdupa(NULL) (closes issue #12476) Reported by: davidw Patch by me 2008-04-18 13:33 +0000 [r114245] Sean Bright * channels/chan_sip.c: Only complete the SIP channel name once for 'sip show channel ' 2008-04-18 06:49 +0000 [r114242] Tilghman Lesher * apps/app_setcallerid.c: For consistency sake, ensure that the values that ${CALLINGPRES} returns are valid as an input to SetCallingPres. (Closes issue #12472) 2008-04-17 22:15 +0000 [r114230] Russell Bryant * main/autoservice.c: Remove redundant safety net. The check for the autoservice channel list state accomplishes the same goal in a better way. (issue #12470) Reported By: atis 2008-04-17 21:03 +0000 [r114207-114226] Mark Michelson * apps/app_chanspy.c: Declaration of the peer channel in this scope was making it so the peer variable defined in the outer scope was never set properly, therefore making iterating through the channel list always restart from the beginning. This bug would have affected anyone who called chanspy without specifying a first argument. (closes issue #12461) Reported by: stever28 * main/frame.c, include/asterisk/dsp.h: Add prototype for ast_dsp_frame_freed. I'm not sure how this was compiling before... * main/dsp.c, main/frame.c, include/asterisk/frame.h: It was possible for a reference to a frame which was part of a freed DSP to still be referenced, leading to memory corruption and eventual crashes. This code change ensures that the dsp is freed when we are finished with the frame. This change is very similar to a change Russell made with translators back a month or so ago. (closes issue #11999) Reported by: destiny6628 Patches: 11999.patch uploaded by putnopvut (license 60) Tested by: destiny6628, victoryure 2008-04-17 16:23 +0000 [r114204] Russell Bryant * Makefile: Fix the bininstall target to install from subdirs, as well. (closes issue AST-8, patch from bmd at switchvox) 2008-04-17 13:42 +0000 [r114198] Philippe Sultan * res/res_jabber.c: Use keepalives effectively in order diagnose bug #12432. 2008-04-17 12:56 +0000 [r114195] Tilghman Lesher * res/res_agi.c: Add special case for when the agi cannot be executed, to comply with the documentation that we return failure in that case. (closes issue #12462) Reported by: fmueller Patches: 20080416__bug12462.diff.txt uploaded by Corydon76 (license 14) Tested by: fmueller 2008-04-17 10:51 +0000 [r114191] Sean Bright * apps/app_chanspy.c: Make sure we have enough room for the recording's filename. 2008-04-16 20:46 +0000 [r114184] Kevin P. Fleming * channels/chan_zap.c: use the ZT_SET_DIALPARAMS ioctl properly by initializing the structure to all zeroes in case it contains fields that we don't write values into (which it does as of Zaptel 1.4.10) (closes issue #12456) Reported by: fnordian 2008-04-16 19:59 +0000 [r114180] Tilghman Lesher * channels/chan_vpb.cc: Backport revisions for latest vpb drivers to 1.4 (Closes issue #12457) 2008-04-16 17:30 +0000 [r114173] Jason Parker * channels/chan_zap.c: Fix "fallthrough" behavior here, so config options in a previously configured user don't override settings in general. (closes issue #12458) Reported by: tzafrir Patches: chanzap_users_sections.diff uploaded by tzafrir (license 46) 2008-04-16 14:10 +0000 [r114167] Joshua Colp * apps/app_meetme.c: Include the proper headers for using mkdir on FreeBSD. (closes issue #12430) Reported by: ys Patches: app_meetme.c.diff uploaded by ys (license 281) 2008-04-15 20:26 +0000 [r114148] Olle Johansson * channels/chan_sip.c: Handle subscribe queues in all situations... Thanks to festr_ on irc for telling me about this bug. 2008-04-15 17:17 +0000 [r114120-114138] Jason Parker * contrib/scripts/autosupport: Update Digium autosupport script, for more useful information. (closes issue #12452) Reported by: angler Patches: autosupport.diff uploaded by angler (license 106) * apps/app_queue.c: Allow autofill to work in the general section of queues.conf. Additionally, don't try to (re)set options when they have empty values in realtime (all unset columns would have an empty value). (closes issue #12445) Reported by: atis Patches: 12445-autofill.diff uploaded by qwell (license 4) * channels/chan_h323.c: The call_token on the pvt can occasionally be NULL, causing a crash. If it is NULL, we can skip this channel, since it can't the one we're looking for. (closes issue #9299) Reported by: vazir 2008-04-14 17:41 +0000 [r114106-114117] Mark Michelson * main/channel.c: Increase the retry count when attempting to show channels. This apparently cleared an issue someone was seeing when attempting to show channels when the load was high. (closes issue #11667) Reported by: falves11 Patches: 11677.txt uploaded by russell (license 2) Tested by: falves11 * apps/app_dial.c, apps/app_queue.c: If the datastore has been moved to another channel due to a masquerade, then freeing the datastore here causes an eventual double free when the new channel hangs up. We should only free the datastore if we were able to successfully remove it from the channel we are referencing (i.e. the datastore was not moved). (closes issue #12359) Reported by: pguido * main/channel.c: Save a local copy of the generate callback prior to unlocking the channel in case the generate callback goes NULL on us after the channel is unlocked. Thanks to Russell for pointing this need out to me. 2008-04-14 14:52 +0000 [r114100-114103] Joshua Colp * channels/chan_sip.c: It is possible for the remote side to say they want T38 but not give any capabilities. (closes issue #12414) Reported by: MVF * main/rtp.c: Don't change the SSRC when a new source comes into play, this might happen quite often and depending on the remote side... they might not like this. (closes issue #12353) Reported by: dimas 2008-04-11 22:32 +0000 [r114083] Terry Wilson * channels/chan_iax2.c: Several places in the code called find_callno() (which releases the lock on the pvt structure) and then immediately locked the call and did things with it. Unfortunately, the call can disappear between the find_callno and the lock, causing Bad Stuff(tm) to happen. Added find_callno_locked() function to return the callno withtout unlocking for instances that it is needed. (issue #12400) Reported by: ztel 2008-04-11 21:35 +0000 [r114072] Jason Parker * main/pbx.c: It's possible that a channel can have an async goto on the successful execution of an application as well. Closes issue #12172. 2008-04-11 15:44 +0000 [r114045-114063] Mark Michelson * res/res_features.c: Fix a race condition that may happen between a sip hangup and a "core show channel" command. This patch adds locking to prevent the resulting crash. (closes issue #12155) Reported by: tsearle Patches: show_channels_crash2.patch uploaded by tsearle (license 373) Tested by: tsearle * main/utils.c, include/asterisk/lock.h: Fix 1.4 build when LOW_MEMORY is enabled. * channels/chan_sip.c: Be sure that we're not about to set bridgepvt NULL prior to dereferencing it. (closes issue #11775) Reported by: fujin 2008-04-10 17:26 +0000 [r114035] Jason Parker * main/file.c: Only try to prefix language if we are not using an absolute path (suffix it otherwise). en/var/lib/asterisk/sounds/blah.gsm is a very silly path. (closes issue #12379) Reported by: kuj Patches: 12379-absolutepath.diff uploaded by qwell (license 4) Tested by: kuj, qwell 2008-04-10 15:58 +0000 [r114021-114032] Joshua Colp * apps/app_voicemail.c: Forgot the 1.4 branch for russian language fix. (closes issue #12404) Reported by: IgorG Patches: voicemail_ru_hardcoded-v1.patch uploaded by IgorG (license 20) * apps/app_meetme.c: Create the directory where name recordings will go if it does not exist. (closes issue #12311) Reported by: rkeene Patches: 12311-mkdir.diff uploaded by qwell (license 4) * channels/chan_sip.c: Don't add custom URI options if they don't exist OR they are empty. (closes issue #12407) Reported by: homesick Patches: uri_options-1.4.diff uploaded by homesick (license 91) 2008-04-09 20:54 +0000 [r113927] Mark Michelson * channels/chan_sip.c: We need to set the persistant_route [sic] parameter for the sip_pvt during the initial INVITE, no matter if we're building the route set from an INVITE request or response. (closes issue #12391) Reported by: benjaminbohlmann Tested by: benjaminbohlmann 2008-04-09 18:57 +0000 [r113874] Tilghman Lesher * cdr/cdr_csv.c, configs/cdr.conf.sample: If the [csv] section does not exist in cdr.conf, then an unload/load sequence is needed to correct the problem. Track whether the load succeeded with a variable, so we can fix this with a simple reload event, instead. 2008-04-09 16:50 +0000 [r113784] Joshua Colp * channels/chan_iax2.c: If we receive an AUTHREQ from the remote server and we are unable to reply (for example they have a secret configured, but we do not) then queue a hangup frame on the Asterisk channel. This will cause the channel to hangup and a HANGUP to be sent via IAX2 to the remote side which is the proper thing to do in this scenario. (closes issue #12385) Reported by: viraptor 2008-04-09 14:40 +0000 [r113681] Mark Michelson * channels/chan_sip.c: If Asterisk receives a 488 on an INVITE (not a reinvite), then we should not send a BYE. (closes issue #12392) Reported by: fnordian Patches: chan_sip.patch uploaded by fnordian (license 110) with small modification from me 2008-04-09 01:34 +0000 [r113596] Terry Wilson * channels/chan_iax2.c: Initialize fr->cacheable to make valgrind happy 2008-04-08 19:07 +0000 [r113507] Mark Michelson * apps/app_parkandannounce.c: Fix potential buffer overflow that could happen if more than 100 announce files were specified when calling ParkAndAnnounce. This overflow is not exploitable remotely and so there is no need for a security advisory. (closes issue #12386) Reported by: davidw 2008-04-08 18:48 +0000 [r113402-113504] Jason Parker * channels/chan_skinny.c: Add a little more that is required for previously added devices. * channels/chan_skinny.c: Add support for several new(ish) devices - most notably, 7942/7945, 7962/7965, 7975. Thanks to Greg Oliver for providing me the required information. * main/asterisk.c: Work around some silliness caused by sys/capability.h - this should fix compile errors a number of users have been experiencing. 2008-04-08 16:51 +0000 [r113348-113399] Tilghman Lesher * contrib/scripts/astgenkey.8: Add security note on astgenkey's manpage. (closes issue #12373) Reported by: lmamane Patches: 20080406__bug12373.diff.txt uploaded by Corydon76 (license 14) * channels/chan_sip.c: Move check for still-bridged channels out a little further, to avoid possible deadlocks. (Closes issue #12252) Reported by: callguy Patches: 20080319__bug12252.diff.txt uploaded by Corydon76 (license 14) Tested by: callguy 2008-04-08 15:03 +0000 [r113296] Joshua Colp * include/asterisk/slinfactory.h, main/slinfactory.c, main/audiohook.c: If audio suddenly gets fed into one side of a channel after a lapse of frames flush the other factory so that old audio does not remain in the factory causing the sync code to not execute. (closes issue #12296) Reported by: jvandal 2008-04-07 21:34 +0000 [r113240] Jeff Peeler * channels/chan_sip.c: (closes issue #12362) [redo of 113012] This fixes a for loop (in realtime_peer) to check all the ast_variables the loop was intending to test rather than just the first one. The change exposed the problem of calling memcpy on a NULL pointer, in this case the passed in sockaddr_in struct which is now checked. 2008-04-07 18:00 +0000 [r113118] Jason Parker * channels/chan_skinny.c, configs/skinny.conf.sample: Allow playback with noanswer (and add earlyrtp option). (closes issue #9077) Reported by: pj Patches: earlyrtp.diff uploaded by wedhorn (license 30) Tested by: pj, qwell, DEA, wedhorn 2008-04-07 17:51 +0000 [r113117] Tilghman Lesher * funcs/func_strings.c: Force ast_mktime() to check for DST, since strptime(3) does not. (Closes issue #12374) 2008-04-07 16:08 +0000 [r113065] Mark Michelson * main/channel.c: This fix prevents a deadlock that was experienced in chan_local. There was deadlock prevention in place in chan_local, but it would not work in a specific case because the channel was recursively locked. By unlocking the channel prior to calling the generator's generate callback in ast_read_generator_actions(), we prevent the recursive locking, and therefore the deadlock. (closes issue #12307) Reported by: callguy Patches: 12307.patch uploaded by putnopvut (license 60) Tested by: callguy 2008-04-07 15:16 +0000 [r113012] Jeff Peeler * channels/chan_sip.c: (closes issue #12362) (closes issue #12372) Reported by: vinsik Tested by: tecnoxarxa This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one. 2008-04-04 19:26 +0000 [r112766-112820] Philippe Sultan * channels/chan_gtalk.c: Free newly allocated channel before returning * channels/chan_gtalk.c: Prevent call connections when codecs don't match. (closes issue #10604) Reported by: keepitcool Patches: branch-1.4-10604-2.diff uploaded by phsultan (license 73) Tested by: phsultan 2008-04-04 00:52 +0000 [r112709-112711] Joshua Colp * main/Makefile: Pass in the path to Zaptel for systems that install Zaptel headers in a separate location. * main/asterisk.c: One thing at a time... let's get 1.4 building. 2008-04-03 23:57 +0000 [r112689] Dwayne M. Hubbard * main/asterisk.c: add a Zaptel timer check to verify the timer is responding when Zaptel support is compiled into Asterisk and Zaptel drivers are loaded. This will help people not waste their valuable time debugging side effects. 2008-04-03 14:32 +0000 [r112393-112599] Mark Michelson * channels/chan_zap.c: Fix the testing of the "res" variable so that it is more logically correct and makes the correct warning and debug messages print. (closes issue #12361) Reported by: one47 Patches: chan_zap_deferred_digit.patch uploaded by one47 (license 23) * main/manager.c: Fix a race condition in the manager. It is possible that a new manager event could be appended during a brief time when the manager is not waiting for input. If an event comes during this period, we need to set an indicator that there is an event pending so that the manager doesn't attempt to wait forever for an event that already happened. (closes issue #12354) Reported by: bamby Patches: manager_race_condition.diff uploaded by bamby (license 430) (comments added by me) * apps/app_queue.c: Ensure that there is no timeout if none is specified. (closes issue #12349) Reported by: johnlange 2008-04-01 Russell Bryant * Asterisk 1.4.19 released. 2008-03-28 Russell Bryant * Asterisk 1.4.19-rc4 released. 2008-03-28 16:19 +0000 [r111658] Jason Parker * formats/format_wav_gsm.c: The file size of WAV49 does not need to be an even number. (closes issue #12128) Reported by: mdu113 Patches: 12128-noevenlength.diff uploaded by qwell (license 4) Tested by: qwell, mdu113 2008-03-28 14:35 +0000 [r111442-111605] Tilghman Lesher * doc/valgrind.txt: Update debugging text, since Valgrind eliminated the --log-file-exactly option. (Closes issue #12320) * main/acl.c: For FreeBSD, at least, the ifa_addr element could be NULL. (closes issue #12300) Reported by: festr Patches: acl.c.patch uploaded by festr (license 443) 2008-03-27 13:03 +0000 [r111341-111391] Steve Murphy * apps/app_playback.c, main/pbx.c: These small documentation updates made in response to a query in asterisk-users, where a user was using Playback, but needed the features of Background, and had no idea that Background existed, or that it might provide the features he needed. I thought the best way to avert these kinds of queries was to provide "See Also" references in all three of "Background", "Playback", "WaitExten". Perhaps a project to do this with all related apps is in order. * pbx/pbx_ael.c, include/asterisk/ael_structs.h: (closes issue #12302) Reported by: pj Tested by: murf These changes will set a channel variable ~~EXTEN~~ just before generating code for a switch, with the value of ${EXTEN}. The exten is marked as having a switch, and ever after that, till the end of the exten, we substitute any ${EXTEN} with ${~~EXTEN~~} instead in application arguments; (and the ${EXTEN: also). The reason for this, is that because switches are coded using separate extensions to provide pattern matching, and jumping to/from these switch extensions messes up the ${EXTEN} value, which blows the minds of users. 2008-03-27 00:25 +0000 [r111245-111280] Jason Parker * main/frame.c: Put this flag back so we don't change the API. * main/frame.c: Remove excessive smoother optimization that was causing audio glitches (small "pops") after (about 200ms later) an "incorrectly" sized frame was received. While it would be very nice to keep this as optimized as possible, it makes no sense for the smoother to be dropping random bits of audio like this. Isn't that the whole point of a smoother? Closes issue #12093. 2008-03-26 19:55 +0000 [r111129] Joshua Colp * contrib/scripts/autosupport: Update autosupport script. (closes issue #12310) Reported by: angler Patches: autosupport.diff uploaded by angler (license 106) 2008-03-26 19:51 +0000 [r111126] Kevin P. Fleming * /, UPGRADE.txt: Merged revisions 111125 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r111125 | kpfleming | 2008-03-26 14:49:30 -0500 (Wed, 26 Mar 2008) | 2 lines update UPGRADE notes to document usage of the script ........ 2008-03-26 19:37 +0000 [r111049-111121] Mark Michelson * apps/app_voicemail.c: This code change is made just for clarification. It does exactly the same thing as before. It just doesn't look as wrong. * apps/app_voicemail.c: Add a lock to the vm_state structure and use the lock around mail_open calls to prevent concurrent access of the same mailstream. This, along with trunk's ability to configure TCP timeouts for IMAP storage will help to prevent crashes and hangs when using voicemail with IMAP storage. (closes issue #10487) Reported by: ewilhelmsen 2008-03-26 19:06 +0000 [r111024] Kevin P. Fleming * codecs/ilbc, /, contrib/scripts/get_ilbc_source.sh (added): Merged revisions 111019 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r111019 | kpfleming | 2008-03-26 13:58:37 -0500 (Wed, 26 Mar 2008) | 2 lines add a script to make getting the iLBC source code simple for end users ........ 2008-03-26 19:04 +0000 [r111014-111020] Joshua Colp * channels/chan_sip.c: If we are requested to authenticate a reinvite make sure that it contains T38 SDP if need be. (closes issue #11995) Reported by: fall * channels/chan_iax2.c: Make sure that full video frames are sent whenever the 15 bit timestamp rolls over. (closes issue #11923) Reported by: mihai Patches: asterisk-fullvideo.patch uploaded by mihai (license 94) 2008-03-26 17:43 +0000 [r110880-110962] Kevin P. Fleming * UPGRADE.txt: add note that the user will need to enable codec_ilbc to get it to build * codecs/ilbc/StateConstructW.h (removed), codecs/ilbc/libilbc.vcproj (removed), codecs/ilbc/packing.h (removed), codecs/ilbc/getCBvec.c (removed), codecs/ilbc/LPCdecode.c (removed), codecs/ilbc/enhancer.c (removed), codecs/ilbc/lsf.c (removed), codecs/ilbc/iLBC_encode.c (removed), codecs/ilbc/getCBvec.h (removed), codecs/ilbc/LPCdecode.h (removed), codecs/ilbc/enhancer.h (removed), codecs/ilbc/FrameClassify.c (removed), codecs/ilbc/iLBC_define.h (removed), codecs/ilbc/lsf.h (removed), codecs/ilbc/iLBC_encode.h (removed), codecs/ilbc/FrameClassify.h (removed), codecs/ilbc/helpfun.c (removed), codecs/ilbc/doCPLC.c (removed), codecs/ilbc/anaFilter.c (removed), codecs/ilbc/helpfun.h (removed), codecs/ilbc/createCB.c (removed), codecs/ilbc/doCPLC.h (removed), codecs/ilbc/anaFilter.h (removed), UPGRADE.txt, codecs/ilbc/iLBC_decode.c (removed), codecs/ilbc/constants.c (removed), codecs/ilbc/createCB.h (removed), CHANGES, codecs/ilbc/iLBC_decode.h (removed), codecs/ilbc/constants.h (removed), codecs/Makefile, codecs/ilbc/iCBSearch.c (removed), codecs/ilbc/filter.c (removed), codecs/ilbc/hpInput.c (removed), codecs/ilbc/gainquant.c (removed), codecs/ilbc/hpOutput.c (removed), codecs/ilbc/iCBSearch.h (removed), codecs/ilbc/filter.h (removed), codecs/ilbc/hpInput.h (removed), codecs/ilbc/gainquant.h (removed), codecs/ilbc/LPCencode.c (removed), codecs/ilbc/hpOutput.h (removed), codecs/ilbc/StateSearchW.c (removed), codecs/codec_ilbc.c, codecs/ilbc/LPCencode.h (removed), codecs/ilbc/StateSearchW.h (removed), codecs/ilbc/iCBConstruct.c (removed), codecs/ilbc/syntFilter.c (removed), /, codecs/ilbc/iCBConstruct.h (removed), codecs/ilbc/syntFilter.h (removed), codecs/ilbc/StateConstructW.c (removed), codecs/ilbc/packing.c (removed): Merged revisions 110869 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r110869 | kpfleming | 2008-03-26 08:53:46 -0700 (Wed, 26 Mar 2008) | 2 lines due to licensing restrictions, we cannot distribute the source code for iLBC encoding and decoding... so remove it, and add instructions on how the user can obtain it themselves ........ 2008-03-25 22:51 +0000 [r110779] Jason Parker * cdr/cdr_custom.c: Make file access in cdr_custom similar to cdr_csv. Fixes issue #12268. Patch borrowed from r82344 2008-03-25 20:03 +0000 [r110727] Jeff Peeler * channels/chan_sip.c: This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one. 2008-03-25 15:40 +0000 [r110635] Mark Michelson * channels/chan_sip.c: When reverting a commit, I accidentally left in this bit which was an experiment to see what would happen. It passed the compile test, and I didn't notice I had left this change in too. So this is a revert of a revert...sort of. 2008-03-25 14:37 +0000 [r110628] Joshua Colp * include/asterisk/options.h, main/asterisk.c, Makefile, main/app.c: Add an option (transmit_silence) which transmits silence during both Record() and DTMF generation. The reason this is an option is that in order to transmit silence we have to setup a translation path. This may not be needed/wanted in all cases. (closes issue #10058) Reported by: tracinet 2008-03-24 19:17 +0000 [r110618] Mark Michelson * channels/chan_sip.c: This is a revert for revision 108288. The reason is that that revision was not for an actual bug fix per se, and so it really should not have been in 1.4 in the first place. Plus, people who compile with DO_CRASH are more likely to encounter a crash due to this change. While I think the usage of DO_CRASH in ast_sched_del is a bit absurd, this sort of change is beyond the scope of 1.4 and should be done instead in a developer branch based on trunk so that all scheduler functions are fixed at once. I also am reverting the change to trunk and 1.6 since they also suffer from the DO_CRASH potential. (closes issue #12272) Reported by: qq12345 2008-03-24 17:34 +0000 [r110614] Russell Bryant * channels/chan_iax2.c: Turn a NOTICE into a DEBUG message. 2008-03-21 14:32 +0000 [r110474] Jason Parker * codecs/gsm/Makefile: Don't attempt to do optimizations of gsm on mips platforms either. (closes issue #12270) Reported by: zandbelt Patches: 026-gsm-mips.patch uploaded by zandbelt (license 33) 2008-03-20 23:13 +0000 [r110163-110395] Russell Bryant * main/autoservice.c: Shorten the ast_waitfor() timeout from 500 ms to 50 ms in the autoservice thread. This really should not make a difference except in very rare cases. That case would be that all of the channels in autoservice are not generating any frames. In that case, this change reduces the potential amount of time that a thread waits in ast_autoservice_stop() for the autoservice thread to wrap back around to the beginning of its loop. (closes issue #12266, reported by dimas) * /, channels/chan_sip.c, channels/chan_iax2.c: Merged revisions 110335 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r110335 | russell | 2008-03-20 16:53:27 -0500 (Thu, 20 Mar 2008) | 6 lines Fix some very broken code that was introduced in 1.2.26 as a part of the security fix. The dnsmgr is not appropriate here. The dnsmgr takes a pointer to an address structure that a background thread continuously updates. However, in these cases, a stack variable was passed. That means that the dnsmgr thread would be continuously writing to bogus memory. ........ * apps/app_meetme.c: Fix a bug where when calls on the trunk side hang up while on hold, the state is not properly reflected. (closes issue #11990, reported by anakaoka, patched by me) 2008-03-19 20:33 +0000 [r110083] Mark Michelson * apps/app_chanspy.c: Add a missing unlock in the case that memory allocation fails in app_chanspy. Thanks to Russell for confirming that this was an issue. 2008-03-19 19:11 +0000 [r110019-110035] Joshua Colp * res/res_musiconhold.c: Add sanity checking for position resuming. We *have* to make sure that the position does not exceed the total number of files present, and we have to make sure that the position's filename is the same as previous. These values can change if a music class is reloaded and give unpredictable behavior. (closes issue #11663) Reported by: junky * main/rtp.c: Make sure that the mark bit does not incorrectly cause video frame timestamps to be calculated as if they are audio frames. (closes issue #11429) Reported by: sperreault Patches: 11429-frametype.diff uploaded by qwell (license 4) 2008-03-19 17:12 +0000 [r109973] Jason Parker * Makefile, build_tools/cflags.xml, build_tools/cflags-devmode.xml (added): People report bugs about Asterisk crashing with DO_CRASH enabled was getting a little silly... Now we only show certain cflags when you run configure with --enable-dev-mode (corresponding menuselect change to follow) 2008-03-19 15:41 +0000 [r109908] Steve Murphy * main/config.c: (closes issue #11442) Reported by: tzafrir Patches: 11442.patch uploaded by murf (license 17) Tested by: murf I didn't give tzafrir very much time to test this, but if he does still have remaining issues, he is welcome to re-open this bug, and we'll do what is called for. I reproduced the problem, and tested the fix, so I hope I am not jumping by just going ahead and committing the fix. The problem was with what file_save does with templates; firstly, it tended to print out multiple options: [my_category](!)(templateref) instead of [my_category](!,templateref) which is fixed by this patch. Nextly, the code to suppress output of duplicate declarations that would occur because the reader copies inherited declarations down the hierarchy, was not working. Thus: [master-template](!) mastervar = bar [template](!,master-template) tvar = value [cat](template) catvar = val would be rewritten as: ;! ;! Automatically generated configuration file ;! Filename: experiment.conf (/etc/asterisk/experiment.conf) ;! Generator: Manager ;! Creation Date: Tue Mar 18 23:17:46 2008 ;! [master-template](!) mastervar = bar [template](!,master-template) mastervar = bar tvar = value [cat](template) mastervar = bar tvar = value catvar = val This has been fixed. Since the config reader 'explodes' inherited vars into the category, users may, in certain circumstances, see output different from what they originally entered, but it should be both correct and equivalent. 2008-03-19 04:06 +0000 [r109763-109838] Russell Bryant * main/utils.c: Tweak spacing in a recent change because I'm very picky. * apps/app_chanspy.c: Fix one place where the chanspy datastore isn't removed from a channel. (issue #12243, reported by atis, patch by me) 2008-03-18 20:52 +0000 [r109713] Mark Michelson * apps/app_queue.c: This patch makes it so that all queue member status changes are handled through device state code. This removes several problems people were seeing where their queue members would get into an "unknown" state. Huge props go to atis on this one since he was the one who found the code section that was causing the problem and proposed the solution. I just wrote what he suggested :) (closes issue #12127) Reported by: atis Patches: 12127v3.patch uploaded by putnopvut (license 60) Tested by: atis, jvandal 2008-03-18 19:23 +0000 [r109648] Jason Parker * codecs/log2comp.h: Allow codecs that use log2comp (g726) to compile correctly on x86 with gcc4 optimizations. (closes issue #12253) Reported by: fossil Patches: log2comp.patch uploaded by fossil (license 140) 2008-03-18 17:58 +0000 [r109575] Mark Michelson * channels/chan_agent.c: Make sure an agent doesn't try to send dtmf to a NULL channel closes issue #12242 Reported by Yourname 2008-03-18 Russell Bryant * Asterisk 1.4.19-rc3 released. 2008-03-18 16:25 +0000 [r109482] Terry Wilson * include/asterisk/astobj.h: Fix character string being treated ad format string 2008-03-18 15:10 +0000 [r109393] Jason Parker * /, channels/chan_sip.c: Merged revisions 109391 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r109391 | qwell | 2008-03-18 10:08:41 -0500 (Tue, 18 Mar 2008) | 3 lines Do not return with a successful authentication if the From header ends up empty. (AST-2008-003) ........ 2008-03-18 14:58 +0000 [r109386] Joshua Colp * main/rtp.c, channels/chan_sip.c: Put a maximum limit on the number of payloads accepted, and also make sure a given payload does not exceed our maximum value. (AST-2008-002) 2008-03-18 06:37 +0000 [r109309] Steve Murphy * pbx/ael/ael-test/ael-ntest23 (added), pbx/ael/ael-test/ael-ntest23/t1/a.ael (added), pbx/ael/ael-test/ael-ntest23/t1/b.ael (added), pbx/ael/ael-test/ael-ntest23/t1/c.ael (added), pbx/ael/ael-test/ael-ntest23/t2/d.ael (added), pbx/ael/ael-test/ael-ntest23/t2/e.ael (added), pbx/ael/ael-test/ael-ntest23/t2/f.ael (added), pbx/ael/ael-test/ref.ael-ntest23 (added), pbx/ael/ael_lex.c, pbx/ael/ael-test/ael-ntest23/t3/g.ael (added), pbx/ael/ael-test/ael-ntest23/t3/h.ael (added), pbx/ael/ael-test/ael-ntest23/t3/i.ael (added), pbx/ael/ael.flex, pbx/ael/ael-test/ael-ntest23/t3/j.ael (added), pbx/ael/ael-test/ael-ntest23/qq.ael (added), pbx/ael/ael-test/ael-ntest23/t1 (added), pbx/ael/ael-test/ael-ntest23/t2 (added), pbx/ael/ael-test/ael-ntest23/t3 (added), pbx/ael/ael-test/ael-ntest23/extensions.ael (added): (closes issue #11903) Reported by: atis Many thanks to atis for spotting this problem and reporting it. The fix was to straighten out how items are placed on and removed from the file stack. Regressions as well as the provided test case helped to straighten out all code paths. valgrind was used to make sure all memory allocated was freed. Sorry for not solving this earlier. I got distracted. Added the ntest23 regression test, which is mainly a copy of ntest22, but with a few juicy errors thrown in, to replicate the kind of error that atis spotted. 2008-03-17 22:05 +0000 [r109226] Mark Michelson * main/utils.c: Fix a logic flaw in the code that stores lock info which is displayed via the "core show locks" command. The idea behind this section of code was to remove the previous lock from the list if it was a trylock that had failed. Unfortunately, instead of checking the status of the previous lock, we were referencing the index immediately following the previous lock in the lock_info->locks array. The result of this problem, under the right circumstances, was that the lock which we currently in the process of attempting to acquire could "overwrite" the previous lock which was acquired. While this does not in any way affect typical operation, it *could* lead to misleading "core show locks" output. 2008-03-17 17:55 +0000 [r109171] Michiel van Baak * channels/chan_skinny.c: Update the directory of placed calls on skinny phones when dialing a channel that does not provide progress (analog ZAP lines) The phone does handle the double update on calls to channels that do provide progress and wont insert duplicate items (closes issue #12239) Reported by: DEA Patches: chan_skinny-call-log.txt uploaded by DEA (license 3) 2008-03-17 16:24 +0000 [r109107] Joshua Colp * channels/chan_sip.c: 200 OKs in response to a reinvite need to be sent reliably. If the remote side does not receive one the dialog will be torn down. (closes issue #12208) Reported by: atrash 2008-03-17 15:15 +0000 [r109057] Jason Parker * main/file.c: Backport revision 106439 from trunk. I didn't realize this was broken in 1.4 as well. Closes issue #12222. 2008-03-17 14:18 +0000 [r109012] Mark Michelson * apps/app_chanspy.c: Make sure that we release the lock on the spyee channel if the spyee or spy has hung up (closes issue #12232) Reported by: atis 2008-03-16 21:47 +0000 [r108961] Michiel van Baak * main/dial.c: add missing break to case AST_CONTROL_SRCUPDATE (closes issue #12228) Reported by: andrew Patches: SRC.patch uploaded by andrew (license 240) 2008-03-14 20:09 +0000 [r108792-108796] Russell Bryant * channels/chan_oss.c: Fix a channel name issue. chan_oss registers the "Console" channel type, but it created channels with an "OSS" prefix. (closes issue #12194, reported by davidw, patched by me) * contrib/init.d/rc.suse.asterisk: Update the SuSE init script to start networking before asterisk, as well. (closes issue #12200, reported by and change suggested by reinerotto) 2008-03-14 16:44 +0000 [r108737] Mark Michelson * channels/chan_sip.c: Fix a race condition in the SIP packet scheduler which could cause a crash. chan_sip uses the scheduler API in order to schedule retransmission of reliable packets (such as INVITES). If a retransmission of a packet is occurring, then the packet is removed from the scheduler and retrans_pkt is called. Meanwhile, if a response is received from the packet as previously transmitted, then when we ACK the response, we will remove the packet from the scheduler and free the packet. The problem is that both the ACK function and retrans_pkt attempt to acquire the same lock at the beginning of the function call. This means that if the ACK function acquires the lock first, then it will free the packet which retrans_pkt is about to read from and write to. The result is a crash. The solution: 1. If the ACK function fails to remove the packet from the scheduler and the retransmit id of the packet is not -1 (meaning that we have not reached the maximum number of retransmissions) then release the lock and yield so that retrans_pkt may acquire the lock and operate. 2. Make absolutely certain that the ACK function does not recursively lock the lock in question. If it does, then releasing the lock will do no good, since retrans_pkt will still be unable to acquire the lock. (closes issue #12098) Reported by: wegbert (closes issue #12089) Reported by: PTorres Patches: 12098-putnopvutv3.patch uploaded by putnopvut (license 60) Tested by: jvandal 2008-03-14 14:29 +0000 [r108682] Jason Parker * res/res_musiconhold.c: Fix a potential segfault if chan (or chan->music_state) is NULL. Closes issue #12210, credit to edantie for pointing this out. 2008-03-13 21:38 +0000 [r108469-108583] Russell Bryant * apps/app_chanspy.c, main/channel.c, include/asterisk/channel.h: Fix another issue that was causing crashes in chanspy. This introduces a new datastore callback, called chan_fixup(). The concept is exactly like the fixup callback that is used in the channel technology interface. This callback gets called when the owning channel changes due to a masquerade. Before this was introduced, if a masquerade happened on a channel being spyed on, the channel pointer in the datastore became invalid. (closes issue #12187) (reported by, and lots of testing from atis) (props to file for the help with ideas) * channels/chan_sip.c: Make a tweak that gets the LEDs on polycom phones to blink when an extension that has been subscribed to goes on hold. Otherwise, they just stay on like it does when an extension is in use. (closes issue #11263) Reported by: russell Patches: notify_hold.rev1.txt uploaded by russell (license 2) Tested by: russell * apps/app_followme.c: Fix a couple uses of sprintf. The second one could actually cause an overflow of a stack buffer. It's not a security issue though, it only depends on your configuration. 2008-03-12 21:53 +0000 [r108227-108288] Mark Michelson * channels/chan_sip.c: Change AST_SCHED_DEL use to ast_sched_del for autocongestion in chan_sip. The scheduler callback will always return 0. This means that this id is never rescheduled, so it makes no sense to loop trying to delete the id from the scheduler queue. If we fail to remove the item from the queue once, it will fail every single time. (Yes I realize that in this case, the macro would exit early because the id is set to -1 in the callback, but it still makes no sense to use that macro in favor of calling ast_sched_del once and being done with it) This is the first of potentially several such fixes. * include/asterisk/sched.h: Added a large comment before the AST_SCHED_DEL macro to explain its purpose as well as when it is appropriate and when it is not appropriate to use it. I also removed the part of the debug message that mentions that this is probably a bug because there are some perfectly legitimate places where ast_sched_del may fail to delete an entry (e.g. when the scheduler callback manually reschedules with a new id instead of returning non-zero to tell the scheduler to reschedule with the same idea). I also raised the debug level of the debug message in AST_SCHED_DEL since it seems like it could come up quite frequently since the macro is probably being used in several places where it shouldn't be. Also removed the redundant line, file, and function information since that is provided by ast_log. 2008-03-12 19:57 +0000 [r108135] Russell Bryant * apps/app_chanspy.c, main/channel.c: (closes issue #12187, reported by atis, fixed by me after some brainstorming on the issue with mmichelson) - Update copyright info on app_chanspy. - Fix a race condition that caused app_chanspy to crash. The issue was that the chanspy datastore magic that was used to ensure that spyee channels did not disappear out from under the code did not completely solve the problem. It was actually possible for chanspy to acquire a channel reference out of its datastore to a channel that was in the middle of being destroyed. That was because datastore destruction in ast_channel_free() was done near the end. So, this left the code in app_chanspy accessing a channel that was partially, or completely invalid because it was in the process of being free'd by another thread. The following sort of shows the code path where the race occurred: ============================================================================= Thread 1 (PBX thread for spyee chan) || Thread 2 (chanspy) --------------------------------------||------------------------------------- ast_channel_free() || - remove channel from channel list || - lock/unlock the channel to ensure || that no references retrieved from || the channel list exist. || --------------------------------------||------------------------------------- || channel_spy() - destroy some channel data || - Lock chanspy datastore || - Retrieve reference to channel || - lock channel || - Unlock chanspy datastore --------------------------------------||------------------------------------- - destroy channel datastores || - call chanspy datastore d'tor || which NULL's out the ds' || - Operate on the channel ... reference to the channel || || - free the channel || || || - unlock the channel --------------------------------------||------------------------------------- ============================================================================= 2008-03-12 19:16 +0000 [r108086] Kevin P. Fleming * channels/chan_sip.c: if we receive an INVITE with a Content-Length that is not a valid number, or is zero, then don't process the rest of the message body looking for an SDP closes issue #11475 Reported by: andrebarbosa 2008-03-12 18:26 +0000 [r108083] Joshua Colp * apps/app_mixmonitor.c, include/asterisk/audiohook.h, main/audiohook.c: Add a trigger mode that triggers on both read and write. The actual function that returns the combined audio frame though will wait until both sides have fed in audio, or until one side stops (such as the case when you call Wait). (closes issue #11945) Reported by: xheliox 2008-03-12 16:59 +0000 [r108031] Russell Bryant * main/channel.c: Destroy the channel lock after the channel datastores. (inspired by issue #12187) 2008-03-12 01:52 +0000 [r107877] Tilghman Lesher * contrib/scripts/iax-friends.sql, contrib/scripts/sip-friends.sql: Document all of the possible realtime fields 2008-03-11 23:37 +0000 [r107714-107826] Jason Parker * doc/voicemail_odbc_postgresql.txt: Update documentation for pgsql ODBC voicemail. (closes issue #12186) Reported by: jsmith Patches: vm_pgsql_doc_update.patch uploaded by jsmith (license 15) * channels/chan_gtalk.c: Copy voicemail dependency logic for res_adsi to chan_gtalk (for jabber). (closes issue #12014) Reported by: junky 2008-03-11 20:48 +0000 [r107713] Kevin P. Fleming * Makefile.rules, channels/Makefile: get chan_vpb to build properly in dev mode 2008-03-11 20:47 +0000 [r107712] Jason Parker * apps/app_voicemail.c: Add a newline on a log 2008-03-11 19:20 +0000 [r107582-107646] Joshua Colp * res/res_features.c: Make sure the visible indication is on the right channel so when the masquerade happens the proper indication is enacted. (closes issue #11707) Reported by: iam * apps/app_meetme.c: Add an additional check for setting conference parameter when using the marked user options. It was possible for it to return to a no listen/no talk state if a masquerade happened. (closes issue #12136) Reported by: aragon * apps/app_exec.c: Fix a minor spelling error. (closes issue #12183) Reported by: darrylc 2008-03-11 Russell Bryant * Asterisk 1.4.19-rc2 released. 2008-03-11 15:18 +0000 [r107352-107472] Kevin P. Fleming * apps/app_rpt.c: backport a fix from trunk * channels/misdn/isdn_lib.c, codecs/Makefile, channels/chan_misdn.c: fix various other problems found by gcc 4.3 * configure, include/asterisk/autoconfig.h.in, configure.ac, apps/app_sms.c: stop checking for mktime() in the configure script... we don't use it, and the test is buggy under gcc 4.3 * configure, main/Makefile, configure.ac, makeopts.in: check for compiler support for -fno-strict-overflow before using it (tested with Debian's gcc 4.3, 4.1 and 3.4) (closes issue #12179) Reported by: Netview * configure, configure.ac: fix small bug in IMAP toolkit testing * main/udptl.c, utils/Makefile, main/Makefile, main/editline/readline.c, pbx/Makefile: fix up various compiler warnings found with gcc-4.3: - the output of flex includes a static function called 'input' that is not used, so for the moment we'll stop having the compiler tell us about unused variables in the flex source files (a better fix would be to improve our flex post-processing to remove the unused function) - main/stdtime/localtime.c makes assumptions about signed integer overflow, and gcc-4.3's improved optimizer tries to take advantage of handling potential overflow conditions at compile time; for now, suppress these optimizations until we can fiure out if the code needs improvement - main/udptl.c has some references to uninitialized variables; in one case there was no bug, but in the other it was certainly possibly for unexpected behavior to occur - main/editline/readline.c had an unused variable 2008-03-11 00:59 +0000 [r107290] Terry Wilson * channels/chan_sip.c: If we fail to alloc a channel, we should re-lock the pvt structure before returning. 2008-03-10 21:32 +0000 [r107230] Tilghman Lesher * main/pbx.c: Use non-global storage for eswitch 2008-03-10 20:27 +0000 [r107173] Jason Parker * channels/chan_zap.c: Make sure to reenable echo can after a "failed" (canceled, etc) three-way call. (closes issue #11335) Reported by: rebuild 2008-03-10 20:17 +0000 [r107099-107161] Russell Bryant * main/pbx.c: Fix another bug specifically related to asynchronous call origination. Once the PBX is started on the channel using ast_pbx_start(), then the ownership of the channel has been passed on to another thread. We can no longer access it in this code. If the channel gets hung up very quickly, it is possible that we could access a channel that has been free'd. (inspired by BE-386) * main/pbx.c: Fix some bugs related to originating calls. If the code failed to start a PBX on the channel (such as if you set a call limit based on the system's load average), then there were cases where a channel that has already been free'd using ast_hangup() got accessed. This caused weird memory corruption and crashes to occur. (fixes issue BE-386) (much debugging credit goes to twilson, final patch written by me) * main/channel.c: Resolve a compiler warning. * main/channel.c: Fix a race condition where the generator can go away (closes issue #12175, reported by edantie, patched by me) 2008-03-10 14:33 +0000 [r107016] Joshua Colp * apps/app_dial.c, main/cdr.c, include/asterisk/cdr.h: Move where unanswered CDRs are dropped to the CDR core, not everything uses app_dial. (closes issue #11516) Reported by: ys Patches: branch_1.4_cdr.diff uploaded by ys (license 281) Tested by: anest, jcapp, dartvader 2008-03-08 15:59 +0000 [r106945] Kevin P. Fleming * channels/chan_zap.c: don't generate D-Channel "up" and "down" messages unless the channel state is actually changing; also, generate the "up" message when an implicit "up" occurs due to reception of a normal event when we thought the channel was "down" 2008-03-07 22:51 +0000 [r106895] Russell Bryant * apps/app_meetme.c: Only start the SLA thread if SLA has actually been configured. 2008-03-07 22:14 +0000 [r106842] Jason Parker * main/editline/Makefile.in: Fix hardcoded grep in editline, were GNU grep is required. (closes issue #12124) Reported by: dmartin 2008-03-07 19:32 +0000 [r106788] Joshua Colp * main/channel.c: Ignore source update control frame. (closes issue #12168) Reported by: plack 2008-03-07 17:16 +0000 [r106704] Russell Bryant * include/asterisk/sched.h: Change a warning message to a debug message. This is happening quite frequently, and it is not worth spamming users with these messages unless we are pretty confident that it should never happen. As it stands today, it _will_ and _does_ happen and until that gets cleaned up a reasonable amount on the development side, let's not spam the logs of everyone else. (closes issue #12154) 2008-03-07 16:22 +0000 [r106552-106635] Tilghman Lesher * apps/app_voicemail.c: Warn the user when a temporary greeting exists (Closes issue #11409) * main/rtp.c: Properly initialize rtp->schedid (Closes issue #12154) * apps/app_chanspy.c, apps/app_rpt.c, main/asterisk.c, apps/app_speech_utils.c, apps/app_voicemail.c, main/channel.c, funcs/func_enum.c, channels/chan_misdn.c, main/frame.c, main/manager.c: Safely use the strncat() function. (closes issue #11958) Reported by: norman Patches: 20080209__bug11958.diff.txt uploaded by Corydon76 (license 14) 2008-03-06 22:10 +0000 [r106437] Mark Michelson * main/pbx.c: Quell an annoying message that is likely to print every single time that ast_pbx_outgoing_app is called. The reason is that __ast_request_and_dial allocates the cdr for the channel, so it should be expected that the channel will have a cdr on it. Thanks to joetester on IRC for pointing this out 2008-03-06 04:40 +0000 [r106328] Tilghman Lesher * sounds/Makefile: Upgrade to the next release of sounds 2008-03-05 22:37 +0000 [r106237] Russell Bryant * channels/chan_iax2.c: Fix a potential deadlock and a few different potential crashes. (closes issue #12145, reported by thiagarcia, patched by me) 2008-03-05 22:32 +0000 [r106235] Joshua Colp * channels/chan_oss.c, main/rtp.c, channels/chan_mgcp.c, apps/app_dial.c, main/channel.c, channels/chan_phone.c, main/dial.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_skinny.c, channels/chan_h323.c, main/file.c, channels/chan_alsa.c, apps/app_followme.c, include/asterisk/frame.h: Add a control frame to indicate the source of media has changed. Depending on the underlying technology it may need to change some things. (closes issue #12148) Reported by: jcomellas 2008-03-05 21:12 +0000 [r106178] Michiel van Baak * doc/realtime.txt: document var_metric so no bugreports will come in when it's actually a configuration issue. (issue #12151) Reported and patched by: caio1982 1.4 patch by me 2008-03-05 15:32 +0000 [r106038] Kevin P. Fleming * channels/chan_zap.c: when a PRI call must be moved to a different B channel at the request of the other endpoint, ensure that any DSP active on the original channel is moved to the new one (closes issue #11917) Reported by: mavetju Tested by: mavetju 2008-03-05 15:17 +0000 [r106015] Tilghman Lesher * channels/chan_sip.c, include/asterisk/sched.h: Correctly initialize retransid in SIP, and ensure that the warning when failing to delete a schedule entry can actually hit the log. (closes issue #12140) Reported by: slavon Patches: sch2.patch uploaded by slavon (license 288) (Patch slightly modified by me) 2008-03-05 01:52 +0000 [r105932] Russell Bryant * main/rtp.c, main/translate.c, include/asterisk/frame.h: Fix a bug that I just noticed in the RTP code. The calculation for setting the len field in an ast_frame of audio was wrong when G.722 is in use. The len field represents the number of ms of audio that the frame contains. It would have set the value to be twice what it should be. 2008-03-04 18:10 +0000 [r105674-105676] Joshua Colp * main/rtp.c: In addition to setting the marker bit let's change our ssrc so they know for sure it is a different source. * main/rtp.c, channels/chan_sip.c, include/asterisk/rtp.h: When a new source of audio comes in (such as music on hold) make sure the marker bit gets set. (closes issue #10355) Reported by: wdecarne Patches: 10355.diff uploaded by file (license 11) (closes issue #11491) Reported by: kanderson 2008-03-04 Russell Bryant * Asterisk 1.4.19-rc1 released. 2008-03-04 04:31 +0000 [r105591] Russell Bryant * main/pbx.c: Backport a minor bug fix from trunk that I found while doing random code cleanup. Properly break out of the loop when a context isn't found when verify that includes are valid. 2008-03-03 18:06 +0000 [r105572] Jason Parker * res/snmp/agent.c: Fix type for astNumChannels. (closes issue #12114) Reported by: jeffg Patches: 12114.patch uploaded by jeffg (license 192) 2008-03-03 17:16 +0000 [r105563-105570] Russell Bryant * channels/chan_local.c: In the case of an ast_channel allocation failure, take the local_pvt out of the pvt list before destroying it. * channels/chan_local.c: Fix a potential memory leak of the local_pvt struct when ast_channel allocation fails. Also, in passing, centralize the code necessary to destroy a local_pvt. * main/autoservice.c: Update the copyright information for autoservice. Most of the code in this file now is stuff that I have written recently ... * main/asterisk.c, main/channel.c, include/asterisk.h, main/autoservice.c: Merge in some changes from team/russell/autoservice-nochans-1.4 These changes fix up some dubious code that I came across while auditing what happens in the autoservice thread when there are no channels currently in autoservice. 1) Change it so that autoservice thread doesn't keep looping around calling ast_waitfor_n() on 0 channels twice a second. Instead, use a thread condition so that the thread properly goes to sleep and does not wake up until a channel is put into autoservice. This actually fixes an interesting bug, as well. If the autoservice thread is already running (almost always is the case), then when the thread goes from having 0 channels to have 1 channel to autoservice, that channel would have to wait for up to 1/2 of a second to have the first frame read from it. 2) Fix up the code in ast_waitfor_nandfds() for when it gets called with no channels and no fds to poll() on, such as was the case with the previous code for the autoservice thread. In this case, the code would call alloca(0), and pass the result as the first argument to poll(). In this case, the 2nd argument to poll() specified that there were no fds, so this invalid pointer shouldn't actually get dereferenced, but, this code makes it explicit and ensures the pointers are NULL unless we have valid data to put there. (related to issue #12116) 2008-03-03 15:28 +0000 [r105557-105560] Joshua Colp * main/channel.c: It is possible for no audio to pass between the current digit and next digit so expand logic that clears emulation to AST_FRAME_NULL. (closes issue #11911) Reported by: edgreenberg Patches: v1-11911.patch uploaded by dimas (license 88) Tested by: tbsky * channels/chan_sip.c: Add a comment to describe some logic. (closes issue #12120) Reported by: flefoll Patches: chan_sip.c.br14.patch-just-a-comment uploaded by flefoll (license 244) 2008-02-29 23:34 +0000 [r105409] Russell Bryant * main/autoservice.c: Fix a major bug in autoservice. There was a race condition in the handling of the list of channels in autoservice. The problem was that it was possible for a channel to get removed from autoservice and destroyed, while the autoservice thread was still messing with the channel. This led to memory corruption, and caused crashes. This explains multiple backtraces I have seen that have references to autoservice, but do to the nature of the issue (memory corruption), could cause crashes in a number of areas. (fixes the crash in BE-386) (closes issue #11694) (closes issue #11940) The following issues could be related. If you are the reporter of one of these, please update to include this fix and try again. (potentially fixes issue #11189) (potentially fixes issue #12107) (potentially fixes issue #11573) (potentially fixes issue #12008) (potentially fixes issue #11189) (potentially fixes issue #11993) (potentially fixes issue #11791) 2008-02-29 14:47 +0000 [r105326] Philippe Sultan * res/res_jabber.c: Fix a potential memory leak 2008-02-29 14:34 +0000 [r105296] Tilghman Lesher * apps/app_voicemail.c: If the message file does not exist, just return harmlessly, instead of crashing. (Closes issue #12108) 2008-02-29 13:48 +0000 [r105261] Joshua Colp * apps/app_voicemail.c: Bump up the size of the uniqueid variable. (closes issue #12107) Reported by: asgaroth 2008-02-29 13:05 +0000 [r105209] Philippe Sultan * res/res_jabber.c: Automatically create new buddy upon reception of a presence stanza of type subscribed. (closes issue #12066) Reported by: ffadaie Patches: branch-1.4-12066-1.diff uploaded by phsultan (license 73) trunk-12066-1.diff uploaded by phsultan (license 73) Tested by: ffadaie, phsultan 2008-02-28 22:23 +0000 [r105116] Russell Bryant * main/utils.c, include/asterisk/lock.h: Fix a bug in the lock tracking code that was discovered by mmichelson. The issue is that if the lock history array was full, then the functions to mark a lock as acquired or not would adjust the stats for whatever lock is at the end of the array, which may not be itself. So, do a sanity check to make sure that we're updating lock info for the proper lock. (This explains the bizarre stats on lock #63 in BE-396, thanks Mark!) 2008-02-28 21:56 +0000 [r105113] Tilghman Lesher * contrib/init.d/rc.debian.asterisk: Update init script for LSB compat (closes issue #9843) Reported by: ibc Patches: rc.debian.asterisk.patch uploaded by ibc (license 211) Tested by: paravoid 2008-02-28 20:11 +0000 [r105059] Mark Michelson * apps/app_queue.c: When using autofill, members who are in use should be counted towards the number of available members to call if ringinuse is set to yes. Thanks to jmls who brought this issue up on IRC 2008-02-28 19:20 +0000 [r104920-105005] Jason Parker * main/cdr.c, main/pbx.c: Make pbx_exec pass an empty string into applications, if we get NULL. This protects against possible segfaults in applications that may try to use data before checking length (ast_strdupa'ing it, for example) (closes issue #12100) Reported by: foxfire Patches: 12100-nullappargs.diff uploaded by qwell (license 4) * channels/chan_skinny.c: According to a video at www.cisco.com, the 7921G supports 6 line appearances. 2008-02-28 00:05 +0000 [r104868] Tilghman Lesher * main/Makefile, build_tools/strip_nonapi: Compatibility fix for PPC64 (closes issue #12081) Reported by: jcollie Patches: asterisk-1.4.18-funcdesc.patch uploaded by jcollie (license 412) Tested by: jcollie, Corydon76 2008-02-27 21:49 +0000 [r104841] Mark Michelson * main/dial.c: Two fixes: 1. Make the list of ast_dial_channels a lockable list. This is because in some cases, the ast_dial may exist in multiple threads due to asynchronous execution of its application, and I found some cases where race conditions could exist. 2. Check in ast_dial_join to be sure that the channel still exists before attempting to lock it, since it could have gotten hung up but the is_running_app flag on the ast_dial_channel may not have been cleared yet. (closes issue #12038) Reported by: jvandal Patches: 12038v2.patch uploaded by putnopvut (license 60) Tested by: jvandal 2008-02-27 20:56 +0000 [r104787] Joshua Colp * apps/app_chanspy.c: Don't loop around infinitely trying to spy on our own channel, and don't forget to free/detach the datastore upon hangup of the spy. 2008-02-27 20:36 +0000 [r104783] Mark Michelson * main/file.c: Bump a couple of more buffers up by 2 so that annoying warnings aren't generated like crazy on every fileexists_core call. 2008-02-27 18:15 +0000 [r104704] Tilghman Lesher * main/manager.c: Ensure the session ID can't be 0. 2008-02-27 17:41 +0000 [r104665] Joshua Colp * main/file.c: Bump up the buffer by 2. 2008-02-27 17:33 +0000 [r104625] Russell Bryant * apps/app_chanspy.c: Fix a problem in ChanSpy where it could get stuck in an infinite loop without being able to detect that the calling channel hung up. (closes issue #12076, reported by junky, patched by me) 2008-02-27 17:26 +0000 [r104598] Jason Parker * res/res_features.c: Inherit language from the transfering channel on a blind transfer. (closes issue #11682) Reported by: caio1982 Patches: local_atxfer_lang3-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, victoryure 2008-02-27 17:07 +0000 [r104596] Joshua Colp * main/loader.c: Use the lock (which already existed, it just wasn't used) on the updaters list to protect the contents instead of the overall module list lock. (closes issue #12080) Reported by: ChaseVenters 2008-02-27 16:53 +0000 [r104593] Kevin P. Fleming * main/file.c: fallback to standard English prompts properly when using new prompt directory layout (closes issue #11831) Reported by: IgorG Patches: fallbacken.v1.diff uploaded by IgorG (license 20) (modified by me to improve code and conform rest of function to coding guidelines) 2008-02-27 16:45 +0000 [r104591] Russell Bryant * channels/chan_zap.c: When we receive a known alarm, make sure that the unknown alarm flag is not still set to make sure that when we come back out of alarm, it gets reported in the log and manager interface (after discussion with tzafrir on the -dev list) 2008-02-27 15:52 +0000 [r104536] Joshua Colp * res/res_smdi.c: Only stop the MWI monitor thread if it was actually started. (closes issue #12086) Reported by: francesco_r 2008-02-27 01:15 +0000 [r104332-104334] Russell Bryant * apps/app_chanspy.c: Avoid some recursion in the cleanup code for the chanspy datastore (closes issue #12076, reported by junky, patched by me) * channels/chan_zap.c: Zaptel 1.4 now exposes FXO battery state as an alarm. However, Asterisk 1.4 does not know what to do with these alarms. Only Asterisk 1.6 cares about it. So, if we get an unknown alarm in chan_zap, don't generate confusing log messages about it. 2008-02-26 18:26 +0000 [r104132-104141] Jason Parker * Makefile: Add badshell to .PHONY target (thanks Kevin) * Makefile: Since all shells aren't as awesome as bash, we have to fail if somebody tries to use a literal "~" in DESTDIR. * sounds/Makefile: Revert previous abspath change. ...abspath is new in GNU make 3.81. I feel so...defeated. Must find new fix! * sounds/Makefile: Fix a very bizarre issue we were seeing with our buildbot when using a DESTDIR that wasn't an absolute path (such as DESTDIR=~/asterisk-1.4). Apparently what was happening, was that some of the targets were being expanded to the full path, so $@ ended up being /root/asterisk-1.4/[...]/ rather than ~/asterisk-1.4/[...]/ It appears that this may be a new "feature" in GNU make. (*cough* http://en.wikipedia.org/wiki/Principle_of_least_surprise *cough*) 2008-02-26 00:25 +0000 [r104119] Russell Bryant * include/asterisk/smdi.h, apps/app_voicemail.c, channels/chan_zap.c, res/res_smdi.c, configs/smdi.conf.sample: Merge changes from team/russell/smdi-1.4 This commit brings in a significant set of changes to the SMDI support in Asterisk. There were a number of bugs in the current implementation, most notably being that it was very likely on busy systems to pop off the wrong message from the SMDI message queue. So, this set of changes fixes the issues discovered as well as introducing some new ways to use the SMDI support which are required to avoid the bugs with grabbing the wrong message off of the queue. This code introduces a new interface to SMDI, with two dialplan functions. First, you get an SMDI message in the dialplan using SMDI_MSG_RETRIEVE() and then you access details in the message using the SMDI_MSG() function. A side benefit of this is that it now supports more than just chan_zap. For example, with this implementation, you can have some FXO lines being terminated on a SIP gateway, but the SMDI link in Asterisk. Another issue with the current implementation is that it is quite common that the station ID that comes in on the SMDI link is not necessarily the same as the Asterisk voicemail box. There are now additional directives in the smdi.conf configuration file which let you map SMDI station IDs to Asterisk voicemail boxes. Yet another issue with the current SMDI support was related to MWI reporting over the SMDI link. The current code could only report a MWI change when the change was made by someone calling into voicemail. If the change was made by some other entity (such as with IMAP storage, or with a web interface of some kind), then the MWI change would never be sent. The SMDI module can now poll for MWI changes if configured to do so. This work was inspired by and primarily done for the University of Pennsylvania. (also related to issue #9260) 2008-02-26 00:03 +0000 [r104111] Jason Parker * channels/chan_h323.c: IPTOS_MINCOST is not defined on Solaris. (closes issue #12050) Reported by: asgaroth Patches: 12050.patch uploaded by putnopvut (license 60) 2008-02-25 23:42 +0000 [r104102-104106] Russell Bryant * apps/app_chanspy.c: This patch fixes some pretty significant problems with how app_chanspy handles pointers to channels that are being spied upon. It was very likely that a crash would occur if the channel being spied upon hung up. This was because the current ast_channel handling _requires_ that the object is locked or else it could disappear at any time (except in the owning channel thread). So, this patch uses some channel datastore magic on the spied upon channel to be able to detect if and when the channel goes away. (closes issue #11877) (patch written by me, but thanks to kpfleming for the idea, and to file for review) * main/utils.c: Improve the lock tracking code a bit so that a bunch of old locks that threads failed to lock don't sit around in the history. When a lock is first locked, this checks to see if the last lock in the list was one that was failed to be locked. If it is, then that was a lock that we're no longer sitting in a trylock loop trying to lock, so just remove it. (inspired by issue #11712) 2008-02-25 21:37 +0000 [r104095] Joshua Colp * channels/chan_sip.c: Make it so a users.conf user creates both a SIP peer and a SIP user. The user will be used for inbound authentication for the device, and peer will be used for placing calls to the device. (closes issue #9044) Reported by: queuetue Patches: sip-gui-friend.diff uploaded by qwell (license 4) 2008-02-25 21:31 +0000 [r104094] Tilghman Lesher * apps/app_voicemail.c: If the destination folder is full, don't delete a message when exiting. (closes issue #12065) Reported by: selsky Patch by: (myself) 2008-02-25 20:49 +0000 [r104092] Jason Parker * main/config.c: Allow the use of #include and #exec in situations where the max include depth was only 1. Specifically, this fixes using #include and #exec in extconfig.conf. This was basically caused because the config file itself raises the include level to 1. I opted not to raise the include limit, because recursion here could cause very bizarre behavior. Pointed out, and tested by jmls (closes issue #12064) 2008-02-25 18:38 +0000 [r104086] Russell Bryant * channels/chan_agent.c: Ensure that the channel doesn't disappear in agent_logoff(). If it does, it could cause a crash. (fixes the crash reported in BE-396) 2008-02-25 16:16 +0000 [r104082-104084] Joshua Colp * channels/chan_sip.c: If a resubscription comes in for a dialog we no longer know about tell the remote side that the dialog does not exist so they subscribe again using a new dialog. (closes issue #10727) Reported by: s0l4rb03 Patches: 10727-2.diff uploaded by file (license 11) * channels/chan_sip.c: Due to recent changes tag will no longer be NULL if not present so we have to use ast_strlen_zero to see if it's actually blank. (closes issue #12061) Reported by: flefoll Patches: chan_sip.c.br14.patch_pedantic_no_totag uploaded by flefoll (license 244) 2008-02-22 22:45 +0000 [r104037] Tilghman Lesher * channels/chan_sip.c: Backwards debug message. (closes issue #12052) Reported by: flefoll Patches: chan_sip.c.br14.patch_found-notfound uploaded by flefoll (license 244) 2008-02-21 21:05 +0000 [r104026-104027] Mark Michelson * channels/chan_zap.c: And as a followup to revision 104026, completely remove event-related calls from a section of code where we know there was no event to handle or get. * channels/chan_zap.c: Remove an incorrect debug message. It reported that it had received a specific event and tried to report which event was received. What actually was happening was that it was reporting the number of bytes returned from a call to read(). Thanks to Jared Smith for bringing the issue up on IRC 2008-02-21 14:33 +0000 [r104015] Kevin P. Fleming * main/manager.c: reduce the likelihood that HTTP Manager session ids will consist of primarily '1' bits 2008-02-20 22:32 +0000 [r103956] Mark Michelson * apps/app_queue.c: Clear up confusion when viewing the QUEUE_WAITING_COUNT of a "dead" realtime queue. Since from the user's perspective, the queue does exist, we shouldn't tell them we couldn't find the queue. Instead since it is a dead queue, report a 0 waiting count This issue was brought up on IRC by jmls 2008-02-20 22:06 +0000 [r103953] Joshua Colp * channels/chan_zap.c: Don't wait for additional digits when overlap dialing is enabled if the setup message contains the sending_complete information element. (closes issue #11785) Reported by: klaus3000 Patches: sending_complete_overlap_asterisk-1.4.17.patch.txt uploaded by klaus3000 (license 65) 2008-02-20 21:40 +0000 [r103904] Mark Michelson * channels/chan_local.c: Fix a crash if the channel becomes NULL while attempting to lock it. (closes issue #12039) Reported by: danpwi 2008-02-20 17:53 +0000 [r103845] Tilghman Lesher * main/stdtime/localtime.c: Compat fix for Solaris (closes issue #12022) Reported by: asgaroth Patches: 20080219__bug12022.diff.txt uploaded by Corydon76 (license 14) Tested by: asgaroth 2008-02-19 20:28 +0000 [r103823] Joshua Colp * channels/h323/ast_h323.cxx: Send CallerID Name in setup message. (closes issue #11241) Reported by: tusar Patches: h323id_as_callerid_name.patch uploaded by tusar (license 344) 2008-02-19 20:02 +0000 [r103821] Russell Bryant * channels/chan_local.c: Account for the fact that the "other" channel can disappear while the local pvt is not locked. (fixes a problem introduced in rev 100581) (closes issue #12012) Reported by: stevedavies Patch by me 2008-02-19 17:31 +0000 [r103807-103812] Joshua Colp * configure, configure.ac: Don't look for launchd when cross compiling. (closes issue #12029) Reported by: ovi * channels/chan_sip.c: Fix building of chan_sip. 2008-02-19 10:27 +0000 [r103806] Olle Johansson * channels/chan_sip.c: Make sure we send error replies correctly by checking the via header. 2008-02-18 23:56 +0000 [r103801] Joshua Colp * main/channel.c: Ensure that emulated DTMFs do not get interrupted by another begin frame. (closes issue #11740) Reported by: gserra Patches: v1-11740.patch uploaded by dimas (license 88) (closes issue #11955) Reported by: tsearle (closes issue #10530) Reported by: xmarksthespot 2008-02-18 22:28 +0000 [r103790-103795] Jason Parker * channels/chan_zap.c: Fix previous commit so that we actually disable echocanbridged if echocancel is off. * channels/chan_zap.c: Correct a message when echocancelwhenbridged is on, but echocancel is not. Issue #12019 2008-02-18 20:52 +0000 [r103786] Mark Michelson * main/app.c: There was an invalid assumption when calculating the duration of a file that the filestream in question was created properly. Unfortunately this led to a segfault in the situation where an unknown format was specified in voicemail.conf and a voicemail was recorded. Now, we first check to be sure that the stream was written correctly or else assume a zero duration. (closes issue #12021) Reported by: jakep Tested by: putnopvut 2008-02-18 17:31 +0000 [r103780] Tilghman Lesher * main/rtp.c, channels/chan_sip.c: When a SIP channel is being auto-destroyed, it's possible for it to still be in bridge code. When that happens, we crash. Delay the RTP destruction until the bridge is ended. (closes issue #11960) Reported by: norman Patches: 20080215__bug11960__2.diff.txt uploaded by Corydon76 (license 14) Tested by: norman 2008-02-18 16:37 +0000 [r103770] Mark Michelson * channels/chan_zap.c: Fix a linked list corruption that under the right circumstances could lead to a looped list, meaning it will traverse forever. (closes issue #11818) Reported by: michael-fig Patches: 11818.patch uploaded by putnopvut (license 60) Tested by: michael-fig 2008-02-18 16:11 +0000 [r103763-103768] Joshua Colp * main/asterisk.c: Backport fix from issue #9325. (closes issue #11980) Reported by: rbrunka * channels/chan_sip.c: Don't care if the extension given doesn't exist for subscription based MWI. 2008-02-15 23:31 +0000 [r103726-103741] Russell Bryant * channels/chan_iax2.c: Fix a crash in chan_iax2 due to a race condition (closes issue #11780) Reported by: guillecabeza Patches: bug_iax2_jb_1.4.patch uploaded by guillecabeza (license 380) bug_iax2_jb_trunk.patch uploaded by guillecabeza (license 380) * main/loader.c: In the case that you try to directly reload a module has returned AST_MODULE_LOAD_DECLINE, log a message indicating that the module is not fully initialized and must be initialized using "module load". * main/loader.c: Don't attempt to execute the reload callback for a module that returned AST_MODULE_LOAD_DECLINE. This fixes a crash that was reported against chan_console in trunk. (closes issue #11953, reported by junky, fixed by me) 2008-02-15 17:26 +0000 [r103688-103722] Mark Michelson * doc/imapstorage.txt, configure, configure.ac: Final round of changes for configure script logic for IMAP Now if a directory is specified, then we will search that directory for a source installation of the IMAP toolkit. If none is found, then we will use that directory as the basis for detecting a package installation of the IMAP c-client. If that check fails, then configure will fail. * configure, configure.ac: Fix a bit of wrong logic in the configure script that caused problems when trying to configure without IMAP. Patch suggestion from phsultan, but I modified it slightly. (closes issue #12003) Reported by: pj Tested by: putnopvut * doc/imapstorage.txt, configure, configure.ac: I apparently misunderstood one of the requirements of this configure change. Now, if a source directory is specified with the --with-imap option, and a valid source installation is not detected there, then configure will fail and will not check for a package installation. * doc/imapstorage.txt: Make a small clarification in the documentation * doc/imapstorage.txt: Update documentation regarding configuration of IMAP * apps/app_voicemail.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Change to the configure logic regarding IMAP. Prior to this commit, if you wished to configure Asterisk with IMAP support, you would use the --with-imap configure switch in one of the following two ways: --with-imap=/some/directory would look in the directory specified for a UW IMAP source installation --with-imap would assume that you had imap-2004g installed in .. relative to the Asterisk source With this set of changes the two above options still work the same, but there are two new behaviors, too. --with-imap=system will assume that you have -libc-client.so where you store your shared objects and will attempt to find c-client headers in your include path either in the imap or c-client directory. If either of the two original methods of specifying the imap option should fail, then the check for --with-imap =system will be performed in addition. It is only after this "system" check that failure can happen. * apps/app_voicemail.c: Fix build for non-IMAP builds * apps/app_voicemail.c: Fix the new message count if delete=yes when using IMAP storage. (closes issue #11406) Reported by: jaroth Patches: deleteflag_v2.patch uploaded by jaroth (license 50) Tested by: jaroth 2008-02-14 19:51 +0000 [r103683-103684] Jason Parker * funcs/func_cdr.c: swap location for this.. * funcs/func_cdr.c: Document the 'l' option to the CDR() function. (Thanks voipgate for pointing out the option, and Leif for providing text for it.) Closes issue #11695. 2008-02-13 06:25 +0000 [r103556-103607] Tilghman Lesher * channels/chan_agent.c: We aren't talking to ourselves; we're talking to someone else. (closes issue #11771) Reported by: msetim Patches: ami_agent_talkingto-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, msetim * apps/app_voicemail.c: Refuse to load app_voicemail if res_adsi is not loaded (which is a symbol dependency) (closes issue #11760) Reported by: non-poster Patches: 20080114__bug11760.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, non-poster, jamesgolovich 2008-02-12 22:24 +0000 [r103503-103504] Jason Parker * main/asterisk.c: revert accidental change from last commit. oops * contrib/scripts/safe_asterisk, main/asterisk.c: Remove condition that was impossible. 2008-02-12 15:09 +0000 [r103324-103385] Joshua Colp * channels/chan_sip.c: Even if no CallerID name or number has been provided by the remote party still use the configured sip.conf ones. (closes issue #11977) Reported by: pj * apps/app_meetme.c: If entering a conference with the 'w' option ensure that we can't listen or speak until the marked user appears. (closes issue #11835) Reported by: alanmcmillan 2008-02-11 17:05 +0000 [r103315] Kevin P. Fleming * configs/zapata.conf.sample: improve 2BCT documentation a bit (thanks Jared) 2008-02-09 06:23 +0000 [r103197] Tilghman Lesher * apps/app_voicemail.c: Commit fix for being unable to send voicemail from VoiceMailMain Reported by: William F Acker (via the -users mailing list) Patch by: Corydon76 (license 14) 2008-02-08 18:48 +0000 [r103070-103120] Mark Michelson * apps/app_queue.c: Prevent a potential three-thread deadlock. Also added a comment block to explicitly state the locking order necessary inside app_queue. (closes issue #11862) Reported by: flujan Patches: 11862.patch uploaded by putnopvut (license 60) Tested by: flujan * channels/chan_iax2.c: Yield the thread and return -1 if the ioctl fails for Zaptel timing device. (closes issue #11891) Reported by: tzafrir 2008-02-08 15:08 +0000 [r102968] Joshua Colp * channels/chan_iax2.c: Make sure the presence of dbsecret is factored into user scoring. (closes issue #11952) Reported by: bbhoss 2008-02-07 19:53 +0000 [r102858] Jason Parker * res/res_features.c: Specify which digit string was matched in debug message. (closes issue #11949) Reported by: dimas Patches: v1-feature-debug.patch uploaded by dimas (license 88) 2008-02-07 16:41 +0000 [r102807] Kevin P. Fleming * configs/zapata.conf.sample: document usage of 'transfer' configuration option for ISDN PRI switch-side transfers 2008-02-06 17:59 +0000 [r102653-102725] Joshua Colp * channels/chan_sip.c: Only consider a T.38-only INVITE compatible if we have both a joint capability between us and them and if they provided T.38. * main/global_datastores.c: Add missing header file and ASTERISK_FILE_VERSION usage. (closes issue #11936) Reported by: snuffy 2008-02-06 15:19 +0000 [r102651] Russell Bryant * configs/features.conf.sample: Clarify setting DYNAMIC_FEATURES so that it gets inherited by outbound channels. (due to a discussion between me and a user via email) 2008-02-06 11:48 +0000 [r102627] Kevin P. Fleming * pbx/Makefile, res/Makefile: ensure that all remaining multi-object modules are built using their proper CFLAGS and include directory paths 2008-02-06 00:26 +0000 [r102576] Tilghman Lesher * apps/app_voicemail.c: Move around some defines to unbreak ODBC storage. (closes issue #11932) Reported by: snuffy 2008-02-05 20:02 +0000 [r102453] Mark Michelson * channels/chan_mgcp.c: Clear the DTMF buffer on hangup. (closes issue #11919) Reported by: eferro Patches: mgcp_dtmfclean_on_hangup.diff uploaded by eferro (license 337) Tested by: eferro 2008-02-05 19:52 +0000 [r102450] Joshua Colp * channels/chan_sip.c: If a REGISTER attempt comes in that is a retransmission of a previous REGISTER do not create a new nonce value. (issue #BE-381) 2008-02-05 17:15 +0000 [r102425] Kevin P. Fleming * channels/Makefile: ensure that components of chan_misdn.so are built using any special build options that the configure script generated (reported by Philipp Kempgen on asterisk-dev) 2008-02-05 15:09 +0000 [r102378] Joshua Colp * res/res_clioriginate.c: Perform dialing asynchronously when using the originate CLI command so the CLI does not appear to block. (closes issue #11927) Reported by: bbhoss 2008-02-04 21:06 +0000 [r102214-102323] Tilghman Lesher * main/asterisk.c, utils/muted.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Cross-platform fix: OS X now deprecates the use of the daemon(3) API. (closes issue #11908) Reported by: oej Patches: 20080204__bug11908.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76 * funcs/func_strings.c: Missing braces. (closes issue #11912) Reported by: dimas Patches: sprintf.patch uploaded by dimas (license 88) 2008-02-03 16:38 +0000 [r102090-102142] Olle Johansson * channels/chan_sip.c: Use the same CSEQ on CANCEL as on INVITE (according to RFC 3261) (closes issue #9492) Reported by: kryptolus Patches: bug9492.txt uploaded by oej (license 306) Tested by: oej * channels/chan_sip.c: Handle ACK and CANCEL in an invite transaction - even if we get INFO transactions during the actual call setup. (closes issue #10567) Reported by: jacksch Tested by: oej Patch by: oej inspired by suggestions from neutrino88 in the bug tracker 2008-02-01 23:06 +0000 [r101989] Russell Bryant * channels/chan_sip.c: Change the SDP_SAMPLE_RATE macro. It turns out that even though G.722 is 16 kHz, it is supposed to specified as 8 kHz in the RTP, and RTP timestamps are supposed to be calculated based on 8 kHz. (Apparently this is due to a bug in a spec, but people follow it anyway, because it's the spec ...) 2008-02-01 21:54 +0000 [r101894-101942] Tilghman Lesher * apps/app_voicemail.c: Fix the VM_DUR variable for forwarded voicemail, and fixed several other bugs while I'm in the area. (closes issue #11615) Reported by: jamessan Patches: 20071226__bug11615__2.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, jamessan * configure, include/asterisk/autoconfig.h.in, configure.ac, acinclude.m4: Change detection of getifaddrs to use AST_C_COMPILE_CHECK, backported from trunk (as suggested by kpfleming) 2008-02-01 17:41 +0000 [r101822] Jason Parker * apps/app_authenticate.c: Remove a needless (and incorrect) call to feof() after fgets(). This would have exited the loop early if you had an authentication file with no newline at the end. 2008-02-01 17:27 +0000 [r101818-101820] Russell Bryant * apps/app_authenticate.c: off by one error * apps/app_authenticate.c: Don't overwrite the last character of a line if it's not a newline. This would happen if the last line in the file doesn't have a newline. (pointed out by Qwell) 2008-02-01 15:55 +0000 [r101772] Tilghman Lesher * configure, include/asterisk/autoconfig.h.in, configure.ac, main/acl.c: Compatibility fix for OpenWRT (reported by Brian Capouch via the mailing list) 2008-02-01 00:32 +0000 [r101693] Russell Bryant * channels/chan_iax2.c: Add some more sanity checking on IAX2 dial strings for the case that no peer or hostname was provided, which is the one part of the dial string that is absolutely required. If it's not there, bail out. (closes issue #11897) Reported by sokhapkin Patch by me 2008-02-01 00:06 +0000 [r101649] Mark Michelson * apps/app_amd.c: From bugtracker: "fix totalAnalysisTime to handle periods of no channel activity" (closes issue #9256) Reported by: cmaj Patches: amd-dont-wait-too-long-for-frames-take3.diff.txt uploaded by cmaj (license 111) Tested by: cmaj, skygreg, ZX81, rjain 2008-01-31 Russell Bryant * Asterisk 1.4.18 released. 2008-01-31 23:10 +0000 [r101601] Russell Bryant * main/translate.c, main/file.c: Fix a couple of places where ast_frfree() was not called on a frame that came from a translator. This showed itself by g729 decoders not getting released. Since the flag inside the translator frame never got unset by freeing the frame to indicate it was no longer in use, the translators never got destroyed, and thus the g729 licenses were not released. (closes issue #11892) Reported by: xrg Patches: 11892.diff uploaded by russell (license 2) Tested by: xrg, russell 2008-01-31 21:00 +0000 [r101531] Mark Michelson * res/res_monitor.c: 1. Prevent the addition of an extra '/' to the beginning of an absolute pathname. 2. If ast_monitor_change_fname is called and the new filename is the same as the old, then exit early and don't set the filename_changed field in the monitor structure. Setting it in this case was causing ast_monitor_stop to erroneously delete them. (closes issue #11741) Reported by: garlew Tested by: putnopvut 2008-01-31 19:52 +0000 [r101482] Jason Parker * channels/chan_sip.c, channels/chan_iax2.c: Solaris compat fixes for struct in_addr funkiness. Issue #11885, patch by snuffy. 2008-01-31 19:30 +0000 [r101480] Steve Murphy * main/pbx.c: closes issue #11845; that's the one where there's a 1004 byte cdr leak with every AMI Redirect to a zap channel 2008-01-31 19:17 +0000 [r101413-101433] Russell Bryant * channels/chan_agent.c: Add more missing locking of the agents list ... * channels/chan_agent.c: Move the locking from find_agent() into the agent dialplan function handler to ensure that the agent doesn't disappear while we're looking at it. * channels/chan_agent.c: Add missing locking to the find_agent() function. 2008-01-30 15:41 +0000 [r101222] Joshua Colp * main/slinfactory.c: Fix an issue where if a frame of higher sample size preceeded a frame of lower sample size and ast_slinfactory_read was called with a sample size of the combined values or higher a crash would happen. (closes issue #11878) Reported by: stuarth 2008-01-30 15:34 +0000 [r101219] Jason Parker * configs/extensions.conf.sample: Change default config to use descending channel order of groups, rather than ascending. Fixes a potential source of confusion in glare-type situations. Issue 11875, reported by JimVanM. 2008-01-30 15:23 +0000 [r101216] Mark Michelson * apps/app_queue.c: Fix a logic error with regards to autofill. Prior to this change, it was possible for a caller to go out of turn if autofill were enabled and callers ahead in the queue were attempting to call a member. This change fixes this. 2008-01-30 11:20 +0000 [r101152] Olle Johansson * channels/chan_sip.c: Stop musiconhold on attended transfer. (closes issue #11872) Reported by: gareth Patches: svn-101018.patch uploaded by gareth (license 208) 2008-01-29 23:50 +0000 [r101080] Dwayne M. Hubbard * build_tools/make_version: updated build_tools to handle the autotag directory structure changes; changes related to BE-353. Patch by The Russell and reviewed by The Me. 2008-01-29 23:02 +0000 [r100973-101035] Mark Michelson * apps/app_queue.c: Remove a memory leak from updating realtime queues * apps/app_queue.c: Fixing an erroneous return value returned when attempting to pause or unpause a queue member fails. Fixes BE-366, thanks to John Bigelow for writing the patch. 2008-01-29 17:57 +0000 [r100934] Joshua Colp * apps/app_mixmonitor.c: Don't forget to record the channel so we know whether it is bridged or not later. (closes issue #11811) Reported by: slavon 2008-01-29 17:43 +0000 [r100932] Russell Bryant * main/Makefile: Fix the last couple of issues related to building from a path that contains spaces. (closes issue #11834) 2008-01-29 17:41 +0000 [r100930] Jason Parker * channels/misdn_config.c: Initialize an array to 0s if config option not specified. (closes issue #11860) Patches: misdn_get_config.v1.diff uploaded by IgorG (license 20) 2008-01-29 17:21 +0000 [r100882-100922] Russell Bryant * Makefile: Use GNU make magic instead of shell magic to escape spaces in the working directory. (related to issue #11834) * Makefile: Fix building Asterisk when the working path has spaces in it. (closes issue #11834) Reported by: spendergrass Patched by: me 2008-01-29 16:10 +0000 [r100835] Jason Parker * channels/chan_zap.c: Allow zap groups above 30 to work properly. (closes issue #11590) Reported by: tbsky 2008-01-29 10:36 +0000 [r100793] Christian Richter * channels/chan_misdn.c: fixed potential segfault in misdn show channels CLI command 2008-01-29 08:26 +0000 [r100740] Olle Johansson * channels/chan_sip.c: (closes issue #11736) Reported by: MVF Patches: bug11736-2.diff uploaded by oej (license 306) Tested by: oej, MVF, revolution (russellb: This was the showstopper for the release.) 2008-01-28 21:02 +0000 [r100675] Tilghman Lesher * main/pbx.c: WaitExten didn't handle AbsoluteTimeout properly (went to 't' instead of 'T') 2008-01-28 20:55 +0000 [r100673] Mark Michelson * channels/chan_vpb.cc, UPGRADE.txt: Undoing the deprecation of chan_vpb. It is alive and well. 2008-01-28 20:42 +0000 [r100672] Jason Parker * apps/app_voicemail.c: When using ODBC_STORAGE, make sure we put greeting files into the database like we do with the others. Issue #11795 Reported by: dimas Patches: vmgreet.patch uploaded by dimas (license 88) 2008-01-28 18:34 +0000 [r100626-100629] Russell Bryant * channels/chan_sip.c: For some reason, the use of this strdupa() is leading to memory corruption on freebsd sparc64. This trivial workaround fixes it. (closes issue #10300, closes issue #11857, reported by mattias04 and Home-of-the-Brave) * res/res_features.c: Fix a crash in ast_masq_park_call() (issue #11342) Reported by: DEA Patches: res_features-park.txt uploaded by DEA (license 3) 2008-01-28 18:23 +0000 [r100624] Jason Parker * channels/chan_zap.c: Correct a comment which made little/no sense. 2008-01-28 17:15 +0000 [r100581] Russell Bryant * main/channel.c, channels/chan_local.c, include/asterisk/channel.h: Make some deadlock related fixes. These bugs were discovered and reported internally at Digium by Steve Pitts. - Fix up chan_local to ensure that the channel lock is held before the local pvt lock. - Don't hold the channel lock when executing the timing function, as it can cause a deadlock when using chan_local. This actually changes the code back to be how it was before the change for issue #10765. But, I added some other locking that I think will prevent the problem reported there, as well. 2008-01-27 21:59 +0000 [r100465] Tilghman Lesher * main/rtp.c, channels/chan_mgcp.c, main/cdr.c, channels/chan_misdn.c, main/dnsmgr.c, channels/chan_sip.c, channels/chan_h323.c, include/asterisk/sched.h, main/file.c, pbx/pbx_dundi.c, channels/chan_iax2.c: When deleting a task from the scheduler, ignoring the return value could possibly cause memory to be accessed after it is freed, which causes all sorts of random memory corruption. Instead, if a deletion fails, wait a bit and try again (noting that another thread could change our taskid value). (closes issue #11386) Reported by: flujan Patches: 20080124__bug11386.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, flujan, stuarth` 2008-01-25 22:32 +0000 [r100418] Mark Michelson * channels/chan_vpb.cc, UPGRADE.txt: Deprecating chan_vpb. It is now preferred that users of Voicetronix products use chan_zap in combination with their zaptel drivers. 2008-01-25 21:24 +0000 [r100378] Jason Parker * channels/chan_sip.c: This would have never been true, since we're passing (sizeof(req.data) - 1) as the len to recvfrom(). 2008-01-24 21:57 +0000 [r100264] Kevin P. Fleming * include/asterisk/app.h: make these macros not assume that the only other field in the structure is 'argc'... this is true when someone uses AST_DECLARE_APP_ARGS, but it's perfectly reasonable to define your own structure as long as it has the right fields 2008-01-24 17:22 +0000 [r100164] Russell Bryant * main/asterisk.c: Update main Asterisk copyright info to 2008 2008-01-24 16:41 +0000 [r100138] Jason Parker * main/acl.c: Fix compilation on Solaris. (closes issue #11832) Patches: bug-11832.diff uploaded by snuffy (license 35) 2008-01-23 21:07 +0000 [r99977-99978] Olle Johansson * channels/chan_sip.c: Second attempt. Don't change invitestate when receiving 18x messages in CANCEL state. (issue #11736) Reported by: MVF Patch by oej. * channels/chan_sip.c: Make sure we don't cancel destruction on calls in CANCEL state, even if we get 183 while waiting for answer on our CANCEL. (issue #11736) Reported by: MVF Patches: bug11736.txt uploaded by oej (license 306) Tested by: MVF 2008-01-23 20:25 +0000 [r99975] Mark Michelson * apps/app_externalivr.c: Fixing a typo. 2008-01-23 17:46 +0000 [r99923] Russell Bryant * apps/app_chanspy.c: ChanSpy issues a beep when it starts at the beginning of a list of channels to potentially spy on. However, if there were no matching channels, it would beep at you over and over, which is pretty annoying. Now, it will only beep once in the case that there are no channels to spy on, but it will still beep again once it reaches the beginning of the channel list again. (closes issue #11738, patched by me) 2008-01-23 16:18 +0000 [r99878] Mark Michelson * channels/chan_sip.c: These flag tests were illogical. They were testing sip_peer flags on a sip_pvt. Thanks to Russell for helping to get this odd problem figured out. 2008-01-23 04:31 +0000 [r99718-99777] Tilghman Lesher * apps/app_voicemail.c: When we reset the password via an external command, we should also reset the password stored in the in-memory list, too (otherwise it doesn't really take effect). (closes issue #11809) Reported by: davetroy Patches: fix_externpass.diff uploaded by davetroy (license 384) * res/res_odbc.c: Oops, should have checked for a NULL obj, here, too * main/acl.c: Just confirmed that all current platforms need this header file 2008-01-22 20:56 +0000 [r99652] Olle Johansson * channels/chan_sip.c: Thanks to Russell's education I realize that BUFSIZ has changed since I learned the C language over 20 years ago... Resetting chan_sip to the size of BUFSIZ that I expected in my old head to avoid to heavy memory allocations on some systems. 2008-01-22 20:34 +0000 [r99643] Tilghman Lesher * main/acl.c: Fix the defines for OS X (and Solaris, too) 2008-01-22 17:41 +0000 [r99592-99594] Olle Johansson * channels/chan_local.c, res/res_features.c, channels/chan_agent.c, apps/app_followme.c: Add more dependencies on chan_local and add a note to the description of chan_local so that people don't disable it in menuselect just to clean up. * apps/app_dial.c: Add dependency on chan_local to app_dial. Dial still runs without chan_local, but will be missing forwarding functionality. 2008-01-22 16:54 +0000 [r99540] Tilghman Lesher * main/acl.c: Ensure that we can get an address even when we don't have a default route. (closes issue #9225) Reported by: junky Patches: 20080122__bug9225.diff.txt uploaded by Corydon76 (license 14) Tested by: oej, loloski, sergee 2008-01-22 15:08 +0000 [r99501] Olle Johansson * channels/chan_sip.c: Cleaning up some documentation that led to confusion in a bug report 2008-01-21 23:55 +0000 [r99426] Mark Michelson * channels/chan_local.c: Fixing an issue wherein monitoring local channels was not possible. During a channel masquerade, the monitors on the two channels involved are swapped. In 99% of the cases this results in the desired effect. However, if monitoring a local channel, this caused the monitor which was on the local channel to get moved onto a channel which is immediately hung up after the masquerade has completed. By swapping the monitors prior to the masquerade, we avoid the problem by tricking the masquerade into placing the monitor back onto the channel where we want it. During the investigation of the issue, the channel's monitor was the only thing that was swapped in such a manner which did not make sense to have done. All other variable swapping made sense. 2008-01-21 18:11 +0000 [r99341] Tilghman Lesher * res/res_odbc.c, configs/res_odbc.conf.sample, include/asterisk/res_odbc.h: Permit the user to specify number of seconds that a connection may remain idle, which fixes a crash on reconnect with the MyODBC driver. (closes issue #11798) Reported by: Corydon76 Patches: 20080119__res_odbc__idlecheck.diff.txt uploaded by Corydon76 (license 14) Tested by: mvanbaak 2008-01-21 16:01 +0000 [r99301] Joshua Colp * channels/chan_sip.c: Bump the buffer size for Via headers up to 512. There are some exceptionally large Via headers out there. (closes issue #11783) Reported by: ofirroval 2008-01-19 10:05 +0000 [r99187] Russell Bryant * main/slinfactory.c: Fix a couple of memory leaks with frame handling. Specifically, ast_frame_free() needed to be called on the frame that came from the translator to signed linear. 2008-01-18 22:57 +0000 [r99127] Joshua Colp * include/asterisk/channel.h: Remove the __ in front of the unused variable. This causes some compilers to freak out. 2008-01-18 21:37 +0000 [r99079-99081] Russell Bryant * include/asterisk/translate.h, main/frame.c: Revert adding the packed attribute, as it really doesn't make sense why that would do any good. Fix the real bug, which is to do the check to see if the frame came from a translator at the beginning of ast_frame_free(), instead of at the end. This ensures that it always gets checked, even if none of the parts of the frame are malloc'd, and also ensures that we aren't looking at free'd memory in the case that it is a malloc'd frame. (closes issue #11792, reported by explidous, patched by me) * include/asterisk/translate.h: Since we're relying on the offset between the frame and the beginning of the translator pvt struct, set the packed attribute to make sure we get to the right place. (potential fix for issue #11792) 2008-01-18 17:13 +0000 [r99032] Terry Wilson * res/res_features.c: This should at least temporarily fix a problem where the 't' Dial option is incorrectly passed to the transferee when built-in attended transfers are used. There is still a problem with 'T', but better to fix some problems than no problems while we work on it. (closes issue #7904) Reported by: k-egg Patches: transfer-fix-b14-r97657.diff uploaded by sergee (license 138) Tested by: sergee, otherwiseguy 2008-01-17 23:42 +0000 [r99007-99014] Pari Nannapaneni * configs/cdr.conf.sample: doh! revert a revert of a revert (changed by mistake in 99010) * main/manager.c, configs/cdr.conf.sample: missed that one while reverting * main/manager.c: reverting 99001 - We need the Max-Age for extending the life of cookie mansession_id 2008-01-17 22:37 +0000 [r99004] Russell Bryant * main/frame.c, channels/chan_iax2.c, include/asterisk/frame.h: Have IAX2 optimize the codec translation path just like chan_sip does it. If the caller's codec is in our codec list, move it to the top to avoid transcoding. (closes issue #10500) Reported by: stevedavies Patches: iax-prefer-current-codec.patch uploaded by stevedavies (license 184) iax-prefer-current-codec.1.4.patch uploaded by stevedavies (license 184) Tested by: stevedavies, pj, sheldonh 2008-01-17 21:31 +0000 [r99001] Kevin P. Fleming * main/manager.c: we should only send the Set-Cookie header to the browser on the first response after creating a manager session, not on every response (doing so causes the browser to clear any local cookies it may have associated with the session) 2008-01-17 16:19 +0000 [r98991] Jason Parker * configs/zapata.conf.sample: Add a clarification about the immediate= option of zapata.conf Issue 11784, patch by klaus3000. 2008-01-16 22:36 +0000 [r98982] Russell Bryant * .cleancount, include/asterisk/channel.h: Add an unused pointer to the ast_channel struct. This makes the ast_channel structure retain the same size as it had in previous 1.4 releases. Also, all of the offsets for members in the structure are still the same (except for the two pointers that got replaced for the new spy/whisper architecture.) 2008-01-16 20:34 +0000 [r98966-98973] Joshua Colp * .cleancount: Bump up cleancount due to previous commit that changed the channel structure. * apps/app_chanspy.c, apps/app_mixmonitor.c, main/rtp.c, main/channel.c, apps/app_meetme.c, include/asterisk/audiohook.h (added), main/Makefile, include/asterisk/chanspy.h (removed), include/asterisk/channel.h, main/audiohook.c (added): Replace current spy architecture with backport of audiohooks. This should take care of current known spy issues. * channels/chan_iax2.c: Add missing NULLs at end of two ast_load_realtimes. (closes issue #11769) Reported by: tequ Patches: chaniax.patch uploaded by dimas (license 88) 2008-01-16 17:20 +0000 [r98964] Mark Michelson * channels/chan_local.c: Fix a deadlock in chan_local in local_hangup. There was contention because the local_pvt was held and it was attempting to lock a channel, which is the incorrect locking order. (closes issue #11730) Reported by: UDI-Doug Patches: 11730.patch uploaded by putnopvut (license 60) Tested by: UDI-Doug 2008-01-16 15:08 +0000 [r98951-98960] Joshua Colp * main/dial.c: Introduce a lock into the dialing API that protects it when destroying the structure. (closes issue #11687) Reported by: callguy Patches: 11687.diff uploaded by file (license 11) * main/rtp.c: Add two more SDP names for ulaw and alaw. (closes issue #11777) Reported by: tootai * channels/chan_sip.c: Don't drop the old record route information when dealing with packets related to a reinvite. (closes issue #11545) Reported by: kebl0155 Patches: reinvite-patch.txt uploaded by kebl0155 (license 356) * build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, codecs/codec_speex.c, configure.ac, makeopts.in: Add autoconf logic for speexdsp. Later versions use a separate library for some things so we need to use it if present in codec_speex. (closes issue #11693) Reported by: yzg 2008-01-15 23:50 +0000 [r98943-98946] Russell Bryant * channels/chan_sip.c: Change a buffer in check_auth() to be a thread local dynamically allocated buffer, instead of a massive buffer on the stack. This fixes a crash reported by Qwell due to running out of stack space when building with LOW_MEMORY defined. On a very related note, the usage of BUFSIZ in various places in chan_sip is arbitrary and careless. BUFSIZ is a system specific define. On my machine, it is 8192, but by definition (according to google) could be as small as 256. So, this buffer in check_auth was 16 kB. We don't even support SIP messages larger than 4 kB! Further usage of this define should be avoided, unless it is used in the proper context. * main/rtp.c, include/asterisk/translate.h, main/frame.c, main/translate.c, main/abstract_jb.c, channels/chan_iax2.c, codecs/codec_zap.c, include/asterisk/frame.h: Commit a fix for some memory access errors pointed out by the valgrind2.txt output on issue #11698. The issue here is that it is possible for an instance of a translator to get destroyed while the frame allocated as a part of the translator is still being processed. Specifically, this is possible anywhere between a call to ast_read() and ast_frame_free(), which is _a lot_ of places in the code. The reason this happens is that the channel might get masqueraded during this time. During a masquerade, existing translation paths get destroyed. So, this patch fixes the issue in an API and ABI compatible way. (This one is for you, paravoid!) It changes an int in ast_frame to be used as flag bits. The 1 bit is still used to indicate that the frame contains timing information. Also, a second flag has been added to indicate that the frame came from a translator. When a frame with this flag gets released and has this flag, a function is called in translate.c to let it know that this frame is doing being processed. At this point, the flag gets cleared. Also, if the translator was requested to be destroyed while its internal frame still had this flag set, its destruction has been deffered until it finds out that the frame is no longer being processed. Admittedly, this feels like a hack. But, it does fix the issue, and I was not able to think of a better solution ... 2008-01-15 20:08 +0000 [r98894-98934] Joshua Colp * channels/chan_sip.c: Based on the boundary found move over the correct amount. (closes issue #11750) Reported by: tasker * channels/chan_sip.c: Accept "; boundary=" not just ";boundary=" in the multipart mixed content type. (closes issue #11750) Reported by: tasker 2008-01-14 20:59 +0000 [r98849] Mark Michelson * apps/app_voicemail.c: Adding in appropriate unlocks for the locks I added. Thanks to joetester on IRC for pointing this out. 2008-01-14 17:38 +0000 [r98774] Russell Bryant * main/translate.c: Revert a change that introduces an unacceptable performance hit and is causing memory leaks ... (from rev 97973) 2008-01-14 16:35 +0000 [r98733-98737] Mark Michelson * apps/app_queue.c: Fixing another compilation error. I'm a bit off today :( * apps/app_queue.c: Oops. Last commit had compilation error. * apps/app_queue.c: Adding explicit defaults for missing options to init_queue. This is necessary because if a user either removes or comments one of these options and reloads their queues, the option will not reset to its default, instead maintaining the value from prior to the reload. Thanks to John Bigelow for pointing this error out to me. 2008-01-12 00:05 +0000 [r98467] Tilghman Lesher * res/res_odbc.c: Add a connection timeout attribute, as that was what was intended with the login timeout, but ODBC divides it up into 2 different timeouts. (Closes issue #11745) 2008-01-11 22:46 +0000 [r98390] Russell Bryant * pbx/pbx_dundi.c: Fix up setting the EID on BSD based systems. (closes issue #11646) Reported by: caio1982 Patches: dundi_osx_eid6.diff.txt uploaded by caio1982 (license 22) dundi_osx_eid6-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, mvanbaak 2008-01-11 21:28 +0000 [r98372] Pari Nannapaneni * main/http.c: Comment explaining how to force browser to always read some html files from server. 2008-01-11 19:51 +0000 [r98317-98325] Joshua Colp * main/rtp.c: If the incoming RTP stream changes codec force the bridge to break if the other side does not support it. (closes issue #11729) Reported by: tsearle Patches: new_codec_patch_udiff.patch uploaded by tsearle (license 373) * res/res_agi.c: If the channel is hungup during RECORD FILE send a result code of -1 to be uniform with everything else. (closes issue #11743) Reported by: davevg Patches: res_agi.diff uploaded by davevg (license 209) 2008-01-11 19:10 +0000 [r98315] Mark Michelson * main/channel.c: Properly report the hangup cause as no answer when someone does not answer (closes issue #10574, reported by boch, patched by moy) 2008-01-11 18:25 +0000 [r98266] Tilghman Lesher * codecs/gsm/Makefile: Add another exception (which doesn't work) for -march optimization flag. Reported by: thomasmebes Patch by: tilghman (Closes issue #11563) 2008-01-11 18:25 +0000 [r98265] Russell Bryant * doc/security.txt, main/asterisk.c, configure, include/asterisk/autoconfig.h.in, main/Makefile, configure.ac, makeopts.in: Backport the ability to set the ToS bits on Linux when not running as root. Normally, we would not backport features into 1.4, but, I was convinced by the justification supplied by the supplier of this patch. He pointed out that this patch removes a requirement for running as root, thus reducing the potential impacts of security issues. (closes issue #11742) Reported by: paravoid Patches: libcap.diff uploaded by paravoid (license 200) 2008-01-11 17:22 +0000 [r98219] Joshua Colp * apps/app_followme.c: Ensure the return value of ast_bridge_call is passed back up as the application return value. This is needed for transfers to function so the PBX core knows to continue execution. (closes issue #10327) Reported by: kkiely 2008-01-11 15:52 +0000 [r98164] Tilghman Lesher * channels/chan_sip.c: Back out changes from revision 97077, since it wasn't perfect 2008-01-11 03:39 +0000 [r97976-98082] Russell Bryant * main/frame.c: Fix samples vs. length calculations for g722 * main/translate.c: Simplify this code with a suggestion from Luigi on the asterisk-dev list. Instead of using is16kHz(), implement a format_rate() function. * main/translate.c: Fix various timing calculations that made assumptions that the audio being processed was at a sample rate of 8 kHz. 2008-01-10 23:08 +0000 [r97973] Tilghman Lesher * channels/chan_sip.c, main/translate.c: 1) When we get a translated frame out, clone it, because if the translator pvt is freed before we use the frame, bad things happen. 2) Getting a failure from ast_sched_delete means that the schedule ID is currently running. Don't just ignore it. (Closes issue #11698) 2008-01-10 21:57 +0000 [r97925] Mark Michelson * apps/app_voicemail.c: Let us leave a voicemail for ourself if we have logged into VoiceMailMain and chosen to leave a message. (closes issue #11735, reported and patched by jamessan) 2008-01-10 21:37 +0000 [r97849-97889] Steve Murphy * pbx/ael/ael_lex.c, pbx/Makefile, pbx/ael/ael.flex: Applied the same fixes for ael.flex as was done in 97849 for ast_expr2.fl; overrode the normally generate yyfree func with our own version that checks the pointer for non-null before passing to free(). Also takes care of a little problem with 2.5.33 and the use of the __STDC_VERSION__ macro. * main/ast_expr2.fl, main/Makefile, main/ast_expr2f.c: This is a fix for 2 things: a problem Terry was having in OSX with null pointers, which was my fault, as I probably forgot to run the sed script last time I made mods. So, I moved the fix into the flex input itself. Then, I found when I used flex 2.5.33, that it was using __STDC_VERSION__, and that's not real good; so I added back in a DIFFERENT sed script to fix that little mess. Tested everything, a couple different ways. Hope I did no harm, at the least. 2008-01-10 20:12 +0000 [r97847] Jason Parker * include/asterisk/frame.h: Fix a comment that is no longer true. 2008-01-10 16:19 +0000 [r97734-97753] Russell Bryant * pbx/pbx_kdeconsole.h (removed), configs/modules.conf.sample, pbx/kdeconsole_main.cc (removed): Remove other remnants of pbx_kdeconsole * pbx/pbx_kdeconsole.cc (removed), build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Remove pbx_kdeconsole from the tree. It hasn't worked in ages, and nobody has complained. (closes issue #11706, reported by caio1982) 2008-01-10 15:07 +0000 [r97697] Joshua Colp * funcs/func_groupcount.c: Don't try to copy the category from the group if no category exists. (closes issue #11724) Reported by: IgorG Patches: group_count.v1.patch uploaded by IgorG (license 20) 2008-01-09 23:01 +0000 [r97640-97645] Russell Bryant * pbx/pbx_gtkconsole.c: Strip terminal sequences from the verbose messages * pbx/pbx_gtkconsole.c: Make pbx_gtkconsole build ... but doesn't actually load on my system still (related to issue #11706) 2008-01-09 20:28 +0000 [r97618-97622] Jason Parker * main/cli.c: Correctly display a message if a command could not be found. Also fix a comment which may have led to this happening. Issue 11718, reported by kshumard. * main/cli.c: Fix some locking and return value funkiness. We really shouldn't be unlocking this lock inside of a function, unless we locked it there too. 2008-01-09 18:48 +0000 [r97575] Mark Michelson * apps/app_queue.c: Part 2 of app_queue doxygen improvements. Some smaller functions this time 2008-01-09 18:02 +0000 [r97529] Russell Bryant * res/res_features.c: Fix saying the parking space number to the caller doing the parking ... 2008-01-09 17:21 +0000 [r97491] Kevin P. Fleming * codecs/codec_zap.c: report the same message whether Zaptel does not have transcoder support loaded or no transcoders were found 2008-01-09 16:44 +0000 [r97489] Philippe Sultan * channels/chan_gtalk.c: Set the caller id within the gtalk_alloc function. As underlined in issue #10437 by Josh, we need to prevent a possible memory leak. We only set the name part of the caller id, the number part is not relevant when dealing with JIDs. Closes issue #11549. 2008-01-09 16:11 +0000 [r97450] Joshua Colp * apps/app_meetme.c: Don't do conferencing totally in Zaptel if Monitor is running on the channel. (closes issue #11709) Reported by: BigJimmy Patches: patch-meetmerec uploaded by BigJimmy (license 371) 2008-01-09 15:43 +0000 [r97410-97448] Kevin P. Fleming * channels/chan_zap.c: pass the right variable to get an error string... oops * channels/chan_zap.c: add error number output to ioctl failure messages to help with debugging 2008-01-09 00:44 +0000 [r97350] Tilghman Lesher * main/cli.c, main/editline/readline.c: Allow filename completion on zero-length modules, remove a memory leak, remove a file descriptor leak, and make filename completion thread-safe. Patched and tested by tilghman. (Closes issue #11681) 2008-01-09 00:17 +0000 [r97206-97308] Mark Michelson * apps/app_queue.c: use the \retval doxygen command properly * apps/app_queue.c: Part 1 of N of adding doxygen comments to app_queue. I picked some of the most common functions used (which also happen to be some the biggest/ugliest functions too) to document first. I'm pretty new to doxygen so criticism is welcome. * apps/app_queue.c: Some coding guidelines-related cleanup 2008-01-08 20:48 +0000 [r97195] Joshua Colp * channels/chan_mgcp.c: Fix various DTMF issues in chan_mgcp. (closes issue #11443) Reported by: eferro Patches: dtmf_control_hybrid-inband-mode.patch uploaded by eferro (license 337) 2008-01-08 20:47 +0000 [r97194] Tilghman Lesher * main/autoservice.c, main/utils.c: Increase constants to where we're less likely to hit them while debugging. (Closes issue #11694) 2008-01-08 20:42 +0000 [r97192] Mark Michelson * apps/app_voicemail.c: Making some changes designed to not allow for a corrupted mailstream for a vm_state. 1. Add locking to the vm_state retrieval functions so that no linked list corruption occurs. 2. Make sure to always grab the persistent vm_state when mailstream access is necessary. 3. Correct an incorrect return value in the init_mailstream function. (closes issue #11304, reported by dwhite) 2008-01-08 19:53 +0000 [r97093-97152] Joshua Colp * funcs/func_groupcount.c: If no group has been provided to the GROUP_COUNT dialplan function then use the first one specific to the channel. (closes issue #11077) Reported by: m4him * apps/app_queue.c: Make app_queue calls work with directed pickup. (closes issue #11700) Reported by: jbauer 2008-01-08 18:02 +0000 [r97077] Tilghman Lesher * main/asterisk.c, channels/chan_sip.c: Apply multiple crash fixes, found in issue #11386, but not completely closing that issue. 2008-01-07 20:47 +0000 [r96884-96932] Russell Bryant * configs/extensions.conf.sample, /: Merged revisions 96931 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r96931 | russell | 2008-01-07 14:46:22 -0600 (Mon, 07 Jan 2008) | 2 lines Change misery.digium.com to pbx.digium.com ........ * res/res_smdi.c: Don't crash if something happens when setting up an SMDI interface and it gets destroyed before the SMDI port handling thread gets created. 2008-01-07 14:34 +0000 [r96797-96815] Philippe Sultan * res/res_jabber.c: Indentation fix, makes the code easier to read * res/res_jabber.c: Compute the base64 value over the [authzid]\0authcid\0password string, thus excluding the trailing NULL byte. This change has already been committed to trunk, see #11644. 2008-01-05 02:09 +0000 [r96644] Russell Bryant * main/devicestate.c: Don't pass an empty string as the device name. 2008-01-04 23:03 +0000 [r96575] Tilghman Lesher * main/devicestate.c: Fix the problem of notification of a device state change to a device with a '-' in the name. Could probably do with a better fix in trunk, but this bug has been open way too long without a better solution. Reported by: stevedavies Patch by: tilghman (Closes issue #9668) 2008-01-04 22:55 +0000 [r96573] Jason Parker * res/res_features.c: Properly continue in the dialplan if using PARKINGEXTEN and the slot is full. Issue 11237, patch by me. 2008-01-04 19:27 +0000 [r96525] Tilghman Lesher * channels/chan_sip.c: If you change the bindaddr in sip.conf to a non-bound address and reload, sip goes kablooie. Reported and patched by: one47 (Closes issue #11535) 2008-01-04 16:19 +0000 [r96394-96449] Russell Bryant * channels/chan_zap.c: Make use of the temporary channel pointer while the pvt is unlocked. (closes issue #11675) Reported by: flefoll Patches: chan_zap.c.patch-store-owner-before-unlock uploaded by flefoll (license 244) * channels/chan_iax2.c: Don't crash if the iax2 pvt structure has been destroyed before we get to this point (closes issue #11672, reported by snuffy, patched by me) 2008-01-03 21:37 +0000 [r96318] Tilghman Lesher * res/res_config_pgsql.c: Missed initialization caused crash. Reported and fixed by: tiziano (Closes issue #11671) 2008-01-03 12:12 +0000 [r96198-96199] Christian Richter * channels/chan_misdn.c: make sure frame is completely clean, before we send it to asterisk as DTMF. If we don't make it clean, it happens that one way audio occurs.. * channels/chan_misdn.c: when overlapdial was used and no number was dialed, the call was dropped, now we just jump into the s extension, which makes a lot more sense. 2008-01-02 23:46 +0000 [r96102] Mark Michelson * apps/app_queue.c: We need to reset the membername to NULL on each iteration of this loop, otherwise the result is that multiple members can have the same name, since the variable was not reset on each iteration of the loop. 2008-01-02 22:14 +0000 [r96020-96024] Russell Bryant * pbx/pbx_config.c: Convert locks of the contexts list in pbx_config to the appropriate rdlock or wrlock * pbx/pbx_dundi.c: pbx_dundi only needs a rdlock on the contexts list. * apps/app_macro.c: app_macro only needs a rdlock on the contexts list. 2008-01-02 Russell Bryant * Asterisk 1.4.17 released. 2008-01-02 20:24 +0000 [r95946] Joshua Colp * channels/chan_sip.c: Allocate a SIP refer structure when performing a transfer using BYE with Also so that the transfer information is properly stored. (AST-2008-028) (closes issue #11637) Reported by: greyvoip 2008-01-02 17:51 +0000 [r95890] Mark Michelson * apps/app_queue.c: A change to improve the accuracy of queue logging in the case where a member does not answer during the specified timeout period. Prior to this change, there was a small chance that the member name recorded in this case would be blank. Also prior to this change, if using the ringall strategy, if no one answered the call during the specified timeout, the member name listed in the queue log would randomly be one of the members that was rung. (closes issue #11498, reported and tested by hloubser, patched by me) 2007-12-31 23:43 +0000 [r95577] Mark Michelson * main/pbx.c: Avoiding a potentially bad locking situation. ast_merge_contexts_and_delete writelocks the conlock, then calls ast_hint_extension, which attempts to readlock the same lock. Recursion with read-write locks is dangerous, so the inner lock needs to be removed. I did this by copying the "guts" of ast_hint_extension into ast_merge_contexts_and_delete (sans the extra lock). (this change is inspired by the locking problems seen in issue #11080, but I have no idea if this is the problematic area experienced by the reporters of that issue) 2007-12-31 20:27 +0000 [r95470] Tilghman Lesher * funcs/func_env.c: Allow the default "0" to be returned if the STAT fails (Closes issue #11659) 2007-12-28 18:24 +0000 [r95191] Russell Bryant * channels/chan_sip.c: Remove duplicate increment of the header count in the add_header() function. (closes issue #11648) Reported by: makoto Patch provided by sergee, committed patch by me, inspired by comments from putnopvut 2007-12-28 00:16 +0000 [r95095] Mark Michelson * apps/app_queue.c: I found a bug while browsing the queue code and managed to reproduce it in a small setup. If a queue uses the ringall strategy, it was possible through unfortunate coincidence for a single member at a given penalty level to make app_queue think that all members at that penalty level were unavailable and cause the members at the next penalty level to be rung. With this patch, we will only move to the next penalty level if ALL the members at a given penalty level are unreachable. 2007-12-27 21:40 +0000 [r95024] Russell Bryant * main/channel.c: Don't report a syntax error when an empty string is passed to ast_get_group. Just return 0. (closes issue #11540) Reported by: tzafrir Patches: group_empty.diff uploaded by tzafrir (license 46) -- slightly changed by me 2007-12-27 20:09 +0000 [r94977] Mark Michelson * main/io.c: Fixing a typo in a comment. 2007-12-27 17:32 +0000 [r94905-94924] Joshua Colp * channels/chan_h323.c: Include types.h in chan_h323 as without it it can not be compiled on some operating systems like FreeBSD to name one. (closes issue #11585) Reported by: sobomax Patches: chan_h323.c.diff uploaded by sobomax (license 359) * channels/chan_sip.c: Use ast_strlen_zero to see if our_contact is set or not on the dialog. It is possible for it to be a pointer to NULL. (closes issue #11557) Reported by: FuriousGeorge 2007-12-27 15:16 +0000 [r94828-94831] Russell Bryant * main/pbx.c: Now that the contexts lock is a read/write lock, it should not be locked here in ast_hint_state_changed(). This makes it get locked recursively which now causes a deadlock. (closes issue #11080, thanks to callguy for the access to a deadlocked machine) * include/asterisk/translate.h, main/translate.c: Use the constant that I really meant to use here ... * main/translate.c: Change ast_translator_best_choice() to only pay attention to audio formats. This fixes a problem where Asterisk claims that a translation path can not be found for channels involving video. (closes issue #11638) Reported by: cwhuang Tested by: cwhuang Patch suggested by cwhuang, with some additional changes by me. 2007-12-27 01:01 +0000 [r94824] Kevin P. Fleming * main/manager.c: make this comment explain the situation in an even more explicit fashion 2007-12-26 20:43 +0000 [r94808] Tilghman Lesher * main/manager.c: Workaround for what is probably a glibc bug (but we'll see this crop up again and again, if we don't add the workaround). Reported by: rolek Patch by: tilghman (Closes issue #11601, closes issue #11426) 2007-12-26 19:04 +0000 [r94789-94801] Russell Bryant * main/autoservice.c: Just in case the AST_FLAG_END_DTMF_ONLY flag was already set before starting autoservice, remember it and ensure that the channel has the same setting when autoservice gets stopped. (pointed out by d1mas, patched up by me) * main/autoservice.c: When a channel is in autoservice, mark a flag on the channel that says that we only care about the END of a digit. That way, no magic digit emulation stuff will happen when all we're doing is queueing up END frames. * res/res_features.c: Don't try to send a parked call back to itself. (closes issue #11622, reported by djrodman, patched by me) * main/autoservice.c: Don't store DTMF BEGIN frames while a channel is in autoservice. It's just going to make ast_read() do a lot of extra work when the channel comes back out of autoservice. (closes issue #11628, patched by me) * Makefile: List include/asterisk/version.h as a .PHONY target because we want the commands listed for this target to be executed regardless of whether the file exists or not. This fixes having the version not up to date when running from svn. (closes issue #11619, reported by plack, fixed by me) 2007-12-25 02:27 +0000 [r94769] Joshua Colp * channels/chan_sip.c: file says... build on the builders. 2007-12-24 19:36 +0000 [r94763-94767] Tilghman Lesher * main/channel.c: Race: we need to wait to queue a NewChannel event until after the channel is inserted into the channel list. The reason is because some manager users immediately queue requests from the channel when they see that event and are confused when Asterisk reports no such channel. (Closes issue #11632) * channels/chan_sip.c: More deadlock avoidance code (this time between sip_monitor and sip_hangup) Reported by: apsaras Patch by: tilghman (Closes issue #11413) * channels/chan_sip.c: Another bit of bad logic in realtime_peer Reported by: dimas Patch by: dimas (Closes issue #11631) 2007-12-23 01:21 +0000 [r94660] Tilghman Lesher * channels/chan_sip.c: Argh... I suppose third time's the charm. 2007-12-21 20:21 +0000 [r94468-94543] Mark Michelson * apps/app_voicemail.c: Bunch of coding guidelines cleanup * apps/app_voicemail.c: Better quota support for using IMAP storage voicemail (closes issue #11415, reported by jaroth) (closes issue #11152, reported by selsky) Patch provided by jaroth * apps/app_voicemail.c: The mail_copy c-client function does not expect a full imap mailbox string, just the name of the mailbox. (closes issue #11419, reported and patched by jaroth, with additional patchwork from me) * main/dial.c: Since we are freeing list elements within a list traversal, we need to use the safe traversal and remove the item from the list before freeing it. (closes issue 11612, reported by dtyoo) 2007-12-21 16:37 +0000 [r94466] Russell Bryant * main/pbx.c, include/asterisk/pbx.h: Convert the contexts lock to a read/write lock to resolve a deadlock. This has a nice side benefit of improving performance. :) (closes issue #11609) (closes issue #11080) 2007-12-21 16:11 +0000 [r94420-94464] Mark Michelson * apps/app_queue.c: Removing a debug message I accidentally just committed * main/say.c, apps/app_queue.c: Fixing Portuguese syntax for saying dates and times. Also some coding guidelines cleanup. (closes issue #11599, reported and patched by caio1982, coding guidelines cleanup by me) 2007-12-21 15:07 +0000 [r94418] Tilghman Lesher * main/asterisk.c: Fix for restart-as-user problem reported via the -dev list 2007-12-20 Russell Bryant * Asterisk 1.4.16.2 released. 2007-12-20 20:22 +0000 [r94215-94256] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 94255 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r94255 | russell | 2007-12-20 14:21:41 -0600 (Thu, 20 Dec 2007) | 5 lines Fix another potential seg fault ... (closes issue #11606) Reported by: dimas ........ * channels/chan_zap.c: Fix a deadlock in d-channel handling in chan_zap. This deadlock was introduced by the fix to ensure that channels are properly locked when handling channel variables. There were sections of this code where the channel pvt was locked before the channel lock, when in fact it _must_ be the other way around. (closes issue #11582) Reported by: bugi 2007-12-19 23:02 +0000 [r94122] Mark Michelson * res/res_monitor.c: Sox versions 13.0.0 and newer do not have "soxmix" and instead use sox -m. res_monitor needs to use this if the user does not have soxmix. (closes issue #11589, reported by amessina, patch inspired by amessina but with a flourish from me) 2007-12-19 22:48 +0000 [r94077] Russell Bryant * configure, include/asterisk/autoconfig.h.in, configure.ac: Check for the existence of the soxmix application on the target platform and have the result available in autoconfig.h. (part of issue #11589) 2007-12-19 Russell Bryant * Asterisk 1.4.16.1 released. 2007-12-19 17:29 +0000 [r93955] Joshua Colp * channels/chan_iax2.c: Make the 1.4 builders happy, ensure var is NULL. 2007-12-19 17:04 +0000 [r93949] Tilghman Lesher * channels/chan_iax2.c: Avoid segfault in chan_iax when peer isn't defined (Closes issue #11602) 2007-12-18 22:42 +0000 [r93764] Jason Parker * channels/chan_skinny.c: FreeBSD also does not have byte swap functions. Issue 11586, patch by sobomax. 2007-12-18 Russell Bryant * Asterisk 1.4.16 released. 2007-12-18 18:45 +0000 [r93668-93676] Tilghman Lesher * /, channels/chan_sip.c, channels/chan_iax2.c: Merged revisions 93667 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r93667 | tilghman | 2007-12-18 12:23:06 -0600 (Tue, 18 Dec 2007) | 2 lines Fixing AST-2007-027 (Closes issue #11119) ........ 2007-12-18 17:02 +0000 [r93625] Mark Michelson * main/channel.c: Rework deadlock avoidance used in ast_write, since it meant that agent channels which were being monitored had one audio file recorded and one empty audio file saved. (closes issue #11529, reported by atis patched by me) 2007-12-17 22:56 +0000 [r93381-93420] Jason Parker * main/translate.c: What was I thinking when I wrote this masterpiece? -1 + 1 = 0.. who woulda thunk it?. 2007-12-17 22:28 +0000 [r93377] Joshua Colp * main/utils.c: Do not try to access information about a lock when printing out a trylock attempt. It is possible for the lock that it references to no longer be valid. This would have caused segfaults or deadlocks. (issue #BE-263) (closes issue #11080) Reported by: callguy (closes issue #11100) Reported by: callguy 2007-12-17 21:12 +0000 [r93336] Tilghman Lesher * include/asterisk/time.h: Today is tomorrow's yesterday, and yesterday's tomorrow is today, and tomorrow's tomorrow is the day after tomorrow, so who cares if you recycle anyway? If this confuses you, that's nothing compared to what this fixes. ;-) 2007-12-17 19:53 +0000 [r93291] Mark Michelson * apps/app_voicemail.c: We need to create the directory for a voicemail user even if they are using IMAP storage since greetings are stored in the filesystem. (closes issue #11388, reported by spditner, patch by me inspired by a patch by spditner) 2007-12-17 18:05 +0000 [r93250] Joshua Colp * channels/chan_zap.c: If a call is received with a called number IE containing nothing go to the 's' extension. (closes issue #9099) Reported by: kb1_kanobe2 Patches: 20070906__9099.diff.txt uploaded by Corydon76 (license 14) 2007-12-17 07:21 +0000 [r93183] Kevin P. Fleming * funcs/Makefile, codecs/Makefile, cdr/Makefile, pbx/Makefile, res/Makefile, channels/Makefile, formats/Makefile: fix some copy-and-paste leftovers 2007-12-17 07:15 +0000 [r93182] Olle Johansson * channels/chan_mgcp.c, channels/chan_zap.c, channels/chan_sip.c, apps/app_queue.c, channels/chan_iax2.c: Issue 11574: Add dependencies on res_monitor and res_features. I wonder if Asterisk can run at all without res_features. My guess is that there's propably a lot of more modules and the core that depends on it. Reported by: caio1982 (closes issue #11574) 2007-12-17 06:44 +0000 [r93180] Kevin P. Fleming * formats, Makefile, codecs/Makefile, funcs, apps/Makefile, configure, cdr/Makefile, build_tools/prep_tarball, makeopts.in, formats/Makefile, pbx, res, channels, funcs/Makefile, codecs, include/asterisk/autoconfig.h.in, build_tools/make_version, apps, configure.ac, Makefile.moddir_rules, build_tools/prep_moduledeps (removed), res/Makefile, pbx/Makefile, cdr, channels/Makefile: In http://lists.digium.com/pipermail/asterisk-dev/2007-December/031145.html, rizzo brought up some issues related to the way that the metadata required for menuselect and the rest of the build system is extracted from the source files. Since I had a few hours to kill on an airplane today, I decided to improve this situation... so now the system caches the extracted metadata and uses it to build the menuselect 'tree' as much as it can. The result of this is that when a single source file is changed, only the metadata for that file needs to be extracted again, and the rest is used from the cache files. I also reduced the number of forked processes required to do the metadata extraction; it was actually possible to do most of what we needed in the Makefiles themselves without using any shell scripts at all! On my laptop, these changes resulted in an 80% decrease in the time required for the 'menuselect.makeopts' automatic check to occur after editing a single source file. While doing this work I also cleaned up a few minor things in the Makefiles, adding a check for 'awk' to the configure script and changed all remaining places we use 'grep' or 'awk' to use the ones found by the configure script, and changed the 'prep_tarball' script to build the menuselect metadata so that tarballs of Asterisk will include it and won't require the user to wait while it is extracted after unpacking. 2007-12-14 17:36 +0000 [r93000] Russell Bryant * main/config.c: There are a lot of existing systems that #include non-existent files. So, to make the transition to treating this as an error a bit less painless, just issue a huge error message for now. Then, later, we can reinstate the code that treats it as a failure. (Thanks to philippel for the feedback) 2007-12-14 15:16 +0000 [r92937] Joshua Colp * channels/chan_sip.c: Up the length of the format on the SIP channel since it can now be rather long. (closes issue #11552) Reported by: francesco_r 2007-12-14 15:05 +0000 [r92934] Christian Richter * channels/chan_misdn.c: fixed the sequencing of WAITING_4DIGS state setting and overlap_task thread starting. 2007-12-14 15:01 +0000 [r92933] Tilghman Lesher * res/res_agi.c: Change help documentation to match actual behavior (FAILURE vs FAILED). Reported by: angeloxx-sir Patch by: tilghman (Closes issue #11548) 2007-12-14 01:24 +0000 [r92875] Mark Michelson * include/asterisk/lock.h: When compiling with DETECT_DEADLOCKS, don't spam the CLI with messages about possible deadlocks. Instead just print the intended single message every five seconds. (closes issue 11537, reported and patched by dimas) 2007-12-13 21:28 +0000 [r92815] Tilghman Lesher * channels/chan_zap.c: Properly initialize polarity statuses, so that they are detected properly. Reported by: julianjm Patch by: julianjm (Closes issue #10238) 2007-12-13 20:13 +0000 [r92809] Jason Parker * main/pbx.c: Make application help text a little more clear about the use of extensions in a filename. 2007-12-13 20:03 +0000 [r92803-92807] Mark Michelson * apps/app_voicemail.c: Prevent another potential fd leak * apps/app_voicemail.c: Prevent a possible fd leak. 2007-12-13 00:11 +0000 [r92696] Jason Parker * main/config.c, channels/chan_sip.c, channels/chan_h323.c, channels/chan_iax2.c: If a typo is found in a config file, we previous continued on with what was already loaded. We do not want to do this (see bug below for details). This makes it so that if a [ is found without a ], the entire config will fail, and nothing in it will be loaded. Isue #10690. 2007-12-12 22:00 +0000 [r92656] Kevin P. Fleming * codecs/codec_zap.c: emit a warning message when we drop a G.729B CNG frame destined for the transcoder 2007-12-12 21:15 +0000 [r92617] Jason Parker * apps/app_meetme.c: Don't increment user count until after name has been recorded (if enabled). Issue 11048, tested by pep. 2007-12-12 19:40 +0000 [r92556] Russell Bryant * res/res_features.c: resolve compiler warning 2007-12-12 17:46 +0000 [r92510] Mark Michelson * res/res_features.c: Correctly detect where a dynamic feature was activated. Before this patch, the channel which initiated the bridge was always assumed to have been the one which activated the dynamic feature. This patch corrects this. (closes issue #11529, reported and patched by nic_bellamy) 2007-12-12 16:52 +0000 [r92463] Tilghman Lesher * configure, include/asterisk/autoconfig.h.in, configure.ac: Test directly for the API that fixed AST-2007-026, to ensure that older versions of PostgreSQL are no longer acceptable. (Closes issue #11526) 2007-12-12 16:08 +0000 [r92443] Mark Michelson * apps/app_queue.c: Removing an unused variable. 2007-12-11 19:51 +0000 [r92363] Joshua Colp * main/global_datastores.c: Fix potential memory leak with the dialed interfaces list if another memory allocation fails. (closes issue #11507) Reported by: eliel Patches: global_datastores.c.patch uploaded by eliel (license 64) 2007-12-11 17:42 +0000 [r92323] Mark Michelson * apps/app_queue.c: Fixing autofill to be more accurate. Specifically, if calls ahead of the current caller were ringing members (but not yet bridged) there could be available members and waiting callers who would not get matched up. The member availability checker was correctly determining the number of available members in this scenario, but the queue itself did not parallelly reflect this status on the pending calls. This commit corrects the issue. (closes issue #11459, reported by equissoftware, patched by me) 2007-12-10 16:36 +0000 [r92204] Joshua Colp * main/rtp.c: Add G729A as another possible payload name for G729. Some devices use this instead of G729, which is perfectly normal since the payload number itself is defined and can't be used by anything else so the name doesn't matter that much. (closes issue #11483) Reported by: revolution Patches: rtp.diff uploaded by revolution (license 346) 2007-12-10 16:29 +0000 [r92202] Mark Michelson * apps/app_queue.c: If there are no members in a queue, then the loop where the datastore for detecting duplicate dialed numbers will be skipped, meaning the datastore isn't created. This means that when we try to free it, there's a crash. This stops that crash from occurring. (closes issue #11499, reported by slavon, patched by eliel) 2007-12-10 16:13 +0000 [r92200] Joshua Colp * channels/chan_sip.c: It is possible for nativeformats to contain more then one codec, so print out multiple ones. (closes issue #11366) Reported by: ovi 2007-12-10 14:04 +0000 [r92158] Olle Johansson * channels/chan_sip.c: Avoid reinvite race situations with two Asterisks trying to reinvite each other in 1.4 and trunk. This patch implements support for the 491 error code that Asterisk 1.4 generates on situations where we get an incoming INVITE and already has one in progress. Thanks to mavetju for reporting and to Raj Jain for an excellent explanation of the problem. Patch by myself. Tested with 8 Asterisk servers connected to each other in a training network. Closes issue #10481 2007-12-07 23:29 +0000 [r91890] Jason Parker * main/dsp.c: We need to make sure we free the input frame if we return a different frame in ast_dsp_process. Issue 11273, pointed out by dimas, with a patch by eliel. 2007-12-07 22:30 +0000 [r91870] Kevin P. Fleming * codecs/codec_zap.c: even though Asterisk explicitly requests that endpoints using G.729 do *not* use Annex B (silence detection and comfort noise generation) some do anyway; the transcoder card interface does not currently work properly with CNG frames, so trim off the CNG before sending the data 2007-12-07 21:24 +0000 [r91777-91830] Russell Bryant * main/utils.c: Make the lock protecting each thread's list of locks it currently holds recursive. I think that this will fix the situation where some people have said that "core show locks" locks up the CLI. (related to issue #11080) * include/asterisk/lock.h: Fix another bug in the DEBUG_THREADS code. The ast_mutex_init() function had the mutex attribute object marked as static. This means that multiple threads initializing locks at the same time could step on each other and end up with improperly initialized locks. (found when tracking down locking issues related to issue #11080) * include/asterisk/lock.h: I love fixing lock related errors in the lock debugging code. That's about as ironic as it gets in Asterisk programming land. Anyway, I spotted this bug while trying to track down why systems are locking up and acting weird in issue #11080. The mutex attribute object was marked as static in this function when it should not have been. * apps/app_dial.c: * Add channel locking around datastore operations that expect the channel to be locked. * Document why we don't record Local channels in the dialed interfaces list. * Remove the dialed variable as it isn't needed. * Restructure some code for clarity and coding guidelines stuff * apps/app_queue.c: * Add channel locking around datastore operations that expect the channel to be locked. * Document why we don't record Local channels in the dialed interfaces list. * Handle memory allocation failure. * Remove the dialed variable, as it wasn't actually needed. * Tweak some formatting to conform to coding guidelines. * main/autoservice.c: * Add a bit more of a verbose comment as to why a hangup frame needs to be queued up if autoservice gets a NULL return from ast_read(). * Make the process of queueing the hangup frame more efficient by putting the frame where it is going to end up and avoiding some locking and extra memory allocations and freeing. 2007-12-07 15:39 +0000 [r91737] Mark Michelson * main/autoservice.c: Hangups that happen during autoservice were not processed appropriately. This is because a hangup actually causes a NULL frame to be received, not a hangup frame. Queueing a hangup if we receive a NULL frame during autoservice corrects this problem (closes issue #11467, reported by jmls, patched by me) 2007-12-07 02:51 +0000 [r91675-91693] Russell Bryant * apps/app_dial.c: Don't unlock the dialed_interfaces list until we're done messing with the iterator. * apps/app_dial.c, apps/app_queue.c: Allow dialing local channels from Queue() and Dial() again. There was a slight flaw in the code to prevent call forwards from looping that caused this problem. (related to issue #11486) * apps/app_queue.c: Fix in an issue in the call forwarding handling code that was causing crashes on every call into a queue. I'm not entirely sure about the logic in this part of the code, so I want to look at it some more tomorrow. However, this makes it safe and keeps it from crashing. (closes issue #11486, reported by adamg, patched by me) 2007-12-07 00:52 +0000 [r91637] Tilghman Lesher * main/rtp.c: At the end of a call, when we're reporting, RTCP may already be partially torn down, so check for NULL dereference Reported by: blitzrage Patch by: tilghman (Closes issue #11450) 2007-12-06 20:25 +0000 [r91541] Mark Michelson * apps/app_voicemail.c: IMAP storage did not honor the maxmsg setting in voicemail.conf, and it also had the possibility of crashing if a user had more than 256 messages in their voicemail. This patch kills two birds with one stone by adding maxmsg support and also setting a hard limit on the number of messages at 255 so that the crashes cannot happen. (closes issue #11101, reported by Skavin, patched by me) 2007-12-06 19:11 +0000 [r91501] Russell Bryant * main/loader.c, include/asterisk/module.h: Add a new module flag to indicate that a build sum is present. Modules built against older Asterisk 1.4 headers will now load properly with just a warning indicating that they are old and may cause problems. (patch by paravoid) 2007-12-06 16:49 +0000 [r91439-91450] Joshua Colp * main/udptl.c: Fix various in the udptl implementation. It could return empty modem frames, have an incorrect sequence number on packets, and display the wrong sequence number in the debug messages. (closes issue #11228) Reported by: Cache Patches: udptl-4.patch uploaded by dimas (license 88) * channels/chan_sip.c: Add support for accepting and sending T.38 in the initial INVITE. (closes issue #9402) Reported by: thdei 2007-12-06 12:54 +0000 [r91366] Olle Johansson * main/loader.c, include/asterisk/logger.h, main/logger.c: Make sure logger is reloaded at general reload in the cli. (Discovered during Asterisk training in Portugal) 2007-12-05 22:57 +0000 [r91273-91292] Mark Michelson * apps/app_voicemail.c: Reverting extra stuff I didn't mean to commit * apps/app_voicemail.c, apps/app_dial.c: The 'G' option for Dial() did not properly handle the case where only a label was provided. This was due to the fact that the answering channel did not have an extension set, so ast_parseable_goto would fail. This fix eliminates the call to ast_parseable_goto on the answering channel since it is a wasteful call. The answering channel and the calling channel are both directed to the same extension and context, just different priorities, so we can just copy the values from the calling channel to the answering channel and increment the answering channel's priority. (closes issue #11382, reported by jon, patch by me with correction by jon) 2007-12-05 21:38 +0000 [r91237] Tilghman Lesher * sounds/Makefile: Upgrade to the latest version of extra sounds 2007-12-05 17:31 +0000 [r90967-91192] Russell Bryant * main/threadstorage.c: Make the lock in the threadstorage debugging code untracked to avoid a deadlock on thread destruction. (closes issue #11207) Reported by: ys Patches: threadstorage.c.diff uploaded by ys (license 281) Also fixes an open bug report: (closes issue #11446) * main/utils.c: When DEBUG_THREADS is enabled, we only have the details about who is holding a lock that we are waiting on for a mutex, not rwlocks. This should fix the problem where people have reported "core show locks" crashing sometimes. * include/asterisk/lock.h: Fix some crashes in chan_iax2 that were reported as happening on Mac systems. It turns out that the problem was the Mac version of the ast_atomic_fetchadd_int() function. The Mac atomic add function returns the _new_ value, while this function is supposed to return the old value. So, the crashes happened on unreferencing objects. If the reference count was decreased to 1, ao2_ref() thought that it had been decreased to zero, and called the destructor. However, there was still an outstanding reference around. (closes issue #11176) (closes issue #11289) * include/asterisk/file.h, configure, include/asterisk/autoconfig.h.in, configure.ac, include/asterisk/compiler.h: Modify file.h to maintain API compatibility with earlier versions. If a recent compiler is being used, then a warning will show up for any modules still using the old name "private" instead of "_private". (patch suggested by paravoid) * main/pbx.c: Make some changes to some additions I made recently for doing channel autoservice when looking up extensions. This code was added to handle the case where a dialplan switch was in use that could block for a long time. However, the way that I added it, it did this for all extension lookups. However, lookups in the in-memory tree of extensions should _not_ take long enough to matter. So, move the autoservice stuff to be only around executing a switch. 2007-12-04 17:28 +0000 [r90876] Jason Parker * main/channel.c: If we fail to create a channel after allocating a timing fd, we need to make sure to close it. Issue 11454, patch by eliel. 2007-12-04 05:29 +0000 [r90798] Joshua Colp * apps/app_dial.c: Fix build issue on the build cluster. 2007-12-03 23:50 +0000 [r90736-90753] Tilghman Lesher * include/asterisk/compat.h: Solaris requires the inclusion of sys/loadavg.h for getloadavg(). Reported by: snuffy Patch by: snuffy,tilghman (Closes issue #11430) * res/res_config_pgsql.c: If both dbhost and dbsock were not set, a NULL deref could result Reported by: xrg Patch by: tilghman (Closes issue #11387) 2007-12-03 23:12 +0000 [r90735] Mark Michelson * apps/app_dial.c, main/channel.c, main/global_datastores.c (added), channels/chan_local.c, main/Makefile, include/asterisk/channel.h, include/asterisk/global_datastores.h (added), apps/app_queue.c: A big one... This is the merge of the forward-loop branch. The main change here is that call-forwards can no longer loop. This is accomplished by creating a datastore on the calling channel which has a linked list of all devices dialed. If a forward happens, then the local channel which is created inherits the datastore. If, through this progression of forwards and datastore inheritance, a device is attempted to be dialed a second time, it will simply be skipped and a warning message will be printed to the CLI. After the dialing has been completed, the datastore is detached from the channel and destroyed. This change also introduces some side effects to the code which I shall enumerate here: 1. Datastore inheritance has been backported from trunk into 1.4 2. A large chunk of code has been removed from app_dial. This chunk is the section of code which handles the call forward case after the channel has been requested but before it has been called. This was removed because call-forwarding still works fine without it, it makes the code less error-prone should it need changing, and it made this set of changes much less painful to just have the forwarding handled in one place in each module. 3. Two new files, global_datastores.h and .c have been added. These are necessary since the datastore which is attached to the channel may be created and attached in either app_dial or app_queue, so they need a common place to find the datastore info. This approach was taken in case similar datastores are needed in the future, there will be a common place to add them. 2007-12-03 22:06 +0000 [r90696] Jason Parker * apps/app_meetme.c: Make sure we always close the conference fd if we have an open one. Issue 11383, reported by markmhy, patch by eliel. 2007-12-03 20:59 +0000 [r90639] Mark Michelson * channels/chan_mgcp.c: Changing some bad logic when calculating the interdigit timeout. (closes issue #11402, reported and patched by eferro) 2007-12-03 20:51 +0000 [r90607] Jason Parker * res/res_features.c: Fix crash in ParkAndAnnounce application. Issue #11436, reported by lytledd, patch by eliel. 2007-12-03 20:05 +0000 [r90548-90588] Joshua Colp * main/rtp.c: Do not create a smoother for G723.1 frames, they need to be left alone to their native 20/24 byte size. * .cleancount, main/channel.c, include/asterisk/channel.h: Preserve the indication currently playing on a channel when a masquerade operation happens. (issue #BE-88) 2007-12-03 18:20 +0000 [r90546] Jason Parker * channels/chan_iax2.c: Only log debug messages if debug is enabled. Closes issue #11416, patch by casper. 2007-12-02 18:18 +0000 [r90470] Russell Bryant * apps/app_queue.c: The other day when I went through making changes as a result of the ao2_link() change, I added some code to set pointers to NULL after they were unreferenced. This pointed out that in this place, the object was unreferenced before the code was done using it. So, move the unref down a little bit. (crash reported by jmls on IRC) 2007-12-02 09:34 +0000 [r90432] Tilghman Lesher * main/autoservice.c: Clarify the return value on autoservice. Specifically, if you started autoservice and autoservice was already on, it would erroneously return an error. Reported by: adiemus Patch by: dimas (Closes issue #11433) 2007-11-30 19:26 +0000 [r90310-90348] Russell Bryant * main/astobj2.c, main/manager.c, include/asterisk/astobj2.h, apps/app_queue.c, channels/chan_iax2.c: Change the behavior of ao2_link(). Previously, in inherited a reference. Now, it automatically increases the reference count to reflect the reference that is now held by the container. This was done to be more consistent with ao2_unlink(), which automatically releases the reference held by the container. It also makes it so it is no longer possible for a pointer to be invalid after ao2_link() returns. * include/asterisk/astobj2.h: Add some notes on the behavior of ao2_unlink() after a discussion with Tilghman 2007-11-30 14:43 +0000 [r90269] Joshua Colp * channels/chan_sip.c: Fix locking issues under one legged replaces scenarios. (closes issue #11420) Reported by: irroot Patches: chan_sip_oneleg.patch uploaded by irroot (license 52) 2007-11-30 00:16 +0000 [r90231] Mark Michelson * channels/chan_mgcp.c: Clear the DTMF buffer if the call times out. (closes issue #11418, reported and patched by eferro) 2007-11-29 Russell Bryant * Asterisk 1.4.15 released. 2007-11-29 19:48 +0000 [r90166] Tilghman Lesher * cdr/cdr_pgsql.c: Properly escape cdr->src and cdr->dst and ensure we use thread-safe escaping (Fixes AST-2007-026) 2007-11-29 19:38 +0000 [r90163] Mark Michelson * apps/app_queue.c: This patch handles the case where a queue member with a negative penalty is added via the manager. If a negative value is submitted for a member penalty, we set it to 0. (closes issue #11411, reported and patched by Laureano) 2007-11-29 19:24 +0000 [r90154-90160] Tilghman Lesher * res/res_config_pgsql.c: Properly escape input buffers (Fixes AST-2007-025) * formats/format_g726.c, include/asterisk/file.h, formats/format_wav.c, formats/format_pcm.c, formats/format_ogg_vorbis.c, main/file.c, formats/format_h263.c, formats/format_h264.c, formats/format_wav_gsm.c: Use of "private" as a field name in a header file messes with C++ projects Reported by: chewbacca Patch by: casper (Closes issue #11401) * sounds/Makefile: Upgrade the core sounds release version 2007-11-29 00:36 +0000 [r90142-90147] Russell Bryant * funcs/func_callerid.c: fix some formatting i accidentally changed * funcs/func_callerid.c, main/channel.c, include/asterisk/channel.h: This set of changes is to make some callerID handling thread-safe. The ast_set_callerid() function needed to lock the channel. Also, the handlers for the CALLERID() dialplan function needed to lock the channel when reading or writing callerid values directly on the channel structure. * include/asterisk/file.h, main/file.c: Merge a change from team/russell/chan_refcount ... This makes ast_stopstream() thread-safe. 2007-11-28 22:59 +0000 [r90101] Joshua Colp * apps/app_queue.c: Fix a few memory leaks. (closes issue #11405) Reported by: eliel Patches: load_realtime.patch uploaded by eliel (license 64) 2007-11-28 22:30 +0000 [r90098] Kevin P. Fleming * configs/users.conf.sample, main/manager.c: it is impossible to set permissions for manager accounts created by users.conf (reported internally, patched by me) 2007-11-28 22:08 +0000 [r89999-90059] Mark Michelson * main/pbx.c: Removing some seemingly pointless code. This sets a channel variable for every priority executed in the dialplan if you have debug set to anything non-zero. This seems pointless due to the fact that these channel variables are not referenced anywhere else in the code and their names are esoteric enough that they would not be practical to reference in the dialplan. Plus the fact that this behavior isn't documented anywhere means that the change is not likely to cause any disruption. If anything, this may actually cause a slight performance increase if running with debug on. The motivating influence for this code change is the eventwhencalled option for queues. If set to vars, all channel variables will be output to the manager. These unnecessary channel variables make the output a lot more difficult to deal with. * apps/app_voicemail.c: Recording greetings when using IMAP storage was causing zero-length files to be stored. Since greetings are not retrieved from IMAP anyway, it is pointless to attempt storing them there. (closes issue #11359, reported by spditner, patched by me) 2007-11-28 00:20 +0000 [r89839-89893] Russell Bryant * main/pbx.c, include/asterisk/pbx.h: - update documentation for some of the goto functions to note that they handle locking the channel as needed - update ast_explicit_goto() to lock the channel as needed * main/autoservice.c: Don't do frame processing if ast_read() returned NULL. * apps/app_queue.c: Instead of depending on the return value of ast_true(), explicitly set the eventwhencalled variable to 1. * main/pbx.c: Don't start/stop autoservice in pbx_extension_helper() unless a channel exists 2007-11-27 23:10 +0000 [r89837] Mark Michelson * apps/app_queue.c: Two changes with regards to the 'eventwhencalled' option of queues.conf 1) Due to some signed vs. unsigned silliness, setting 'eventwhencalled' to 'vars' or 'yes' did exactly the same thing. Thus the sign change of the ast_true call. 2) The vars2manager function overwrote a \n for every channel variable it parsed, resulting in bizarre output for the channel variables. This patch remedies this. (related to issue #11385, however I'm not sure if this will actually be enough to close it) 2007-11-27 21:45 +0000 [r89790] Russell Bryant * main/autoservice.c, main/pbx.c: Merge changes from team/russell/autoservice_1.4 This set of changes fixes an issue that was reported to me on IRC yesterday. The user, d1mas, was using chan_zap for incoming calls and was having DTMF recognition issues in some situations. Specifically, he noticed that the problem occurred when using DISA or WaitExten. He also noticed that when using Read, the problem did not occur. His system also used DUNDi for dialplan lookups. So, he theorized that if the DUNDi lookups blocked for some period of time, that audio from the zap channel could get lost. If the audio got lost, then it wouldn't be run through the DTMF detector, and digits could get lost. He was correct, and the following set of changes fixes the problem. However, the changes go a little bit further than what was necessary to fix this exact problem. 1) I updated pbx_extension_helper() to autoservice the associated channel to handle cases where extension lookups may take a long time. This would normally be a dialplan switch that does some lookup over the network, such as the DUNDi or IAX2 switches. This ensures that even while a DUNDi lookup is blocking, the channel will be continuously serviced. 2) I made a change to the autoservice code. This is actually something that has bothered me for a long time. When a channel is in autoservice, _all_ frames get thrown away. However, some frames really shouldn't be thrown away. The most notable examples are signalling (CONTROL) frames, and DTMF. So, this patch queues up important frames while a channel is in autoservice. When autoservice is stopped on the channel, the queued up frames get stuck back on the channel so that they can get processed instead of thrown away. 3) I made another change to the autoservice code to handle the case where autoservice is started on channels recursively. Previously, you could call ast_autoservice_start() multiple times on a channel, and it would stop the first time ast_autoservice_stop() gets called. Now, it will ensure that autoservice doesn't actually stop until the final call to ast_autoservice_stop(). 2007-11-27 20:22 +0000 [r89727] Mark Michelson * res/res_config_pgsql.c: Changing some calls from free() to ast_free() since they were allocated with ast_calloc(). (closes issue #11390, reported and patched by Laureano) 2007-11-27 20:16 +0000 [r89701-89709] Kevin P. Fleming * main/app.c: on second thought... revert all the other changes i've made in app options parsing leaving only one: if an empty argument is supplied for an option, set that argument pointer to point to an empty string rather than NULL, so that the application can do normal checks on it without worrying about it being NULL * main/app.c: generate a warning when an application option that requires an argument is ignored due to lack of an argument 2007-11-27 16:12 +0000 [r89634] Russell Bryant * configs/voicemail.conf.sample: Add a note to the sample voicemail config noting that when using IMAP storage, only the first format specified will be attached to the message. 2007-11-27 15:38 +0000 [r89631] Tilghman Lesher * funcs/func_env.c: Default result of STAT should be "0" not "". Reported via the -users mailing list, fixed by me. 2007-11-27 15:23 +0000 [r89624-89630] Olle Johansson * main/rtp.c, channels/chan_sip.c, include/asterisk/rtp.h: If we get a codec offer using a well-known payload type, but using it for another codec that we don't know, Asterisk did not remove that codec from the list. With this patch, we remove the codec from audio and video rtp objects and deny it ever existed. Thanks to lasse for testing. (closes issue #11376) Reported by: lasse Patches: bug11376.txt uploaded by oej (license 306) Tested by: lasse * configs/sip.conf.sample: Clarify limitonpeers=yes (closes issue #11304) Reported by: pj 2007-11-27 06:24 +0000 [r89622] Steve Murphy * apps/app_dial.c, main/cdr.c, configs/cdr.conf.sample, include/asterisk/cdr.h: closes issue #11379; OK, this is an attempt to make both sides happy. To the cdr.conf file, I added the option 'unanswered', which defaults to 'no'. In this mode, you will see a cdr for a call, whether it was answered or not. The disposition will be NO ANSWER or ANSWERED, as appropriate. The src is as you'd expect, the destination channel will be one of the channels from the Dial() call, usually the last in the list if more than one chan was specified. With unanswered set to 'yes', you will still see this cdr entry in both cases. But in the case where the dial timed out, you will also see a cdr for each line attempted, marked NO ANSWER, with no destination channel name. The new option defaults to 'no', so you don't see the pesky extra cdr's by default, and you will not see the irritating 'not posted' messages. 2007-11-26 23:10 +0000 [r89616-89618] Mark Michelson * apps/app_playback.c: After issuing a "say load new", if a caller hangs up during the middle of playback of a number, app_playback will continue to try to play the remaining files. With this change, no more files will be played back upon hangup. (closes issue #11345, reported and patched by IgorG) * apps/app_playback.c: After issuing a "say load new" tons of warning messages are printed out to the CLI every time do_say in app_playback is called. Removing these warnings 2007-11-26 21:10 +0000 [r89599-89610] Joshua Colp * main/dial.c: Fix issues with async dialing with an application executing. The application has to be terminated and control returned to the thread before hanging things up. (issue #BE-252) * res/res_features.c: Add module counting removal for error conditions. (closes issue #11333) Reported by: Laureano Patches: res_features_v2.c.patch uploaded by Laureano (license 265) 2007-11-26 17:41 +0000 [r89594] Russell Bryant * main/pbx.c: Add channel locking to a function that needed to be doing it. This is just a little something I noticed while working on a completely unrelated issue. 2007-11-26 17:36 +0000 [r89587-89592] Joshua Colp * pbx/pbx_config.c: Use ast_free to free memory, or else we shall implode if MALLOC_DEBUG is enabled. (closes issue #11347) Reported by: ys Patches: pbx.pbx_config.c.diff uploaded by ys (license 281) * apps/app_mixmonitor.c: Close the audio file before sending it to the post processing application. (closes issue #11357) Reported by: reformed Patches: mixmonitor.patch uploaded by reformed (license 330) 2007-11-26 17:20 +0000 [r89586] Kevin P. Fleming * main/app.c: when parsing application options that take arguments, don't indicate that the option was supplied unless a non-zero-length argument was found for it 2007-11-26 15:48 +0000 [r89580] Mark Michelson * apps/app_voicemail.c: Revert vmu->email back to an empty string if it was empty when imap_store_file was called. This prevents sending a duplicate e-mail. (closes issue #11204, reported by spditner, patched by me) 2007-11-26 15:34 +0000 [r89571-89577] Joshua Colp * main/channel.c: If channel allocation fails because the alert pipe could not be created also free the scheduler context. (closes issue #11355) Reported by: eliel Patches: main.channel.c.patch uploaded by eliel (license 64) * apps/app_meetme.c: When unloading app_meetme destroy any auto created contexts created by SLA. (closes issue #11367) Reported by: eliel 2007-11-25 17:17 +0000 [r89559] Tilghman Lesher * res/res_odbc.c, configs/res_odbc.conf.sample, include/asterisk/res_odbc.h, res/res_config_odbc.c: We previously attempted to use the ESCAPE clause to set the escape delimiter to a backslash. Unfortunately, this does not universally work on all databases, since on databases which natively use the backslash as a delimiter, the backslash itself needs to be delimited, but on other databases that have no delimiter, backslashing the backslash causes an error. So the only solution that I can come up with is to create an option in res_odbc that explicitly specifies whether or not backslash is a native delimiter. If it is, we use it natively; if not, we use the ESCAPE clause to make it one. Reported by: elguero Patch by: tilghman (Closes issue #11364) 2007-11-24 16:59 +0000 [r89534-89545] Tilghman Lesher * res/res_adsi.c: Free some frames that would otherwise leak on error. Reported by: Laureano Patch by: Laureano,tilghman (Closes issue #11351) * apps/app_voicemail.c, main/app.c: Currently, zero-length voicemail messages cause a hangup in VoicemailMain. This change fixes the problem, with a multi-faceted approach. First, we do our best to avoid these messages from being created in the first place, and second, if that fails, we detect when the voicemail message is zero-length and avoid exiting at that point. Reported by: dtyoo Patch by: gkloepfer,tilghman (Closes issue #11083) * main/manager.c: Up until this point, the XML output of the manager has been technically invalid, due to the repetition of certain parameters in a single event. This caused various issues for XML parsers, some of which refused to parse at all, given the invalidity of the rendered XML. So this commit fixes the XML output, ensuring that each entity parameter has a unique name, thus ensuring valid XML. Reported by: msetim Patch by: tilghman (Closes issue #10220) * res/res_config_odbc.c: Use ESCAPE clause for the first parameter, not just 2nd-Nth parameters. Reported by: apsaras Patch by: tilghman (Closes issue #11353) 2007-11-22 17:29 +0000 [r89527] Russell Bryant * configs/agents.conf.sample: mvanbaak pointed out a spelling error in this sample configuration file. While I was at it, I went ahead and tweaked it a little bit more. 2007-11-21 19:27 +0000 [r89493-89495] Mark Michelson * apps/app_queue.c: Fix a small error I made in my previous commit * apps/app_queue.c: Changing an inaccurate debug message to be less inaccurate. Under the circumstances, this message would always report that there were 0 members available, even though that may not be true. 2007-11-21 18:59 +0000 [r89491] Terry Wilson * res/res_features.c: If a channel gets masqueraded in the middle of a park, don't play the announcement to the masqueraded channel, and dial back to the original channel on timeout. 2007-11-20 19:16 +0000 [r89461-89462] Kevin P. Fleming * include/asterisk/module.h: re-doxygen some comments * main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: bring back compile-option checking when loading modules, only this time use a string-based storage and comparison mechanism because it is easier to support on other platforms 2007-11-20 17:50 +0000 [r89457] Mark Michelson * main/pbx.c: According to comments in main/pbx.c, it is essential that if we are going to lock the conlock as well as the hints lock, it must be locked in that respective order. In order to prevent a potential deadlock, we need to lock the conlock prior to locking the hints lock in ast_hint_state_changed (see the call stack example on issue #11323 for how this can happen). (closes issue #11323, reported by eelcob, suggestion for patch by eelcob, patch by me) 2007-11-20 15:22 +0000 [r89450] Steve Murphy * doc/queues-with-callback-members.txt: closes issue #11324; break statements missing in switch cases. 2007-11-20 13:40 +0000 [r89445] Christian Richter * channels/chan_misdn.c: added RR patch from iroot #10908, thanks. 2007-11-19 15:53 +0000 [r89416-89419] Joshua Colp * res/res_features.c: Print out the correct filename (features.conf) in the log message when parkpos options are incorrect. (closes issue #11295) Reported by: Laureano Patches: res_features.c.patch uploaded by Laureano (license 265) * doc/localchannel.txt: Clarify documentation a bit, include that a frame has to pass through the core in order for the Local channel optimization to happen. (closes issue #11246) Reported by: jon 2007-11-16 Russell Bryant * Asterisk 1.4.14 released. 2007-11-16 22:26 +0000 [r89339] Russell Bryant * main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: Temporarily revert revision 89325, which added md5 magic for keeping track of what build options were used. We agreed that we should remove this before making a 1.4 release, and then we can put it back in. Then, we can take a month or so to play around with it to get it how we want it. 2007-11-16 16:47 +0000 [r89325] Kevin P. Fleming * main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: To help combat problems where people build external modules (asterisk-addons or others) and then change the build options of the Asterisk build in a way that makes the incompatible without warning, this commit introduces an MD5 signature of the important build-time options and includes that signature into modules when they are built. When the loader loads one of these modules and notices the problem, it will emit a warning to console and refuse to initialize the module, as doing so could cause the system to be unstable or even crash. If you upgrade to this version of Asterisk, you must rebuild *all* of your modules that came from other sources before trying to run this version. If you are using Digium's G.729 binary codec module, you will need v33 or newer. 2007-11-16 15:28 +0000 [r89323] Mark Michelson * apps/app_queue.c: Make realtime queues accessible from the QUEUE_MEMBER_COUNT function. (closes issue #11271, reported and patched by atis, with small modifications from me) 2007-11-15 18:37 +0000 [r89298-89302] Tilghman Lesher * Makefile: Start Asterisk in Debian at a more reasonable time (since zaptel is at level 20) * channels/misdn/isdn_lib.c: Fix an uninitialized memory read found by valgrind * channels/chan_iax2.c: Yet another memory corruption issue. Reported by: atis Patch by: tilghman Fixes issue #10923 2007-11-15 17:19 +0000 [r89296] Russell Bryant * apps/app_meetme.c: Update the SLAStation application to account for the case where the SLA thread has a call out to the station, but the user has pressed a line button to answer the call instead of picking up the handset. If they do, the phone sends out a new INVITE. So, the SLAStation app must check to see if it is picking up a ringing trunk, and ensure that the other stations stop ringing. (reported internally, patched by me, tested by mogorman) 2007-11-15 14:57 +0000 [r89286-89288] Mark Michelson * main/manager.c: Undoing previous commit since I realize it was wrong * main/manager.c: Adding a missing mutex unlock. (closes issue 11256, reported and patched by ys) 2007-11-15 11:26 +0000 [r89280-89281] Olle Johansson * channels/chan_sip.c: Don't send re-invites during pending INVITE transactions. Patch by one47 - thanks! Closes issue #9305 * channels/chan_sip.c: Improve support for multipart messages. Code by gasparz, changes by me (mostly formatting). Thanks, gasparz! Closes issue #10947 2007-11-14 23:23 +0000 [r89275] Tilghman Lesher * main/app.c: When a recording ends with '#', we are improperly trimming an extra 200ms from the recording. Reported by: sim Patch by: tilghman Closes issue #11247 2007-11-14 01:15 +0000 [r89260] Joshua Colp * main/srv.c: Return the proper value when the srv_callback function executes properly. (closes issue #11240) Reported by: jtodd 2007-11-13 21:07 +0000 [r89248-89254] Jason Parker * channels/chan_zap.c, channels/chan_iax2.c: Fix building on newer systems which require a third arg to open() when using O_CREAT. Issue 11238, reported by puzzled. * res/res_features.c: Revert change from revision 67064. It is documented behavior that if a parking extension already exists while using PARKINGEXTEN, dialplan execution will continue. If blind transferring to a Park with PARKINGEXTEN, you must keep this in mind, and handle the failure yourself. Issue 11237, reported by jon. 2007-11-13 17:34 +0000 [r89246] Tilghman Lesher * channels/chan_sip.c: If we set a value for qualify, we should actually pay attention to it, instead of overriding the value 2007-11-13 16:02 +0000 [r89241] Mark Michelson * apps/app_mixmonitor.c: Reverting commit made in revision 89205 since it is unnecessary. Thanks to Kevin for pointing this out 2007-11-13 13:51 +0000 [r89239] Tilghman Lesher * main/utils.c: Debugging is running into the 16-lock limit. Increase to avoid. (This define is only effective when debugging is turned on, so there's no effect for most installations.) 2007-11-13 00:56 +0000 [r89205] Mark Michelson * apps/app_mixmonitor.c: Some sanity checking for MixMonitor. If only 1 argument is given, then the args.options and args.post_process strings are uninitialized and could contain garbage. This change handles this situation properly by only using arguments that we have parsed. 2007-11-12 20:46 +0000 [r89194] Jason Parker * main/pbx.c: Fix a typo pointed out by De_Mon on #asterisk-dev 2007-11-12 20:16 +0000 [r89184-89191] Tilghman Lesher * main/config.c: If two config writes collide, file corruption could result. Use a mkstemp() file, instead. Reported by: paravoid Patch by: tilghman Closes issue #10781 * main/channel.c, channels/chan_sip.c: Fix two cases of memory corruption caused by background threads. Reported by: atis Patch by: tilghman Fixes issue #10923 2007-11-12 11:26 +0000 [r89169-89173] Christian Richter * channels/chan_misdn.c, configs/misdn.conf.sample: if we're NT and no number was dialed and overlapdial is set, we wait for the ISDN timeout instead of starting our own timer. added a comment for the misdn.conf.sample for the overlapdial config option. * channels/misdn/isdn_lib.c, channels/misdn/isdn_lib_intern.h, channels/chan_misdn.c, channels/misdn/isdn_msg_parser.c: added restart all interfaces Restart_Indicator, to automatically send a RESTART after the L2 of a PTP Port comes up. Also fixed some places where we have send a RELEASE without need for it. * channels/misdn/isdn_lib.c, channels/chan_misdn.c: fixed a state/event issue with overlapdial=yes when no extension matched. removed the general sending of a RELEASE_COMPLETE when we receive a RELEASE, this is done by mISDNuser/mISDN. This makes it possible to use asterisk-1.4 with mISDN trunk, but requires users of mISDN/mISDNuser-1.1.X to upgrade to at least mISDNuser-1.1.6 (when using the NT mode at all) * channels/misdn/isdn_lib.c: fixed the support for CW and therefore for the reject_cause option. * channels/misdn/isdn_lib.c, channels/misdn_config.c, channels/misdn/isdn_lib.h, channels/chan_misdn.c, channels/misdn/chan_misdn_config.h, configs/misdn.conf.sample: aded ntkeepcalls option, to avoid droÃpping calls when the L2 goes down on a PTP link. There are some pbx which do turn off the L1 for a very short while and restart it immediately. normally T310 should be started and after 10 seconds or so the calls should be dropped, this is a simple fix wihtout this timer. 2007-11-08 23:52 +0000 [r89125] Jason Parker * main/say.c: Properly say the seconds here.. Issue 11203, fix described by vma. 2007-11-08 21:00 +0000 [r89119] Mark Michelson * channels/chan_sip.c: Rework of the commit I made yesterday to use the already built-in ast_uri_decode function as opposed to my home-rolled one. Also added comments. Thanks to oej for pointing me in the right direction 2007-11-08 18:45 +0000 [r89115] Jason Parker * configs/res_odbc.conf.sample: Avoid warnings on load when using sample configuration files. Issue 11195, patch by eliel. 2007-11-08 16:47 +0000 [r89111] Mark Michelson * apps/app_voicemail.c: I made this same adjustment in trunk to fix a bug, and it makes sense to do it in 1.4 as well. If an imapfolder is specified in voicemail.conf, don't ever explicitly connect to INBOX since it may not exist. 2007-11-08 05:26 +0000 [r89105] Kevin P. Fleming * main/srv.c: fix a glaring bug in the new SRV record handling that would cause incorrect weight sorting 2007-11-08 04:55 +0000 [r89103] Tilghman Lesher * doc/valgrind.txt: Typo 2007-11-08 02:26 +0000 [r89095-89101] Joshua Colp * channels/chan_sip.c: Do not add a sip: to the beginning of the To URI unless needed. (closes issue #10756) Reported by: goestelecom * channels/chan_sip.c: Improve the devicestate logic for multiple devices. If any are available then the extension is considered available. (closes issue #10164) Reported by: nic_bellamy Patches: sip-hinting-svn-branch-1.4.patch uploaded by nic (license 299) * channels/chan_sip.c: Add support for allowing one outgoing transaction. This means if a response comes back out of order chan_sip will still handle it. I dream of a chan_sip with real transaction support. (closes issue #10946) Reported by: flefoll (closes issue #10915) Reported by: ramonpeek (closes issue #9567) Reported by: atca_pres * channels/chan_sip.c: If callerid is configured in sip.conf use that for checking the presence of an extension in the dialplan. (closes issue #11185) Reported by: spditner 2007-11-07 23:39 +0000 [r89093] Tilghman Lesher * apps/app_queue.c: The member refcount must be incremented, to avoid using it after deallocation. A huge thanks go to lvl- for patiently providing the necessary valgrind output that was necessary to finding this problem of memory corruption. Reported by: lvl- Patch by: tilghman Closes issue #11174 2007-11-07 22:40 +0000 [r89090] Mark Michelson * channels/chan_sip.c: This patch makes it possible for SIP phones to dial extensions defined with '#' characters in extensions.conf AND maintain their escaped characters when forming URI's (closes issue #10681, reported by cahen, patched by me, code review by file) 2007-11-07 21:40 +0000 [r89088] Steve Murphy * cdr/cdr_tds.c, pbx/pbx_ael.c, res/res_jabber.c: In response to 10578, I just ran 1.4 thru valgrind; some of the config leakage I've already fixed, but it doesn't hurt to double check. I found and fixed leaks in res_jabber, cdr_tds, pbx_ael. Nothing major, tho. 2007-11-07 15:56 +0000 [r89085] Mark Michelson * main/manager.c: Fixing a segfault in the manager "core show channels concise" command. (closes issue #11183, reported by arnd and patched by ys) 2007-11-07 04:07 +0000 [r89079] Tilghman Lesher * configs/extensions.ael.sample: Suppress AEL warnings on load. Reported by: eliel Patch by: eliel Closes issue #11178 2007-11-06 20:18 +0000 [r89053] Russell Bryant * res/res_musiconhold.c: Fix init_classes() so that classes that actually do have files loaded aren't treated as empty, and immediately destroyed ... 2007-11-06 19:09 +0000 [r89046] Jason Parker * codecs/codec_zap.c: Correctly set the total number of channels from a zaptel transcoder board. SPD-49, patch by Matthew Nicholson. 2007-11-06 19:09 +0000 [r89045] Tilghman Lesher * include/asterisk/lock.h: We went to the trouble of creating a method of tracking failed trylocks, then never turned it on (oops). 2007-11-06 18:53 +0000 [r89042] Olle Johansson * main/tdd.c: Bug fixes to tdd support in zaptel. 2007-11-06 18:20 +0000 [r89037] Russell Bryant * res/res_musiconhold.c: If someone were to delete the files used by an existing MOH class, and then issue a reload, further use of that class could result in a crash due to dividing by zero. This set of changes fixes up some places to prevent this from happening. (closes issue #10948) Reported by: jcomellas Patches: res_musiconhold_division_by_zero.patch uploaded by jcomellas (license 282) Additional changes added by me. 2007-11-06 17:52 +0000 [r89036] Steve Murphy * main/config.c: closes issue #8786 - where the [catname](!) and [catname](othercat1,othercat2,...) notation gets dropped across a ConfigUpdate (or any other thing that would cause a config file to be written). While I was at it, I also cleaned up some of the destroy routines to free up comments, which was not being done. Made sure the new struct I introduced is also cleaned up properly at destruction time. My code handles multiple template inclusions. Many thanks to ssokol for his patch, which, while not literally used in the final merge, served as a foundation for the fix. 2007-11-06 17:08 +0000 [r88994-89032] Joshua Colp * channels/chan_sip.c: Make it so that if a peer is determined to be unreachable using qualify their devicestate will report back unavailable. (closes issue #11006) Reported by: pj * channels/chan_zap.c: Fix improbable but possible memory leaks in chan_zap. (closes issue #11166) Reported by: eliel Patches: chan_zap.c.patch uploaded by eliel (license 64) 2007-11-06 13:50 +0000 [r88931] Russell Bryant * include/asterisk/lock.h: Remove some checks to see if locks are initialized from the non-DEBUG_THREADS versions of the lock routines. These are incorrect for a number of reasons: - It breaks the build on mac. - If there is a problem with locks not getting initialized, then the proper fix is to find that place and fix the code so that it does get initialized. - If additional debug code is needed to help find the problem areas, then this type of things should _only_ be put in the DEBUG_THREADS wrappers. 2007-11-06 02:52 +0000 [r88862] Kevin P. Fleming * include/asterisk/srv.h: update comment to match the state of the code 2007-11-05 23:29 +0000 [r88826] Mark Michelson * main/channel.c: Reworked deadlock avoidance in __ast_read. Restored audio to callback agents. (closes issue #11071, reported by callguy, patched by me, tested by callguy and Ted Brown) 2007-11-05 22:07 +0000 [r88709-88805] Russell Bryant * main/pbx.c, include/asterisk/pbx.h: After seeing crashes related to channel variables, I went looking around at the ways that channel variables are handled. In general, they were not handled in a thread-safe way. The channel _must_ be locked when reading or writing from/to the channel variable list. What I have done to improve this situation is to make pbx_builtin_setvar_helper() and friends lock the channel when doing their thing. Asterisk API calls almost all lock the channel for you as necessary, but this family of functions did not. (closes issue #10923, reported by atis) (closes issue #11159, reported by 850t) * channels/chan_sip.c: When traversing the list of channel variables here in transmit_invite(), the asterisk channel must be locked, as this data may change at any time. (I have seen numerous reports of crashes related to the handling of channel variables. There are a couple of issues on the bug tracker related to it, but it has also been noted on IRC and mailing lists. So, I am finding and fixing some places where channel variables are handled improperly.) * channels/chan_sip.c: Fix up some indentation. * main/srv.c, include/asterisk/srv.h: Merge changes from asterisk/team/kpfleming/SRV-priority-handling Previously, the SRV record support in Asterisk was broken. There was no guarantee on what record Asterisk would choose to actually use. This set of changes improves the situation by ensuring that Asterisk will choose the highest priority record. * main/channel.c: Merge the last bit of changes from asterisk/team/russell/readq-1.4 The issue here is that the channel frame readq handling got broken when the code was converted to use the linked list macros. It caused corruption of the list head and tail pointers. So, I fixed up the usage of the linked list macros and in passing, simplified the code. I also documented what the code is doing, as it was a bit difficult to figure out at first. This bug showed itself with crashes showing messed up head/tail pointers for the readq. However, there are a couple of crashes that aren't quite as obvious, but I think may be related. So, if your bug gets closed by this commit, but you still have a problem, please reopen or create a new bug report. (closes issue #10936) (closes issue #10595) (closes issue #10368) (closes issue #11084) (closes issue #10040) (closes issue #10840) 2007-11-05 18:47 +0000 [r88671] Joshua Colp * channels/chan_sip.c: If a SIP channel is put on hold multiple times do not keep incrementing the onHold value. (closes issue #11085) Reported by: francesco_r Tested by: blitzrage (closes issue #10474) Reported by: acennami 2007-11-05 17:46 +0000 [r88624] Russell Bryant * main/channel.c: Fix up datastore handling in ast_do_masquerade(). The code is intended to move any channel datastores from the old channel to the new one. However, it did not use the linked list macros properly to accomplish the task. The existing code would only work if there was only a single datastore on the old channel. 2007-11-05 17:19 +0000 [r88585] Jason Parker * channels/chan_sip.c: Make sure we destroy the config structure on configuration failure. Issue 11163, patch by eliel. 2007-11-05 16:20 +0000 [r88539] Tilghman Lesher * res/res_odbc.c: Don't check used pooled connections for connection status, as it will cause issues for prepared queries. Reported by: Nick Gorham (via -dev list) Patch by: tilghman 2007-11-04 22:38 +0000 [r88471] Luigi Rizzo * include/asterisk/stringfields.h, main/channel.c, apps/app_meetme.c, channels/chan_sip.c, channels/chan_iax2.c: Rename ast_string_field_free_pool to ast_string_field_free_memory, and ast_string_field_free_all to ast_string_field_reset_all to avoid misuse (due to too similar names and an error in documentation). Fix two related memory leaks in app_meetme. No need to merge to trunk, different fix already applied there. Not applicable to 1.2 2007-11-02 20:49 +0000 [r88328-88366] Joshua Colp * channels/chan_sip.c: Make subscribecontext behave as advertised. It will now look for the presence of a hint in the given context (be it subscribecontext or context). (closes issue #10702) Reported by: slavon * channels/chan_sip.c: If an INFO request within a dialog is received with a content length of 0 simply send back a 200 OK. It is valid to do this and the remote side is probably using it to make sure the signalling is still alive. (closes issue #5747) Reported by: chandi Patches: infofix-81430-1.patch uploaded by IgorG (license 20) 2007-11-02 16:51 +0000 [r88283] Jason Parker * main/say.c: We need to make sure to specify a language to ast_fileexists, otherwise it may fail for anything besides en Issue 11147, fix discovered by both citats and myself (independently), with input from Corydon76 2007-11-02 13:03 +0000 [r88116-88210] Tilghman Lesher * include/asterisk/lock.h: Fix build on Solaris Reported by: snuffy Patch by: ys Closes issue #11143 * doc/valgrind.txt (added): Add some notes on using valgrind 2007-11-01 16:21 +0000 [r88078] Jason Parker * channels/chan_zap.c: Make sure we set the poll fds to NULL after free()ing it. Part of issue 11017, patch by tzafrir. 2007-11-01 13:27 +0000 [r87970-88026] Joshua Colp * apps/app_meetme.c: Fix up commit for my Zap channel with spies in Meetme fix. (thanks Tony Mountifield!) * apps/app_meetme.c: If a Zap channel contains a spy or a spy is added take it out of the conference in kernel space and make it go through Asterisk so the spy gets audio from both sides. (closes issue #10060) Reported by: mparker 2007-10-31 21:23 +0000 [r87906-87908] Jason Parker * res/res_jabber.c: Make sure we free some allocated memory before returning. Issue 11131, patch by eliel. * channels/chan_gtalk.c: Don't try to allocate memory that we're just going to re-allocate later anyways. Issue 11130, patch by eliel. 2007-10-31 18:03 +0000 [r87852] Tilghman Lesher * Makefile: Create samples for ALL of the available options in asterisk.conf 2007-10-31 17:49 +0000 [r87775-87849] Steve Murphy * pbx/pbx_config.c: closes issue #11108 -- where the 'dialplan save' cli command saves a file where the semicolon is not escaped. Fixed this; User also wanted comments to be preserved across dialplan save, but this is impossible at this point in time, because comments are not stored in the dialplan. They are 'compiled' out of extensions.conf. The only way to preserve those comments is to use the config file reader/writer that the GUI uses to allow online user edits. extensions.conf is first and foremost, a config file, and is read in by the normal config-file reading routines. Then, it is processed into a dialplan (context/exten structs). * pbx/pbx_ael.c: Included some verbage in the check_includes func, to inform the user that included contexts that have no match in the AEL, might be OK, as AEL cannot check in the extensions.conf or the in-memory contexts, as they may not be there at the time of the check. 2007-10-30 23:02 +0000 [r87739] Tilghman Lesher * include/asterisk/lock.h: Fix for uninitialized mutexes on *BSD Reported by: ys Fixed by: ys Closes issue #11116 2007-10-30 21:19 +0000 [r87686] Russell Bryant * channels/chan_iax2.c: Merge the changes from team/russell/iax2_poke_fix and iax2-poke-fix-trunk There was a race condition related to the handling of POKEing peers. Essentially, a reference to a peer is held by the scheduler when there are pending callbacks, but the reference count didn't reflect it. So, it was possible for a peer to hit a reference count of zero and have its destructor begin to be called at the same time that the scheduler thread ran a POKE related callback. If that happened, a crash would likely occur. (closes issue #11082, closes issue #11094) 2007-10-30 20:29 +0000 [r87650] Jason Parker * channels/Makefile: Only try to clean out h323/ if the h323/Makefile exists. 2007-10-30 16:13 +0000 [r87571] Joshua Colp * res/res_features.c: Add two more checks before printing out a warning message about bridging. If either channel has hungup of course the bridge will have failed. (closes issue #10009) Reported by: dimas 2007-10-30 15:45 +0000 [r87567] Jason Parker * main/editline/np/vis.c: Fix build of editline on Solaris. Issue 11113, patch by snuffy. 2007-10-30 15:10 +0000 [r87534] Joshua Colp * apps/app_followme.c: Return 1.4 to a state where it builds. Changing the arguments to a function and not changing where they are used is bad, mmmk? 2007-10-30 14:31 +0000 [r87514] BJ Weschke * apps/app_followme.c: Fix issue where the recorded name wasn't getting removed correctly. (closes issue #11115) Reported by: davevg Patches: followme-v3.diff 2007-10-29 22:13 +0000 [r87460-87465] Kevin P. Fleming * codecs/gsm: missed one directory * codecs/ilbc, formats, utils/Makefile, agi/Makefile, funcs, codecs/lpc10, main/db1-ast, main/editline, main, codecs/ilbc/Makefile, pbx, res, channels, main/db1-ast/Makefile, codecs/lpc10/Makefile, utils, codecs, agi, main/editline/Makefile.in, apps, Makefile.moddir_rules, cdr: clean up (and ignore) assembler and preprocessor intermediate files if any are created during the build * Makefile: don't put '-pipe' into ASTCFLAGS if '-save-temps' is already there (used when debugging preprocessor issues) because the compiler will whine about each compile command 2007-10-29 21:06 +0000 [r87427] Mark Michelson * apps/app_voicemail.c: Removing a completely unnecessary quota check from IMAP code. 2007-10-29 20:22 +0000 [r87373-87396] Russell Bryant * main/utils.c, include/asterisk/lock.h: Add some more details to the output of "core show locks". When a thread is waiting for a lock, this will now show the details about who currently has it locked. (inspired by issue #11100) * main/astmm.c: Remove a lock that doesn't make any sense. The regions lock needs to be held when traversing the list of allocated chunks so that they can be printed out to the CLI. (Thanks to eliel on #asterisk-dev for pointing this out!) 2007-10-29 17:20 +0000 [r87342] Joshua Colp * channels/chan_sip.c: Fix issue where if both sides of the dialog cancelled the dialog at the same time chan_sip could kepe retransmitting a response for no reason. (closes issue #9566) Reported by: atca_pres Patches: bug9566.patch uploaded by oej 2007-10-29 17:13 +0000 [r87340] Jason Parker * funcs/func_realtime.c, funcs/func_cut.c: Allow some function modules to compile under dev mode. Issue 11104, patch by andrew. 2007-10-29 14:23 +0000 [r87294] Joshua Colp * main/utils.c: Fix issue with ast_unescape_semicolon going into an endless loop. (closes issue #10550) Reported by: ramonpeek Patches: unescape-85177-1.patch uploaded by IgorG (license 20) 2007-10-28 13:46 +0000 [r87262] Tilghman Lesher * funcs/func_realtime.c, funcs/func_odbc.c, funcs/func_strings.c, funcs/func_cut.c: Add autoservice to several more functions which might delay in their responses. Also, make sure that func_odbc functions have a channel on which to set variables. Reported by russell Fixed by tilghman Closes issue #11099 2007-10-26 16:34 +0000 [r87168] Steve Murphy * pbx/ael/ael-test/ref.ael-test19, pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/ael/ael_lex.c, pbx/pbx_ael.c, include/asterisk/ael_structs.h, pbx/ael/ael.tab.h, utils/ael_main.c, pbx/ael/ael-test/ref.ael-test16, pbx/ael/ael.flex: closes issue #11086 where a user complains that references to following contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config, 2007-10-26 13:54 +0000 [r87120] Tilghman Lesher * funcs/func_curl.c: The addition of autoservice to func_curl additionally made func_curl dependent on the existence of a channel, with no real reason. This should make func_curl once again work without a channel. Reported by jmls. Fixed by tilghman. Closes issue #11090 2007-10-25 23:03 +0000 [r87069] Kevin P. Fleming * main/channel.c, include/asterisk/linkedlists.h: appending one list to another should leave the first list empty, and not require the user to do that 2007-10-25 22:53 +0000 [r87067] Tilghman Lesher * funcs/func_cut.c: Backport alternate encoding of newline delimiters from trunk to 1.4, as approved by Russell Reported by blitzrage Closes issue #10903 2007-10-24 20:56 +0000 [r86982] Jason Parker * channels/chan_zap.c: Correctly respect hidecalleridname configuration option. Simplify code slightly in the process. Issue 11079, reported by ddv2005 2007-10-24 04:14 +0000 [r86880-86936] Steve Murphy * pbx/ael/ael.tab.c, pbx/ael/ael.y: closes issue #11037 -- unable to specify app:spec in hint arguments * funcs/func_logic.c: closes issue #11052 -- where nothing after the ? will allow un-initialized variable values to corrupt and crash asterisk on 64-bit platforms * main/Makefile: this update to Makefile corrects how ast_expr2f.c should be generated * main/ast_expr2f.c: This should get rid of a really, really irritating warning generated by some 64-bit platforms from libc, where free(0) is frowned upon 2007-10-22 21:36 +0000 [r86836] Russell Bryant * include/asterisk/lock.h: If lock tracking is not enabled, then we can not attempt to log any mutex failures. If so, we could end up in infinite recursion. The only lock that is affected by this is a mutex in astmm.c used when MALLOC_DEBUG is enabled. (closes issue #11044) Reported by: ys Patches: lock.h.diff uploaded by ys (license 281) 2007-10-22 17:38 +0000 [r86787] Tilghman Lesher * main/astmm.c: Minor FreeBSD build fix 2007-10-22 16:35 +0000 [r86754-86756] Joshua Colp * channels/chan_sip.c: After reading online I have confirmed that Record-Route headers should be copied to 1xx responses as well. (closes issue #10113) Reported by: makoto * apps/app_controlplayback.c: Make sure res is a positive value before performing the check to determine whether the user stopped it or not. (closes issue #11023) Reported by: cfc 2007-10-22 15:52 +0000 [r86726-86750] Russell Bryant * main/channel.c: Don't leak a frame in the case that an END frame is received and the time since the BEGIN is less than that of the defined minimum DTMF duration. (closes issue #11051) Reported by: casper Patches: channel.c.86664.diff uploaded by casper (license 55) * include/asterisk/lock.h: Update the static mutex initializer to include the initialization of the internal mutex used to protect the lock debugging data. (closes issue #11044, patch suggested by Ivan) 2007-10-22 14:48 +0000 [r86694] Mark Michelson * apps/app_voicemail.c: Account for the fact that sometimes headers may be terminated with \r\n instead of just \n (closes issue #11043, reported by yehavi) 2007-10-22 14:27 +0000 [r86630-86663] Joshua Colp * main/channel.c: Move log message to before the frame it references is freed. (closes issue #11050) Reported by: slavon Patches: channel.c.86662.diff uploaded by casper (license 55) * pbx/pbx_dundi.c: Fix tab completion for dundi show peer. (closes issue #11041) Reported by: jsmith Patches: asterisk-dundicomplete.diff.txt uploaded by jamesgolovich (license 176) * main/loader.c: Fixes for building under OpenSolaris. (closes issue #11047) Reported by: snuffy Patches: 11047-fixes.diff uploaded by snuffy (license 35) 2007-10-22 09:21 +0000 [r86598] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: we send DISCONNECT instead of RELEASE/RELEASE_COMPLETE if the dialplan does not match after an overlap call. Also added out_cause=1 2007-10-19 16:38 +0000 [r86469-86502] Joshua Colp * main/app.c: When returning a DTMF digit from ast_control_streamfile cast it as a char so that 0 does not overlap with the success return code. (closes issue #11023) Reported by: cfc * channels/chan_sip.c: Fix two issues with domains and transfers. If a port was given in the hostname it was treated as part of the hostname. If domains were configured but external domains were not enabled all transfers would be considered remote. (closes issue #11027) Reported by: ramonpeek Patches: 11027-1.diff uploaded by ramonpeek (license 266) * channels/chan_sip.c: Set port number in received as information for registrations as well. (closes issue #11028) Reported by: brad-x 2007-10-19 01:45 +0000 [r86438] TransNexus OSP Development * apps/app_osplookup.c: Fixed OSP module did not report source/devinfo IP in correct format. 2007-10-18 22:01 +0000 [r86405-86406] Jason Parker * Makefile: Correct documentation. I removed the wrong line.. * Makefile: Add documentation for options in asterisk.conf Issue 11029, patch by eserra 2007-10-18 21:16 +0000 [r86330-86372] Russell Bryant * configs/iax.conf.sample, channels/chan_iax2.c: Revert erroneous commit. * configs/iax.conf.sample, channels/chan_iax2.c: Add support for setting the maximum trunk size for IAX2 trunking * main/channel.c, include/asterisk/channel.h: The channel needs to stay locked while running timer callbacks, as they access and modify channel data that may change elsewhere. I went through every timer callback in the source tree to make sure that none of them did any additional locking that could introduce deadlocks, and all is well. (closes issue #10765) Reported by: Ivan Patches: ast_1_4_11_svn_patch_channel_rc.diff uploaded by Ivan (license 229) 2007-10-18 17:38 +0000 [r86328] Mark Michelson * apps/app_queue.c: If a non-existent file is specified to be played either as a periodic announcement or as a hold/position announcement, the caller would be kicked out of the queue. No longer does this happen. 2007-10-18 15:45 +0000 [r86237-86296] Russell Bryant * codecs/codec_zap.c: Execute the RELEASE operation on transcoder channels in the destroy callback. (patch from jsloan) * main/utils.c: Revert a change that I made for issue #10979 which, as has been pointed out to me in issue #11018, doesn't really make sense. There is no reason to have the base64 decode function force a '\0' terminated buffer, when the result is almost always binary, anyway. In fact, this caused some breakage, as some code in res_crypto passed in a buffer exactly the right size to get its binary result, which got stomped on by this patch. (closes issue #11018, reported by dimas) 2007-10-17 21:39 +0000 [r86202] Mark Michelson * apps/app_queue.c: Changing the strategy field of the call_queue struct to be signed instead of unsigned, since the code attempts to set the strategy to -1 if you specify a bogus strategy. While this isn't a huge issue in 1.4, it could be a problem for someone who, say, tries to use the roundrobin strategy in trunk (despite all the deprecation warnings in 1.4). 2007-10-17 17:57 +0000 [r86149] Russell Bryant * channels/chan_sip.c: If Asterisk is in the middle of shutting down, respond to OPTIONS with 503 Unavailable. (closes issue #10994) Reported by: eserra Patches: sip-options-503.patch uploaded by eserra (license 45) 2007-10-17 16:58 +0000 [r86117] Joshua Colp * channels/chan_sip.c: Whoops, forgot to remove the original sip_scheddestroy. (closes issue #11010) Reported by: vadim 2007-10-17 15:23 +0000 [r86066] Tilghman Lesher * main/asterisk.c: When runuser/rungroup is specified, a remote console could only be attained by root (Closes issue #9999) 2007-10-17 15:06 +0000 [r86063] Joshua Colp * channels/chan_sip.c: Don't schedule dialog destruction if a MESSAGE is received using an existing dialog. (closes issue #11010) Reported by: vadim 2007-10-16 23:35 +0000 [r86028-86032] Mark Michelson * configs/queues.conf.sample: Since monitor-join is deprecated now, remove the example from the sample queues.conf file * UPGRADE.txt: Updating UPGRADE.txt to reflect the deprecation of the monitor-join queue option * apps/app_queue.c: Adding deprecated warning to monitor-join option, since the plan is to no longer support this in favor of monitor-type = mixmonitor (related to issue #10885) 2007-10-16 22:36 +0000 [r85994-85997] Russell Bryant * include/asterisk/lock.h: really picky formatting tweak ... * include/asterisk/lock.h: Some locking errors exposed the fact that the lock debugging code itself was not thread safe. How ironic! Anyway, these changes ensure that the code that is accessing the lock debugging data is thread-safe. Many thanks to Ivan for finding and fixing the core issue here, and also thanks to those that tested the patch and provided test results. (closes issue #10571) (closes issue #10886) (closes issue #10875) (might close some others, as well ...) Patches: (from issue #10571) ivan_ast_1_4_12_rel_patch_lock.h.diff uploaded by Ivan (license 229) - a few small changes by me 2007-10-16 21:14 +0000 [r85958] Mark Michelson * apps/app_queue.c: Trying to remove a non-dynamic queue member via dynamic means can lead to some interesting (read nasty) situations. This patch clears up the issue by making only dynamic queue members removable via dynamic methods. 2007-10-16 19:41 +0000 [r85921] Tilghman Lesher * main/stdtime/localtime.c: Also set up gmtoff (this is used in the %z gnu extension to strftime) Reported and fixed by jcmoore Closes issue #11002 2007-10-16 19:10 +0000 [r85896] Russell Bryant * apps/app_voicemail.c: Remove a pointless lock. 2007-10-16 15:21 +0000 [r85852] Mark Michelson * apps/app_queue.c: Fixing a double free which happens in the statechange thread. (closes issue #10987, reported by andrew) 2007-10-16 14:52 +0000 [r85818-85850] Joshua Colp * apps/app_hasnewvoicemail.c: Check to make sure a value has been given to the VMCOUNT dialplan function. (closes issue #10996) Reported by: marsosa * main/threadstorage.c: Fix memory allocation issue in threadstorage. (closes issue #10995) Reported by: snuffy Patches: new-patch.diff uploaded by snuffy (license 35) 2007-10-16 10:46 +0000 [r85800] Philippe Sultan * channels/chan_gtalk.c: Fix the output for this channel help CLI command 2007-10-15 21:10 +0000 [r85717-85720] Russell Bryant * apps/app_queue.c: Ensure that no pending state changes are leaked when the device state change thread gets stopped on module unload. * apps/app_queue.c: Previously, app_queue created a thread to handle every single device state change. I changed this a while ago in trunk for performance reasons. However, bug 8407 points out that it is actually a race condition, causing device state changes to get processed in random order. So, I backported my changes from trunk to 1.4. (closes issue #8407, patch provided by tim_ringenbach, committed patch by me) 2007-10-15 20:29 +0000 [r85687] Tilghman Lesher * apps/app_stack.c: Don't execute a gosub if the arguments is zero-len (not just NULL) Reported by davevg Fixed by me Closes issue #10985 2007-10-15 20:21 +0000 [r85686] Russell Bryant * main/say.c: Add a small fix for the tw version of saying dates. (closes issue #7827) Reported by: sharkey Patches: say.nits.patch uploaded by sharkey (license 172) 2007-10-15 20:15 +0000 [r85684] Jason Parker * Makefile: Properly use DESTDIR in 'config' target. Do not try to run chkconfig or similar if using DESTDIR. Issue 10938, patch by cabal95. 2007-10-15 19:22 +0000 [r85604-85649] Russell Bryant * main/utils.c: Be pedantic about handling memory allocation failure. * main/utils.c: The loop in the handler for the "core show locks" could potentially block for some amount of time. Be a little bit more careful and prepare all of the output in an intermediary buffer while holding a global resource. Then, after releasing it, send the output to ast_cli(). * channels/chan_sip.c: Make the default for the srvlookup option to be yes. It doesn't really make sense for it to default to off. The default configuration file has it on, and proper RFC behavior, as indicated by a comment in the code, is for it to be on. So, let's have it on by default to make lives easier. (closes issue #10954, suggested by jtodd) 2007-10-15 16:39 +0000 [r85571] Joshua Colp * configs/features.conf.sample: Document that DTMF based features only work when two channels are bridged together. (closes issue #10773) Reported by: pbayley 2007-10-15 16:34 +0000 [r85561] Russell Bryant * include/asterisk/strings.h: Make a few changes so that characters in the upper half of the ISO-8859-1 character set don't get stripped when reading configuration. (closes issue #10982, dandre) 2007-10-15 16:22 +0000 [r85559] Joshua Colp * main/rtp.c: Bring both DTMF begin and end frames up through to the core for DTMF feature handling. (closes issue #10826) Reported by: dimas 2007-10-15 15:40 +0000 [r85556] Russell Bryant * pbx/pbx_dundi.c: Ensure the buffer passed to ast_canmatch_extension() is properly initialized so that it is null terminated. (issue #10977) Reported by: dimas Patches: pbxdundi.patch uploaded by dimas (license 88) - small mods by me 2007-10-15 14:55 +0000 [r85552] Joshua Colp * main/rtp.c: If Monitor or a spy was added to a P2P or native bridged channel bring the channel back to the generic bridging core so the monitor or spy operations work. (closes issue #10943) Reported by: julianjm 2007-10-15 13:16 +0000 [r85540-85548] Russell Bryant * main/db.c: Suppress a LOG_DEBUG message if debug is not enabled. (closes issue #10980) Reported by: casper Patches: db.c.84633.diff uploaded by casper (license 55) * main/asterisk.c: Make sure remote consoles unmute themselves again after reconnecting. (closes issue #10847) Reported by: atis Patches: console_unmute_on_reconnect.patch uploaded by atis (license 242) * main/utils.c: Make sure that the base64 decoder returns a terminated string. (closes issue #10979) Reported by: ys Patches: util.c.diff uploaded by ys (license 281) - small mods by me * pbx/pbx_config.c: Don't create the context for users in users.conf until we know at least one user exists. (closes issue #10971) Reported by: dimas Patches: pbxconfig.patch uploaded by dimas (license 88) 2007-10-13 15:26 +0000 [r85536] Tilghman Lesher * configs/extensions.ael.sample: Remove deprecated syntax from sample ael file Reported and patched by: dimas Closes issue #10967 2007-10-13 05:48 +0000 [r85532-85533] Russell Bryant * main/asterisk.c, main/cli.c, include/asterisk/logger.h: Fix an issue with console verbosity when running asterisk -rx to execute a command and retrieve its output. The issue was that there was no way for the main Asterisk process to know that the remote console was connecting in the -rx mode. The way that James has fixed this is to have all remote consoles muted by default. Then, regular remote consoles automatically execute a CLI command to unmute themselves when they first start up. (closes issue #10847) Reported by: atis Patches: asterisk-consolemute.diff.txt uploaded by jamesgolovich (license 176) * main/asterisk.c, main/cli.c, include/asterisk/cli.h: Properly handle the case where read() may return the text for more than one CLI command at once for a remote console. (closes issue #10888) Reported by: jamesgolovich Patches: asterisk-climultiple.diff.txt uploaded by jamesgolovich (license 176) 2007-10-12 18:30 +0000 [r85523] Tilghman Lesher * doc/asterisk-mib.txt, doc/PEERING, LICENSE: Change Digium address 2007-10-12 15:45 +0000 [r85515-85517] Russell Bryant * res/res_smdi.c: Fix a spelling error in a log message. SMDI, not SDMI. (closes issue #10959) * pbx/pbx_realtime.c: Fix the potential use of an uninitialized buffer in a log message. (closes issue #10958) Reported by: dimas Patches: realtime.patch uploaded by dimas (license 88) 2007-10-11 15:26 +0000 [r85397] Joshua Colp * channels/chan_sip.c: When creating a new packet don't try to stop retransmission of it. It was just allocated/created so it's impossible for it to have already been scheduled. (closes issue #10945) Reported by: flefoll Patches: chan_sip.c.br14.85280.xmit_reliable-patch uploaded by flefoll (license 244) 2007-10-11 04:35 +0000 [r85356] Tilghman Lesher * main/pbx.c: A dollar sign by itself, not indicating a start of a variable or expression prematurely ends substitution (closes issue #10939) 2007-10-10 Russell Bryant * Asterisk 1.4.13 released. 2007-10-10 15:56 +0000 [r85316] Russell Bryant * include/asterisk/file.h: I introduced a new member to the ast_filestream struct in 1.4.12, but put it in the middle of the struct, instead of at the end. One of the Debian folks, paravoid, pointed out that this breaks binary compatability with modules compiled against older headers. So, I'm moving the new member to the end of the struct to resolve the situation. 2007-10-10 15:51 +0000 [r85315] Mark Michelson * main/utils.c: The thread ID should be unsigned. 2007-10-10 14:42 +0000 [r85277-85280] Joshua Colp * channels/chan_sip.c: If devicestate is passed a port number strip it out. (closes issue #10930) Reported by: ibc * channels/chan_sip.c: Add support for handling a 182 Queued response. (closes issue #10924) Reported by: ramonpeek Patches: queued-182.diff uploaded by ramonpeek (license 266) 2007-10-10 14:26 +0000 [r85276] Mark Michelson * apps/app_voicemail.c: A bunch of changes from sprintf to snprintf. See security advisory AST-2002-022 2007-10-10 14:14 +0000 [r85242] Joshua Colp * apps/app_voicemail.c: Close voicemail message description file if duration did not meet the minimum, or else we will eventually run out of file descriptors. (closes issue #10918) Reported by: brak2718 Patches: vm1.4.12.1.patch uploaded by brak2718 (license 279) 2007-10-10 06:24 +0000 [r85195] Kevin P. Fleming * include/asterisk/frame.h: use a macro instead of an inline function, so that backtraces will report the caller of ast_frame_free() properly 2007-10-09 21:55 +0000 [r85158] Tilghman Lesher * main/channel.c, main/utils.c, include/asterisk/lock.h: This commit fixes the following issues: - Deadlock in ast_write (issue #10406) - Deadlock in ast_read (issue #10406) - Possible mutex initialization error in lock.h (issue #10571) 2007-10-09 14:30 +0000 [r84990-85093] Joshua Colp * channels/chan_sip.c: Don't perform a reinvite if a transfer is in progress. (issue #10915) Reported by: ramonpeek * main/rtp.c: Only update codec information if the channel has a technology private structure. (issue #10915) Reported by: ramonpeek * main/rtp.c: Update codec information as well as address when doing hold reinvites. (issue #10868) Reported by: mavince * main/channel.c: Don't keep trying to native bridge if either of the channels are involved in a masquerade operation to be done. (closes issue #10696) Reported by: tbelder 2007-10-08 03:28 +0000 [r84957] Russell Bryant * Makefile.rules: Enable file dependency tracking for _all_ builds, and not just for builds with dev-mode enabled. I have seen enough problems caused by this that I don't think it's worth keeping. I want to continue to encourage anybody that is interested to continue to run Asterisk from svn. Furthermore, I do not want their systems to break when we change a structure definition in a header file. :) 2007-10-07 16:15 +0000 [r84890-84902] Philippe Sultan * res/res_jabber.c: Presence packets from a client who's connected with our Jabber ID are valid, therefore, those clients must be considered as buddies. The resource string helps us make the distinction between clients. Closes issue #10707, reported by yusufmotiwala. * res/res_jabber.c: Prevent Asterisk from crashing when receiving a presence packet without resource from a buddy that is known to have a resource list. Revert a change I previously made, where Asterisk could point to a freed memory location. 2007-10-05 19:42 +0000 [r84851] Tilghman Lesher * main/db.c: Log exactly why we can't open the database, if we fail (closes issue #10887) 2007-10-05 18:55 +0000 [r84818] Joshua Colp * main/rtp.c: Update the remembered RTP peer information when putting an endpoint on hold or taking it off hold so that the RTP stack does not initiate a needless reinvite. (closes issue #10868) Reported by: mavince 2007-10-05 16:44 +0000 [r84783] Russell Bryant * channels/chan_zap.c: Do deadlock avoidance in a couple more places. You can't lock two channels at the same time without doing extra work to make sure it succeeds. (closes issue #10895, patch by me) 2007-10-05 Russell Bryant * Asterisk 1.4.12.1 released. (This is mainly to include the app_queue fix for a memory leak on reload, but includes a couple of other bug fixes, as well.) 2007-10-05 01:39 +0000 [r84742] Russell Bryant * main/manager.c: Fix a copy/paste error in the description of UpdateConfig that was pointed out by JerJer on #asterisk-dev 2007-10-04 21:57 +0000 [r84692] Mark Michelson * apps/app_queue.c: Don't allocate space for queue members unless it's needed. You end up deleting dynamic members on a reload. Not good. closes issue (#10879, reported by dazza76, patched by me) 2007-10-04 21:36 +0000 [r84690] Kevin P. Fleming * channels/chan_zap.c: callers of sig2str already add the word 'signalling' in the appropriate place, so don't duplicate it 2007-10-04 14:51 +0000 [r84637] Joshua Colp * apps/app_queue.c: Create a duplicate of the channel's member name as the tab completion stuff will free it. (closes issue #10884) Reported by: adamg 2007-10-03 22:59 +0000 [r84581] Tilghman Lesher * main/rtp.c: When an RFC 2833 event is sent that we don't recognize, ignore it, don't queue a NULL digit (closes issue #10877) 2007-10-03 18:20 +0000 [r84511-84544] Steve Murphy * pbx/pbx_ael.c: closes issue #10870 ; where a CUT() function call in a switch expr doesn't execute correctly, because the commas in the function args are not converted to vertbars before the func is called. I modified just the switch code to convert the commas to vertbars if there, but if more of these sort of probs are found, I may have to resort to something a little more fundamental. We'll see, I guess. * pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18, pbx/ael/ael-test/ref.ael-vtest13, pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test3, pbx/pbx_ael.c, pbx/ael/ael-test/ref.ael-test5: closes issue #10834 ; where a null input to a switch statement results in a hangup; since switch is implemented with extensions, and the default case is implemented with a '.', and the '.' matches 1 or more remaining characters, the case where 0 characters exist isn't matched, and the extension isn't matched, and the goto fails, and a hangup occurs. Now, when a default case is generated, it also generates a single fixed extension that will match a null input. That extension just does a goto to the default extension for that switch. I played with an alternate solution, where I just tack an extra char onto all the patterns and the goto, but not the default case's pattern. Then even a null input will still have at least one char in it. But it made me nervous, having that extra char in , even if that's a pretty secret and low-level issue. 2007-10-02 Russell Bryant * Asterisk 1.4.12 released. 2007-10-02 20:06 +0000 [r84474] Russell Bryant * Makefile, build_tools/prep_tarball: * Don't build the menuselect-tree for the tarball, as it requires running the configure script first * Change the Makefile to note that menuselect-tree depends on the configure script. 2007-10-02 19:01 +0000 [r84410-84437] Jason Parker * res/res_features.c: Fix some odd formatting I missed.. * res/res_features.c: Finish up on transferee channel before return on failure. Issue 10821, patch by Ivan 2007-10-02 14:12 +0000 [r84370] Russell Bryant * channels/chan_sip.c: Use snprintf instead of sprintf in one place. There is no vulnerability here due to various buffer sizes around the code, but I still didn't like seeing a non length-limited copy of data coming off of the wire into a stack buffer, as this would be a problem in the future if buffer sizes elsewhere got changed or size limitations removed ... 2007-10-02 09:48 +0000 [r84345] Christian Richter * channels/chan_misdn.c: terminate USERUSER String with 0 2007-10-01 21:52 +0000 [r84291] Jason Parker * Makefile, Makefile.rules, channels/Makefile: Add dist-clean support for subdirs. Change h323 to only remove the Makefile on a dist-clean, rather than a clean. This fixes a bug I found with trying to run make after a make clean 2007-10-01 21:25 +0000 [r84274] Dwayne M. Hubbard * main/channel.c, main/manager.c, channels/chan_agent.c: moved get_base_channel() code from action_redirect to ast_channel_masquerade() for issue 7706 and BE-160 2007-10-01 21:18 +0000 [r84273] Steve Murphy * pbx/pbx_ael.c: Anything to keep gcc 4.2 happy... 2007-10-01 21:07 +0000 [r84271] Russell Bryant * main/utils.c, include/asterisk/lock.h: Fulfull a feature request from Qwell on the "core show locks" output. It will now note the lock type for each lock that a thread holds. (mutex, rdlock, or wrlock) 2007-10-01 20:27 +0000 [r84239] Steve Murphy * pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/pbx_ael.c: closes issue #10777 -- by returning a null for the parse tree when there's really nothing there, and making sure we don't try to do checking on a null tree. 2007-10-01 19:56 +0000 [r84166-84236] Russell Bryant * res/res_agi.c: Add another sanity check in the AGI read loop. We really don't care about EAGAIN unless we didn't read an entire line. If there is a newline at the end if the read buffer, break, because we got the whole thing. (reported and patched by bmd) * include/asterisk/lock.h: Show rwlocks in the "core show locks" output. Before, it only showed mutexes. * channels/Makefile: Remove another file in "make clean". (closes issue #10814, paravoid) * apps/app_dial.c: Simplify the CAN_EARLY_BRIDGE macro a bit. 2007-10-01 14:10 +0000 [r84158-84163] Joshua Colp * configs/usbradio.conf.sample (removed): Remove chan_usbradio config file from tree, it is not present in here. (closes issue #10839) Reported by: casper * res/res_musiconhold.c: Fix randomness. save_pos was being set to 0 initially instead of -1, causing it to jump to position 0 when moh started. (closes issue #10859) Reported by: jamesgolovich Patches: asterisk-mohpos2.diff.txt uploaded by jamesgolovich (license 176) * apps/app_dial.c: Only attempt early bridging if the options given to Dial() permit it. (closes issue #10861) Reported by: peekyb 2007-09-30 20:02 +0000 [r84146] Russell Bryant * include/asterisk/module.h: Fix the AST_MODULE_INFO macro for C++ modules. The load and reload parameters were in the wrong place. (closes issue #10846, alebm) 2007-09-29 23:00 +0000 [r84133-84135] Steve Murphy * pbx/ael/ael-test/ael-ntest22/t1/a.ael (added), pbx/ael/ael-test/ael-ntest22/t1/b.ael (added), pbx/ael/ael-test/ael-ntest22/t1/c.ael (added), pbx/ael/ael-test/ael-ntest22/t2/d.ael (added), pbx/ael/ael-test/ael-ntest22/t2/e.ael (added), pbx/ael/ael-test/ael-ntest22/t2/f.ael (added), pbx/ael/ael-test/ref.ael-test2, pbx/ael/ael-test/ref.ael-ntest22 (added), pbx/ael/ael-test/ael-ntest22/t3/g.ael (added), pbx/ael/ael-test/ref.ael-test3, pbx/ael/ael-test/ael-ntest22/t3/h.ael (added), pbx/ael/ael-test/ref.ael-test4, pbx/ael/ael-test/ael-ntest22/t3/i.ael (added), pbx/ael/ael-test/ael-ntest22/t3/j.ael (added), pbx/ael/ael-test/ael-ntest22/qq.ael (added), pbx/ael/ael-test/ael-ntest22/t1 (added), pbx/ael/ael-test/ael-ntest22/t2 (added), pbx/ael/ael-test/ael-ntest22/t3 (added), pbx/ael/ael-test/ael-ntest22/extensions.ael (added), pbx/ael/ael-test/ael-ntest22 (added): This is a regression update that matches what I did in 84134 for AEL regressions. * pbx/ael/ael_lex.c, pbx/ael/ael.flex: This issue sort of closes 10786; All config files support #include with globbing (you know, *,[chars],?,{list,list},etc), so I've updated the AEL system to support this also. 2007-09-28 14:13 +0000 [r84049-84078] Tilghman Lesher * main/say.c: Correct pronunciations of numbers for .nl (Closes issue #10837) * main/channel.c: Avoid a deadlock with ALL of the locks in the masquerade function, not just the pairs of channels. (Closes issue #10406) 2007-09-27 23:12 +0000 [r84018] Dwayne M. Hubbard * main/manager.c, channels/chan_agent.c, include/asterisk/channel.h: if an Agent is redirected, the base channel should actually be redirected. This was causing multiple issues, especially issue 7706 and BE-160 2007-09-27 00:01 +0000 [r83976] Russell Bryant * pbx/pbx_dundi.c: remove a todo item that has been completed 2007-09-26 23:53 +0000 [r83974] Kevin P. Fleming * channels/chan_alsa.c: avoid the weird usage of assert() in the ALSA header files that gcc 4.2 wants to complain about 2007-09-26 21:35 +0000 [r83910-83943] Russell Bryant * channels/chan_sip.c: I changed my mind ... I think this should be a LOG_NOTICE. * channels/chan_sip.c: Add a log message that was requested by the masses in the developer tutorial session at Astricon. chan_sip did not output any message when a call was rejected because the extension was not found. This adds a verbose message (at verbose level 3) to note when this happens. * channels/chan_misdn.c: Fix building chan_misdn under dev-mode. (please run the configure script with --enable-dev-mode so this doesn't happen again ...) 2007-09-26 18:35 +0000 [r83879] Tilghman Lesher * channels/chan_zap.c: Remove unused 4k of memory on the program stack (closes issue #10827) 2007-09-25 14:13 +0000 [r83637-83773] Tilghman Lesher * main/app.c: jmls pointed out that unsetting the group and setting the group to the blank string aren't quite the same. * build_tools/make_defaults_h: In the source, keys are relative to the datadir, not varlib (which is the same in most cases, but it's good to be accurate). Closes issue #10811 * doc/realtime.txt: Oops. Removed the unworkable workaround. This note should never have been in the release. * main/app.c: Making change to group splitting, as discussed on the -dev list. The main effect of this will be to permit Set(GROUP([cat])=), i.e. unsetting a group. 2007-09-24 07:54 +0000 [r83620] Christian Richter * channels/chan_misdn.c: fixed round_robin group dial method, this never worked well on BRI Ports (2 channels) 2007-09-22 19:39 +0000 [r83558-83589] Steve Murphy * pbx/pbx_ael.c: This closes issue #10788 -- The exact same fixes are made here for the first arg in the for(arg1; arg2; arg3) {} statement, as were done for the 3rd arg. It can now be an assignment that will embedded in a Set() app, or a macro call, or an app call. * pbx/pbx_ael.c: This closes issue #10788 -- the 3rd arg in the for statement is now wrapped in Set() only if there's an '=' in that string. Otherwise, if it begins with '&', then a Macro call is generated; otherwise it is made into an app call. A bit more accomodating, keeps the new guys happy, and the guys with ael-1 code should be happy, too 2007-09-21 14:37 +0000 [r83432] Russell Bryant * main/rtp.c, channels/misdn_config.c, main/cdr.c, main/channel.c, channels/chan_misdn.c, pbx/ael/ael.tab.c, main/ast_expr2f.c, main/file.c, include/asterisk/sched.h, channels/chan_h323.c, pbx/pbx_dundi.c, utils/ael_main.c, main/ast_expr2.fl, channels/chan_mgcp.c, main/sched.c, res/res_config_pgsql.c, main/dnsmgr.c, channels/chan_sip.c, pbx/ael/ael.y, main/db1-ast/hash/hash.c, include/asterisk/channel.h, channels/chan_iax2.c: gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set of changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2. (closes issue #10774, patch from qwell) 2007-09-21 13:34 +0000 [r83400] Joshua Colp * channels/chan_sip.c: Fix video under certain circumstances. It would have been possible for the formats on the channel to not contain the video format. (closes issue #10782) Reported by: cwhuang 2007-09-20 21:16 +0000 [r83316-83348] Russell Bryant * main/asterisk.c: When daemonizing, don't change working directory to "/". It makes it not be able to do a core dump when not running as uid=root. (closes issue #10766, xrg) * contrib/scripts/safe_asterisk: Change safe_asterisk to explicitly ask for /bin/bash, as it uses bashisms. (closes issue #10772, reported by culrich) 2007-09-20 17:09 +0000 [r83246] Jason Parker * apps/app_disa.c: If # is pressed after dialing an extension in DISA, stop trying to collect more digits. (issue #10754) Reported by: atis Patches: app_disa.c.branch.patch uploaded by atis (license 242) app_disa.c.trunk.patch uploaded by atis (license 242) 2007-09-20 16:25 +0000 [r83230-83232] Joshua Colp * channels/chan_sip.c: Make sure the minimum T1 timer value is obeyed in all cases. (closes issue #10768) Reported by: flefoll Patches: chan_sip.c.trunk.83071.retrans-patch uploaded by flefoll (license 244) chan_sip.c.br14.83070.retrans-patch uploaded by flefoll (license 244) * channels/chan_sip.c: Fix a minor spelling error. (closes issue #10769) Reported by: flefoll Patches: chan_sip.c.trunk.83071.inita-patch uploaded by flefoll (license 244) chan_sip.c.br14.83070.inita-patch uploaded by flefoll (license 244) 2007-09-19 19:50 +0000 [r83121-83179] Russell Bryant * apps/app_system.c: The System() and TrySystem() applications can take a substantial amount of time to execute while not servicing the channel. So, put the channel in autoservice while the command is being executed. (closes issue #10726, reported by mnicholson) * funcs/func_curl.c: Using curl can take a substantial amount of time, so the channel should be autoserviced while waiting for it to complete. (closes issue #10725, reported by mnicholson) * channels/chan_iax2.c: When handling a reload of chan_iax2, don't use an ao2_callback() to POKE all peers. Instead, use an iterator. By using an iterator, the peers container is not locked while the POKE is being done. It can cause a deadlock if the peers container is locked because poking a peer will try to lock pvt structs, while there is a lot of other code that will hold a pvt lock when trying to go lock the peers container. (reported to me directly by Loic Didelot. Thank you for the debug info!) * main/manager.c: Fix up another potential race condition. Do the loop decrementing use count on events with the eventq protected from being changed. (reported on IRC by Ivan) 2007-09-19 13:47 +0000 [r83070-83074] Joshua Colp * apps/app_queue.c: Protect the CDR record from modification by pbx_exec so that the application data contains the Queue data. (closes issue #10761) Reported by: snar Patches: app-queue-mixmonitor.patch uploaded by snar (license 245) * channels/chan_sip.c: (closes issue #10760) Reported by: dimas Patches: chan_sip.patch uploaded by dimas (license 88) Read in subscribecontext option in general to be the default. 2007-09-19 09:32 +0000 [r83023-83024] Christian Richter * channels/chan_misdn.c: removed comment which violates the coding guidelines. * channels/misdn_config.c, channels/chan_misdn.c, channels/misdn/chan_misdn_config.h: added 'astdtmf' option to allow configuring the asterisk dtmf detector instead of the mISDN_dsp ones. also added the patch from irroot #10190, so that dtmf tones detected by the asterisk detector are passed outofband to asterisk, to make any use of dtmf tones at all. 2007-09-19 00:19 +0000 [r82992] Russell Bryant * apps/app_flash.c: Change the description of app_flash to note how it can be a useful tool instead of just saying that it is generally a worthless feature. (Thanks to Jim Van Meggelen for pointing it out and providing the proposed text) 2007-09-18 23:41 +0000 [r82961] Joshua Colp * apps/app_queue.c: Initialize a variable to NULL to make the world happy. 2007-09-18 22:42 +0000 [r82929] Russell Bryant * include/asterisk/agi.h, res/res_agi.c: Add a new patch to handle interrupting the fgets() call when using FastAGI. This version of the patch maintains the original behavior of the code when not using FastAGI. (closes issue #10553) Reported by: juggie Patches: res_agi_fgets-4.patch uploaded by juggie (license 24) res_agi_fgets_1.4svn.patch uploaded by juggie (license 24) Slight mods by me Tested by: juggie, festr 2007-09-18 21:49 +0000 [r82887-82913] Doug Bailey * main/manager.c: Corrected patch applied in revision r82887. * main/manager.c: Fixed a bug where http manager sessions prevented the eventq from being cleaned out because http manager sessions do not have a valid file descriptor. 2007-09-18 20:56 +0000 [r82867] Russell Bryant * main/manager.c: Fix a memory leak that can occur on systems under higher load. The issue is that when events are appended to the master event queue, they use the number of active sessions as a use count so it will know when all active sessions at the time the event happened have consumed it. However, the handling of the number of sessions was not properly synchronized, so the use count was not always correct, causing an event to disappear early, or get stuck in the event queue for forever. (closes issue #9238, reported by bweschke, patch from Ivan, modified by me) 2007-09-18 20:09 +0000 [r82865] Mark Michelson * apps/app_queue.c: Moving the logic for handling an empty membername to the create_member function so that there is a common place where this occurs instead of being spread out to several different places. 2007-09-18 18:59 +0000 [r82834] Kevin P. Fleming * apps/app_queue.c: there is no need for conditional logic to select ->interface or ->membername, snince ->membername will always be populated 2007-09-18 16:31 +0000 [r82802] Russell Bryant * pbx/pbx_dundi.c: When copying the contents from the wildcard peer, do a deep copy instead of shallow copy so that it doesn't crash when beging destroyed. (closes issue #10546, patch by me) 2007-09-18 15:28 +0000 [r82751] Jason Parker * configs/sip.conf.sample: Correct the allowexternaldomains option in SIP sample config. Issue 10753 2007-09-17 20:16 +0000 [r82594-82676] Russell Bryant * apps/app_voicemail.c, main/stdtime/localtime.c: Put a memset in ast_localtime() instead of a couple places in app_voicemail to prevent the problem everywhere instead of just a couple of places. (related to issue #10746) * apps/app_voicemail.c: Initialize some memory to fix crashes when leaving voicemail. This problem was fixed by running Asterisk under valgrind. (closes issue #10746, reported by arcivanov, patched by me) *** IMPORTANT NOTE: We need to check to see if this same bug exists elsewhere. * res/res_features.c: Handle the case where there are multiple dynamic features with the same digit mapping, but won't always match the activated on/by access controls. In that case, the code needs to keep trying features for a match. (reported by Atis on the asterisk-dev list, patched by me) 2007-09-17 16:40 +0000 [r82590-82592] Kevin P. Fleming * channels/chan_iax2.c: revert a change that wasn't supposed to be committed... doh! * apps/app_queue.c, channels/chan_iax2.c: fix a couple of places where a logical member name (if specified) was not used, but instead the direct interface was listed 2007-09-17 02:00 +0000 [r82514] Joshua Colp * main/pbx.c: (closes issue #10734) Reported by: asgaroth Instead of passing a NULL pointer into snprintf pass "". It makes Solaris much happier. 2007-09-14 21:19 +0000 [r82444] Steve Murphy * main/cdr.c: closes issue #10668; thanks to arkadia for his patch; had to leave out the bit about ending the previous cdr in the fork; it would destroy current implementations. 2007-09-14 21:17 +0000 [r82435] Russell Bryant * configs/zapata.conf.sample: Add a note to help clarify the value set with the echocancel option. (inspired by Malcolm's blog post on blogs.digium.com about HPEC) 2007-09-14 18:35 +0000 [r82396-82398] Mark Michelson * apps/app_queue.c: Crap, I broke the build. Fixed. * apps/app_queue.c: Adding member name field to manager events where they were missing before (closes issue #10721, reported by snar) 2007-09-14 17:48 +0000 [r82394] Jason Parker * channels/chan_zap.c: If a channel does not have an owner, do not try to set a channel variable. This will end up making the channel variable global, which is not right. Closes issue #10720, patch by flefoll. 2007-09-14 15:50 +0000 [r82382-82385] Russell Bryant * build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Add checking for libusb here, so nobody has to deal with conflicts in the chan_usbradio-1.4 branch every time the configure script gets changed * channels/chan_usbradio.c (removed), channels/xpmr (removed), channels/Makefile: Remove chan_usbradio from the main 1.4 branch. It can't live here because we have a strict policy to not include new features in release branches. However, I'm going to merge it into trunk, and I also have a special 1.4 based branch that includes this module. svn co http://svn.digium.com/svn/asterisk/team/jdixon/chan_usbradio-1.4 2007-09-14 14:42 +0000 [r82376] Mark Michelson * doc/CODING-GUIDELINES: Fixing a typo in the coding guidelines (closes issue #10717, reported and patched by leedm777) 2007-09-14 01:24 +0000 [r82368] Jim Dixon * apps/app_rpt.c: Fixed problem with changes made to cdr functionality 2007-09-14 00:52 +0000 [r82367] Kevin P. Fleming * channels/chan_usbradio.c: this new driver may not live in this branch for long (since it is a new feature), but it definitely should not be built by default 2007-09-14 00:34 +0000 [r82366] Jim Dixon * apps/app_rpt.c, channels/xpmr/xpmr_coef.h (added), channels/chan_usbradio.c (added), channels/xpmr/xpmr.h (added), channels/xpmr (added), channels/xpmr/LICENSE (added), channels/xpmr/sinetabx.h (added), configs/usbradio.conf.sample (added), channels/Makefile, channels/xpmr/xpmr.c (added): Added channel driver for USB Radio device and support thereof. 2007-09-13 23:11 +0000 [r82358] Jason Parker * pbx/pbx_spool.c: Fix a small typo. retrytime > waittime 2007-09-13 20:16 +0000 [r82346] Mark Michelson * apps/app_queue.c: Preemptively fixing a possible segfault. It is possible that queuename is NULL (meaning pause ALL queues), so use q->name instead. 2007-09-13 20:11 +0000 [r82344] Jason Parker * cdr/cdr_csv.c: Fix a crash that could occur in cdr_csv when mutliple threads tried to close the same file. Do we actually need the locking here? What happens if you open the same file twice, and two threads try to write to it at the same time? Is fputs() going to write out the entire line at once? I suspect that it could be possible for the second fopen to run during the first fputs, so the position could be in the middle of the previously written line... Issue 10347, initial patch by explidous (but I removed all of the paranoia stuff..) 2007-09-13 18:57 +0000 [r82337-82339] Russell Bryant * main/astobj2.c: resolve a warning when not building under dev mode * main/astobj2.c, main/asterisk.c, include/asterisk.h: Only compile in tracking astobj2 statistics if dev-mode is enabled. Also, when dev mode is enabled, register the CLI command that can be used to run the astobj2 test and print out statistics. 2007-09-13 18:12 +0000 [r82335] Kevin P. Fleming * /, LICENSE: Merged revisions 82334 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r82334 | kpfleming | 2007-09-13 11:10:12 -0700 (Thu, 13 Sep 2007) | 2 lines clarify the OpenSSL and OpenH323 license exceptions ........ 2007-09-13 16:25 +0000 [r82326] Mark Michelson * apps/app_queue.c: Added logic to handle the unlikely case that someone has two queues with the same name. Asterisk will log a warning message letting the user know that one was already defined with that name and is it skipping all further instances. This also will work for realtime queues but in order for that to happen, the user would have to trigger a perfectly timed reload as a realtime queue is being looked up, which is highly unlikely (but taken care of nonetheless). 2007-09-13 11:47 +0000 [r82309] Philippe Sultan * channels/chan_gtalk.c: Closes issue #9401, reported and patched by irrot, with slight modifications by me. Handle DTMF sent by Asterisk properly. 2007-09-12 21:56 +0000 [r82296] Russell Bryant * res/res_agi.c: Fix a check of the wrong pointer, as pointed out by an XXX comment left in the code. The problem was harmless, however. 2007-09-12 21:28 +0000 [r82291] Tilghman Lesher * main/stdtime/tzfile.h: Oops, wrong location for FreeBSD zone files 2007-09-12 20:24 +0000 [r82286] Dwayne M. Hubbard * apps/app_meetme.c: remove a race condition for the creation of recordthread's, and fix a small memory leak. This closes issue# 10636 2007-09-12 20:12 +0000 [r82285] Tilghman Lesher * main/stdtime/private.h, main/stdtime/tzfile.h, include/asterisk/localtime.h, main/stdtime/localtime.c: Working on issue #10531 exposed a rather nasty 64-bit issue on ast_mktime, so we updated the localtime.c file from source. Next we'll have to write ast_strptime to match. 2007-09-12 15:16 +0000 [r82278-82280] Russell Bryant * main/asterisk.c: Clean up the output of "asterisk -h". This tweaks the wording and wraps lines at 80 characters. (closes issue #10699, seanbright) * res/res_agi.c: revert patch from issue #10553, as someone not using fastagi reported that this broke their system. 2007-09-12 14:30 +0000 [r82274-82276] Mark Michelson * apps/app_voicemail.c: Accidentally committed changes to app_voicemail which do NOT need to be in the 1.4 branch yet. reverting... * apps/app_voicemail.c, apps/app_queue.c: We should only initialize a realtime queue when it is allocated, not every time we access it. This prevents the members ao2_container from being reallocated every time the queue is accessed. I also removed a debug message I had accidentally left in on a previous commit. 2007-09-11 22:37 +0000 [r82267] Russell Bryant * apps/app_queue.c: Fix incorrect uses of ao2_find(). Every one of these calls was reading bogus memory ... 2007-09-11 21:41 +0000 [r82265] Joshua Colp * codecs/gsm/src/lpc.c, codecs/gsm/src/long_term.c: (closes issue #10679) Reported by: andrew Build under dev mode when K6OPTS is enabled. 2007-09-11 20:49 +0000 [r82263] Russell Bryant * apps/app_queue.c: Fix another missing unref of member objects. This one was pointed out by Marta. When building the outgoing list in try_calling(), a member reference is stored in each outgoing entry. However, when this list got destroyed, the reference was not released. 2007-09-11 20:36 +0000 [r82261] Steve Murphy * main/cdr.c: this change should fix issue # 10659 -- what I worry about is how many other bug reports it may generate. Hopefully, we can please the/a majority. Hopefully. We shall see. Calls not marked ANSWERED and with only one channel name will not be posted. This should eliminate the double CDR's. 2007-09-11 16:05 +0000 [r82252] Mark Michelson * apps/app_queue.c: All instances of ao2_iterators which were just named 'i' have been renamed to 'mem_iter' so that when refcounted queues are merged into trunk, there will be little confusion regarding iterator names, especially when a queue and member iterator are used in the same function. 2007-09-11 16:03 +0000 [r82250] Russell Bryant * pbx/pbx_dundi.c: The sample dundi.conf claims support for a wildcard peer entry - [*], but the code did not support it. This patch makes it work. (closes issue #10546, patch by dds, with some changes by me) 2007-09-11 16:01 +0000 [r82249] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: fixed a hold/retrieve issue. 2007-09-11 15:26 +0000 [r82245] Russell Bryant * res/res_agi.c: (closes issue #10553) Reported by: juggie Patches: res_agi_fgets-2.patch uploaded by juggie (license 24) Tested by: juggie When using fastagi, fgets() can return before a full line is read. Add explicit handling for the case where it gets interrupted. 2007-09-11 14:56 +0000 [r82243] Joshua Colp * pbx/pbx_dundi.c: (closes issue #10577) Reported by: jamesgolovich Patches: asterisk-dundifree.diff.txt uploaded by jamesgolovich (license 176) Don't leak memory when unloading DUNDi. 2007-09-11 14:34 +0000 [r82198-82240] Russell Bryant * apps/app_queue.c: Add a couple more missing unrefs of queue member objects * apps/app_queue.c: Add a missing unref of a queue member in an error handling block * apps/app_queue.c: Document why membercount can not simply be replaced by ao2_container_count() * main/astobj2.c: backport astobj2 race condition fix. This function is the exact same as trunk so it applies here as well. 2007-09-10 18:02 +0000 [r82155] Tilghman Lesher * apps/app_queue.c: Convert struct member to use refcounts (closes issue #10199) 2007-09-10 15:02 +0000 [r82091] Mark Michelson * configs/misdn.conf.sample: Removing non-existent options from misdn configuration sample. (closes issue #10678, reported and patched by IgorG) 2007-09-09 02:35 +0000 [r82028] Tilghman Lesher * include/asterisk/lock.h: Fix inline compiles on really old compilers (who uses gcc 2.7 anymore, really?) 2007-09-08 18:41 +0000 [r81952-81997] Russell Bryant * main/asterisk.c: Fix a small memory leak. ast_unregister_atexit() did not free the entry it removed. * .cleancount: (closes issue #10672) Bump the cleancount so that a "make clean" will be forced. This is needed because my fix in revision 81599 made a change to a data structure in file.h, and since file dependency tracking is only on with dev-mode enabled, file format modules that don't get rebuilt may crash, as is the case with this issue. This makes me wonder - how much faster does the code build without the file dependency tracking enabled? If it doesn't make much of a difference, then it may be worth just keeping it on all of the time, or perhaps just not in release tarballs, so that this type of issue is avoided. 2007-09-07 19:48 +0000 [r81923] Jason Parker * apps/app_queue.c: Allow the MEMBERINTERFACE variable to be used as the mixmonitor filename. This moves the setting of the MEMBERINTERFACE variable to before mixmonitor. Issue 10671, patch by sim. 2007-09-07 15:25 +0000 [r81886] Mark Michelson * configs/queues.conf.sample: Moving the explanation for joinempty to a more appropriate place 2007-09-06 22:28 +0000 [r81832] Russell Bryant * channels/chan_sip.c: (closes issue #9724, closes issue #10374) Reported by: kenw Patches: 9724.txt uploaded by russell (license 2) Tested by: kenw, russell Resolve a deadlock that occurs when doing a SIP transfer to parking. I come across this type of deadlock fairly often it seems. It is very important to mind the boundary between the channel driver and the core in respect to the channel lock and the channel-pvt lock. Channel drivers lock to lock the pvt and then the channel once it calls into the core, while the core will do it in the opposite order. The way this is avoided is by having channel drivers either release their pvt lock while calling into the core, or such as in this case, unlocking the pvt just long enough to acquire the channel lock. 2007-09-06 22:05 +0000 [r81778-81826] Jason Parker * Makefile: We added COPTS for ASTCFLAGS additions, but not LDOPTS for ASTLDFLAGS. This adds LDOPTS * include/asterisk/astobj2.h: This should fix a build issue that people building against uClibc were seeing with the addition of astobj2 2007-09-06 19:40 +0000 [r81776] Joshua Colp * apps/app_meetme.c: (closes issue #10122) Reported by: stevefeinstein Patches: meetme-unmute-manager.diff uploaded by qwell (license 4) Tested by: stevefeinstein After looking over the code I agree with Qwell. Setting the file descriptor to conference each time just causes a fight back and forth. 2007-09-06 16:56 +0000 [r81743] Philippe Sultan * include/asterisk/jabber.h, channels/chan_gtalk.c: Various string length fixes. Removed an unused variable in aji_client structure (context) 2007-09-06 16:25 +0000 [r81682-81713] Mark Michelson * apps/app_queue.c: Fixes an issue where valid DTMF had to be pressed twice to exit a queue if a member's phone was ringing. (closes issue #10655, reported by strider2k, patched by me) * res/res_features.c: Fixes a memory leak (closes issue #10658, reported and patched by Ivan) 2007-09-06 14:20 +0000 [r81650] Philippe Sultan * res/res_jabber.c: According to both RFC 3920 - section 9.1.2 - and Google's XMPP server complaint, if set, the 'from' attribute must be set to the user's full JID. 2007-09-05 20:53 +0000 [r81599] Russell Bryant * include/asterisk/file.h, main/say.c, res/res_features.c, main/file.c, include/asterisk/channel.h: Fix an issue that can occur when you do an attended transfer to parking. If you complete the transfer before the announcement of the parking spot finishes, then the channel being parked will hear the remainder of the announcement. These changes make it so that will not happen anymore. Basically, res_features sets a flag on the channel is playing the announcement to so that the file streaming core knows that it needs to watch out for a channel masquerade, and if it occurs, to abort the announcement. (closes BE-182) 2007-09-05 17:18 +0000 [r81569] Tilghman Lesher * include/asterisk/lock.h: Solaris x86 compatibility fix 2007-09-05 15:19 +0000 [r81525] Mark Michelson * apps/app_queue.c: Fixing the build... 2007-09-05 15:14 +0000 [r81523] Jason Parker * channels/chan_phone.c: Do not try to unregister a NULL channel tech. Also changed load_module function to use defines rather than numbers for return values. Issue 10651, patch by rbraun_proformatique, with additions by me. 2007-09-05 15:03 +0000 [r81520] Mark Michelson * apps/app_queue.c: Reverting behavior of QUEUE_MEMBER_COUNT to only count members who are logged in and available. (related to issue #10652, reported by wuwu) 2007-09-05 13:11 +0000 [r81492] Joshua Colp * main/channel.c: (closes issue #10650) Reported by: tacvbo Only print out that the spy was removed while holding the spy lock. 2007-09-04 20:54 +0000 [r81453-81455] Jason Parker * apps/app_followme.c: Rather than attempt to play a file, we can just check whether it exists. Issue 10634, patch by me, testing by pabelanger, sanity checked by bweschke * configs/followme.conf.sample: Change default followme config file to point to the correct files. Issue 10644, patch by pabelanger 2007-09-04 18:37 +0000 [r81448] Russell Bryant * main/astobj2.c, include/asterisk/astobj2.h, channels/chan_iax2.c: Remove the typedefs on ao2_container and ao2_iterator. This is simply because we don't typedef objects anywhere else in Asterisk, so we might as well make this follow the same convention. 2007-09-04 16:40 +0000 [r81442] Kevin P. Fleming * channels/chan_sip.c: there is no point in sending 401 Unauthorized to a UAS that sent us a properly-formatted Authentication header with the expected username and nonce but an incorrect response (which indicates the shared secret does not match)... instead, let's send 403 Forbidden so that the UAS doesn't retry with the same authentication credentials repeatedly 2007-09-04 14:23 +0000 [r81435-81439] Joshua Colp * channels/chan_iax2.c: (closes issue #10632) Reported by: jamesgolovich Patches: asterisk-iaxfirmwareleak.diff.txt uploaded by jamesgolovich (license 176) Fix memory leak when unloading chan_iax2. The firmware files were not being freed. * main/channel.c: (closes issue #10476) Reported by: mdu113 Only look for the end of a digit when waiting for a digit. This in turn disables emulation in the core. * main/dns.c: (closes issue #10610) Reported by: john Patches: dns.c.patch uploaded by john (license 218) Tested by: mvanbaak Don't return a match if no SRV record actually exists. 2007-09-03 18:57 +0000 [r81433] Russell Bryant * channels/chan_iax2.c: Remove a couple of calls to ast_string_field_free_pools() on peers in error handling blocks in the code for building peers. The peer object destructor does this and doing it twice will cause a crash. (closes issue #10625, reported by and patched by pnlarsson) 2007-09-01 15:57 +0000 [r81426-81428] Mark Michelson * apps/app_queue.c: Changed a comment to be more accurate. (really this is just a test to make sure I can commit properly from home) * main/astobj2.c, include/asterisk/astobj2.h: Making match_by_addr into ao2_match_by_addr and making it available everywhere since it could be a handy callback to have 2007-08-31 21:27 +0000 [r81418] Russell Bryant * include/asterisk/astobj2.h: Remove references to a debugging parameter that does not exist 2007-08-31 19:48 +0000 [r81416] Mark Michelson * apps/app_queue.c: Fixed broken behavior of a reload on realtime queues. Prior to this patch, if a reload was issued and a realtime queue had callers waiting in it, then the queue would be removed from the queue list, but it would not actually be freed (in fact, a debug message warning about a memory leak would come up). With this patch, reloads do not touch realtime queues at all. 2007-08-31 19:16 +0000 [r81415] Tilghman Lesher * funcs/func_logic.c: The IF() function was not allowing true values that had embedded colons (closes issue #10613) 2007-08-31 18:44 +0000 [r81412] Jason Parker * apps/app_dial.c: Re-order dial options to be in line with the existing alpha order. Issue 10621, initial patch by junky 2007-08-31 17:38 +0000 [r81410] Philippe Sultan * channels/chan_gtalk.c: Make the 'gtalk show channels' CLI command available. Closes issue 10548, reported by keepitcool. 2007-08-31 15:53 +0000 [r81406] Joshua Colp * res/res_speech.c: Make it the engine's responsible to check for the presence of results. 2007-08-31 15:51 +0000 [r81405] Kevin P. Fleming * codecs/codec_zap.c: add missing "transcoder show" (and deprecated "show transcoder") CLI commands that were in 1.2 but never added to 1.4 2007-08-31 14:38 +0000 [r81401-81403] Joshua Colp * res/res_features.c: (closes issue #10618) Reported by: dimas Don't pass through the stopped sounds frame.... just drop it. * res/res_features.c: (closes issue #10009) Reported by: dimas Don't output a bridge failed warning message if it failed because one of the channels was part of the masquerade process. That is perfectly normal. 2007-08-30 22:05 +0000 [r81397] Mark Michelson * apps/app_queue.c: Removing an extraneous (and possibly misleading) log message. Firstly, if the announce file isn't found, the streaming functions will report it. Secondly, not all non-zero returns from play_file mean that the announce file wasn't found. Positive return values simply mean that a digit was pressed (most likely to skip through the announcement). (closes issue #10612, reported and patched by dimas) 2007-08-30 21:23 +0000 [r81395] Joshua Colp * channels/chan_sip.c: (closes issue #10514) Reported by: casper Patches: chan_sip.c.80129.diff uploaded by casper (license 55) Remove needless check for AUTH_UNKNOWN_DOMAIN. It was impossible for it to ever be that value. 2007-08-30 21:11 +0000 [r81392] Steve Murphy * main/cdr.c: via issue 10599, where 'CDR already initialized' messages are being generated. Since all channels will have an init'd CDR attached at creation time, this message is now particularly useless. Removed. 2007-08-30 15:38 +0000 [r81383] Russell Bryant * channels/h323/ast_h323.cxx: Add missing checks for the PTRACING define. (closes issue #10559, paravoid) 2007-08-30 15:35 +0000 [r81381] Mark Michelson * apps/app_queue.c: Changed some manager event messages to reflect whether a queue member is a realtime member or not 2007-08-30 15:33 +0000 [r81379] Russell Bryant * configs/modem.conf.sample (removed), configs/enum.conf.sample, configs/extensions.ael.sample: Fix a typo, update a reload command, and remove an unused configuration file. (closes issue #10606, casper) 2007-08-30 14:53 +0000 [r81375] Joshua Colp * main/pbx.c: (closes issue #10603) Reported by: jmls Patches: pbx.diff uploaded by jmls (license 141) Backport changes from 81372. Add REASON dialplan variable for when an originated call fails and the failed extension is executed. 2007-08-30 14:43 +0000 [r81373] Christian Richter * channels/chan_misdn.c: Fixed some warnings. 2007-08-30 14:23 +0000 [r81369] Joshua Colp * res/res_features.c: (issue #10599) Reported by: dimas Handle the -1 control subclass during feature dialing (it indicates to stop sounds). 2007-08-30 08:31 +0000 [r81367] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c: Fixed a severe issue where a misdn_read would lock the channel, but read would not return because it blocks. later chan_misdn would try to queue a frame like a AST_CONTROL_ANSWER which could result in a deadlock situation. misdn_read will now not block forever anymore, and we don't queue the ANSWER frame at all when we already was called with misdn_answer -> answer would be called twice. Also we don't explicitly send a RELEASE_COMPLETE on receiption of a RELEASE anymore, because mISDN does that for us, this resulted in a problem on some switches, which would block our port after some calls for a short while. 2007-08-29 16:35 +0000 [r81346-81349] Mark Michelson * apps/app_queue.c: This patch, in essence, will correctly pause a realtime queue member and reflect those changes in the realtime engine. (issue #10424, reported by irroot, patch by me) This patch creates a new function called update_realtime_member_field, which is a generic function which will allow any one field of a realtime queue member to be updated. This patch only uses this function to update the paused status of a queue member, but it lays the foundation for persisting the state of a realtime member the same way that static members' state is maintained when using the persistentmembers setting * apps/app_queue.c: Changed some tabs to spaces 2007-08-29 15:57 +0000 [r81342] Russell Bryant * main/Makefile: If chan_h323 is not being built, don't use g++ to do the final link of Asterisk. (in response to a question on the asterisk-dev list) 2007-08-29 15:52 +0000 [r81340] Mark Michelson * apps/app_queue.c: This fix creates a more accurate way of detecting whether realtime members were deleted. (closes issue 10541, reported by Alric, patched by me) The REALLY nice things about this patch is that queue members now have a "realtime" field which will be true if the member is a realtime member. This means we can check this value prior to certain processing if it should ONLY be done for realtime members. 2007-08-29 14:13 +0000 [r81331] Joshua Colp * channels/chan_sip.c: (closes issue #9690) Reported by: mattv Make rtp timeouts work even if two RTP streams are directly bridged in the RTP stack. 2007-08-28 21:38 +0000 [r81226-81291] Russell Bryant * channels/chan_iax2.c: Change the message about receiving a mini-frame before the first full voice frame to a DEBUG message. * pbx/pbx_dundi.c: revert unintentional changes in rev 81226 * configs/indications.conf.sample, pbx/pbx_dundi.c: Add Russian tones. (closes issue #7953, hanabana) 2007-08-28 14:12 +0000 [r81120-81189] Mark Michelson * contrib/scripts/vmail.cgi: Fixes a forwarding problem when using res_config_mysql (closes issue #10573, reported by chrisvaughan, patch suggested by chrisvaughan as well) * apps/app_queue.c: Resolve a potential deadlock. In this case, a single queue is locked, then the queue list. In changethread(), the queue list is locked, and then each individual queue is locked. Under the right circumstances, this could deadlock. As such, I have unlocked the individual queue before locking the queue list, and then locked the queue back after the queue list is unlocked. * channels/chan_agent.c: DTMF begin frames should be ignored so that when an agent acks a call with the '#' key, he doesn't cause a queue's announce file to be interrupted. Also went ahead and did the same for the '*' key and for ending a call. (closes issue #10528, reported by deskhack, patched by me) 2007-08-27 17:27 +0000 [r81042-81074] Russell Bryant * pbx/pbx_dundi.c: Add a \todo to note that this module leaks most of the memory it allocates on unload and should be fixed (when I'm not in the middle of something else ...). * pbx/pbx_dundi.c: explicity define a variable as a boolean * res/res_musiconhold.c: (closes issue #10419) Reported by: mustardman Patches: asterisk-mohposition.diff.txt uploaded by jamesgolovich (license 176) This patch fixes a few problems with music on hold. * Fix issues with starting at the beginning of a file when it shouldn't. * Fix the inuse counter to be decremented even if the class had not been set to be deleted when not in use anymore * Don't arbitrarily limit the number of MOH files to 255 2007-08-27 15:01 +0000 [r81012] Joshua Colp * channels/chan_sip.c: (closes issue #10561) Reported by: jesselang Patches: chan_sip-ChannelReload-20080825.patch uploaded by jesselang (license 202) Remove an extra \r\n to make the ChannelReload event conform with every other event. 2007-08-27 14:55 +0000 [r81010] Mark Michelson * apps/app_queue.c: Found a case where the queue's membercount is off. It does not take into account dynamic members on a reload. 2007-08-27 13:20 +0000 [r80974] Joshua Colp * main/rtp.c: (closes issue #10562) Reported by: idkpmiller Correct jitter value output in the CLI to be as expected. 2007-08-26 18:11 +0000 [r80932] Russell Bryant * channels/chan_iax2.c: Remove an extra signal_condition() for the scheduler thread. (closes issue #10564, patch from casper) 2007-08-25 17:37 +0000 [r80895] Russell Bryant * channels/chan_iax2.c: Fix some issues with the handling of the scheduler in chan_iax2. Most of the places that scheduled items to be executed by the scheduler thread did not signal the scheduler thread to wake up so that it could recalculate the time until the next action. These changes will make the scheduler thread more responsive and ensure that actions get executed as close to when intended as possible instead of it being possible for very long delays. 2007-08-24 22:59 +0000 [r80878] Dwayne M. Hubbard * apps/app_zapateller.c: An empty string is an empty callerid ... so zap it. This closes issue #10502, which was pointed out by dswartz. Thank you, and may the swartz be with you 2007-08-24 21:22 +0000 [r80820-80849] Russell Bryant * channels/chan_iax2.c: If dnsmgr is in use, and no DNS servers are available when Asterisk first starts, then don't give up on poking peers. Allow the poke to get rescheduled so that it will work once the dnsmgr is able to resolve the host. (closes issue #10521, patch by jamesgolovich) * main/dsp.c: Improve the debouncing logic in the DTMF detector to fix some reliability issues. Previously, this code used a shift register of hits and non-hits. However, if the start of the digit isn't clean, it is possible for the leading edge detector to miss the digit. These changes replace the flawed shift register logic and also does the debouncing on the trailing edge as well. (closes issue #10535, many thanks to softins for the patch) 2007-08-24 19:52 +0000 [r80818] BJ Weschke * apps/app_queue.c: A minor correction to the available logic of autofill. If a queue member is paused, they're not really "available" so don't count them as such. Somewhat related to issue #10155 2007-08-24 18:52 +0000 [r80789] Steve Murphy * main/cdr.c: From a complaint by jmls, I realize that the message in cdr_disposition is unnecessary. To get failure disposition, just return -1; no use having more than one case do that. 2007-08-24 15:51 +0000 [r80750] Mark Michelson * apps/app_voicemail.c: Fix a possible crash in IMAP voicemail. 2007-08-24 15:41 +0000 [r80747] Tilghman Lesher * main/pbx.c, UPGRADE.txt: Make the deprecation warning inline with the code, instead of only in documentation (closes issue #10549) 2007-08-24 15:28 +0000 [r80722] Russell Bryant * utils/ael_main.c: Tweak the formatting of this MODULEINFO block. I think this would have caused a "*" to get in the menuselect-tree file. 2007-08-24 14:48 +0000 [r80689-80717] Steve Murphy * utils/ael_main.c: This change addresses JerJer's complaint that aelparse builds and installs even if pbx_ael is unchecked in the menuselect stuff. * pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/ael/ael-test/ref.ael-test6: backport of 80649, a fix to an unreported problem in the ael parser, that results in a crash on a 64bit machine 2007-08-24 11:42 +0000 [r80661] Philippe Sultan * channels/chan_gtalk.c: Closes issue #10509 Googletalk calls are answered too early, which results in CDRs wrongly stating that a call was ANSWERED when the calling party cancelled a call before before being established. We must not answer the call upon reception of a 'transport-accept' iq packet, but this packet still needs to be acknowledged, otherwise the remote peer would close the call (like in #8970). 2007-08-23 21:34 +0000 [r80601-80617] Dwayne M. Hubbard * channels/misdn/isdn_lib.c: make misdn/isdn_lib compile without warnings * channels/chan_misdn.c: make chan_misdn compile without warnings 2007-08-23 20:16 +0000 [r80539-80573] Russell Bryant * include/asterisk/features.h, res/res_features.c: When executing a dynamic feature, don't look it up a second time by digit pattern after we already looked it up by name. This causes broken behavior if there is more than one feature defined with the same digit pattern. (closes issue #10539, reported by bungalow, patch by me) * funcs/func_timeout.c: Revert very broken fix for issue #10540 ... none of these values take ms so I don't know what I was thinking * funcs/func_timeout.c: Fix func_timeout to take values in floating point so 1.5 actually means 1.5 seconds instead of being rounded. (closes issue #10540, reported by spendergrass, patch by me) 2007-08-23 17:14 +0000 [r80505-80507] Jason Parker * /: *sigh* * /: use autotagged externals 2007-08-23 17:08 +0000 [r80501] Kevin P. Fleming * channels/chan_zap.c: report the actual channel number that was unregistered, instead of assuming that the interface list consists of channels 1 through with no gaps in the sequence 2007-08-23 17:02 +0000 [r80360-80499] Russell Bryant * channels/chan_iax2.c: Fix some code where it was possible for a reference to a peer to not get released when it should. Thank you to Marta Carbone for pointing this out! * main/astobj2.c, include/asterisk/astobj2.h, channels/chan_iax2.c: This is a hack to maintain old behavior of chan_iax2. This ensures that if the peers and users are being stored in a linked list, that they go in the list in the same order that the older code used. This is necessary to maintain the behavior of which peers and users get matched when traversing the container. * res/res_agi.c: Revert res_agi fix that didn't quite work until we get it right ... * include/asterisk/astobj2.h: Add some more documentation on iterating ao2 containers. The documentation implies that is possible to miss an object or see an object twice while iterating. After looking through the code and talking with mmichelson, I have documented the exact conditions under which this can happen (which are rare and harmless in most cases). * main/astobj2.c: When converting this code to use the list macros, I changed it so objects are added to the head of a bucket instead of the tail. However, while looking over code with mmichelson, we noticed that the algorithm used in ao2_iterator_next requires that items are added to the tail. This wouldn't have caused any huge problem, but it wasn't correct. It meant that if an object was added to a container while you were iterating it, and it was added to the same bucket that the current element is in, then the new object would be returned by ao2_iterator_next, and any other objects in the bucket would be bypassed in the traversal. * channels/chan_sip.c: Don't crash when using realtime in chan_sip without an insecure setting in the database. (closes issue #10348, reported by link55, fixed by me) * main/astobj2.c (added), main/Makefile, include/asterisk/astobj2.h (added), doc/iax.txt, UPGRADE.txt, include/asterisk/strings.h, channels/chan_iax2.c: Merge changes from team/russell/iax_refcount. This set of changes fixes problems with the handling of iax2_user and iax2_peer objects. It was very possible for a thread to still hold a reference to one of these objects while a reload operation tries to delete them. The fix here is to ensure that all references to these objects are tracked so that they can't go away while still in use. To accomplish this, I used the astobj2 reference counted object model. This code has been in one of Luigi Rizzo's branches for a long time and was primarily developed by one of his students, Marta Carbone. I wanted to go ahead and bring this in to 1.4 because there are other problems similar to the ones fixed by these changes, so we might as well go ahead and use the new astobj if we're going to go through all of the work necessary to fix the problems. As a nice side benefit of these changes, peer and user handling got more efficient. Using astobj2 lets us not hold the container lock for peers or users nearly as long while iterating. Also, by changing a define at the top of chan_iax2.c, the objects will be distributed in a hash table, drastically increasing lookup speed in these containers, which will have a very big impact on systems that have a large number of users or peers. The use of the hash table will be made the default in trunk. It is not the default in 1.4 because it changes the behavior slightly. Previously, since peers and users were stored in memory in the same order they were specified in the configuration file, you could influence peer and user matching order based on the order they are specified in the configuration. The hash table does not guarantee any order in the container, so this behavior will be going away. It just means that you have to be a little more careful ensuring that peers and users are matched explicitly and not forcing chan_iax2 to have to guess which user is the right one based on secret, host, and access list settings, instead of simply using the username. If you have any questions, feel free to ask on the asterisk-dev list. * res/res_agi.c: Juggie in #asterisk-dev was reporting problems where fgets would return without reading the whole line when using fastagi. When this happens, errno was set to EINTR or EAGAIN. This patch accounts for the possibility and lets fgets continue in that case. 2007-08-22 18:53 +0000 [r80302-80330] Jason Parker * Makefile, build_tools/mkpkgconfig, build_tools/make_build_h, build_tools/strip_nonapi, build_tools/prep_moduledeps, build_tools/make_buildopts_h: Fix a few build issues in Solaris (and likely others). Use GREP and ID variables from autoconf. Reported to me in #asterisk-dev I forgot who reported this - sorry. :( * Makefile: Change a syntax that the GNU make in Solaris dislikes. * build_tools/make_version: Fix a bashism (we explicitly request /bin/sh). Remove some oddly placed quotes I found in passing. 2007-08-22 16:21 +0000 [r80257] Russell Bryant * Makefile: Honor the contents of the COPTS variable as custom target CFLAGS. Apparently this is what openwrt does. (reported by Brian Capouch on the asterisk-dev list, patch by me) 2007-08-22 16:14 +0000 [r80255] Joshua Colp * main/rtp.c: (closes issue #10526) Reported by: sinistermidget Revert commit from issue #10355 and return timestamp skew to 640. 2007-08-21 Russell Bryant * Asterisk 1.4.11 released. 2007-08-21 18:42 +0000 [r80183] Russell Bryant * channels/chan_sip.c: Don't record SIP dialog history if it's not turned on. Also, put an upper limit on how many history entires will be stored for each SIP dialog. It is currently set to 50, but can be increased if deemed necessary. (closes issue #10421, closes issue #10418, patches suggested by jmoldenhauer, patches updated by me) (Security implications documented in AST-2007-020) 2007-08-21 16:39 +0000 [r80166-80167] Steve Murphy * include/asterisk/alaw.h, include/asterisk/ulaw.h: ugh. removing the diffs from ulaw.h and alaw.h for now; accidentally added them in 80166 * main/alaw.c, include/asterisk/alaw.h, include/asterisk/ulaw.h: This patch solves problem 1 in 8126; it should not slow down the alaw codec, but should prevent signal degradation via multiple trips thru the codec. Fossil estimates the twice thru this codec will prevent fax from working. 4-6 times thru would result hearable, noticeable, voice degradation. 2007-08-21 15:22 +0000 [r80132] Russell Bryant * channels/chan_mgcp.c: Don't try to dereference the owner channel when it may not exist (issue #10507, maxper) 2007-08-21 15:03 +0000 [r80130] Jason Parker * configs/cdr.conf.sample: (issue #10510) Reported by: casper Patches: cdr.conf.diff uploaded by casper (license 55) Fix a few errors in sample cdr config file. 2007-08-20 21:57 +0000 [r80088] Russell Bryant * apps/app_queue.c: Fix the build of app_queue 2007-08-20 21:39 +0000 [r80049-80086] Mark Michelson * apps/app_queue.c: After a discussion on #asterisk-dev, it was decided that this should be in 1.4 as well. (issue #10424, reported and patched by irroot) * apps/app_queue.c: Found a pointless ternary if. member->dynamic was set to 1 and has no opportunity to change between then and this line, so "dynamic" will ALWAYS be output. 2007-08-20 16:08 +0000 [r80047] Jason Parker * configs/extensions.conf.sample: (issue #10499) Reported by: casper Patches: extensions.conf.sample.diff uploaded by casper (license 55) Update CLI examples in extensions.conf.sample to reflect command changes. 2007-08-20 15:34 +0000 [r80044] Mark Michelson * apps/app_voicemail.c: Ukrainian language voicemail support. (closes issue #10458, reported and patched by Oleh) 2007-08-20 02:42 +0000 [r79998] Tilghman Lesher * apps/app_voicemail.c: Missing curly braces. Oops. (Reported by snuffy via IRC) 2007-08-18 14:30 +0000 [r79947] Tilghman Lesher * apps/app_voicemail.c: Don't allocate vmu for messagecount when we could just use the stack instead (closes issue #10490) Also, remove a useless (and leaky) SQLAllocHandle (closes issue #10480) 2007-08-17 21:01 +0000 [r79912] Russell Bryant * channels/chan_zap.c: Avoid a crash in the handling of DTMF based Caller ID. It is valid for ast_read to return NULL in the case that the channel has been hung up. (crash reported by anonymouz666 on IRC in #asterisk-dev) 2007-08-17 19:14 +0000 [r79906] Mark Michelson * apps/app_voicemail.c: Patch allows for more seamless transition from file storage voicemail to ODBC storage voicemail. If a retrieval of a greeting from the database fails, but the file is found on the file system, then we go ahead an insert the greeting into the database. The result of this is that people who switch from file storage to ODBC storage do not need to rerecord their voicemail greetings. 2007-08-17 19:12 +0000 [r79902-79904] Jason Parker * channels/chan_sip.c, main/utils.c, include/asterisk/strings.h: Don't send a semicolon over the wire in sip notify messages. Caused by fix for issue 9938. I basically took the code that existed before 9938 was fixed, and copied it into a new function - ast_unescape_semicolon There should be very few places this will be needed (pbx_config does NOT need this (see issue 9938 for details)) Issue 10430, patch by me, with help/ideas from murf (thanks murf). * channels/chan_local.c: Re-add the setting of callerid name and number. Issue 10485, reported by and fix explained by paradise. 2007-08-17 13:37 +0000 [r79857] Russell Bryant * channels/chan_sip.c: Fix some crashes in chan_sip. This patch changes various places that add items to the scheduler to ensure that they don't overwrite the ID of a previously scheduled item. If there is one, it should be removed. (closes issue #10391, closes issue #10256, probably others, patch by me) 2007-08-17 08:22 +0000 [r79833] Christian Richter * channels/chan_misdn.c: sometimes we don't need to signal dtmf tones to asterisk, we just want them to go through as inband. Otherwise they might be generated by the other channel partner and then there is a double tone. 2007-08-16 22:32 +0000 [r79756-79792] Russell Bryant * res/res_musiconhold.c: Fix a little race condition that could cause a crash if two channels had MOH stopped at the same time that were using a class that had been marked for deletion when its use count hits zero. * res/res_musiconhold.c: This patch fixes a bug where reloading the module with "module reload" did not delete classes from memory that were no longer in the config. This patch fixes that problem as well as another one. Previously, if you reloaded MOH using the "moh reload" CLI command, which behaved differently than "module reload ...", MOH had to be stopped on every channel and started again immediately. However, there was no way to tell what class was being used, so they would all fall back to the default class. (closes issue #10139) Reported by: blitzrage Patches: asterisk-10139-advanced.diff.txt uploaded by jamesgolovich (license 176) Tested by: jamesgolovich * channels/chan_iax2.c: Fix more deadlocks in chan_iax2 that were introduced by making frame handling and scheduling multi-threaded. Unfortunately, we have to do some expensive deadlock avoidance when queueing frames on to the ast_channel owner of the IAX2 pvt struct. This was already handled for regular frames, but ast_queue_hangup and ast_queue_control were still used directly. Making these changes introduced even more places where the IAX2 pvt struct can disappear in the context of a function holding its lock due to calling a function that has to unlock/lock it to avoid deadlocks. I went through and fixed all of these places to account for this possibility. (issue #10362, patch by me) 2007-08-16 21:16 +0000 [r79690-79748] Mark Michelson * channels/chan_agent.c: Fixes a problem where agents would get stuck busy due to their wrapuptime being longer than the queue's wrapuptime and ringinuse=no for the queue. (closes issue #10215, reported by Doug, repaired by me) Special thanks to fkasumovic for pointing out the source of the problem and to bweschke for helping to come up with a solution! * apps/app_voicemail.c: base_encode is not trying to open a log file, so we should not call it a log file in the warning. (related to issue #10452, reported by bcnit) 2007-08-16 09:37 +0000 [r79665] Philippe Sultan * res/res_jabber.c: A fix for two critical problems detected while working with Daniel McKeehan in issue #10184. Upon priority change, the resource list is not NULL terminated when moving an item to the end of the list. This makes Asterisk endlessy loop whenever it needs to read the list. Jids with different resource and priority values, like in Gmail's and GoogleTalk's jabber clients put that problem in evidence. Upon reception of a 'from' attribute with an empty resource string, Asterisk crashes when trying to access the found->cap pointer if the resource list for the given buddy is not empty. This situation is perfectly valid and must be handled. The Gizmoproject's jabber client put that problem in evidence. Also added a few comments in the code as well as a handle for the capabilities from Gmail's jabber client, which are stored in a caps:c tag rather than the usual c tag. Closes issue #10184. 2007-08-16 08:21 +0000 [r79642] Christian Richter * channels/misdn/ie.c: 0x80 + protocol is wrong for USERUSER when we want to send IA5 Chars. 2007-08-15 14:40 +0000 [r79553] Joshua Colp * main/rtp.c: (closes issue #10440) Reported by: irroot (closes issue #10454) Reported by: flo_turc Increase maximum timestamp skew to 120. 20 was apparently far too low. 2007-08-15 14:26 +0000 [r79527] Mark Michelson * apps/app_voicemail.c: Fixed an error in the Russian language voicemail intro. (issue #10458, reported and patched by Oleh) 2007-08-15 14:18 +0000 [r79523] Joshua Colp * channels/chan_sip.c: (closes issue #10456) Reported by: irroot Patches: sip_timeout.patch uploaded by irroot (license 52) Change hardcoded timer value to defined value. I'm doing this in 1.4 as well so if it needs to be changed in the future this place would not have been forgotten. 2007-08-14 18:49 +0000 [r79436-79470] Russell Bryant * channels/chan_iax2.c: Fix another spot where an iax2_peer would be leaked if realtime was in use. * channels/chan_iax2.c: Fix some memory leaks throughout chan_iax2 related to the use of realtime. I found these while working on iax2_peer object reference tracking. 2007-08-14 15:27 +0000 [r79397] Joshua Colp * res/res_features.c: (closes issue #10415) Reported by: atis Revert fix for #10327 as it causes more issues then it solves. 2007-08-13 22:40 +0000 [r79363] Steve Murphy * pbx/pbx_ael.c: memset really, really needs to be used here. 2007-08-13 21:57 +0000 [r79334] Joshua Colp * res/res_speech.c, apps/app_speech_utils.c, include/asterisk/speech.h: Instead of accepting a single DTMF character accept a full string. 2007-08-13 20:37 +0000 [r79272-79301] Russell Bryant * channels/chan_iax2.c: Don't call find_peer in registry_authrequest with the pvt lock held to avoid a deadlock. * channels/chan_iax2.c: Release the pvt lock before calling find_peer in register_verify to avoid a deadlock. Also, remove some unnecessary locking in auth_fail that was only done recursively. * channels/chan_iax2.c: Don't call find_peer within update_registry with a pvt lock held. This can cause a deadlock as the code will eventually call find_callno. * channels/chan_iax2.c: I am fighting deadlocks in chan_iax2. I have tracked them down to a single core issue. You can not call find_callno() while holding a pvt lock as this function has to lock another (every) other pvt lock. Doing so can lead to a classic deadlock. So, I am tracking down all of the code paths where this can happen and fixing them. The fix I committed earlier today was along the same theme. This patch fixes some code down the path of authenticate_reply. 2007-08-13 17:49 +0000 [r79255] Steve Murphy * pbx/ael/ael-test/ref.ael-vtest21 (added), pbx/ael/ael-test/ref.ael-test19, pbx/ael/ael-test/ael-vtest21/extensions.ael (added), pbx/ael/ael-test/ael-vtest21 (added), pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test11, pbx/pbx_ael.c, pbx/ael/ael-test/ref.ael-test14, utils/ael_main.c: This patch fixes bug 10411. I added a new regression test, some regression test cleanups 2007-08-13 15:28 +0000 [r79214] Russell Bryant * channels/chan_iax2.c: Fix a potential deadlock in socket_process. check_provisioning can eventually call find_callno. You can't hold a pvt lock while calling find_callno because it goes through and locks every single one looking for a match. 2007-08-13 14:51 +0000 [r79174-79207] Joshua Colp * res/res_speech.c, apps/app_speech_utils.c, include/asterisk/speech.h: Add an API call to allow the engine to know that DTMF was received. * channels/chan_oss.c, channels/chan_mgcp.c, channels/chan_phone.c, channels/chan_local.c, channels/chan_misdn.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_skinny.c, channels/chan_h323.c, channels/chan_gtalk.c, channels/chan_iax2.c: (closes issue #10437) Reported by: haklin Don't set the callerid name and number a second time on a newly created channel. ast_channel_alloc itself already sets it and setting it twice would cause a memory leak. 2007-08-11 05:23 +0000 [r79142] Tilghman Lesher * res/res_odbc.c: Ensure the connection gets marked as used at allocation time (closes issue #10429, report and fix by mnicholson) 2007-08-10 20:53 +0000 [r79044-79099] Steve Murphy * main/channel.c, pbx/pbx_spool.c, include/asterisk/channel.h: From a user complaint on #asterisk, I have forced pbx_spool to explain what reason codes mean, when they are logged * main/cdr.c: Re bug behavior mentioned in #asterisk, made this tweak to code, to prevent hundreds of log messages from being generated * main/cdr.c: This will help debug; from a question asked on #asterisk 2007-08-10 Russell Bryant * Asterisk 1.4.10.1 released. 2007-08-10 15:20 +0000 [r78995] Russell Bryant * include/asterisk/lock.h: The last set of changes that I made to "core show locks" made it not able to track mutexes unless they were declared using AST_MUTEX_DEFINE_STATIC. Locks initialized with ast_mutex_init() were not tracked. It should work now. 2007-08-10 14:15 +0000 [r78951-78955] Joshua Colp * main/file.c: Don't bother having the core pass through or emulate begin DTMF frames when in an ast_waitstream. It only cares about the end of DTMF. * configs/queues.conf.sample: (closes issue #10422) Reported by: bhowell Add note to sample configuration about module load order and how it can cause perfectly good queue members to be marked as invalid. 2007-08-10 13:24 +0000 [r78936] Christian Richter * channels/chan_misdn.c, channels/misdn/ie.c, channels/misdn/isdn_msg_parser.c: fixed a bug with the useruser information element. We send them now also in the disconnect message. 2007-08-09 23:47 +0000 [r78907] Mark Michelson * apps/app_voicemail.c: Improved a bit of logic regarding comma-separated mailboxes in has_voicemail. Also added some braces to some compound if statements since unbraced if statements scare me in general. 2007-08-09 23:10 +0000 [r78891] Steve Murphy * Makefile: This fixes bug 10416; thanks to mvanbaak for the pretty output 2007-08-09 22:03 +0000 [r78826-78860] Mark Michelson * apps/app_voicemail.c: Removing some extra debug code I left in my last commit * apps/app_voicemail.c: Quite a few changes regarding IMAP storage. 1. instead of using inboxcount as the core message counting function, we use messagecount instead. This makes it possible to count messages in folders besides just INBOX and Old. 2. inboxcount and hasvoicemail now use messagecount as their means of determining return values. 3. Added a copy_message function for IMAP storage. Unfortunately I don't have the means to test it, but it seems like a pretty straightforward function. 4. Removed a #ifndef IMAP_STORAGE and matching #endif from leave_voicemail for a couple of reasons. One, we want to support copying mail to multiple IMAP boxes, and two, IMAP was broken because a STORE macro had been moved into this section of code. * channels/chan_sip.c: I broke canreinvite...Now I'm fixing it. I put some new code in the wrong place and so I've reverted the canreinvite section to how it was and put my new code where it should be. 2007-08-09 17:58 +0000 [r78717-78778] Russell Bryant * apps/app_voicemail.c: add a comment to indicate that inboxcount for ODBC_STORAGE needs to be fixed to support multiple mailboxes * apps/app_voicemail.c: Fix subscriptions to multiple mailboxes for ODBC_STORAGE. Also, leave a comment for this to be fixed for IMAP_STORAGE, as well. I left IMAP alone since I know MarkM was working on this code right now for another reason. This is broken even worse in trunk, but for a different reason. The fact that the mailbox option supported multiple mailboxes is completely not obvious from the code in the channel drivers. Anyway, I will fix that in another commit ... * apps/app_meetme.c: Fix a problem with the combination of the 'F' option to pass DTMF through a conference and options that use DTMF to activate various features. The problem was that the BEGIN frame would be passed through, but the END frame would get intercepted to activate a feature. Then, the other conference members would hear DTMF for forever, which they didn't seem to like very much. (closes issue #10400, reported by stevefeinstein, fixed by me) 2007-08-08 19:29 +0000 [r78646] Jason Parker * doc/jabber.txt: Fix mogs email address. 2007-08-08 18:16 +0000 [r78575-78620] Mark Michelson * apps/app_voicemail.c: Fixed some compiler warnings so that compiling with dev-mode and IMAP storage would not have any errors. This section of code may get changed again shortly since my change uncovers a rather silly bit of logic. * apps/app_queue.c: Changing a bit of logic so that someone will NEVER exit the queue on timeout unless they have enabled the 'n' option. This commit relates to issue #10320. Thanks to jfitzgibbon for detailing the idea behind this code change. 2007-08-08 13:51 +0000 [r78569] Joshua Colp * configs/sip.conf.sample: (closes issue #10335) Reported by: adamgundy Update sip.conf to include another scenario where directrtpsetup will fail. 2007-08-07 Russell Bryant * Asterisk 1.4.10 released. 2007-08-07 20:57 +0000 [r78488] Russell Bryant * res/res_config_odbc.c: Fix the build of this module on 64-bit platforms 2007-08-07 19:43 +0000 [r78450] Mark Michelson * apps/app_voicemail.c: The logic behind inboxcount's return value was reversed in has_voicemail and message_count. (closes issue #10401, reported by st1710, patched by me) 2007-08-07 19:34 +0000 [r78437] Tilghman Lesher * res/res_odbc.c: Don't free the environment handle when the connection fails, because other connections might be depending upon it 2007-08-07 19:11 +0000 [r78416] Jason Parker * channels/chan_sip.c: Allow chan_sip to build in devmode 2007-08-07 19:09 +0000 [r78415] Tilghman Lesher * apps/app_voicemail.c, res/res_config_odbc.c, apps/app_directory.c: Reconnection doesn't happen automatically when a DB goes down (fixes issue #9389) 2007-08-07 18:25 +0000 [r78375] Jason Parker * channels/chan_skinny.c: Properly check the capabilities count to avoid a segfault. (ASA-2007-019) 2007-08-07 17:45 +0000 [r78371] Russell Bryant * channels/chan_zap.c, /: Merged revisions 78370 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r78370 | russell | 2007-08-07 12:44:04 -0500 (Tue, 07 Aug 2007) | 4 lines Revert patch committed for issue #9660. It broke E&M trunks. (closes issue #10360) (closes issue #10364) ........ 2007-08-06 21:41 +0000 [r78275] Joshua Colp * main/channel.c: Add additional DTMF log messages to help when debugging issues. 2007-08-06 20:44 +0000 [r78184-78242] Russell Bryant * channels/chan_iax2.c: Fix an issue where dynamic threads can get free'd, but still exist in the dynamic thread list. (closes issue #10392, patch from Mihai, with credit to his colleague, Pete) * include/asterisk/linkedlists.h: Fix the return value of AST_LIST_REMOVE(). This shouldn't be causing any problems, though, because the only code that uses the return value only checks to see if it is NULL. (closes issue #10390, pointed out by mihai) 2007-08-06 16:32 +0000 [r78182] Joshua Colp * channels/chan_sip.c: It is possible for a transfer to occur before the remote device has our tag in which case they send none in the transfer. In this case we need to not fail the transfer dialog lookup. 2007-08-06 16:30 +0000 [r78180] Jason Parker * main/config.c: Fix an issue with using UpdateConfig (manager action) where escaped semicolons in a config would be converted to just semicolons (\; to ;) Issue 9938 2007-08-06 15:27 +0000 [r78166-78172] Joshua Colp * main/rtp.c: (closes issue #10355) Reported by: wdecarne Now that we pass through RTP timestamp information we need to make the allowed timestamp skew considerably less. There are situations where a source may change and due to the timestamp difference the receiver will experience an audio gap since we did not indicate by setting the marker bit that the source changed. * configure, configure.ac: (closes issue #10383) Reported by: rizzo Include stdlib.h so NULL gets defined for gethostbyname_r checks. 2007-08-06 13:33 +0000 [r78164] Mark Michelson * channels/chan_sip.c: Fixed a mistake I made in realtime_peer which caused it to return NULL every time. Thanks to Jon Fealy for emailing me the correction. 2007-08-05 14:18 +0000 [r78146] Tilghman Lesher * cdr/cdr_pgsql.c: Portability fix for devmode compiling (closes bug #10382) 2007-08-05 04:15 +0000 [r78143] Russell Bryant * include/asterisk/lock.h: Fix compilation failure when MALLOC_DEBUG is enabled, but DEBUG_THREADS is not 2007-08-05 03:29 +0000 [r78139] Tilghman Lesher * channels/chan_sip.c: If peer is not found, the error message is misleading (should be peer not found, not ACL failure) 2007-08-03 20:25 +0000 [r78103] Mark Michelson * main/config.c, channels/chan_sip.c, include/asterisk/config.h: Changed the behavior of sip's realtime_peer function to match the corresponding way of matching for non-realtime peers. Now matches are made on both the IP address and port number, or if the insecure setting is set to "port" then just match on the IP address. In order to accomplish this, I also added a new API call, ast_category_root, which returns the first variable of an ast_category struct 2007-08-03 20:14 +0000 [r78028-78101] Russell Bryant * apps/app_voicemail.c: (closes issue #10194) Reported by: blitzrage Patches: bug0010194 uploaded by vovochka Tested by: blitzrage Fix a problem when you call Voicemail() with multiple mailboxes specified and ODBC_STORAGE is in use. The audio part of the message was only given to the first mailbox specified. * main/utils.c, include/asterisk/lock.h, main/astmm.c: Add some improvements to lock debugging. These changes take effect with DEBUG_THREADS enabled and provide the following: * This will keep track of which locks are held by which thread as well as which lock a thread is waiting for in a thread-local data structure. A reference to this structure is available on the stack in the dummy_start() function, which is the common entry point for all threads. This information can be easily retrieved using gdb if you switch to the dummy_start() stack frame of any thread and print the contents of the lock_info variable. * All of the thread-local structures for keeping track of this lock information are also stored in a list so that the information can be dumped to the CLI using the "core show locks" CLI command. This introduces a little bit of a performance hit as it requires additional underlying locking operations inside of every lock/unlock on an ast_mutex. However, the benefits of having this information available at the CLI is huge, especially considering this is only done in DEBUG_THREADS mode. It means that in most cases where we debug deadlocks, we no longer have to request access to the machine to analyze the contents of ast_mutex_t structures. We can now just ask them to get the output of "core show locks", which gives us all of the information we needed in most cases. I also had to make some additional changes to astmm.c to make this work when both MALLOC_DEBUG and DEBUG_THREADS are enabled. I disabled tracking of one of the locks in astmm.c because it gets used inside the replacement memory allocation routines, and the lock tracking code allocates memory. This caused infinite recursion. * channels/chan_iax2.c: Only pass through HOLD and UNHOLD control frames when the mohinterpret option is set to "passthrough". This was pointed out by Kevin in the middle of a training session. * channels/chan_iax2.c: Don't reuse the timespec that was set to 0 in the previous timedwait as it will just return immediately. Also, fix some logic so the thread's lock isn't unlocked twice in the weird case of dynamic threads getting acquired right after a timeout. (pointed out by SteveK) 2007-08-02 21:53 +0000 [r77993-77996] Jason Parker * channels/chan_skinny.c, configs/skinny.conf.sample: Make sure we actually allow 6 chars to be sent. Also make note of the "A" option of date format. Issue 9779, modifications by DEA, wedhorn, and myself. * channels/chan_skinny.c: If a device disconnects, the session will go away. If this happens during call setup, we need to give up. Issue 10325. 2007-08-02 19:25 +0000 [r77949] Russell Bryant * channels/chan_iax2.c: Fix the case where a dynamic thread times out waiting for something to do during the first time it runs. This shouldn't ever happen, but we should account for it anyway. (pointed out by pete, who works with mihai) 2007-08-02 18:42 +0000 [r77947] Jason Parker * channels/chan_skinny.c: Make sure we clear the prompt status message on a hangup. Also rearrange messages to better fit with what a wireshark trace shows it should be. Issue 10299, initial patch and solution by sbisker, modified by me to fit with wireshark trace. 2007-08-02 18:21 +0000 [r77945] Steve Murphy * main/fskmodem.c, /: Merged revisions 77942 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77942 | murf | 2007-08-02 11:56:37 -0600 (Thu, 02 Aug 2007) | 1 line This patch hopefully solves 10141; The user is running with it, and it doesn't appear to harm asterisk's operation, and may prevent a crash. I'll store it in 1.2, as we have shut down support on 1.2, but since I developed the patch before support finished, and it might affect 1.4 and trunk, I'm going ahead with it. ........ 2007-08-02 18:04 +0000 [r77939-77943] Russell Bryant * channels/chan_iax2.c: Fix another race condition in the handling of dynamic threads. If the dynamic thread timed out waiting for something to do, but was acquired to perform an action immediately afterwords, then wait on the condition again to give the other thread a chance to finish setting up the data for what action this thread should perform. Otherwise, if it immediately continues, it will perform the wrong action. (reported on IRC by mihai, patch by me) (related to issue #10289) * channels/chan_iax2.c: Add another sanity check to vnak_retransmit(). This check ensures that frames that have already been marked for deletion don't get retransmitted. (closes issue #10361, patch from mihai) 2007-08-02 15:15 +0000 [r77890-77894] Jason Parker * channels/chan_skinny.c: Make sure that we show the correct extension if dialed from a macro "From: 5555" rather than "From: s" Issue 10358, initial patch by DEA, reworked by me to use S_OR, tested by sbisker * channels/chan_skinny.c: Put in some additional debug information for softkey/stimulus messages. Issue 10291, patch by DEA. 2007-08-01 22:16 +0000 [r77887] Russell Bryant * channels/chan_iax2.c: Fix some race conditions which have been causing weird problems in chan_iax2. The most notable problem is that people have been seeing storms of VNAK frames being sent due to really old frames mysteriously being in the retransmission queue and never getting removed. It was possible that a dynamic thread got created, but did not acquire its lock before the thread that created it signals it to perform an action. When this happens, the thread will sleep until it hits a timeout, and then get destroyed. So, the action never gets performed and in some cases, means a frame doesn't get transmitted and never gets freed since the scheduler never gets a chance to reschedule transmission. Another less severe race condition is in the handling of a timeout for a dynamic thread. It was possible for it to be acquired to perform at action at the same time that it hit a timeout. When this occurs, whatever action it was acquired for would never get performed. (patch contributed by Mihai and SteveK) (closes issue #10289) (closes issue #10248) (closes issue #10232) (possibly related to issue #10359) 2007-08-01 22:14 +0000 [r77886] Tilghman Lesher * apps/app_voicemail.c: Voicemail with ODBC_STORAGE defined does not compile cleanly (missing def) 2007-08-01 21:08 +0000 [r77883] Jason Parker * channels/chan_skinny.c: Fix an issue that caused one-way audio on some newer devices (specifically the 7921), due to sending packets in the wrong order during hangup. Also make sure we clear tones/messages on the correct line/instance. Issue 10291, patch by DEA, tested by sbisker and myself. 2007-08-01 18:08 +0000 [r77863-77871] Joshua Colp * main/cli.c: (closes issue #10351) Reported by: ftarz Some platforms don't like it when you pass NULL to vsnprintf so pass "" instead. * include/asterisk/threadstorage.h, channels/chan_mgcp.c, apps/app_voicemail.c, main/acl.c, utils/smsq.c, channels/chan_iax2.c: Add some fixes for building on Solaris. * main/utils.c: Whoops, I meant R_5 not R5. * configure, configure.ac: And for my last trick... make sure that if gethostbyname_r is exported by a library that it is used. * configure, include/asterisk/autoconfig.h.in, configure.ac, main/utils.c: Extend autoconf logic to determine which version of gethostbyname_r is on the system. 2007-08-01 14:08 +0000 [r77852-77854] Mark Michelson * apps/app_queue.c: Fixes an issue I introduced to queues wherein a queue with joinempty=yes would kick people out of the queue because of erroneously thinking the 'n' option was in use. (closes issue #10320, reported by jfitzgibbon, patched by me, tested by blitzrage and me) Thank you blitzrage for all the testing you've done lately with queues! It's much appreciated! * apps/app_queue.c: If a queue uses dynamic realtime members, then the member list should be updated after each attempt to call the queue. This fixes an issue where if a caller calls into a queue where no one is logged in, they would wait forever even if a member logged in at some point. (closes issue #10346, reported by and tested by blitzrage, patched by me) 2007-07-31 21:09 +0000 [r77845-77846] Jim Dixon * apps/app_rpt.c: Much newer version, 0.70 with much additions * main/dsp.c, channels/chan_zap.c: Made VAST improvements in DTMF receiver in RADIO_RELAX mode (thanx Steve W9SH), and oversight in logic in TONE_VERIFY/RELAX mode in chan_zap. 2007-07-31 20:59 +0000 [r77844] Steve Murphy * /, contrib/scripts/ast_grab_core: Merged revisions 77842 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77842 | murf | 2007-07-31 13:19:35 -0600 (Tue, 31 Jul 2007) | 1 line This probably isn't super-general, but it's a first stab at using kill -11 to generate a core file instead of gcore. ........ 2007-07-31 16:17 +0000 [r77831] Joshua Colp * res/res_speech.c, include/asterisk/speech.h: Add a flag to the speech API that allows an engine to set whether it received results or not. 2007-07-31 15:53 +0000 [r77827] Kevin P. Fleming * build_tools/cflags.xml: DETECT_DEADLOCKS can't be enabled without DEBUG_THREADS or it does nothing 2007-07-31 15:21 +0000 [r77824] Mark Michelson * channels/chan_sip.c: This patch makes Asterisk send 100 Trying provisional responses upon receipt of re-invites. This makes it so that if there are two or more Asterisk servers between endpoints, the Asterisk servers will not keep retransmitting the re-invites. (closes issue #10274, reported by cstadlmann, patched by me with approval from file) 2007-07-30 20:17 +0000 [r77795] Jason Parker * main/say.c: Applications like SayAlpha() should not hang up the channel if you request an "unknown" character such as a comma. Instead, skip the character and move on. Issue 10083, initial patch by jsmith, modified by me. 2007-07-30 20:16 +0000 [r77785-77794] Russell Bryant * channels/chan_iax2.c: Fix an issue that could potentially cause corruption of the global iax frame queue. In the network_thread() loop, it traverses the list using the AST_LIST_TRAVERSE_SAFE macro. However, to remove an element of the list within this loop, it used AST_LIST_REMOVE, instead of AST_LIST_REMOVE_CURRENT, which I believe could leave some of the internal variables of the SAFE macro invalid. Mihai says that he already made this change in his local copy and it didn't help his VNAK storm issues, but I still think it's wrong. :) * res/res_agi.c: (closes issue #10279) Reported by: seanbright Patches: res_agi.carefulwrite.1.4.07252007.patch uploaded by seanbright (license 71) res_agi.carefulwrite.trunk.07252007.patch uploaded by seanbright (license 71) Allow the "agi_network: yes" line to be printed out in the AGI debug output. Also, allow partial writes to be handled when writing out this line just like it is for all of the others. * main/channel.c: file and I both committed changes for issue #10301. Remove a duplicated assignment to restore the original value of the previous channel. 2007-07-30 18:43 +0000 [r77783] Tilghman Lesher * /, res/res_agi.c: Merged revisions 77782 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77782 | tilghman | 2007-07-30 13:40:54 -0500 (Mon, 30 Jul 2007) | 2 lines Revert change in revision 71656, even though it fixed a bug, because many people were depending upon the (broken) behavior. ........ 2007-07-30 17:29 +0000 [r77780] Russell Bryant * main/channel.c: (closes issue #10301) Reported by: fnordian Patches: asterisk-1.4.9-channel.c.patch uploaded by fnordian (license 110) Additional changes by me Fix some problems in channel_find_locked() which can cause an infinite loop. The reference to the previous channel is set to NULL in some cases. These changes ensure that the reference to the previous channel gets restored before needing it again. I'm not convinced that the code that is setting it to NULL is really the right thing to do. However, I am making these changes to fix the obvious problem and just leaving an XXX comment that it needs a better explanation that what is there now. 2007-07-30 17:11 +0000 [r77768-77778] Joshua Colp * res/res_features.c: (closes issue #10327) Reported by: kkiely Instead of directly mucking with the extension/context/priority of the channel we are transferring when it has a PBX simply call ast_async_goto on it. This will ensure that the channel gets handled properly and sent to the right place. * main/channel.c: (closes issue #10301) Reported by: fnordian Patches: asterisk-1.4.9-channel.c.patch uploaded by fnordian (license 110) Restore previous behavior where if we failed to lock the channel we wanted we would return to exactly the same point as if we had just reentered the function. * /, apps/app_macro.c: Merged revisions 77767 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77767 | file | 2007-07-30 11:50:02 -0300 (Mon, 30 Jul 2007) | 4 lines (closes issue #10334) Reported by: ramonpeek Pass through the return value from macro_exec through the MacroIf application. ........ 2007-07-27 18:15 +0000 [r77571] Tilghman Lesher * res/res_odbc.c: Missing newline 2007-07-27 17:04 +0000 [r77536-77540] Joshua Colp * cdr/cdr_pgsql.c: (closes issue #10310) Reported by: prashant_jois Patches: cdr_pgsql.patch uploaded by prashant (license 114) Finish the Postgresql connection after the log messages are printed so we don't access invalid memory. * channels/chan_sip.c: (closes issue #10323) Reported by: julianjm Patches: chan_sip_device_state_hold_fix.v1.diff.txt uploaded by julianjm (license 99) Clear ONHOLD flag when decrementing the onHold peer count. If we did not do this the count may keep decreasing. 2007-07-27 14:30 +0000 [r77490] Mark Michelson * channels/chan_sip.c: "re-invite" was misspelled 2007-07-26 23:19 +0000 [r77460] Joshua Colp * main/channel.c: (closes issue #10302) Reported by: litnialex If a DTMF end frame comes from a channel without a begin and it is going to a technology that only accepts end frames (aka INFO) then use the minimum DTMF duration if one is not in the frame already. 2007-07-26 22:16 +0000 [r77424-77429] Kevin P. Fleming * doc/mp3.txt: change protocol for downloads as well * doc/mp3.txt, sounds/Makefile: use new canonical name for download server 2007-07-26 21:23 +0000 [r77410] Russell Bryant * Makefile, build_tools/make_buildopts_h: AST_DEVMODE was defined in trunk, but not in 1.4. When Asterisk is compiled under dev mode, AST_DEVMODE will get defined in buildopts.h. Change 1.4 to define it in the same way that trunk does. Also, revert the change that added this define in the Makefile The advantage to doing it this way is that buildopts.h gets installed when you install Asterisk. Then, when building any out of tree modules, or building asterisk-addons, these modules know which options the rest of Asterisk was built with. 2007-07-26 20:35 +0000 [r77380] Mark Michelson * Makefile, main/logger.c: Fixes to get ast_backtrace working properly. The AST_DEVMODE macro was never defined so the majority of ast_backtrace never attempted compilation. The makefile now defines AST_DEVMODE if configure was run with --enable-dev-mode. Also, changes were made to acccomodate 64 bit systems in ast_backtrace. Thanks to qwell, kpfleming, and Corydon76 for their roles in allowing me to get this committed 2007-07-26 19:32 +0000 [r77348-77350] Tilghman Lesher * main/logger.c: Missed one * main/logger.c: Oops, that builtin define should be all-lowercase. 2007-07-26 18:30 +0000 [r77318] Mark Michelson * cdr/cdr_pgsql.c: Two consecutive calls to PQfinish could occur, meaning free gets called on the same variable twice. This patch sets the connection to NULL after calls to PQfinish so that the problem does not occur. Also in this patch, prashant_jois informed me that it is safe to pass a null pointer to PQfinish, so I have removed the check for conn's existence from my_unload_module. (closes issue 10295, reported by junky, patched by me with input from prashant_jois) 2007-07-25 22:39 +0000 [r77191] Steve Murphy * apps/app_meetme.c: This fix solves problem with intense squelch noise when someone joins conf in bug 9430; We repro'd the problem with meetme opts of 'CciMo'; Josh Colp supplied this patch, and I'm applying it. It looks like playing the recorded username will louse up the next thing played into the channel. Josh rearranged the code so as to start things over before playing data directly into the conference. 2007-07-25 22:16 +0000 [r77176] Joshua Colp * apps/app_speech_utils.c: (closes issue #10303) Reported by: jtodd Add SPEECH_DTMF_TERMINATOR variable so the user can specify the digit to terminate a DTMF string with. If none is specified then no terminator will be used. 2007-07-25 21:52 +0000 [r77154] Mark Michelson * main/channel.c: chan->emulate_dtmf_duration is an unsigned int, not a signed int, so use %u instead of %d in the format string 2007-07-25 20:23 +0000 [r77116-77136] Jason Parker * /: so are my fingers... * /: autotagexternals script is still obviously misbehaving... * /: use autotagged externals 2007-07-25 17:14 +0000 [r77071] Joshua Colp * configure, acinclude.m4: Fix autoconf logic for finding OpenH323 when it is not in the first place searched (/usr/share/openh323). 2007-07-25 09:34 +0000 [r77022] Luigi Rizzo * main/rtp.c: set the sequence number in a frame for all frame types 2007-07-25 00:18 +0000 [r76983] Steve Murphy * channels/chan_zap.c, /: Merged revisions 76978 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76978 | murf | 2007-07-24 18:07:24 -0600 (Tue, 24 Jul 2007) | 1 line this fixes bug 10293, where the error message because defaultzone or loadzone was not defined was confusing ........ 2007-07-24 22:12 +0000 [r76891-76937] Tilghman Lesher * /, include/asterisk/lock.h: Merged revisions 76934 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76934 | tilghman | 2007-07-24 17:11:33 -0500 (Tue, 24 Jul 2007) | 2 lines Oops, res contains the error code, not errno. I was wondering why a mutex was reporting "No such file or directory"... ........ * main/app.c: Found another place where we should be using the umask (thanks jcmoore) 2007-07-24 Jason Parker * Asterisk 1.4.9 released. 2007-07-24 16:42 +0000 [r76803-76805] Jason Parker * channels/chan_iax2.c: Don't create the Asterisk channel until we are starting the PBX on it. (ASA-2007-018) 2007-07-24 16:26 +0000 [r76801] Mark Michelson * apps/app_queue.c: Added a membercount variable to call_queue struct which keeps track of the number of logged in members in a particular queue. This makes it so that the 'n' option for Queue() can act properly depending on which strategy is used. If the strategy is roundrobin, rrmemory, or ringall, we want to ring each phone once before moving on in the dialplan. However, if any other strategy is used, we will only ring one phone since it cannot be guaranteed that a different phone will ring on subsequent attempts to ring a phone. As a side effect of this, the QUEUE_MEMBER_COUNT dialplan function now just reads the membercount variable instead of traversing through the member list to figure out how many members there are. Special thanks to blitzrage for helping to test this out. (closes issue #10127, reported by bcnit, patched by me, tested by blitzrage) 2007-07-23 22:38 +0000 [r76708] Tilghman Lesher * apps/app_voicemail.c: It was our stated intention for 1.4 that files created in app_voicemail should depend upon the umask. Unfortunately, mkstemp() creates files with mode 0600, regardless of the umask. This corrects that deficiency. 2007-07-23 18:59 +0000 [r76656] Jason Parker * channels/chan_skinny.c: Fix some incorrect softkey labels in messages. Don't try to play dialtone in some unimplemented features. 2007-07-23 18:29 +0000 [r76654] Joshua Colp * /, channels/chan_agent.c: Merged revisions 76653 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76653 | file | 2007-07-23 15:28:13 -0300 (Mon, 23 Jul 2007) | 4 lines (closes issue #5866) Reported by: tyler Do not force channel format changes when a generator is present. The generator may have changed the formats itself and changing them back would cause issues. ........ 2007-07-23 17:57 +0000 [r76620] Jason Parker * channels/chan_skinny.c: Don't try to queue up hold/unhold frames on a non-existent channel. Issue 10276. 2007-07-23 17:48 +0000 [r76519-76618] Joshua Colp * apps/app_morsecode.c: Allow app_morsecode to build on PPC Linux by putting the value of the digit char in an int. * /, channels/chan_sip.c: Merged revisions 76560 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76560 | file | 2007-07-23 11:32:07 -0300 (Mon, 23 Jul 2007) | 6 lines (closes issue #10236) Reported by: homesick Patches: rpid_1.4_75840.patch uploaded by homesick (license 91) Accept Remote Party ID on guest calls. ........ * channels/chan_skinny.c: (closes issue #10268) Reported by: mvanbaak Patches: chan_skinny_openbsd.diff uploaded by mvanbaak (license 7) Add another OS that has to use the Macros for byte ordering. 2007-07-23 12:25 +0000 [r76485] Russell Bryant * channels/chan_iax2.c: Use a signed integer for storing the number of bytes in the packet read from the network. Using an unsigned value here made it impossible to handle an error returned from recvfrom(). Furthermore, in the case that recvfrom() did return an error, this would cause a crash due to a heap overflow. (closes issue #10265, reported by and fix suggested by timrobbins) 2007-07-21 02:02 +0000 [r76227] Russell Bryant * /, channels/chan_sip.c: Merged revisions 76226 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76226 | russell | 2007-07-20 21:01:46 -0500 (Fri, 20 Jul 2007) | 4 lines Backport a fix for a memory leak that was fixed in trunk in reivision 76221 by rizzo. The memory used for the localaddr list was not freed during a configuration reload. ........ 2007-07-20 21:36 +0000 [r76211] Steve Murphy * sounds/Makefile: This patch from 10249 is worth applying! It prevents downloading sound files if they are already downloaded. Darn Practical, if you ask me 2007-07-20 21:03 +0000 [r76174-76178] Jason Parker * channels/chan_skinny.c: Allow getting a call from an existing "sub" channel. Cancel ringing if endpoint hangs up before answering. Fixes were backported from trunk (there was apparently a bit of confusion during merge of a previous patch). (closes issue #10241) * main/manager.c: Eliminate a compiler warning with gcc 4.2 by constifying a char * * channels/chan_skinny.c: It's possible for sub->owner to be NULL here if you cancel the call immediately after/during sending a digit. 2007-07-20 18:42 +0000 [r76139] Mark Michelson * apps/app_directory.c: When using users.conf for the entries in the directory, if multiple users had the same last name, only the first user listed would be available in the directory. (closes issue #10200, reported by mrskippy, patched by me) 2007-07-20 18:22 +0000 [r76132] Russell Bryant * main/channel.c: Use the define that specifies the default length of an artificially created DTMF digit in the ast_senddigit() function. The define is set to 100ms by default, which is the same thing that this function was using. But, using the define lets changes take effect in this case, as well as the others where it was already used. 2007-07-20 17:20 +0000 [r76054-76087] Joshua Colp * /, channels/chan_sip.c: Merged revisions 76080 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76080 | file | 2007-07-20 14:16:48 -0300 (Fri, 20 Jul 2007) | 6 lines (closes issue #10247) Reported by: fkasumovic Patches: chan_sip.patch uploaded by fkasumovic (license #101) Drop any peer realm authentication entries when reloading so multiple entries do not get added to the peer. ........ * res/res_convert.c: (closes issue #10246) Reported by: fkasumovic Patches: res_conver.patch uploaded by fkasumovic (license #101) Use the last occurance of . to find the extension, not the first occurance. * apps/app_queue.c: Move makeannouncement variable declaration to proper place. 2007-07-19 20:36 +0000 [r75980] Jason Parker * channels/chan_skinny.c: Remove some duplicate code. 2007-07-19 18:59 +0000 [r75969-75978] Mark Michelson * apps/app_queue.c: The diff on this looks pretty big but all I did was remove a pointless if statement (always evaluates true). * apps/app_queue.c: Changes in handling return values of several functions in app_queue. This all started as a fix for issue #10008 but now includes all of the following changes: 1. Simplifying the code to handle positive return values from ast API calls. 2. Removing the background_file function. 3. The fix for issue #10008 (closes issue #10008, reported and patched by dimas) 2007-07-19 15:53 +0000 [r75928] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 75927 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75927 | russell | 2007-07-19 10:49:42 -0500 (Thu, 19 Jul 2007) | 6 lines When processing full frames, take sequence number wraparound into account when deciding whether or not we need to request retransmissions by sending a VNAK. This code could cause VNAKs to be sent erroneously in some cases, and to not be sent in other cases when it should have been. (closes issue #10237, reported and patched by mihai) ........ 2007-07-18 22:59 +0000 [r75807] Jason Parker * channels/chan_skinny.c: Need to make sure we set milliseconds and timestamp - pointed out by the recent ast_ time stuff from Tilghman 2007-07-18 21:09 +0000 [r75759] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 75757 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75757 | russell | 2007-07-18 16:09:13 -0500 (Wed, 18 Jul 2007) | 5 lines When traversing the queue of frames for possible retransmission after receiving a VNAK, handle sequence number wraparound so that all frames that should be retransmitted actually do get retransmitted. (issue #10227, reported and patched by mihai) ........ 2007-07-18 20:40 +0000 [r75749] Tilghman Lesher * apps/app_voicemail.c, /: Merged revisions 75748 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75748 | tilghman | 2007-07-18 15:31:36 -0500 (Wed, 18 Jul 2007) | 2 lines Store prior to copy (closes issue #10193) ........ 2007-07-18 20:17 +0000 [r75732] Jason Parker * channels/chan_skinny.c: Umm, why are we transmitting dialtone on cfwdall? 2007-07-18 20:00 +0000 [r75712] Joshua Colp * apps/app_voicemail.c, channels/chan_sip.c, channels/chan_agent.c, pbx/pbx_realtime.c: Backport GCC 4.2 fixes. Without these Asterisk won't build under devmode using GCC 4.2. 2007-07-18 19:54 +0000 [r75707-75711] Jason Parker * channels/chan_skinny.c: Fixes for 7935/7936 conference phones. Issue 9245, patch by slimey. * channels/chan_skinny.c: Fix issues with new 79x1 phones. Issue 9887, patches by DEA 2007-07-18 17:56 +0000 [r75658] Dwayne M. Hubbard * /, apps/app_queue.c: Merged revisions 75657 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75657 | dhubbard | 2007-07-18 12:48:33 -0500 (Wed, 18 Jul 2007) | 1 line removed the word 'pissed' from ast_log(...) function call for BE-90 ........ 2007-07-18 15:44 +0000 [r75583-75623] Joshua Colp * channels/chan_sip.c: Few more places that needs to check for onhold state. * channels/chan_sip.c: (closes issue #10165) Reported by: elandivar It is possible for hold status to exist without call limits set, so we need to ensure update_call_counter is executed regardless. * channels/chan_h323.c: Don't bother reloading chan_h323 if it did not load successfully in the first place. This would otherwise cause a crash. * pbx/pbx_dundi.c: (closes issue #10224) Reported by: irroot Record the threadid of each running thread before shutting them down as the thread themselves may change the value. 2007-07-18 12:29 +0000 [r75529] Tilghman Lesher * apps/app_meetme.c: Using a freed frame causes crashes (closes issue #9317) 2007-07-17 Russell Bryant * Asterisk 1.4.8 released. 2007-07-17 20:57 +0000 [r75441-75450] Russell Bryant * /, channels/chan_skinny.c: Merged revisions 75449 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75449 | russell | 2007-07-17 15:57:09 -0500 (Tue, 17 Jul 2007) | 3 lines Properly check for the length in the skinny packet to prevent an invalid memcpy. (ASA-2007-016) ........ * main/rtp.c: cast arguments to ast_log so that it builds without warnings for me * channels/iax2-parser.c, channels/iax2-parser.h, /, channels/chan_iax2.c: Merged revisions 75444 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75444 | russell | 2007-07-17 15:45:27 -0500 (Tue, 17 Jul 2007) | 5 lines Ensure that when encoding the contents of an ast_frame into an iax_frame, that the size of the destination buffer is known in the iax_frame so that code won't write past the end of the allocated buffer when sending outgoing frames. (ASA-2007-014) ........ * /, channels/chan_iax2.c: Merged revisions 75440 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75440 | russell | 2007-07-17 15:41:41 -0500 (Tue, 17 Jul 2007) | 4 lines After parsing information elements in IAX frames, set the data length to zero, so that code later on does not think it has data to copy. (ASA-2007-015) ........ 2007-07-17 20:40 +0000 [r75439] Joshua Colp * main/rtp.c: Ensure that the pointer to STUN data does not go to unaccessible memory. (ASA-2007-017) 2007-07-17 20:33 +0000 [r75437] Russell Bryant * res/res_agi.c: (issue #10210) Reported by: juggie Patches: 10210-1.4-grr.patch uploaded by juggie (license #24) Tested by: juggie, blitzrage Log a warning if someone uses DeadAGI on a live channel. 2007-07-17 20:03 +0000 [r75405] Mark Michelson * apps/app_dial.c: Fixing an error I made earlier. ast_fileexists can return -1 on failure, so I need to be sure that we only enter the if statement if it is successful. Related to my fix to issue #10186 2007-07-17 20:01 +0000 [r75401-75403] Russell Bryant * main/pbx.c: (closes issue #10209) Reported by: juggie Patches: 10209-trunk-2.patch uploaded by juggie Tested by: juggie, blitzrage In ast_pbx_run(), mark a channel as hung up after an application returned -1, or when it runs out of extensions to execute. This is so that code can detect that this channel has been hung up for things like making sure DeadAGI is used on actual dead channels, and is beneficial for other things, like making sure someone doesn't try to start spying on a channel that is about to go away. * res/res_agi.c: Remove a duplicated newline character in AGI debug output. (closes issue #10207, patch by seanbright) 2007-07-16 20:53 +0000 [r75258-75306] Kevin P. Fleming * main/dns.c, /: Merged revisions 75304 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75304 | kpfleming | 2007-07-16 15:46:58 -0500 (Mon, 16 Jul 2007) | 3 lines provide proper copyright/license attribution for this structure that was copied from a BSD-licensed header file long, long ago... ........ * /: another fix that is not needed here (finishing up 75251) 2007-07-16 18:16 +0000 [r75253] Mark Michelson * apps/app_dial.c: Restoring functionality from 1.2 wherein Retrydial will not exit if there is no announce file specified. This change makes it so that if there is no announce file specified, the application will continue until finished (or caller hangs up). If a bogus announce file is specified, then a warning message will be printed saying that the file could not be found, but execution will still continue. (closes issue #10186, reported by jon, patched by me) 2007-07-16 18:12 +0000 [r75252] Kevin P. Fleming * /: block change that is not relevant here 2007-07-13 20:36 +0000 [r75108] Russell Bryant * /, res/res_musiconhold.c: Merged revisions 75107 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75107 | russell | 2007-07-13 15:35:22 -0500 (Fri, 13 Jul 2007) | 3 lines Fix a couple potential minor memory leaks. load_moh_classes() could return without destroying the loaded configuration. ........ 2007-07-13 20:15 +0000 [r75078] Mark Michelson * apps/app_chanspy.c, /: Merged revisions 75066 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75066 | mmichelson | 2007-07-13 15:10:39 -0500 (Fri, 13 Jul 2007) | 5 lines Fixed an issue where chanspy flags were uninitialized if no options were passed. What triggered this investigation was an IRC chat where some people's quiet flags were set while others' weren't even though none of them had specified the q option. ........ 2007-07-13 20:10 +0000 [r75053-75067] Russell Bryant * /, res/res_musiconhold.c: Merged revisions 75059 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75059 | russell | 2007-07-13 15:07:21 -0500 (Fri, 13 Jul 2007) | 6 lines Ensure that adding a user to the list of users of a specific music on hold class is not done at the same time as any of the other operations on this list to prevent list corruption. Using the global moh_data lock for this is not ideal, but it is what is used to protect these lists everywhere else in the module, and I am only changing what is necessary to fix the bug. ........ * channels/chan_zap.c, /: Merged revisions 75052 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75052 | russell | 2007-07-13 14:10:00 -0500 (Fri, 13 Jul 2007) | 12 lines (closes issue #9660) Reported by: mmacvicar Patches submitted by: bbryant, russell Tested by: mmacvicar, marco, arcivanov, jmhunter, explidous When using a TDM400P (and probably other analog cards) there was a chance that you could hang up and pick the phone back up where it has been long enough to be not considered a flash hook, but too soon such that the device reports that it is busy and the person on the phone will only hear silence. This patch makes chan_zap more tolerant of this and gives the device a couple of seconds to succeed so the person on the phone happily gets their dialtone. ........ 2007-07-12 23:00 +0000 [r74998] Mark Michelson * channels/chan_agent.c: Change to my previous fix regarding agent logoff soft. Now uses deferlogoff instead of loginstart since loginstart is used after logoff. Thanks to makoto for pointing this out and suggesting the fix. (closes issue #10178, reported and patched by makoto, with modification by me) 2007-07-12 20:42 +0000 [r74955] Steve Murphy * channels/chan_sip.c: This patch resolves 10143; thanks to irroot for the patch; looked acceptable. Let the community decide if it messes things up 2007-07-12 19:17 +0000 [r74888-74922] Joshua Colp * main/channel.c: Whoops... didn't want this to be returned to 0 each iteration. * main/channel.c: When waiting for a digit ensure that a begin frame was received with it, not just an end frame. (issue #10084 reported by rushowr) 2007-07-12 16:53 +0000 [r74839-74866] Jason Parker * channels/chan_skinny.c: It helps if I actually add this stuff for the 7921 too - otherwise it won't actually do much of anything. * channels/chan_skinny.c: Add device ID for 7921 wireless skinny phone * channels/chan_skinny.c: Fix dialing in skinny that was broken in some cases. Issue 10136, fix provided by DEA. 2007-07-12 15:53 +0000 [r74815] Joshua Colp * /, res/res_musiconhold.c: Merged revisions 74814 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74814 | file | 2007-07-12 12:51:24 -0300 (Thu, 12 Jul 2007) | 2 lines Only print out a warning for situations where it is actually helpful. (issue #10187 reported by denke) ........ 2007-07-11 22:57 +0000 [r74767] Russell Bryant * /, channels/chan_iax2.c: Merged revisions 74766 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74766 | russell | 2007-07-11 17:53:26 -0500 (Wed, 11 Jul 2007) | 5 lines The function make_trunk() can fail and return -1 instead of a valid new call number. Fix the uses of this function to handle this instead of treating it as the new call number. This would cause a deadlock and memory corruption. (possible cause of issue #9614 and others, patch by me) ........ 2007-07-11 21:14 +0000 [r74722] Mark Michelson * /, channels/chan_agent.c: Merged revisions 74719 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74719 | mmichelson | 2007-07-11 16:12:30 -0500 (Wed, 11 Jul 2007) | 5 lines The cli command "agent logoff Agent/x soft" did not work...at all. Now it does. (closes issue #10178, reported and patched by makoto, with slight modification for 1.4 and trunk by me) ........ 2007-07-11 18:34 +0000 [r74657] Russell Bryant * res/res_config_odbc.c, /: Merged revisions 74656 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74656 | russell | 2007-07-11 13:33:23 -0500 (Wed, 11 Jul 2007) | 4 lines Make sure that the ESCAPE immediately follows the condition that uses LIKE. This fixes realtime extensions with ODBC. (closes issue #10175, reported by stuarth, patch by me) ........ 2007-07-11 18:18 +0000 [r74628-74642] Steve Murphy * Makefile: This fixes 10172, where the entire man8 dir gets removed during an uninstall of asterisk * utils/expr2.testinput, doc/channelvariables.txt, UPGRADE.txt: further reversion of previously applied floating point stuff for expr2 2007-07-11 17:16 +0000 [r74515-74590] Joshua Colp * channels/chan_phone.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Instead of figuring out kernel versions that have compiler.h and not... let's just use autoconf to check for it's presence. (issue #10174 reported by francesco_r) * channels/chan_phone.c: Only check if we need to do a SIGMA based tone generation if we have a card. (issue #10179 reported by mikowhy) 2007-07-10 23:32 +0000 [r74476] Mark Michelson * apps/app_voicemail.c: Forwarding a message with IMAP storage was storing the message in the sender's box instead of the forwarded mailbox. (closes issue #10138, reported and patched by jaroth) 2007-07-10 19:58 +0000 [r74374-74428] Jason Parker * /, apps/app_queue.c: Merged revisions 74427 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74427 | qwell | 2007-07-10 14:57:20 -0500 (Tue, 10 Jul 2007) | 6 lines Fix an issue where it was possible to have a service level of over 100% Between the time recalc_holdtime and update_queue was called, it was possible that the call could have been hungup. Move both additions to the same place, so this won't happen. Issue 10158, initial patch by makoto, modified by me. ........ * main/dns.c: Don't use #if to check if something is defined - use #ifdef instead. Pointed out by kpfleming * /, channels/chan_agent.c: Merged revisions 74376 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74376 | qwell | 2007-07-10 14:03:45 -0500 (Tue, 10 Jul 2007) | 4 lines Fix an issue with wrapuptime not working when using AgentLogin. Issue 10169, patch by makoto, with a minor mod by me to not re-break issue 9618 ........ * main/dns.c, /, configure, include/asterisk/autoconfig.h.in, configure.ac: Merged revisions 74373 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74373 | qwell | 2007-07-10 13:37:23 -0500 (Tue, 10 Jul 2007) | 5 lines Use res_ndestroy on systems that have it. Otherwise, use res_nclose. This prevents a memleak on NetBSD - and possibly others. Issue 10133, patch by me, reported and tested by scw ........ 2007-07-10 Russell Bryant * Asterisk 1.4.7.1 released. 2007-07-10 16:00 +0000 [r74323] Russell Bryant * res/res_musiconhold.c: fix an uninitialized variable 2007-07-10 15:38 +0000 [r74317] Jason Parker * apps/app_voicemail.c, /: Merged revisions 74316 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74316 | qwell | 2007-07-10 10:37:54 -0500 (Tue, 10 Jul 2007) | 4 lines Fix a small typo in description in of Voicemail() application. Issue 10170, patch by casper. ........ 2007-07-10 15:31 +0000 [r74314] Russell Bryant * res/res_config_odbc.c, /: Merged revisions 74313 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74313 | russell | 2007-07-10 10:30:20 -0500 (Tue, 10 Jul 2007) | 3 lines Only use ESCAPE when LIKE is used. (issue #10075, this part reported by jmls on IRC, patch by me) ........ 2007-07-10 14:50 +0000 [r74262-74265] Joshua Colp * /, main/app.c: Merged revisions 74264 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74264 | file | 2007-07-10 11:48:00 -0300 (Tue, 10 Jul 2007) | 2 lines Ensure the group information category exists before trying to do a string comparison with it. (issue #10171 reported by mlegas) ........ * channels/chan_sip.c: Only spit out an inringing warning message when it is applicable. Since call limits are already toast in realtime let's not scare the user if they are using it. (issue #10166 reported by bcnit) 2007-07-09 Russell Bryant * Asterisk 1.4.7 released. 2007-07-09 21:31 +0000 [r74162-74211] Russell Bryant * configure, configure.ac: Update the configure script to check for a required function that is not present in the 1.2 version of libpri. This will prevent the configure script from thinking that it has compatible libpri support for Asterisk 1.4, when it actually does not because the installed version is from 1.2. * res/res_musiconhold.c: (closes issue #10123) Reported by: blitzrage Patches submitted by: juggie, qwell, me Tested by: blitzrage When trying to find a music on hold class to use, try all of the options, instead of only the first one that is set. Also, change the MusicOnHold applications to not hang up on the channel when a class can not be found. 2007-07-09 20:19 +0000 [r74159] Jason Parker * channels/chan_zap.c, /: Merged revisions 74158 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74158 | qwell | 2007-07-09 15:18:15 -0500 (Mon, 09 Jul 2007) | 8 lines Several chan_zap options were not working on reload because they were arbitrarily disallowed when reloading some/most PRI options (such as signalling) was disallowed. Options such as polarityonanswerdelay and answeronpolarityswitch can safely be changed on a reload. This corrects that behavior. Issue 9186, patch by tzafrir. ........ 2007-07-09 18:38 +0000 [r74120-74122] Mark Michelson * apps/app_queue.c: Forgot to get rid of an extraneous debug message. * apps/app_queue.c: The n option for Queue should make the queue exit immediately after failure to reach any members and should not be dependent on the timeout value passed to Queue (closes issue #10127, reported by bcnit, repaired by me) 2007-07-09 15:32 +0000 [r74082] Joshua Colp * channels/chan_skinny.c: Only destroy the scheduler context if it was allocated. (issue #10124 reported by gzero) 2007-07-09 14:57 +0000 [r74047] Mark Michelson * apps/app_voicemail.c: Fixed a logic error in leave_voicemail. Pass the mailbox instead of the context to inbox_count when the context is "default." (closes issue #10135, reported by yannj, repaired by me) 2007-07-09 14:49 +0000 [r74043-74045] Joshua Colp * channels/chan_skinny.c, pbx/pbx_dundi.c: Few minor thread synchronization tweaks. (issue #10124 reported by gzero) * configure, acinclude.m4: Use AC_CHECK_HEADER to check for ptlib/openh323 to allow for cross compiling. (issue #9675 reported by zandbelt) 2007-07-09 04:03 +0000 [r73985] Tilghman Lesher * main/ast_expr2f.c: Doxygen formatting fixes; fixes errors while 'make progdocs'. (Closes issue #10104) 2007-07-09 03:13 +0000 [r73930-73980] Joshua Colp * main/cdr.c: Give Agent channel names priority when doing CDR merging. (issue #10011 reported by krtorio) * pbx/pbx_config.c: Add a few sanity checks when writing out the dialplan. (issue #10157 reported by dome) 2007-07-08 09:47 +0000 [r73849] Olle Johansson * channels/chan_sip.c: While tracking down a bug, I need some more history. Dumphistory is very useful, indeed. 2007-07-06 23:02 +0000 [r73769] Russell Bryant * /, channels/chan_sip.c: Merged revisions 73768 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73768 | russell | 2007-07-06 18:01:22 -0500 (Fri, 06 Jul 2007) | 4 lines If a sip_pvt struct has already registered an extension state callback, remove the old one before adding a new one. If this isn't done, Asterisk will crash. (issue #10120) ........ 2007-07-06 16:36 +0000 [r73727] Mark Michelson * apps/app_voicemail.c: Fixing a rare case which causes voicemail to crash when compiled with IMAP storage. inboxcount has the possibility of finding an "interactive" vm_state when no persistent "non-interactive" vm_state exists for that mailbox. If this should happen when someone attempts to leave a message, it results in a crash. This patch, along with my commit in revision 72670 fix issue 10053, reported by jaroth. closes issue #10053 2007-07-06 16:12 +0000 [r73679-73696] Russell Bryant * res/res_config_odbc.c, /: Merged revisions 73684 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73684 | russell | 2007-07-06 11:06:27 -0500 (Fri, 06 Jul 2007) | 8 lines (closes issue #10075) Reported by: apsaras Patches submitted by: Corydon76 Tested by: apsaras Fix a problem with MSSQL 2005 by explicitly stating that '\' is being used as an escape character. ........ * /, channels/chan_sip.c: Merged revisions 73678 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73678 | russell | 2007-07-06 10:55:41 -0500 (Fri, 06 Jul 2007) | 7 lines (closes issue #10125) Reported by: makoto Patches submitted by: makoto This fixes a crash in chan_sip that happens when the bindaddr setting is not valid on Asterisk startup, gets fixed, and then a reload gets issued. ........ 2007-07-06 15:27 +0000 [r73675] Mark Michelson * /, channels/chan_agent.c: Merged revisions 73674 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73674 | mmichelson | 2007-07-06 10:26:40 -0500 (Fri, 06 Jul 2007) | 5 lines Fixed a bug wherein agents get stuck busy. (issue 9618, reported by jiddings, patched by moi) closes issue #9618 ........ 2007-07-06 03:34 +0000 [r73551-73629] Russell Bryant * BUGS: fix a little spelling error * channels/chan_sip.c: Fix a crash in chan_sip. Don't try to stop the monitor thread if it was never started. (closes issue #10124, reported by gzero, fixed by me) * channels/chan_iax2.c: copy from the correct buffer when deferring a full frame (related to issue #9937) * channels/chan_iax2.c: * Store the call number that a thread is processing without the full frame bit set to ease debugging * When deferring a full frame for processing, stick it into the queue for the thread that is processing frames for that call, not the one that read the current frame and is about to go back into the idle list (related to issue #9937) 2007-07-05 22:20 +0000 [r73548] Kevin P. Fleming * /, channels/chan_sip.c: Merged revisions 73547 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73547 | kpfleming | 2007-07-05 17:11:51 -0500 (Thu, 05 Jul 2007) | 2 lines we shouldn't allow G.723.1 endpoints to use VAD, just like we don't support it for G.729 ........ 2007-07-05 20:50 +0000 [r73512] Russell Bryant * res/res_features.c: Pass HOLD and UNHOLD frames to the other channel when they are returned from a native bridge function. This fixes a problem where when two zap channels are natively bridged and one does a flash hook, the other channel did not receive music on hold. (Reported to me directly by Doug Bailey at Digium) 2007-07-05 19:18 +0000 [r73467] Joshua Colp * /, channels/chan_sip.c: Merged revisions 73466 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73466 | file | 2007-07-05 16:15:18 -0300 (Thu, 05 Jul 2007) | 2 lines Copy language information to the dialog structure when calling a peer for situations where a PBX may be started on the dialed channel. (issue #10121 reported by clegall_proformatique) ........ 2007-07-05 15:59 +0000 [r73400] Mark Michelson * apps/app_queue.c: Correcting a minor CLI bug I found. When issuing the queue show command, if you type queue show and then press tab, you can continue pressing tab and it will keep auto-completing queue names even though only 1 queue can be used as an argument. 2007-07-05 15:28 +0000 [r73398] Russell Bryant * channels/chan_vpb.cc, channels/Makefile: Make this module build for me in dev-mode 2007-07-05 14:21 +0000 [r73316-73355] Joshua Colp * apps/app_chanspy.c, main/channel.c, /: Merged revisions 73349 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73349 | file | 2007-07-05 11:19:14 -0300 (Thu, 05 Jul 2007) | 2 lines Tweak spy locking. (issue #9951 reported by welles) ........ * channels/chan_local.c, /: Merged revisions 73318 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73318 | file | 2007-07-05 10:26:02 -0300 (Thu, 05 Jul 2007) | 2 lines Actually check to make sure a PBX was started on one of the Local channels instead of blindly assuming it was. (issue #10112 reported by makoto) ........ * /, apps/app_queue.c: Merged revisions 73315 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73315 | file | 2007-07-05 10:19:17 -0300 (Thu, 05 Jul 2007) | 2 lines Reset ServicelevelPerf variable back to 0 if we are unable to calculate it each time... otherwise we will get previous values. (issue #10117 reported by noriyuki) ........ 2007-07-04 14:53 +0000 [r73208-73253] Christian Richter * channels/misdn/isdn_lib.c, /: Merged revisions 73252 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73252 | crichter | 2007-07-04 16:50:58 +0200 (Mi, 04 Jul 2007) | 1 line bchannel configurations like echocancel and volume control, need to be setuped on inbound calls too. ........ * channels/chan_misdn.c, /: Merged revisions 73207 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73207 | crichter | 2007-07-04 10:20:54 +0200 (Mi, 04 Jul 2007) | 1 line bad bug in overlapdial case, we called start_pbx multiple times, because the state wasn't changed.. ........ 2007-07-03 20:17 +0000 [r73143] Steve Murphy * main/ast_expr2.fl, main/ast_expr2.c, main/Makefile, main/ast_expr2.h, main/ast_expr2.y, main/ast_expr2f.c: Removing expr floating patch from 1.4; too much of a behavior change. If you want this fix, try trunk instead. bug 9508. 2007-07-03 15:42 +0000 [r73104-73106] Jason Parker * /: What the heck. This should not have happened. * /: use autotagged externals 2007-07-03 12:38 +0000 [r73053] Tilghman Lesher * apps/app_dial.c, /: Merged revisions 73052 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73052 | tilghman | 2007-07-03 07:34:14 -0500 (Tue, 03 Jul 2007) | 2 lines RetryDial should accept a 0 argument, but it does not, because atoi does not distinguish between 0 and error (closes issue #10106) ........ 2007-07-03 08:17 +0000 [r73005] Christian Richter * channels/chan_misdn.c, /: Merged revisions 73004 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r73004 | crichter | 2007-07-03 10:04:35 +0200 (Di, 03 Jul 2007) | 1 line fixed issue, that misdn_l2l1_check could only be called from mISDN Source channels.. #9449 ........ 2007-07-02 20:16 +0000 [r72933] Steve Murphy * main/ast_expr2.fl, main/ast_expr2.c, utils/expr2.testinput, main/Makefile, main/ast_expr2.h, main/ast_expr2.y, main/ast_expr2f.c, doc/channelvariables.txt, UPGRADE.txt: support for floating point numbers added to ast_expr2 $\[...\] exprs. Fixes bug 9508, where the expr code fails with fp numbers. The MATH function returns fp numbers by default, so this fix is considered necessary. 2007-07-02 18:18 +0000 [r72926] Russell Bryant * main/manager.c: Remove a bogus comment and add proper locking to the handler function for the CLI command to show information on manager actions. 2007-07-02 14:32 +0000 [r72888] Joshua Colp * main/channel.c: Added additional DTMF debug messages for when emulation occurs. 2007-07-02 08:41 +0000 [r72850-72852] Christian Richter * channels/misdn/isdn_lib.c, channels/chan_misdn.c, /: Merged revisions 72585 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72585 | crichter | 2007-06-29 15:08:26 +0200 (Fr, 29 Jun 2007) | 1 line check if the bchannel stack id is already used, if so don't use it a second time. Also added a release_chan lock, so that the same chan_list object cannot be freed twice. chan_misdn does not crash anymore on heavy load with these changes. ........ * channels/misdn/isdn_lib.c, channels/misdn/isdn_lib.h, channels/chan_misdn.c, /, channels/misdn/isdn_msg_parser.c: Merged revisions 72099 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72099 | crichter | 2007-06-27 15:22:37 +0200 (Mi, 27 Jun 2007) | 1 line simplified generation for dummy bchannels, also we mark them as dummies, so they are not used later as real-bchannels, optimized the RESTART mechanisms, we block a channel now on cause:44, and send out a RESTART automatically, then on reception of RESTART_ACKNOWLEDGE we unblock the channel again. ........ * channels/misdn/isdn_lib.c, channels/misdn/isdn_lib.h, /: Merged revisions 72087 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72087 | crichter | 2007-06-27 11:26:53 +0200 (Mi, 27 Jun 2007) | 1 line simplified channel finding and locking a lot. removed unnecessary #ifdefed areas. ........ 2007-07-01 23:52 +0000 [r72806] Russell Bryant * pbx/pbx_spool.c, /: Merged revisions 72805 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72805 | russell | 2007-07-01 18:51:34 -0500 (Sun, 01 Jul 2007) | 5 lines When appending lines to call files to keep track of retries, write a leading newline just in case the original call file did not have a newline at the end. This fix is in response to a problem I saw reported on the asterisk-users mailing list. ........ 2007-06-30 16:50 +0000 [r72705-72766] Russell Bryant * configure, configure.ac: Tweak the configure script so that error output isn't spewed to the console when searching for GTK2 libs, and they aren't found. * formats/format_pcm.c: give format_pcm a more concise destription 2007-06-29 19:07 +0000 [r72665] Luigi Rizzo * main/utils.c: Use !defined(HAVE_GETHOSTBYNAME_R) to check for absence of the function. This was already done in trunk. 2007-06-29 Russell Bryant * Asterisk 1.4.6 released. 2007-06-29 14:26 +0000 [r72597-72599] Joshua Colp * main/cdr.c: Minor change for older GCC versions. * Makefile, configure, configure.ac, makeopts.in: Backport fix for GCC versions without support for declaration-after-statement. 2007-06-29 04:47 +0000 [r72554-72556] Tilghman Lesher * main/manager.c: Issue 10055 - Change memory allocation to use the heap for a command, since the output has the potential to overflow the stack (as it did here) * res/res_jabber.c: Fix 1.4 breakage 2007-06-28 19:44 +0000 [r72493] Russell Bryant * configure, include/asterisk/autoconfig.h.in: regenerate the configure script for rizzo 2007-06-28 19:29 +0000 [r72453-72489] Luigi Rizzo * configure.ac: add a check for gethostbyname_r so we can simplify the handling e.g. in utils.c Also add comments on a couple of features which are not working on FreeBSD. All the above has been already done in trunk so the merge must be blocked. Can someone please regenerate ./configure ? * Makefile, channels/chan_zap.c, main/say.c: Add -Wdeclaration-after-statement to AST_DEVMODE flags to catch variable declarations in the middle of a block. Fix the few instances of the above spotted out by the compiler. All of this has been already done or is not applicable in trunk, so the merge of this change will be blocked. * apps/app_meetme.c: cast a time_t so that it does not conflict with the print format. This change was already done on trunk so this change needs to be blocked from merging. 2007-06-27 23:29 +0000 [r72383] Brett Bryant * main/asterisk.c, /: Merged revisions 72373 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72373 | bbryant | 2007-06-27 18:22:13 -0500 (Wed, 27 Jun 2007) | 3 lines Reinstating patch. This actually fixes the problem, however I was running a development branch without it and mistakenly thought it wasn't fixed. Fixes issue #10010, and #9654: 100% CPU usage caused by an asterisk console losing it's controlling terminal. ........ 2007-06-27 23:25 +0000 [r72381] Joshua Colp * apps/app_mixmonitor.c, /: Merged revisions 72378 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72378 | file | 2007-06-27 19:24:01 -0400 (Wed, 27 Jun 2007) | 2 lines Update documentation to clarify variable usage with MixMonitor. (issue #9494 reported by netoguy) ........ 2007-06-27 23:03 +0000 [r72335] Brett Bryant * main/asterisk.c, /: Merged revisions 72333 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72333 | bbryant | 2007-06-27 17:58:53 -0500 (Wed, 27 Jun 2007) | 2 lines Reverted changes for earlier revisions 72259 to 72261. Issue #9654, #10010 ........ 2007-06-27 22:58 +0000 [r72328-72331] Joshua Colp * channels/chan_gtalk.c: Make payload IDs for iLBC/Speex match to our list. Since these are dynamic payloads the other side shouldn't care. (issue #9426 reported by irroot) * /, apps/app_queue.c: Merged revisions 72327 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72327 | file | 2007-06-27 18:43:11 -0400 (Wed, 27 Jun 2007) | 2 lines Fix issue where queue log events might be missing. (issue #7765 reported by mtryfoss) ........ 2007-06-27 21:08 +0000 [r72272] Russell Bryant * /, pbx/pbx_config.c: Merged revisions 72267 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72267 | russell | 2007-06-27 16:06:45 -0500 (Wed, 27 Jun 2007) | 5 lines Fix a minor issue with parsing the priority number. You could have as much whitespace as you want around a numeric priority, but you couldn't have any whitespace around a special priority like "n" or "hint". (issue #10039, reported by mitheloc, fixed by me) ........ 2007-06-27 20:46 +0000 [r72260] Brett Bryant * main/asterisk.c, /: Merged revisions 72259 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72259 | bbryant | 2007-06-27 15:43:53 -0500 (Wed, 27 Jun 2007) | 4 lines Fixes 100% load when controlling terminal disappears. Issue #9654, #10010 ........ 2007-06-27 20:25 +0000 [r72257] Joshua Colp * main/channel.c, /: Merged revisions 72256 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72256 | file | 2007-06-27 16:23:24 -0400 (Wed, 27 Jun 2007) | 2 lines I may possibly get shot for doing this... but... defer CDR processing until after the channel has been dealt with. This should eliminate all of the issues with channels going funky (SIP/PRI) when you are posting CDRs to a database that is either slow or unavailable and do not want to enable batching. ........ 2007-06-27 19:13 +0000 [r72205] Kevin P. Fleming * channels/chan_zap.c: use the proper type for storing group number bits so that if someone specifies 'group=42' it will actually work instead of being silently ignored 2007-06-27 18:40 +0000 [r72182-72185] Jason Parker * apps/app_voicemail.c: Fix another problem in voicemail with missing symbols. Issue 10074, patch by kryptolus, extended to include #if 0'd blocks (just in case) 2007-06-27 17:31 +0000 [r72148] Joshua Colp * main/channel.c: Make the ast_read_noaudio API call behave better under circumstances where DTMF emulation was happening and a generator was setup. (issue #10065 reported by stevefeinstein) 2007-06-27 17:10 +0000 [r72125] Jason Parker * channels/chan_gtalk.c: Don't modify a variable that we don't want modified. Make a copy of it instead. Issue 10029, patch by phsultan with slight modifications by me (to remove needless casts). 2007-06-27 16:34 +0000 [r72112] Russell Bryant * main/rtp.c: Only output debug information related to RTCP timestamps when RTCP debug is turned on (issue #10066, patch by me) 2007-06-27 07:58 +0000 [r72042] Christian Richter * channels/misdn/isdn_lib.c, /: Merged revisions 72040-72041 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r72040 | crichter | 2007-06-27 09:49:27 +0200 (Mi, 27 Jun 2