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 * /, contri