Page Multiple Tenants at Once
If you would require to page to all or to a certain number of tenants at once, you can create a very simple custom script. See our Custom Scripts page on Developer Resource Center.

Legend

N = New Feature
E = Enhancement
X = Bugfix

V = Affect Visual
S = Affect Script
B = Affect Backend


Release Notes

This section explains some of the new features and significant improvements over previous versions. Note that bug fixes in previous update versions are also included in the current update version.

Asterisk 1.4.22-rc3

VersionDateDescription
r1408502008-09-03
  • 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
r1408162008-09-03
  • Don't freak out if the poll emulation receives NULL for the pollfds array (closes issue #13307) Reported by: jcovert
r1407512008-09-02
  • 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.
r140670-1407472008-09-02
  • 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.
  • 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.
  • (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.
r1406052008-09-02
  • 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)
r140417-1404882008-08-29
  • 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.
  • 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
  • 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
r1402992008-08-27
  • 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)
r1401152008-08-26
  • add HAVE_PRI if define around dahdi_close_pri_fd
r1400602008-08-26
  • 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.
r1400562008-08-26
  • (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.
r1400512008-08-26
  • 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.
r1400502008-08-26
  • 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
r1400292008-08-26
  • correct a file location in an error message
r1399272008-08-25
  • Fix a typo I made. Lesson learned, apply the patch if one exists.
r1399092008-08-25
  • 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
r1398692008-08-25
  • Make SIPADDHEADER() propagate indefinitely
r1397692008-08-25
  • 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)
r1397642008-08-25
  • 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!
r1396352008-08-22
  • 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.
r1396212008-08-22
  • (closes issue #13359) Reported by: Laureano Patches: originate_channel_check.patch uploaded by Laureano (license 265)
r139456-1395532008-08-22
  • Fix compilation when DEBUG_THREAD_LOCALS is selected (closes issue #13298) Reported by: snuffy Patches: bug13298_20080822.diff uploaded by snuffy (license 35)
  • 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
  • Fix the build. Thanks, mvanbaak!
  • Prevent a deadlock in chan_iax2 resulting from incorrect locking order between iax2_pvt and ast_channel structures. AST-13
r1393872008-08-21
  • 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)
r1393472008-08-21
  • (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!
r1392832008-08-21
  • Apply fix for issue #13310 to branch 1.4, too.
r1392132008-08-20
  • 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
r1391512008-08-20
  • 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.
r1391452008-08-20
  • 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
r1390742008-08-20
  • (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.
r1390152008-08-20
  • sip_read should properly handle a NULL return from sip_rtp_read. (closes issue #13257) Reported by: travishein
r1389492008-08-19
  • add DAHDI_POLICY_WHEN_FULL compatability define for Zaptel
r1389422008-08-19
  • 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
r1389382008-08-19
  • Add configuration option to chan_dahdi.conf to allow buffering policy and number of buffers to be configured per channel. Syntax: buffers=<num of buffers>,<policy> Where the number of buffers is some non-negative integer and the policy is either "full", "half", or "immediate".
r138685-1388862008-08-19
  • 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.
  • 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)
r1386632008-08-18
  • look for transcoder in proper place based on build against Zaptel or DAHDI
r1385692008-08-18
  • You know what's awesome? Code that compiles... ;)
r1385162008-08-18
  • fix compilation warnings
r138309-1383602008-08-16
  • fixes use count to properly decrement if an active dahdi channel is destroyed allowing module to be unloaded
  • add forgotten locks around ss_thread_count in ss_thread for dahdi restart
r1382582008-08-15
  • 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
r138119-1382382008-08-15
  • initialize condition variable ss_thread_complete using ast_cond_init
  • declared static mutexes using AST_MUTEX_DEFINE_STATIC macro
  • 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)
r1380272008-08-15
  • 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)
r137847-1380232008-08-15
  • 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
  • Oops, wrong direction
  • 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)
r1377312008-08-14
  • 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.
r137677-1376792008-08-14
  • 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
r1375802008-08-13
  • Register DAHDISendKeypadFacility application if dahdi_chan_mode is set to DAHDI + Zap. Mark ZapSendKeypadFacility application as deprecated on usage.
r137527-1375302008-08-13
  • add document describing what users will need to be aware of when upgrading to this version and using DAHDI
  • remove some more chan_zap references
  • document dahdichanname option in doc/asterisk-conf.txt make chan_dahdi read its configuration from zapata.conf if dahdichanname has been set to 'no'
r137348-1374052008-08-13
  • Update docs to reflect the change to cdr_tds
  • 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
r1371882008-08-11
  • convert this module to be able to handle DAHDI or Zaptel (reported on asterisk-users, don't know how this got missed before)
r1371382008-08-11
  • Deallocate database connection handle on disconnect, as we allocate another one on connect. (closes issue #13271) Reported by: dveiga
r1369992008-08-09
  • Ensure PBX_DAHDI_TRANSCODE will evaluate to 0 if not found instead of empty. pointed out by tzafrir on #asterisk-dev
r1369462008-08-09
  • 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 ........
r1367262008-08-08
  • 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.
r1365602008-08-07
  • 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
r1365442008-08-07
  • 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)
r1364882008-08-07
  • 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
r136404-1364842008-08-07
  • add a raw list of all libraries that any part of Asterisk links directly to
  • 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
  • remove config.cache during distclean, in case the user is using autoconf caching
r136304-1363482008-08-07
  • Also, parse useincomingcalleridonzaptransfer (and add appropriate deprecation warnings).
  • For backwards compatibility with previous 1.4 versions which used "zapchan" in users.conf, ensure that we still support it.
r1362412008-08-06
  • 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.
r1362382008-08-06
  • We only need to unregister the QueueStatus manager command once on an unload
r1361902008-08-06
  • -C option takes a filename, not a directory path. (closes issue #13007) Reported by: klaus3000
r1361682008-08-06
  • 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.
r1360622008-08-06
  • 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
r135899-1359492008-08-06
  • Fix a longstanding bug in channel walking logic, and fix the explanation to make sense. (Closes issue #13124)
  • Since powerof() can return an error condition, it's foolhardy not to detect and deal with that condition. (Related to issue #13240)
  • 1) Bugfix for debugging code 2) Reduce compiler warnings for another section of debugging code (Closes issue #13237)
r135841-1358502008-08-06
  • Remove properties that should not be here
  • 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
r1357992008-08-05
  • 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.
r1357472008-08-05
  • 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).
r1355972008-08-05
  • Use PATH_MAX for filenames
r1355362008-08-04
  • fix a config sample typo
r135479-1354822008-08-04
  • Define ASTSBINDIR for script
  • Memory leak on unload (closes issue #13231) Reported by: eliel Patches: app_voicemail.leak.patch uploaded by eliel (license 64)
r1354732008-08-04
  • Add a minor clarification to the documentation of mohinterpret and mohsuggest
r135055-1350582008-08-01
  • make app_ices compile on OpenBSD.
  • 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
r1349832008-07-31
  • accomodate users who seem to lack a sense of humor :-)
r1349762008-07-31
  • 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
r1349152008-07-31
  • 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
r1348832008-07-31
  • (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.
r1348142008-07-31
  • 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
r1347582008-07-31
  • 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
r1347042008-07-30
  • Oops, wrong define
r1346522008-07-30
  • (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.
r1346492008-07-30
  • 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.
r134540-1345952008-07-30
  • 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
  • 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)
r134480-1345362008-07-30
  • Only override sysconfdir and mandir when prefix=/usr (closes issue #13093) Reported by: pabelanger
  • 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
r1344752008-07-30
  • Fix a spot where a function could return without bringing a channel out of autoservice.
r134254-1343522008-07-30
  • 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
r1342232008-07-29
  • 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
r1341612008-07-28
  • 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
r1339802008-07-26
  • 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
r133649-1337092008-07-25
  • Remove unnecessary mmap flag (Closes issue #13161)
  • 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
r1335782008-07-25
  • 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 ........
r1335722008-07-25
  • 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.
r133361-1334882008-07-24
  • 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. ........
r1332952008-07-23
  • inbandrelease is gone - it's now inbanddisconnect
r133226-1332372008-07-23
  • 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
r132974-1331692008-07-23
  • 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.
  • Zap/pseudo is ten characters, but DAHDI/pseudo is twelve. The strncmp call in next_channel should account for this.
  • Update the "last" channel in next_channel in app_chanspy so that the same pseudo channel isn't constantly returned. related to issue #13124
  • 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
  • Fix building of chan_dahdi when HAVE_PRI is not defined.
r132872-1329422008-07-23
  • 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
  • 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)
r1328262008-07-23
  • 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.
r1327902008-07-22
  • 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
r132784-1327872008-07-22
  • 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
  • add rules to create preprocessor output... useful for debugging macros
r1327132008-07-22
  • 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 ........
r132704-1327122008-07-22
  • 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
  • make AST_C_COMPILE_CHECK able to print a 'pretty' description of what it is doing
r1326452008-07-22
  • 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 :-)
r132571-1326422008-07-22
  • 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)
  • 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
r132506-1325072008-07-21
  • 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
  • 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).
r1323112008-07-19
  • 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)
r131970-1321122008-07-18
  • Fix for Taiwanese number syntax (closes issue #12319) Reported by: CharlesWang Patches: saynumber-tw-1.4.18.1.patch uploaded by CharlesWang (license 444)
  • Textual clarification (closes issue #13106) Reported by: flefoll Patches: config.c.br14.120173.patch-unknown-directive uploaded by flefoll (license 244)
  • Spinlock within the destroy, to allow a scheduled job to continue, if it's waiting on the mutex which the destroy thread has.
  • Oops
  • 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.
r1319212008-07-18
  • 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
r1319152008-07-18
  • 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)
r1317902008-07-17
  • 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)
r1314912008-07-16
  • 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)
r1314802008-07-16
  • Apparently, in certain cases, a callno is already destroyed when iax2_destroy is called.
r1314212008-07-16
  • 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)
r131299-1313692008-07-16
  • 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
  • Apparently, "thread safety" is important, whatever that means. :P (Thanks Russell!)
  • 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
r1312422008-07-16
  • (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.
r1310122008-07-15
  • remove 4 lines of redundant code. (closes issue #13080) Reported by: gknispel_proformatique Patches: trunk_ast_cdr_setapp.patch uploaded by gknispel (license 261)
r130889-1309592008-07-15
  • 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)
  • 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)
r1307922008-07-14
  • 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.
r1307352008-07-14
  • 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
r1306342008-07-14
  • Bump up the debug level for a message.
r1305732008-07-13
  • 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
r1305142008-07-13
  • Reverting 2 changesets, as it breaks incoming IAX2 calls (Related to issue #12963) Reported by: mvanbaak
r1303732008-07-12
  • 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
r130298-1303172008-07-11
  • 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 :-)
r130173-1302362008-07-11
  • Remove redundant logic
  • 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.
r130102-1301692008-07-11
  • 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)
  • 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
r130039-1300422008-07-11
  • 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)
r1299702008-07-11
  • add a simple ASTOBJ_TRYWRLOCK macro ...
r129907-1299672008-07-11
  • simplify calculation
  • 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 :-)
  • don't attempt to set user/group ownership of extracted sound files (reported on asterisk-users) (closes issue #13059)
r129741-1298032008-07-10
  • 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
  • Oops
r1295672008-07-10
  • Note that pbx_spool.so is the module used for call files (inspired by a question in #asterisk)
r1295052008-07-10
  • Update svn:ignore
r1294362008-07-09
  • 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
r1293432008-07-09
  • 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.
r129158-1292082008-07-08
  • Update documentation to have the correct option name
  • 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
r129047-1291492008-07-08
  • 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
  • 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)
r128912-1289502008-07-08
  • 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? */
  • 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)
r128812-1288562008-07-08
  • 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
  • Stop using deprecated method, as requested by Kevin.
r1287952008-07-07
  • 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)
r1287372008-07-07
  • 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)
r1286392008-07-07
  • 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)
r1286372008-07-07
  • 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
r127973-1280292008-07-04
  • Move the free down one
  • 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
r127754-1278952008-07-03
  • remove this, it has been moved to the main Makefile
  • a couple of small Solaris-related fixes (closes issue #11885) Reported by: snuffy, asgaroth
  • 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
r1276632008-07-03
  • 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
r1275602008-07-02
  • Fix thread-safety of some of the pbx_builtin_getvar_helper calls
r1275012008-07-02
  • 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) ........
r1272442008-07-01
  • 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.
r126999-1271332008-07-01
  • Disable the old, slow search for matching callno in chan_iax2 (but allow it to be reenabled for debugging)
  • Oops
  • 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
  • Suppress annoying warning by finding the remaining cases where the callno is not in the hash.
r126735-1269022008-07-01
  • 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)
  • 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)
  • Clear up documentation on "domain=" setting in sip.conf Reported by: davidw (closes issue #12413)
  • 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
  • Fix bad XML for hold notification. Reported by: gowen72 Patches: hold.patch uploaded by gowen72 (license 432) (closes issue #12942)
r1266802008-06-30
  • Load the proper channel configuration file based on which driver was detected.
r1266742008-06-30
  • Add note about other names for EuroISDN
r1265732008-06-30
  • 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 ...)
r1265162008-06-30
  • 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)
r1263952008-06-29
  • ignore warnings for prototypes in GTK headers
r125740-1260562008-06-27
  • When we get a 408 Timeout, don't stop trying to re-register. (closes issue #12863) Reported by: ricvil
  • 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)
  • In this debugging function, copy to a buffer instead of using potentially unsafe pointers.
  • Add proper deadlock avoidance. (closes issue #12914) Reported by: ozan Patches: 20080625__bug12914.diff.txt uploaded by Corydon76 (license 14) Tested by: ozan
r1255872008-06-26
  • Make sure to unlock the lock_info lock (huh?). Possible deadlock?
r125476-1255852008-06-26
  • 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
  • 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.
  • 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)
r1253842008-06-26
  • Add support for peer realm based auth (a few missing lines, the rest is well documented but never worked)
r1253272008-06-26
  • 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)
r125218-1252762008-06-26
  • 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
  • Document ackcall=always. (closes issue #12852) Reported by: davidw
r1251322008-06-25
  • 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
r124908-1249652008-06-25
  • 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
  • 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
  • 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)
r1247432008-06-23
  • 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
r1245402008-06-22
  • (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.
r124395-1244502008-06-20
  • 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)
  • 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.
r1243722008-06-20
  • Fix issues in digium-mib.txt and asterisk-mib.txt to placate smilint - bug 12905
r124182-1243152008-06-20
  • 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)
  • 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)
r1241122008-06-19
  • 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)
r1240662008-06-19
  • Merge revision 124064 from trunk. Add errors that report any locks held by threads when they are being closed.
r123710-1239302008-06-19
  • Change informative messages to use the _multiple variant when multiple formats are possible. (Closes issue #12848) Reported by klaus3000
  • 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
  • Correct description of notifyringing option. (Closes issue #12890) Reported by gminet
  • 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
  • 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)
  • 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)
r1234852008-06-17
  • Make chan_sip build under dev mode with compilers >= GCC 4.2 Thanks to jpeeler for alerting me of this
r1233912008-06-17
  • Fix 3 more places where not locking the structure could cause the wrong lock to be unlocked. (Closes issue #12795)
r123274-1233332008-06-17
  • 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
  • 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
r1232712008-06-17
  • 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.
r123110-1231132008-06-16
  • 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
  • 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
r122869-1229192008-06-16
  • 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)
  • 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)
r1227132008-06-13
  • 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)
r1226632008-06-13
  • fixed dahdi compatability header from assuming either dahdi or zaptel is installed (may not have either)
r1226172008-06-13
  • Remove extra option from previous solution attempt
r1226132008-06-13
  • (closes issue #12846) Reported by: Netview Tested by: jpeeler Use correct location to search for tonezone.
r1225892008-06-13
  • 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
r1223142008-06-12
  • 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.
r1223112008-06-12
  • 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)
r1222592008-06-12
  • Fix some race conditions that cause ast_assert() to report that chan_iax2 tried to remove an entry that wasn't in the scheduler
r1222082008-06-12
  • (closes issue #12193) Reported by: davidw Patch by: Corydon76, modified by me to work properly with ParkAndAnnounce app
r122130-1221372008-06-12
  • 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
  • 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)
r1221272008-06-12
  • 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.

Asterisk 1.4.21-rc2

VersionDateDescription
r120731-1207352008-06-05
  • fix filename
  • Add the UPGRADE.txt file from Asterisk 1.2, for handy reference.
r1206752008-06-05
  • Ignore appended resource when comparing JIDs.
r1206712008-06-05
  • 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.
r1205132008-06-04
  • Make sure that the string we set will survive the unref of the queue member. Thanks to Russell, who pointed this out.
r1204252008-06-04
  • 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)
r1203712008-06-04
  • 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)
r1202852008-06-04
  • 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
r1202822008-06-04
  • 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)
r1202262008-06-03
  • 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)
r1201732008-06-03
  • (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.
r1201682008-06-03
  • 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)

Asterisk 1.4.21-rc1

VersionDateDescription
r120001-1200612008-06-03
  • 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
  • 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
r119929-1199662008-06-03
  • 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.
  • 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.
r1199262008-06-03
  • Treat ECONNREFUSED as an error that will stop further retransmissions. (issue #AST-58, patch from Switchvox)
r119742-1198382008-06-02
  • 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
  • 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)
r1197402008-06-02
  • 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
r1196872008-06-02
  • 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.
r119585-1196362008-06-02
  • fixed compile issue when dev-mode is enabled
  • 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).
r119530-1195332008-06-02
  • Change a debug message to an actual debug message
  • Fix another typo in documentation
r1194782008-06-01
  • small typo fix 'retires' => 'retries'
r1194042008-05-30
  • 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
r1193542008-05-30
  • Fix a bug I found while testing for another issue.
r1193012008-05-30
  • 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
r119076-1192382008-05-30
  • 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. ........
  • 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
  • Oddly enough, all of the contents of audiohook.h were in there twice. I have removed the second copy.
r1190712008-05-29
  • 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)
r118956-1190122008-05-29
  • - 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!)
  • 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) ........
  • - Mark app_milliwatt dependent on res_indications (thanks to jsmith) - fix a typo in a log message (thanks to qwell)
  • 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.
r118953-1189542008-05-29
  • 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.
r1188582008-05-29
  • (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.
r1187162008-05-28
  • 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...
r118558-1186462008-05-28
  • 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
  • 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
r1185512008-05-27
  • 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
r1185092008-05-27
  • 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.
r1184652008-05-27
  • 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
r1184162008-05-27
  • 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.
r1183652008-05-27
  • 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
r1183582008-05-27
  • Add a note that pbx_config.so is needed for Local channels. (Closes issue #12671)
r1182512008-05-25
  • 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)
r1181632008-05-23
  • Fix a few things I missed to ensure zt_chan_conf structure is not modified in mkintf
r118052-1180552008-05-23
  • Add format type checking for recently de-inlined function
  • Add information on using the Asterisk console, including tab command line completion. (Closes issue #12681)
r1180482008-05-23
  • 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
r117809-1178992008-05-22
  • Also remove preamble from asynchronous events (reported by jsmith on #asterisk-dev)
  • 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)
r1175822008-05-21
  • Ensure that passed in zt_chan_conf structure is not modified in mkintf.
r1175742008-05-21
  • Apply the autoframing setting to dialogs that do not get matched against a user or peer.
r117519-1175232008-05-21
  • Revert accidental commit of the last change
  • Strip the preamble from the output also when -rx is not being used (Related to issue #12702)
r117479-1175142008-05-21
  • 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)
  • 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)
  • 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
r1174622008-05-21
  • Pass a pointer for the conf parameter to the function mkintf rather than the whole zt_chan_conf structure.

Asterisk 1.4.20-rc3

VersionDateDescription
r1162302008-05-14
  • Accept text messages even with Content-Type: text/plain;charset=Södermanländska
r1160882008-05-13
  • 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.
r115990-1160382008-05-13
  • 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)
  • 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.
r1159442008-05-13
  • Use the right flag to open the audio in non-blocking. (closes issue #12616) Reported by: nicklewisdigiumuser
r1158842008-05-13
  • If the socket dies (read returns 0=EOF), return immediately. (Closes issue #12637)
r1157352008-05-12
  • 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.
r1155792008-05-09
  • configure, include/asterisk/autoconfig.h.in, configure.ac: Improve res_ninit and res_ndestroy autoconf logic on the Darwin platform.
r115545-1155682008-05-08
  • Remove debug output.
  • 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. ........
  • Don't give up on attempting an outbound registration if we receive a 408 Timeout. (closes issue #12323)
  • remove postgres_cdr.sql, as the CDR schema is in realtime_pgsql.sql, as well (closes issue #9676)
  • Don't exit the script if Asterisk is not running. (closes issue #12611)
  • Don't use a channel before checking for channel allocation failure. (closes issue #12609) Reported by: edantie
  • Use the same method for executing Asterisk as the rest of the script. (closes issue #12611) Reported by: b_plessis

Asterisk 1.4.20-rc2

VersionDateDescription
r115512-1155172008-05-07
  • 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)
r115418-1154222008-05-06
  • 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) ........
  • 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)
r1154152008-05-06
  • Don't print the terminating NUL. (Closes issue #12589)
r1153412008-05-06
  • Add in missing argument.
r1153332008-05-05
  • 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)
r1153272008-05-05
  • 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.
r1153202008-05-05
  • 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
r115308-1153122008-05-05
  • Reverse order, such that user configs override default selections
  • Err, the documentation on the return value of ast_odbc_backslash_is_escape is exactly backwards.
r115297-1153042008-05-05
  • 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)
r1152852008-05-05
  • 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
r115276-1152822008-05-04
  • Expand the test function for GCC attributes so that more complex attributes are properly recognized.
  • For my next trick I will make these work with what our autoconf header file gives us.
  • 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.
r1152572008-05-02
  • 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.
r1151962008-05-02
  • 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.
r115017-1151022008-05-01
  • Change the comment of deprecated to an actual compiler deprecation
  • '#' 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)

Asterisk 1.4.20-rc1

VersionDateDescription
r1148912008-04-30
  • 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.
r1148902008-04-30
  • 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
r114875-1148802008-04-30
  • 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
  • pay attention to *all
  • header files for dependency tracking, not just the local ones (inspired by r578 of asterisk-addons by tilghman)
r1148482008-04-29
  • 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
r1148292008-04-29
  • Change warning message to debug, since there are cases where 0 results is perfectly fine.
r1148232008-04-29
  • Merged revisions 114822 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r114822 | kpfleming | 2008-04-29 07:52:32 -0500 (Tue, 29 Apr 2008) | 2 lines stop script from appending source code if run multiple times ........
r1147082008-04-28
  • When modules are embedded, they take on a different name, without the ".so" extension. Specifically check for this name, when we're checking if a module is loaded. (Closes issue #12534)
r1146952008-04-27
  • When we don't explicitly pass a path to the --with-tds configure option, we may end up finding tds.h in /usr/local/include instead of /usr/include. If this happens, the grep that looks for the version (from tdsver.h) will fail and we'll have some problems during the build.
r1146892008-04-26
  • Clicking forward without selecting a message leaves an errant .lock file. (closes issue #12528) Reported by: pukepail Patches: patch.diff uploaded by pukepail (license 431)
r1146732008-04-25
  • Use consistent logic for checking to see if a call number has been chosen yet. Also, remove some redundant logic I recently added in a fix.
r1146622008-04-25
  • Move the unlock of the spyee channel to outside the start_spying() function so that the channel is not unlocked twice when using whisper mode.
r1146492008-04-25
  • configs/zapata.conf.sample, configs/iax.conf.sample, configs/iaxprov.conf.sample, configs/sip.conf.sample: Reference documentation files that actually exist. (closes issue #12516) Reported by: linuxmaniac Patches: diff_rev114611.patch uploaded by linuxmaniac (license 472)
r114624-1146322008-04-24
  • Re-invite RTP during a masquerade so that, for instance, an AMI redirect of two channels which are natively bridged will preserve audio on both channels. This prevents a problem with Asterisk not re-inviting due to one of the channels having being a zombie. (closes issue #12513) Reported by: mneuhauser Patches: asterisk-1.4-114602_restore-RTP-on-fixup.patch uploaded by mneuhauser (license 425)
  • Output of channel variables when eventwhencalled=vars was set was being truncated two characters. This patch corrects the problem. (closes issue #12493) Reported by: davidw
  • Resolve a deadlock in chan_local by releasing the channel lock temporarily. (closes issue #11712) Reported by: callguy Patches: 11712.patch uploaded by putnopvut (license 60) Tested by: acunningham
r1146212008-04-24
  • Ensure that when we set the accountcode, it actually shows up in the CDR. (Fix for AMI Originate) (Closes issue #12007)
r1146082008-04-24
  • Fix a silly mistake in a change I made yesterday that caused chan_iax2 to blow up very quickly. (issue #12515)
r1146032008-04-24
  • Only have one max-forwards header in outbound REFERs. Discovered in the Asterisk SIP Masterclass in Orlando. Thanks Joe!
r114597-1146002008-04-23
  • Improve some broken cookie parsing code. Previously, manager login over HTTP would only work if the mansession_id cookie was first. Now, the code builds a list of all of the cookies in the Cookie header. This fixes a problem observed by users of the Asterisk GUI. (closes AST-20)
  • Fix an issue that caused getting the correct next channel to not always work. Also, remove setting the amount of time to wait for a digit from 5 seconds back down to 1/10 of a second. I believe this was so the beep didn't get played over and over really fast, but a while back I put in another fix for that issue. (closes issue #12498) Reported by: jsmith Patches: app_chanspy_channel_walk.trunk.patch uploaded by jsmith (license 15)
r1145942008-04-23
  • Fix reload/unload for res_musiconhold module. (closes issue #11575) Reported by: sunder Patches: M11575_14_rev3.diff uploaded by junky (license 177) bug11575_trunk.diff.txt uploaded by jamesgolovich (license 176)
r114587-1145912008-04-23
  • Store the manager session ID explicitly as 4 byte ID instead of a ulong. The mansession_id cookie is coded to be limited to 8 characters of hex, and this could break logins from 64-bit machines in some cases. (inspired by AST-20)
  • Fix find_callno_locked() to actually return the callno locked in some more cases.
r1145842008-04-23
  • Add 502 support for both directions, not only one... (see r114571)
r1145792008-04-23
  • Instead of stopping dialplan execution when SayNumber attempts to say a large number that it can not print out a message informing the user and continue on. (closes issue #12502) Reported by: bcnit
r1145712008-04-22
  • Treat a 502 just like a 503, when it comes to processing a response code
r114522-1145582008-04-22
  • When we receive a full frame that is supposed to contain our call number, ensure that it has the correct one. (closes issue #10078) (AST-2008-006)
  • I thought I was going to be able to leave 1.4 alone, but that was not the case. I ran into some problems with G.722 in 1.4, so I have merged in all of the fixes in this area that I have made in trunk/1.6.0, and things are happy again.
  • Trivial change to read the number of samples from a frame before calling ast_write()
  • After a parked call times out, allow the call back to the parker to time out. (closes issue #10890)
  • If the dial string passed to the call channel callback does not indicate an extension, then consider the extension on the channel before falling back to the default. (closes issue #12479) Reported by: darren1713 Patches: exten_dial_fix_chan_iax2.c.patch uploaded by darren1713 (license 116)
  • Merge changes from team/russell/issue_9520 These changes make sure that the reference count for sip_peer objects properly reflects the fact that the peer is sitting in the scheduler for a scheduled callback for qualifying peers or for expiring registrations. Without this, it was possible for these callbacks to happen at the same time that the peer was being destroyed. This was especially likely to happen with realtime peers, and for people making use of the realtime prune CLI command. (closes issue #9520) Reported by: kryptolus Committed patch by me
r1143222008-04-21
  • Only drop audio if we receive it without a progress indication. We allow other frames through such as DTMF because they may be needed to complete the call. (closes issue #12440) Reported by: aragon
r114297-1142992008-04-19
  • Ensure that help text terminates with a newline
  • MOH usage information needs a terminating newline, or else "asterisk -rx 'help moh reload'" will hang. Reported via -dev list, fixed by me.
r114275-1142842008-04-18
  • Don't destroy a manager session if poll() returns an error of EAGAIN.
  • ensure directories are created before we try to install stuff into them
  • SUBDIRS_INSTALL is already listed as a subtarget for bininstall
r1142572008-04-18
  • Clearing up error messages so they make a bit more sense. Also removing a redundant error message. Issue AST-15
r1142482008-04-18
  • Ensure that we don't ast_strdupa(NULL) (closes issue #12476) Reported by: davidw Patch by me
r1142452008-04-18
  • Only complete the SIP channel name once for 'sip show channel <channel>'
r1142422008-04-18
  • For consistency sake, ensure that the values that ${CALLINGPRES} returns are valid as an input to SetCallingPres. (Closes issue #12472)
r1142302008-04-17
  • Remove redundant safety net. The check for the autoservice channel list state accomplishes the same goal in a better way. (issue #12470) Reported By: atis
r114207-1142262008-04-17
  • Declaration of the peer channel in this scope was making it so the peer variable defined in the outer scope was never set properly, therefore making iterating through the channel list always restart from the beginning. This bug would have affected anyone who called chanspy without specifying a first argument. (closes issue #12461) Reported by: stever28
  • Add prototype for ast_dsp_frame_freed. I'm not sure how this was compiling before...
  • It was possible for a reference to a frame which was part of a freed DSP to still be referenced, leading to memory corruption and eventual crashes. This code change ensures that the dsp is freed when we are finished with the frame. This change is very similar to a change Russell made with translators back a month or so ago. (closes issue #11999) Reported by: destiny6628 Patches: 11999.patch uploaded by putnopvut (license 60) Tested by: destiny6628, victoryure
r1142042008-04-17
  • Fix the bininstall target to install from subdirs, as well. (closes issue AST-8, patch from bmd at switchvox)
r1141982008-04-17
  • Use keepalives effectively in order diagnose bug #12432.
r1141952008-04-17
  • Add special case for when the agi cannot be executed, to comply with the documentation that we return failure in that case. (closes issue #12462) Reported by: fmueller Patches: 20080416__bug12462.diff.txt uploaded by Corydon76 (license 14) Tested by: fmueller
r1141912008-04-17
  • Make sure we have enough room for the recording's filename.
r1141842008-04-16
  • use the ZT_SET_DIALPARAMS ioctl properly by initializing the structure to all zeroes in case it contains fields that we don't write values into (which it does as of Zaptel 1.4.10) (closes issue #12456) Reported by: fnordian
r1141802008-04-16
  • Backport revisions for latest vpb drivers to 1.4 (Closes issue #12457)
r1141732008-04-16
  • Fix "fallthrough" behavior here, so config options in a previously configured user don't override settings in general. (closes issue #12458) Reported by: tzafrir Patches: chanzap_users_sections.diff uploaded by tzafrir (license 46)
r1141672008-04-16
  • Include the proper headers for using mkdir on FreeBSD. (closes issue #12430) Reported by: ys Patches: app_meetme.c.diff uploaded by ys (license 281)
r1141482008-04-15
  • Handle subscribe queues in all situations... Thanks to festr_ on irc for telling me about this bug.
r114120-1141382008-04-15
  • Update Digium autosupport script, for more useful information. (closes issue #12452) Reported by: angler Patches: autosupport.diff uploaded by angler (license 106)
  • Allow autofill to work in the general section of queues.conf. Additionally, don't try to (re)set options when they have empty values in realtime (all unset columns would have an empty value). (closes issue #12445) Reported by: atis Patches: 12445-autofill.diff uploaded by qwell (license 4)
  • The call_token on the pvt can occasionally be NULL, causing a crash. If it is NULL, we can skip this channel, since it can't the one we're looking for. (closes issue #9299) Reported by: vazir
r114106-1141172008-04-14
  • Increase the retry count when attempting to show channels. This apparently cleared an issue someone was seeing when attempting to show channels when the load was high. (closes issue #11667) Reported by: falves11 Patches: 11677.txt uploaded by russell (license 2) Tested by: falves11
  • If the datastore has been moved to another channel due to a masquerade, then freeing the datastore here causes an eventual double free when the new channel hangs up. We should only free the datastore if we were able to successfully remove it from the channel we are referencing (i.e. the datastore was not moved). (closes issue #12359) Reported by: pguido
  • Save a local copy of the generate callback prior to unlocking the channel in case the generate callback goes NULL on us after the channel is unlocked. Thanks to Russell for pointing this need out to me.
r114100-1141032008-04-14
  • It is possible for the remote side to say they want T38 but not give any capabilities. (closes issue #12414) Reported by: MVF
  • Don't change the SSRC when a new source comes into play, this might happen quite often and depending on the remote side... they might not like this. (closes issue #12353) Reported by: dimas
r1140832008-04-11
  • Several places in the code called find_callno() (which releases the lock on the pvt structure) and then immediately locked the call and did things with it. Unfortunately, the call can disappear between the find_callno and the lock, causing Bad Stuff(tm) to happen. Added find_callno_locked() function to return the callno withtout unlocking for instances that it is needed. (issue #12400) Reported by: ztel
r1140722008-04-11
  • It's possible that a channel can have an async goto on the successful execution of an application as well. Closes issue #12172.
r114045-1140632008-04-11
  • Fix a race condition that may happen between a sip hangup and a "core show channel" command. This patch adds locking to prevent the resulting crash. (closes issue #12155) Reported by: tsearle Patches: show_channels_crash2.patch uploaded by tsearle (license 373) Tested by: tsearle
  • Fix 1.4 build when LOW_MEMORY is enabled.
  • Be sure that we're not about to set bridgepvt NULL prior to dereferencing it. (closes issue #11775) Reported by: fujin
r1140352008-04-10
  • Only try to prefix language if we are not using an absolute path (suffix it otherwise). en/var/lib/asterisk/sounds/blah.gsm is a very silly path. (closes issue #12379) Reported by: kuj Patches: 12379-absolutepath.diff uploaded by qwell (license 4) Tested by: kuj, qwell
r114021-1140322008-04-10
  • Forgot the 1.4 branch for russian language fix. (closes issue #12404) Reported by: IgorG Patches: voicemail_ru_hardcoded-v1.patch uploaded by IgorG (license 20)
  • Create the directory where name recordings will go if it does not exist. (closes issue #12311) Reported by: rkeene Patches: 12311-mkdir.diff uploaded by qwell (license 4)
  • Don't add custom URI options if they don't exist OR they are empty. (closes issue #12407) Reported by: homesick Patches: uri_options-1.4.diff uploaded by homesick (license 91)
r1139272008-04-09
  • We need to set the persistant_route [sic] parameter for the sip_pvt during the initial INVITE, no matter if we're building the route set from an INVITE request or response. (closes issue #12391) Reported by: benjaminbohlmann Tested by: benjaminbohlmann
r1138742008-04-09
  • If the [csv] section does not exist in cdr.conf, then an unload/load sequence is needed to correct the problem. Track whether the load succeeded with a variable, so we can fix this with a simple reload event, instead.
r1137842008-04-09
  • If we receive an AUTHREQ from the remote server and we are unable to reply (for example they have a secret configured, but we do not) then queue a hangup frame on the Asterisk channel. This will cause the channel to hangup and a HANGUP to be sent via IAX2 to the remote side which is the proper thing to do in this scenario. (closes issue #12385) Reported by: viraptor
r1136812008-04-09
  • If Asterisk receives a 488 on an INVITE (not a reinvite), then we should not send a BYE. (closes issue #12392) Reported by: fnordian Patches: chan_sip.patch uploaded by fnordian (license 110) with small modification from me
r1135962008-04-09
  • Initialize fr->cacheable to make valgrind happy
r1135072008-04-08
  • Fix potential buffer overflow that could happen if more than 100 announce files were specified when calling ParkAndAnnounce. This overflow is not exploitable remotely and so there is no need for a security advisory. (closes issue #12386) Reported by: davidw
r113402-1135042008-04-08
  • Add a little more that is required for previously added devices.
  • Add support for several new(ish) devices - most notably, 7942/7945, 7962/7965, 7975. Thanks to Greg Oliver for providing me the required information.
  • Work around some silliness caused by sys/capability.h - this should fix compile errors a number of users have been experiencing.
r113348-1133992008-04-08
  • Add security note on astgenkey's manpage. (closes issue #12373) Reported by: lmamane Patches: 20080406__bug12373.diff.txt uploaded by Corydon76 (license 14)
  • Move check for still-bridged channels out a little further, to avoid possible deadlocks. (Closes issue #12252) Reported by: callguy Patches: 20080319__bug12252.diff.txt uploaded by Corydon76 (license 14) Tested by: callguy
r1132962008-04-08
  • include/asterisk/slinfactory.h, main/slinfactory.c, main/audiohook.c: If audio suddenly gets fed into one side of a channel after a lapse of frames flush the other factory so that old audio does not remain in the factory causing the sync code to not execute. (closes issue #12296) Reported by: jvandal
r1132402008-04-07
  • (closes issue #12362) [redo of 113012] This fixes a for loop (in realtime_peer) to check all the ast_variables the loop was intending to test rather than just the first one. The change exposed the problem of calling memcpy on a NULL pointer, in this case the passed in sockaddr_in struct which is now checked.
r1131182008-04-07
  • Allow playback with noanswer (and add earlyrtp option). (closes issue #9077) Reported by: pj Patches: earlyrtp.diff uploaded by wedhorn (license 30) Tested by: pj, qwell, DEA, wedhorn
r1131172008-04-07
  • Force ast_mktime() to check for DST, since strptime(3) does not. (Closes issue #12374)
r1130652008-04-07
  • This fix prevents a deadlock that was experienced in chan_local. There was deadlock prevention in place in chan_local, but it would not work in a specific case because the channel was recursively locked. By unlocking the channel prior to calling the generator's generate callback in ast_read_generator_actions(), we prevent the recursive locking, and therefore the deadlock. (closes issue #12307) Reported by: callguy Patches: 12307.patch uploaded by putnopvut (license 60) Tested by: callguy
r1130122008-04-07
  • (closes issue #12362) (closes issue #12372) Reported by: vinsik Tested by: tecnoxarxa This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one.
r112766-1128202008-04-04
  • Free newly allocated channel before returning
  • Prevent call connections when codecs don't match. (closes issue #10604) Reported by: keepitcool Patches: branch-1.4-10604-2.diff uploaded by phsultan (license 73) Tested by: phsultan
r112709-1127112008-04-04
  • Pass in the path to Zaptel for systems that install Zaptel headers in a separate location.
  • One thing at a time... let's get 1.4 building.
r1126892008-04-03
  • add a Zaptel timer check to verify the timer is responding when Zaptel support is compiled into Asterisk and Zaptel drivers are loaded. This will help people not waste their valuable time debugging side effects.
r112393-1125992008-04-03
  • Fix the testing of the "res" variable so that it is more logically correct and makes the correct warning and debug messages print. (closes issue #12361) Reported by: one47 Patches: chan_zap_deferred_digit.patch uploaded by one47 (license 23)
  • Fix a race condition in the manager. It is possible that a new manager event could be appended during a brief time when the manager is not waiting for input. If an event comes during this period, we need to set an indicator that there is an event pending so that the manager doesn't attempt to wait forever for an event that already happened. (closes issue #12354) Reported by: bamby Patches: manager_race_condition.diff uploaded by bamby (license 430) (comments added by me)
  • Ensure that there is no timeout if none is specified. (closes issue #12349) Reported by: johnlange

Asterisk 1.4.19-rc4

VersionDateDescription
r1116582008-03-28
  • The file size of WAV49 does not need to be an even number. (closes issue #12128) Reported by: mdu113 Patches: 12128-noevenlength.diff uploaded by qwell (license 4) Tested by: qwell, mdu113
r111442-1116052008-03-28
  • Update debugging text, since Valgrind eliminated the --log-file-exactly option. (Closes issue #12320)
  • For FreeBSD, at least, the ifa_addr element could be NULL. (closes issue #12300) Reported by: festr Patches: acl.c.patch uploaded by festr (license 443)
r111341-1113912008-03-27
  • These small documentation updates made in response to a query in asterisk-users, where a user was using Playback, but needed the features of Background, and had no idea that Background existed, or that it might provide the features he needed. I thought the best way to avert these kinds of queries was to provide "See Also" references in all three of "Background", "Playback", "WaitExten". Perhaps a project to do this with all related apps is in order.
  • (closes issue #12302) Reported by: pj Tested by: murf These changes will set a channel variable ~~EXTEN~~ just before generating code for a switch, with the value of ${EXTEN}. The exten is marked as having a switch, and ever after that, till the end of the exten, we substitute any ${EXTEN} with ${~~EXTEN~~} instead in application arguments; (and the ${EXTEN: also). The reason for this, is that because switches are coded using separate extensions to provide pattern matching, and jumping to/from these switch extensions messes up the ${EXTEN} value, which blows the minds of users.
r111245-1112802008-03-27
  • Put this flag back so we don't change the API.
  • Remove excessive smoother optimization that was causing audio glitches (small "pops") after (about 200ms later) an "incorrectly" sized frame was received. While it would be very nice to keep this as optimized as possible, it makes no sense for the smoother to be dropping random bits of audio like this. Isn't that the whole point of a smoother? Closes issue #12093.
r1111292008-03-26
  • Update autosupport script. (closes issue #12310) Reported by: angler Patches: autosupport.diff uploaded by angler (license 106)
r1111262008-03-26
  • Merged revisions 111125 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r111125 | kpfleming | 2008-03-26 14:49:30 -0500 (Wed, 26 Mar 2008) | 2 lines update UPGRADE notes to document usage of the script ........
r111049-1111212008-03-26
  • This code change is made just for clarification. It does exactly the same thing as before. It just doesn't look as wrong.
  • Add a lock to the vm_state structure and use the lock around mail_open calls to prevent concurrent access of the same mailstream. This, along with trunk's ability to configure TCP timeouts for IMAP storage will help to prevent crashes and hangs when using voicemail with IMAP storage. (closes issue #10487) Reported by: ewilhelmsen
r1110242008-03-26
  • codecs/ilbc, /, contrib/scripts/get_ilbc_source.sh (added): Merged revisions 111019 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r111019 | kpfleming | 2008-03-26 13:58:37 -0500 (Wed, 26 Mar 2008) | 2 lines add a script to make getting the iLBC source code simple for end users ........
r111014-1110202008-03-26
  • If we are requested to authenticate a reinvite make sure that it contains T38 SDP if need be. (closes issue #11995) Reported by: fall
  • Make sure that full video frames are sent whenever the 15 bit timestamp rolls over. (closes issue #11923) Reported by: mihai Patches: asterisk-fullvideo.patch uploaded by mihai (license 94)
r110880-1109622008-03-26
  • add note that the user will need to enable codec_ilbc to get it to build
  • codecs/ilbc/StateConstructW.h (removed), codecs/ilbc/libilbc.vcproj (removed), codecs/ilbc/packing.h (removed), codecs/ilbc/getCBvec.c (removed), codecs/ilbc/LPCdecode.c (removed), codecs/ilbc/enhancer.c (removed), codecs/ilbc/lsf.c (removed), codecs/ilbc/iLBC_encode.c (removed), codecs/ilbc/getCBvec.h (removed), codecs/ilbc/LPCdecode.h (removed), codecs/ilbc/enhancer.h (removed), codecs/ilbc/FrameClassify.c (removed), codecs/ilbc/iLBC_define.h (removed), codecs/ilbc/lsf.h (removed), codecs/ilbc/iLBC_encode.h (removed), codecs/ilbc/FrameClassify.h (removed), codecs/ilbc/helpfun.c (removed), codecs/ilbc/doCPLC.c (removed), codecs/ilbc/anaFilter.c (removed), codecs/ilbc/helpfun.h (removed), codecs/ilbc/createCB.c (removed), codecs/ilbc/doCPLC.h (removed), codecs/ilbc/anaFilter.h (removed), UPGRADE.txt, codecs/ilbc/iLBC_decode.c (removed), codecs/ilbc/constants.c (removed), codecs/ilbc/createCB.h (removed), CHANGES, codecs/ilbc/iLBC_decode.h (removed), codecs/ilbc/constants.h (removed), codecs/Makefile, codecs/ilbc/iCBSearch.c (removed), codecs/ilbc/filter.c (removed), codecs/ilbc/hpInput.c (removed), codecs/ilbc/gainquant.c (removed), codecs/ilbc/hpOutput.c (removed), codecs/ilbc/iCBSearch.h (removed), codecs/ilbc/filter.h (removed), codecs/ilbc/hpInput.h (removed), codecs/ilbc/gainquant.h (removed), codecs/ilbc/LPCencode.c (removed), codecs/ilbc/hpOutput.h (removed), codecs/ilbc/StateSearchW.c (removed), codecs/codec_ilbc.c, codecs/ilbc/LPCencode.h (removed), codecs/ilbc/StateSearchW.h (removed), codecs/ilbc/iCBConstruct.c (removed), codecs/ilbc/syntFilter.c (removed), /, codecs/ilbc/iCBConstruct.h (removed), codecs/ilbc/syntFilter.h (removed), codecs/ilbc/StateConstructW.c (removed), codecs/ilbc/packing.c (removed): Merged revisions 110869 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r110869 | kpfleming | 2008-03-26 08:53:46 -0700 (Wed, 26 Mar 2008) | 2 lines due to licensing restrictions, we cannot distribute the source code for iLBC encoding and decoding... so remove it, and add instructions on how the user can obtain it themselves ........
r1107792008-03-25
  • Make file access in cdr_custom similar to cdr_csv. Fixes issue #12268. Patch borrowed from r82344
r1107272008-03-25
  • This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one.
r1106352008-03-25
  • When reverting a commit, I accidentally left in this bit which was an experiment to see what would happen. It passed the compile test, and I didn't notice I had left this change in too. So this is a revert of a revert...sort of.
r1106282008-03-25
  • include/asterisk/options.h, main/asterisk.c, Makefile, main/app.c: Add an option (transmit_silence) which transmits silence during both Record() and DTMF generation. The reason this is an option is that in order to transmit silence we have to setup a translation path. This may not be needed/wanted in all cases. (closes issue #10058) Reported by: tracinet
r1106182008-03-24
  • This is a revert for revision 108288. The reason is that that revision was not for an actual bug fix per se, and so it really should not have been in 1.4 in the first place. Plus, people who compile with DO_CRASH are more likely to encounter a crash due to this change. While I think the usage of DO_CRASH in ast_sched_del is a bit absurd, this sort of change is beyond the scope of 1.4 and should be done instead in a developer branch based on trunk so that all scheduler functions are fixed at once. I also am reverting the change to trunk and 1.6 since they also suffer from the DO_CRASH potential. (closes issue #12272) Reported by: qq12345
r1106142008-03-24
  • Turn a NOTICE into a DEBUG message.
r1104742008-03-21
  • Don't attempt to do optimizations of gsm on mips platforms either. (closes issue #12270) Reported by: zandbelt Patches: 026-gsm-mips.patch uploaded by zandbelt (license 33)
r110163-1103952008-03-20
  • Shorten the ast_waitfor() timeout from 500 ms to 50 ms in the autoservice thread. This really should not make a difference except in very rare cases. That case would be that all of the channels in autoservice are not generating any frames. In that case, this change reduces the potential amount of time that a thread waits in ast_autoservice_stop() for the autoservice thread to wrap back around to the beginning of its loop. (closes issue #12266, reported by dimas)
  • Merged revisions 110335 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r110335 | russell | 2008-03-20 16:53:27 -0500 (Thu, 20 Mar 2008) | 6 lines Fix some very broken code that was introduced in 1.2.26 as a part of the security fix. The dnsmgr is not appropriate here. The dnsmgr takes a pointer to an address structure that a background thread continuously updates. However, in these cases, a stack variable was passed. That means that the dnsmgr thread would be continuously writing to bogus memory. ........
  • Fix a bug where when calls on the trunk side hang up while on hold, the state is not properly reflected. (closes issue #11990, reported by anakaoka, patched by me)
r1100832008-03-19
  • Add a missing unlock in the case that memory allocation fails in app_chanspy. Thanks to Russell for confirming that this was an issue.
r110019-1100352008-03-19
  • Add sanity checking for position resuming. We *have
  • to make sure that the position does not exceed the total number of files present, and we have to make sure that the position's filename is the same as previous. These values can change if a music class is reloaded and give unpredictable behavior. (closes issue #11663) Reported by: junky
  • Make sure that the mark bit does not incorrectly cause video frame timestamps to be calculated as if they are audio frames. (closes issue #11429) Reported by: sperreault Patches: 11429-frametype.diff uploaded by qwell (license 4)
r1099732008-03-19
  • Makefile, build_tools/cflags.xml, build_tools/cflags-devmode.xml (added): People report bugs about Asterisk crashing with DO_CRASH enabled was getting a little silly... Now we only show certain cflags when you run configure with --enable-dev-mode (corresponding menuselect change to follow)
r1099082008-03-19
  • (closes issue #11442) Reported by: tzafrir Patches: 11442.patch uploaded by murf (license 17) Tested by: murf I didn't give tzafrir very much time to test this, but if he does still have remaining issues, he is welcome to re-open this bug, and we'll do what is called for. I reproduced the problem, and tested the fix, so I hope I am not jumping by just going ahead and committing the fix. The problem was with what file_save does with templates; firstly, it tended to print out multiple options: [my_category](!)(templateref) instead of [my_category](!,templateref) which is fixed by this patch. Nextly, the code to suppress output of duplicate declarations that would occur because the reader copies inherited declarations down the hierarchy, was not working. Thus: [master-template](!) mastervar = bar [template](!,master-template) tvar = value [cat](template) catvar = val would be rewritten as: ;! ;! Automatically generated configuration file ;! Filename: experiment.conf (/etc/asterisk/experiment.conf) ;! Generator: Manager ;! Creation Date: Tue Mar 18 23:17:46 2008 ;! [master-template](!) mastervar = bar [template](!,master-template) mastervar = bar tvar = value [cat](template) mastervar = bar tvar = value catvar = val This has been fixed. Since the config reader 'explodes' inherited vars into the category, users may, in certain circumstances, see output different from what they originally entered, but it should be both correct and equivalent.
r109763-1098382008-03-19
  • Tweak spacing in a recent change because I'm very picky.
  • Fix one place where the chanspy datastore isn't removed from a channel. (issue #12243, reported by atis, patch by me)
r1097132008-03-18
  • This patch makes it so that all queue member status changes are handled through device state code. This removes several problems people were seeing where their queue members would get into an "unknown" state. Huge props go to atis on this one since he was the one who found the code section that was causing the problem and proposed the solution. I just wrote what he suggested :) (closes issue #12127) Reported by: atis Patches: 12127v3.patch uploaded by putnopvut (license 60) Tested by: atis, jvandal
r1096482008-03-18
  • Allow codecs that use log2comp (g726) to compile correctly on x86 with gcc4 optimizations. (closes issue #12253) Reported by: fossil Patches: log2comp.patch uploaded by fossil (license 140)
r1095752008-03-18
  • Make sure an agent doesn't try to send dtmf to a NULL channel closes issue #12242 Reported by Yourname

Asterisk 1.4.19-rc3

VersionDateDescription
r1094822008-03-18
  • Fix character string being treated ad format string
r1093932008-03-18
  • Merged revisions 109391 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r109391 | qwell | 2008-03-18 10:08:41 -0500 (Tue, 18 Mar 2008) | 3 lines Do not return with a successful authentication if the From header ends up empty. (AST-2008-003) ........
r1093862008-03-18
  • Put a maximum limit on the number of payloads accepted, and also make sure a given payload does not exceed our maximum value. (AST-2008-002)
r1093092008-03-18
  • pbx/ael/ael-test/ael-ntest23 (added), pbx/ael/ael-test/ael-ntest23/t1/a.ael (added), pbx/ael/ael-test/ael-ntest23/t1/b.ael (added), pbx/ael/ael-test/ael-ntest23/t1/c.ael (added), pbx/ael/ael-test/ael-ntest23/t2/d.ael (added), pbx/ael/ael-test/ael-ntest23/t2/e.ael (added), pbx/ael/ael-test/ael-ntest23/t2/f.ael (added), pbx/ael/ael-test/ref.ael-ntest23 (added), pbx/ael/ael_lex.c, pbx/ael/ael-test/ael-ntest23/t3/g.ael (added), pbx/ael/ael-test/ael-ntest23/t3/h.ael (added), pbx/ael/ael-test/ael-ntest23/t3/i.ael (added), pbx/ael/ael.flex, pbx/ael/ael-test/ael-ntest23/t3/j.ael (added), pbx/ael/ael-test/ael-ntest23/qq.ael (added), pbx/ael/ael-test/ael-ntest23/t1 (added), pbx/ael/ael-test/ael-ntest23/t2 (added), pbx/ael/ael-test/ael-ntest23/t3 (added), pbx/ael/ael-test/ael-ntest23/extensions.ael (added): (closes issue #11903) Reported by: atis Many thanks to atis for spotting this problem and reporting it. The fix was to straighten out how items are placed on and removed from the file stack. Regressions as well as the provided test case helped to straighten out all code paths. valgrind was used to make sure all memory allocated was freed. Sorry for not solving this earlier. I got distracted. Added the ntest23 regression test, which is mainly a copy of ntest22, but with a few juicy errors thrown in, to replicate the kind of error that atis spotted.
r1092262008-03-17
  • Fix a logic flaw in the code that stores lock info which is displayed via the "core show locks" command. The idea behind this section of code was to remove the previous lock from the list if it was a trylock that had failed. Unfortunately, instead of checking the status of the previous lock, we were referencing the index immediately following the previous lock in the lock_info->locks array. The result of this problem, under the right circumstances, was that the lock which we currently in the process of attempting to acquire could "overwrite" the previous lock which was acquired. While this does not in any way affect typical operation, it *could
  • lead to misleading "core show locks" output.
r1091712008-03-17
  • Update the directory of placed calls on skinny phones when dialing a channel that does not provide progress (analog ZAP lines) The phone does handle the double update on calls to channels that do provide progress and wont insert duplicate items (closes issue #12239) Reported by: DEA Patches: chan_skinny-call-log.txt uploaded by DEA (license 3)
r1091072008-03-17
  • 200 OKs in response to a reinvite need to be sent reliably. If the remote side does not receive one the dialog will be torn down. (closes issue #12208) Reported by: atrash
r1090572008-03-17
  • Backport revision 106439 from trunk. I didn't realize this was broken in 1.4 as well. Closes issue #12222.
r1090122008-03-17
  • Make sure that we release the lock on the spyee channel if the spyee or spy has hung up (closes issue #12232) Reported by: atis
r1089612008-03-16
  • add missing break to case AST_CONTROL_SRCUPDATE (closes issue #12228) Reported by: andrew Patches: SRC.patch uploaded by andrew (license 240)
r108792-1087962008-03-14
  • Fix a channel name issue. chan_oss registers the "Console" channel type, but it created channels with an "OSS" prefix. (closes issue #12194, reported by davidw, patched by me)
  • Update the SuSE init script to start networking before asterisk, as well. (closes issue #12200, reported by and change suggested by reinerotto)
r1087372008-03-14
  • Fix a race condition in the SIP packet scheduler which could cause a crash. chan_sip uses the scheduler API in order to schedule retransmission of reliable packets (such as INVITES). If a retransmission of a packet is occurring, then the packet is removed from the scheduler and retrans_pkt is called. Meanwhile, if a response is received from the packet as previously transmitted, then when we ACK the response, we will remove the packet from the scheduler and free the packet. The problem is that both the ACK function and retrans_pkt attempt to acquire the same lock at the beginning of the function call. This means that if the ACK function acquires the lock first, then it will free the packet which retrans_pkt is about to read from and write to. The result is a crash. The solution: 1. If the ACK function fails to remove the packet from the scheduler and the retransmit id of the packet is not -1 (meaning that we have not reached the maximum number of retransmissions) then release the lock and yield so that retrans_pkt may acquire the lock and operate. 2. Make absolutely certain that the ACK function does not recursively lock the lock in question. If it does, then releasing the lock will do no good, since retrans_pkt will still be unable to acquire the lock. (closes issue #12098) Reported by: wegbert (closes issue #12089) Reported by: PTorres Patches: 12098-putnopvutv3.patch uploaded by putnopvut (license 60) Tested by: jvandal
r1086822008-03-14
  • Fix a potential segfault if chan (or chan->music_state) is NULL. Closes issue #12210, credit to edantie for pointing this out.
r108469-1085832008-03-13
  • apps/app_chanspy.c, main/channel.c, include/asterisk/channel.h: Fix another issue that was causing crashes in chanspy. This introduces a new datastore callback, called chan_fixup(). The concept is exactly like the fixup callback that is used in the channel technology interface. This callback gets called when the owning channel changes due to a masquerade. Before this was introduced, if a masquerade happened on a channel being spyed on, the channel pointer in the datastore became invalid. (closes issue #12187) (reported by, and lots of testing from atis) (props to file for the help with ideas)
  • Make a tweak that gets the LEDs on polycom phones to blink when an extension that has been subscribed to goes on hold. Otherwise, they just stay on like it does when an extension is in use. (closes issue #11263) Reported by: russell Patches: notify_hold.rev1.txt uploaded by russell (license 2) Tested by: russell
  • Fix a couple uses of sprintf. The second one could actually cause an overflow of a stack buffer. It's not a security issue though, it only depends on your configuration.
r108227-1082882008-03-12
  • Change AST_SCHED_DEL use to ast_sched_del for autocongestion in chan_sip. The scheduler callback will always return 0. This means that this id is never rescheduled, so it makes no sense to loop trying to delete the id from the scheduler queue. If we fail to remove the item from the queue once, it will fail every single time. (Yes I realize that in this case, the macro would exit early because the id is set to -1 in the callback, but it still makes no sense to use that macro in favor of calling ast_sched_del once and being done with it) This is the first of potentially several such fixes.
  • Added a large comment before the AST_SCHED_DEL macro to explain its purpose as well as when it is appropriate and when it is not appropriate to use it. I also removed the part of the debug message that mentions that this is probably a bug because there are some perfectly legitimate places where ast_sched_del may fail to delete an entry (e.g. when the scheduler callback manually reschedules with a new id instead of returning non-zero to tell the scheduler to reschedule with the same idea). I also raised the debug level of the debug message in AST_SCHED_DEL since it seems like it could come up quite frequently since the macro is probably being used in several places where it shouldn't be. Also removed the redundant line, file, and function information since that is provided by ast_log.
r1081352008-03-12
  • (closes issue #12187, reported by atis, fixed by me after some brainstorming on the issue with mmichelson) - Update copyright info on app_chanspy. - Fix a race condition that caused app_chanspy to crash. The issue was that the chanspy datastore magic that was used to ensure that spyee channels did not disappear out from under the code did not completely solve the problem. It was actually possible for chanspy to acquire a channel reference out of its datastore to a channel that was in the middle of being destroyed. That was because datastore destruction in ast_channel_free() was done near the end. So, this left the code in app_chanspy accessing a channel that was partially, or completely invalid because it was in the process of being free'd by another thread. The following sort of shows the code path where the race occurred: ============================================================================= Thread 1 (PBX thread for spyee chan) || Thread 2 (chanspy) --------------------------------------||------------------------------------- ast_channel_free() || - remove channel from channel list || - lock/unlock the channel to ensure || that no references retrieved from || the channel list exist. || --------------------------------------||------------------------------------- || channel_spy() - destroy some channel data || - Lock chanspy datastore || - Retrieve reference to channel || - lock channel || - Unlock chanspy datastore --------------------------------------||------------------------------------- - destroy channel datastores || - call chanspy datastore d'tor || which NULL's out the ds' || - Operate on the channel ... reference to the channel || || - free the channel || || || - unlock the channel --------------------------------------||------------------------------------- =============================================================================
r1080862008-03-12
  • if we receive an INVITE with a Content-Length that is not a valid number, or is zero, then don't process the rest of the message body looking for an SDP closes issue #11475 Reported by: andrebarbosa
r1080832008-03-12
  • apps/app_mixmonitor.c, include/asterisk/audiohook.h, main/audiohook.c: Add a trigger mode that triggers on both read and write. The actual function that returns the combined audio frame though will wait until both sides have fed in audio, or until one side stops (such as the case when you call Wait). (closes issue #11945) Reported by: xheliox
r1080312008-03-12
  • Destroy the channel lock after the channel datastores. (inspired by issue #12187)
r1078772008-03-12
  • contrib/scripts/iax-friends.sql, contrib/scripts/sip-friends.sql: Document all of the possible realtime fields
r107714-1078262008-03-11
  • Update documentation for pgsql ODBC voicemail. (closes issue #12186) Reported by: jsmith Patches: vm_pgsql_doc_update.patch uploaded by jsmith (license 15)
  • Copy voicemail dependency logic for res_adsi to chan_gtalk (for jabber). (closes issue #12014) Reported by: junky
r1077132008-03-11
  • get chan_vpb to build properly in dev mode
r1077122008-03-11
  • Add a newline on a log
r107582-1076462008-03-11
  • Make sure the visible indication is on the right channel so when the masquerade happens the proper indication is enacted. (closes issue #11707) Reported by: iam
  • Add an additional check for setting conference parameter when using the marked user options. It was possible for it to return to a no listen/no talk state if a masquerade happened. (closes issue #12136) Reported by: aragon
  • Fix a minor spelling error. (closes issue #12183) Reported by: darrylc

Asterisk 1.4.19-rc2

VersionDateDescription
r107352-1074722008-03-11
  • backport a fix from trunk
  • channels/misdn/isdn_lib.c, codecs/Makefile, channels/chan_misdn.c: fix various other problems found by gcc 4.3
  • configure, include/asterisk/autoconfig.h.in, configure.ac, apps/app_sms.c: stop checking for mktime() in the configure script... we don't use it, and the test is buggy under gcc 4.3
  • check for compiler support for -fno-strict-overflow before using it (tested with Debian's gcc 4.3, 4.1 and 3.4) (closes issue #12179) Reported by: Netview
  • fix small bug in IMAP toolkit testing
  • main/udptl.c, utils/Makefile, main/Makefile, main/editline/readline.c, pbx/Makefile: fix up various compiler warnings found with gcc-4.3: - the output of flex includes a static function called 'input' that is not used, so for the moment we'll stop having the compiler tell us about unused variables in the flex source files (a better fix would be to improve our flex post-processing to remove the unused function) - main/stdtime/localtime.c makes assumptions about signed integer overflow, and gcc-4.3's improved optimizer tries to take advantage of handling potential overflow conditions at compile time; for now, suppress these optimizations until we can fiure out if the code needs improvement - main/udptl.c has some references to uninitialized variables; in one case there was no bug, but in the other it was certainly possibly for unexpected behavior to occur - main/editline/readline.c had an unused variable
r1072902008-03-11
  • If we fail to alloc a channel, we should re-lock the pvt structure before returning.
r1072302008-03-10
  • Use non-global storage for eswitch
r1071732008-03-10
  • Make sure to reenable echo can after a "failed" (canceled, etc) three-way call. (closes issue #11335) Reported by: rebuild
r107099-1071612008-03-10
  • Fix another bug specifically related to asynchronous call origination. Once the PBX is started on the channel using ast_pbx_start(), then the ownership of the channel has been passed on to another thread. We can no longer access it in this code. If the channel gets hung up very quickly, it is possible that we could access a channel that has been free'd. (inspired by BE-386)
  • Fix some bugs related to originating calls. If the code failed to start a PBX on the channel (such as if you set a call limit based on the system's load average), then there were cases where a channel that has already been free'd using ast_hangup() got accessed. This caused weird memory corruption and crashes to occur. (fixes issue BE-386) (much debugging credit goes to twilson, final patch written by me)
  • Resolve a compiler warning.
  • Fix a race condition where the generator can go away (closes issue #12175, reported by edantie, patched by me)
r1070162008-03-10
  • Move where unanswered CDRs are dropped to the CDR core, not everything uses app_dial. (closes issue #11516) Reported by: ys Patches: branch_1.4_cdr.diff uploaded by ys (license 281) Tested by: anest, jcapp, dartvader
r1069452008-03-08
  • don't generate D-Channel "up" and "down" messages unless the channel state is actually changing; also, generate the "up" message when an implicit "up" occurs due to reception of a normal event when we thought the channel was "down"
r1068952008-03-07
  • Only start the SLA thread if SLA has actually been configured.
r1068422008-03-07
  • Fix hardcoded grep in editline, were GNU grep is required. (closes issue #12124) Reported by: dmartin
r1067882008-03-07
  • Ignore source update control frame. (closes issue #12168) Reported by: plack
r1067042008-03-07
  • Change a warning message to a debug message. This is happening quite frequently, and it is not worth spamming users with these messages unless we are pretty confident that it should never happen. As it stands today, it _will_ and _does_ happen and until that gets cleaned up a reasonable amount on the development side, let's not spam the logs of everyone else. (closes issue #12154)
r106552-1066352008-03-07
  • Warn the user when a temporary greeting exists (Closes issue #11409)
  • Properly initialize rtp->schedid (Closes issue #12154)
  • apps/app_chanspy.c, apps/app_rpt.c, main/asterisk.c, apps/app_speech_utils.c, apps/app_voicemail.c, main/channel.c, funcs/func_enum.c, channels/chan_misdn.c, main/frame.c, main/manager.c: Safely use the strncat() function. (closes issue #11958) Reported by: norman Patches: 20080209__bug11958.diff.txt uploaded by Corydon76 (license 14)
r1064372008-03-06
  • Quell an annoying message that is likely to print every single time that ast_pbx_outgoing_app is called. The reason is that __ast_request_and_dial allocates the cdr for the channel, so it should be expected that the channel will have a cdr on it. Thanks to joetester on IRC for pointing this out
r1063282008-03-06
  • Upgrade to the next release of sounds
r1062372008-03-05
  • Fix a potential deadlock and a few different potential crashes. (closes issue #12145, reported by thiagarcia, patched by me)
r1062352008-03-05
  • channels/chan_oss.c, main/rtp.c, channels/chan_mgcp.c, apps/app_dial.c, main/channel.c, channels/chan_phone.c, main/dial.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_skinny.c, channels/chan_h323.c, main/file.c, channels/chan_alsa.c, apps/app_followme.c, include/asterisk/frame.h: Add a control frame to indicate the source of media has changed. Depending on the underlying technology it may need to change some things. (closes issue #12148) Reported by: jcomellas
r1061782008-03-05
  • document var_metric so no bugreports will come in when it's actually a configuration issue. (issue #12151) Reported and patched by: caio1982 1.4 patch by me
r1060382008-03-05
  • when a PRI call must be moved to a different B channel at the request of the other endpoint, ensure that any DSP active on the original channel is moved to the new one (closes issue #11917) Reported by: mavetju Tested by: mavetju
r1060152008-03-05
  • Correctly initialize retransid in SIP, and ensure that the warning when failing to delete a schedule entry can actually hit the log. (closes issue #12140) Reported by: slavon Patches: sch2.patch uploaded by slavon (license 288) (Patch slightly modified by me)
r1059322008-03-05
  • Fix a bug that I just noticed in the RTP code. The calculation for setting the len field in an ast_frame of audio was wrong when G.722 is in use. The len field represents the number of ms of audio that the frame contains. It would have set the value to be twice what it should be.
r105674-1056762008-03-04
  • In addition to setting the marker bit let's change our ssrc so they know for sure it is a different source.
  • When a new source of audio comes in (such as music on hold) make sure the marker bit gets set. (closes issue #10355) Reported by: wdecarne Patches: 10355.diff uploaded by file (license 11) (closes issue #11491) Reported by: kanderson

Asterisk 1.4.19-rc1

VersionDateDescription
r1055912008-03-04
  • Backport a minor bug fix from trunk that I found while doing random code cleanup. Properly break out of the loop when a context isn't found when verify that includes are valid.
r1055722008-03-03
  • Fix type for astNumChannels. (closes issue #12114) Reported by: jeffg Patches: 12114.patch uploaded by jeffg (license 192)
r105563-1055702008-03-03
  • In the case of an ast_channel allocation failure, take the local_pvt out of the pvt list before destroying it.
  • Fix a potential memory leak of the local_pvt struct when ast_channel allocation fails. Also, in passing, centralize the code necessary to destroy a local_pvt.
  • Update the copyright information for autoservice. Most of the code in this file now is stuff that I have written recently ...
  • main/asterisk.c, main/channel.c, include/asterisk.h, main/autoservice.c: Merge in some changes from team/russell/autoservice-nochans-1.4 These changes fix up some dubious code that I came across while auditing what happens in the autoservice thread when there are no channels currently in autoservice. 1) Change it so that autoservice thread doesn't keep looping around calling ast_waitfor_n() on 0 channels twice a second. Instead, use a thread condition so that the thread properly goes to sleep and does not wake up until a channel is put into autoservice. This actually fixes an interesting bug, as well. If the autoservice thread is already running (almost always is the case), then when the thread goes from having 0 channels to have 1 channel to autoservice, that channel would have to wait for up to 1/2 of a second to have the first frame read from it. 2) Fix up the code in ast_waitfor_nandfds() for when it gets called with no channels and no fds to poll() on, such as was the case with the previous code for the autoservice thread. In this case, the code would call alloca(0), and pass the result as the first argument to poll(). In this case, the 2nd argument to poll() specified that there were no fds, so this invalid pointer shouldn't actually get dereferenced, but, this code makes it explicit and ensures the pointers are NULL unless we have valid data to put there. (related to issue #12116)
r105557-1055602008-03-03
  • It is possible for no audio to pass between the current digit and next digit so expand logic that clears emulation to AST_FRAME_NULL. (closes issue #11911) Reported by: edgreenberg Patches: v1-11911.patch uploaded by dimas (license 88) Tested by: tbsky
  • Add a comment to describe some logic. (closes issue #12120) Reported by: flefoll Patches: chan_sip.c.br14.patch-just-a-comment uploaded by flefoll (license 244)
r1054092008-02-29
  • Fix a major bug in autoservice. There was a race condition in the handling of the list of channels in autoservice. The problem was that it was possible for a channel to get removed from autoservice and destroyed, while the autoservice thread was still messing with the channel. This led to memory corruption, and caused crashes. This explains multiple backtraces I have seen that have references to autoservice, but do to the nature of the issue (memory corruption), could cause crashes in a number of areas. (fixes the crash in BE-386) (closes issue #11694) (closes issue #11940) The following issues could be related. If you are the reporter of one of these, please update to include this fix and try again. (potentially fixes issue #11189) (potentially fixes issue #12107) (potentially fixes issue #11573) (potentially fixes issue #12008) (potentially fixes issue #11189) (potentially fixes issue #11993) (potentially fixes issue #11791)
r1053262008-02-29
  • Fix a potential memory leak
r1052962008-02-29
  • If the message file does not exist, just return harmlessly, instead of crashing. (Closes issue #12108)
r1052612008-02-29
  • Bump up the size of the uniqueid variable. (closes issue #12107) Reported by: asgaroth
r1052092008-02-29
  • Automatically create new buddy upon reception of a presence stanza of type subscribed. (closes issue #12066) Reported by: ffadaie Patches: branch-1.4-12066-1.diff uploaded by phsultan (license 73) trunk-12066-1.diff uploaded by phsultan (license 73) Tested by: ffadaie, phsultan
r1051162008-02-28
  • Fix a bug in the lock tracking code that was discovered by mmichelson. The issue is that if the lock history array was full, then the functions to mark a lock as acquired or not would adjust the stats for whatever lock is at the end of the array, which may not be itself. So, do a sanity check to make sure that we're updating lock info for the proper lock. (This explains the bizarre stats on lock #63 in BE-396, thanks Mark!)
r1051132008-02-28
  • Update init script for LSB compat (closes issue #9843) Reported by: ibc Patches: rc.debian.asterisk.patch uploaded by ibc (license 211) Tested by: paravoid
r1050592008-02-28
  • When using autofill, members who are in use should be counted towards the number of available members to call if ringinuse is set to yes. Thanks to jmls who brought this issue up on IRC
r104920-1050052008-02-28
  • Make pbx_exec pass an empty string into applications, if we get NULL. This protects against possible segfaults in applications that may try to use data before checking length (ast_strdupa'ing it, for example) (closes issue #12100) Reported by: foxfire Patches: 12100-nullappargs.diff uploaded by qwell (license 4)
  • According to a video at www.cisco.com, the 7921G supports 6 line appearances.
r1048682008-02-28
  • Compatibility fix for PPC64 (closes issue #12081) Reported by: jcollie Patches: asterisk-1.4.18-funcdesc.patch uploaded by jcollie (license 412) Tested by: jcollie, Corydon76
r1048412008-02-27
  • Two fixes: 1. Make the list of ast_dial_channels a lockable list. This is because in some cases, the ast_dial may exist in multiple threads due to asynchronous execution of its application, and I found some cases where race conditions could exist. 2. Check in ast_dial_join to be sure that the channel still exists before attempting to lock it, since it could have gotten hung up but the is_running_app flag on the ast_dial_channel may not have been cleared yet. (closes issue #12038) Reported by: jvandal Patches: 12038v2.patch uploaded by putnopvut (license 60) Tested by: jvandal
r1047872008-02-27
  • Don't loop around infinitely trying to spy on our own channel, and don't forget to free/detach the datastore upon hangup of the spy.
r1047832008-02-27
  • Bump a couple of more buffers up by 2 so that annoying warnings aren't generated like crazy on every fileexists_core call.
r1047042008-02-27
  • Ensure the session ID can't be 0.
r1046652008-02-27
  • Bump up the buffer by 2.
r1046252008-02-27
  • Fix a problem in ChanSpy where it could get stuck in an infinite loop without being able to detect that the calling channel hung up. (closes issue #12076, reported by junky, patched by me)
r1045982008-02-27
  • Inherit language from the transfering channel on a blind transfer. (closes issue #11682) Reported by: caio1982 Patches: local_atxfer_lang3-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, victoryure
r1045962008-02-27
  • Use the lock (which already existed, it just wasn't used) on the updaters list to protect the contents instead of the overall module list lock. (closes issue #12080) Reported by: ChaseVenters
r1045932008-02-27
  • fallback to standard English prompts properly when using new prompt directory layout (closes issue #11831) Reported by: IgorG Patches: fallbacken.v1.diff uploaded by IgorG (license 20) (modified by me to improve code and conform rest of function to coding guidelines)
r1045912008-02-27
  • When we receive a known alarm, make sure that the unknown alarm flag is not still set to make sure that when we come back out of alarm, it gets reported in the log and manager interface (after discussion with tzafrir on the -dev list)
r1045362008-02-27
  • Only stop the MWI monitor thread if it was actually started. (closes issue #12086) Reported by: francesco_r
r104332-1043342008-02-27
  • Avoid some recursion in the cleanup code for the chanspy datastore (closes issue #12076, reported by junky, patched by me)
  • Zaptel 1.4 now exposes FXO battery state as an alarm. However, Asterisk 1.4 does not know what to do with these alarms. Only Asterisk 1.6 cares about it. So, if we get an unknown alarm in chan_zap, don't generate confusing log messages about it.
r104132-1041412008-02-26
  • Add badshell to .PHONY target (thanks Kevin)
  • Since all shells aren't as awesome as bash, we have to fail if somebody tries to use a literal "~" in DESTDIR.
  • Revert previous abspath change. ...abspath is new in GNU make 3.81. I feel so...defeated. Must find new fix!
  • Fix a very bizarre issue we were seeing with our buildbot when using a DESTDIR that wasn't an absolute path (such as DESTDIR=~/asterisk-1.4). Apparently what was happening, was that some of the targets were being expanded to the full path, so $@ ended up being /root/asterisk-1.4/[...]/ rather than ~/asterisk-1.4/[...]/ It appears that this may be a new "feature" in GNU make. (*cough* http://en.wikipedia.org/wiki/Principle_of_least_surprise *cough*)
r1041192008-02-26
  • include/asterisk/smdi.h, apps/app_voicemail.c, channels/chan_zap.c, res/res_smdi.c, configs/smdi.conf.sample: Merge changes from team/russell/smdi-1.4 This commit brings in a significant set of changes to the SMDI support in Asterisk. There were a number of bugs in the current implementation, most notably being that it was very likely on busy systems to pop off the wrong message from the SMDI message queue. So, this set of changes fixes the issues discovered as well as introducing some new ways to use the SMDI support which are required to avoid the bugs with grabbing the wrong message off of the queue. This code introduces a new interface to SMDI, with two dialplan functions. First, you get an SMDI message in the dialplan using SMDI_MSG_RETRIEVE() and then you access details in the message using the SMDI_MSG() function. A side benefit of this is that it now supports more than just chan_zap. For example, with this implementation, you can have some FXO lines being terminated on a SIP gateway, but the SMDI link in Asterisk. Another issue with the current implementation is that it is quite common that the station ID that comes in on the SMDI link is not necessarily the same as the Asterisk voicemail box. There are now additional directives in the smdi.conf configuration file which let you map SMDI station IDs to Asterisk voicemail boxes. Yet another issue with the current SMDI support was related to MWI reporting over the SMDI link. The current code could only report a MWI change when the change was made by someone calling into voicemail. If the change was made by some other entity (such as with IMAP storage, or with a web interface of some kind), then the MWI change would never be sent. The SMDI module can now poll for MWI changes if configured to do so. This work was inspired by and primarily done for the University of Pennsylvania. (also related to issue #9260)
r1041112008-02-26
  • IPTOS_MINCOST is not defined on Solaris. (closes issue #12050) Reported by: asgaroth Patches: 12050.patch uploaded by putnopvut (license 60)
r104102-1041062008-02-25
  • This patch fixes some pretty significant problems with how app_chanspy handles pointers to channels that are being spied upon. It was very likely that a crash would occur if the channel being spied upon hung up. This was because the current ast_channel handling _requires_ that the object is locked or else it could disappear at any time (except in the owning channel thread). So, this patch uses some channel datastore magic on the spied upon channel to be able to detect if and when the channel goes away. (closes issue #11877) (patch written by me, but thanks to kpfleming for the idea, and to file for review)
  • Improve the lock tracking code a bit so that a bunch of old locks that threads failed to lock don't sit around in the history. When a lock is first locked, this checks to see if the last lock in the list was one that was failed to be locked. If it is, then that was a lock that we're no longer sitting in a trylock loop trying to lock, so just remove it. (inspired by issue #11712)
r1040952008-02-25
  • Make it so a users.conf user creates both a SIP peer and a SIP user. The user will be used for inbound authentication for the device, and peer will be used for placing calls to the device. (closes issue #9044) Reported by: queuetue Patches: sip-gui-friend.diff uploaded by qwell (license 4)
r1040942008-02-25
  • If the destination folder is full, don't delete a message when exiting. (closes issue #12065) Reported by: selsky Patch by: (myself)
r1040922008-02-25
  • Allow the use of #include and #exec in situations where the max include depth was only 1. Specifically, this fixes using #include and #exec in extconfig.conf. This was basically caused because the config file itself raises the include level to 1. I opted not to raise the include limit, because recursion here could cause very bizarre behavior. Pointed out, and tested by jmls (closes issue #12064)
r1040862008-02-25
  • Ensure that the channel doesn't disappear in agent_logoff(). If it does, it could cause a crash. (fixes the crash reported in BE-396)
r104082-1040842008-02-25
  • If a resubscription comes in for a dialog we no longer know about tell the remote side that the dialog does not exist so they subscribe again using a new dialog. (closes issue #10727) Reported by: s0l4rb03 Patches: 10727-2.diff uploaded by file (license 11)
  • Due to recent changes tag will no longer be NULL if not present so we have to use ast_strlen_zero to see if it's actually blank. (closes issue #12061) Reported by: flefoll Patches: chan_sip.c.br14.patch_pedantic_no_totag uploaded by flefoll (license 244)
r1040372008-02-22
  • Backwards debug message. (closes issue #12052) Reported by: flefoll Patches: chan_sip.c.br14.patch_found-notfound uploaded by flefoll (license 244)
r104026-1040272008-02-21
  • And as a followup to revision 104026, completely remove event-related calls from a section of code where we know there was no event to handle or get.
  • Remove an incorrect debug message. It reported that it had received a specific event and tried to report which event was received. What actually was happening was that it was reporting the number of bytes returned from a call to read(). Thanks to Jared Smith for bringing the issue up on IRC
r1040152008-02-21
  • reduce the likelihood that HTTP Manager session ids will consist of primarily '1' bits
r1039562008-02-20
  • Clear up confusion when viewing the QUEUE_WAITING_COUNT of a "dead" realtime queue. Since from the user's perspective, the queue does exist, we shouldn't tell them we couldn't find the queue. Instead since it is a dead queue, report a 0 waiting count This issue was brought up on IRC by jmls
r1039532008-02-20
  • Don't wait for additional digits when overlap dialing is enabled if the setup message contains the sending_complete information element. (closes issue #11785) Reported by: klaus3000 Patches: sending_complete_overlap_asterisk-1.4.17.patch.txt uploaded by klaus3000 (license 65)
r1039042008-02-20
  • Fix a crash if the channel becomes NULL while attempting to lock it. (closes issue #12039) Reported by: danpwi
r1038452008-02-20
  • Compat fix for Solaris (closes issue #12022) Reported by: asgaroth Patches: 20080219__bug12022.diff.txt uploaded by Corydon76 (license 14) Tested by: asgaroth
r1038232008-02-19
  • Send CallerID Name in setup message. (closes issue #11241) Reported by: tusar Patches: h323id_as_callerid_name.patch uploaded by tusar (license 344)
r1038212008-02-19
  • Account for the fact that the "other" channel can disappear while the local pvt is not locked. (fixes a problem introduced in rev 100581) (closes issue #12012) Reported by: stevedavies Patch by me
r103807-1038122008-02-19
  • Don't look for launchd when cross compiling. (closes issue #12029) Reported by: ovi
  • Fix building of chan_sip.
r1038062008-02-19
  • Make sure we send error replies correctly by checking the via header.
r1038012008-02-18
  • Ensure that emulated DTMFs do not get interrupted by another begin frame. (closes issue #11740) Reported by: gserra Patches: v1-11740.patch uploaded by dimas (license 88) (closes issue #11955) Reported by: tsearle (closes issue #10530) Reported by: xmarksthespot
r103790-1037952008-02-18
  • Fix previous commit so that we actually disable echocanbridged if echocancel is off.
  • Correct a message when echocancelwhenbridged is on, but echocancel is not. Issue #12019
r1037862008-02-18
  • There was an invalid assumption when calculating the duration of a file that the filestream in question was created properly. Unfortunately this led to a segfault in the situation where an unknown format was specified in voicemail.conf and a voicemail was recorded. Now, we first check to be sure that the stream was written correctly or else assume a zero duration. (closes issue #12021) Reported by: jakep Tested by: putnopvut
r1037802008-02-18
  • When a SIP channel is being auto-destroyed, it's possible for it to still be in bridge code. When that happens, we crash. Delay the RTP destruction until the bridge is ended. (closes issue #11960) Reported by: norman Patches: 20080215__bug11960__2.diff.txt uploaded by Corydon76 (license 14) Tested by: norman
r1037702008-02-18
  • Fix a linked list corruption that under the right circumstances could lead to a looped list, meaning it will traverse forever. (closes issue #11818) Reported by: michael-fig Patches: 11818.patch uploaded by putnopvut (license 60) Tested by: michael-fig
r103763-1037682008-02-18
  • Backport fix from issue #9325. (closes issue #11980) Reported by: rbrunka
  • Don't care if the extension given doesn't exist for subscription based MWI.
r103726-1037412008-02-15
  • Fix a crash in chan_iax2 due to a race condition (closes issue #11780) Reported by: guillecabeza Patches: bug_iax2_jb_1.4.patch uploaded by guillecabeza (license 380) bug_iax2_jb_trunk.patch uploaded by guillecabeza (license 380)
  • In the case that you try to directly reload a module has returned AST_MODULE_LOAD_DECLINE, log a message indicating that the module is not fully initialized and must be initialized using "module load".
  • Don't attempt to execute the reload callback for a module that returned AST_MODULE_LOAD_DECLINE. This fixes a crash that was reported against chan_console in trunk. (closes issue #11953, reported by junky, fixed by me)
r103688-1037222008-02-15
  • Final round of changes for configure script logic for IMAP Now if a directory is specified, then we will search that directory for a source installation of the IMAP toolkit. If none is found, then we will use that directory as the basis for detecting a package installation of the IMAP c-client. If that check fails, then configure will fail.
  • Fix a bit of wrong logic in the configure script that caused problems when trying to configure without IMAP. Patch suggestion from phsultan, but I modified it slightly. (closes issue #12003) Reported by: pj Tested by: putnopvut
  • I apparently misunderstood one of the requirements of this configure change. Now, if a source directory is specified with the --with-imap option, and a valid source installation is not detected there, then configure will fail and will not check for a package installation.
  • Make a small clarification in the documentation
  • Update documentation regarding configuration of IMAP
  • apps/app_voicemail.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Change to the configure logic regarding IMAP. Prior to this commit, if you wished to configure Asterisk with IMAP support, you would use the --with-imap configure switch in one of the following two ways: --with-imap=/some/directory would look in the directory specified for a UW IMAP source installation --with-imap would assume that you had imap-2004g installed in .. relative to the Asterisk source With this set of changes the two above options still work the same, but there are two new behaviors, too. --with-imap=system will assume that you have -libc-client.so where you store your shared objects and will attempt to find c-client headers in your include path either in the imap or c-client directory. If either of the two original methods of specifying the imap option should fail, then the check for --with-imap =system will be performed in addition. It is only after this "system" check that failure can happen.
  • Fix build for non-IMAP builds
  • Fix the new message count if delete=yes when using IMAP storage. (closes issue #11406) Reported by: jaroth Patches: deleteflag_v2.patch uploaded by jaroth (license 50) Tested by: jaroth
r103683-1036842008-02-14
  • swap location for this..
  • Document the 'l' option to the CDR() function. (Thanks voipgate for pointing out the option, and Leif for providing text for it.) Closes issue #11695.
r103556-1036072008-02-13
  • We aren't talking to ourselves; we're talking to someone else. (closes issue #11771) Reported by: msetim Patches: ami_agent_talkingto-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, msetim
  • Refuse to load app_voicemail if res_adsi is not loaded (which is a symbol dependency) (closes issue #11760) Reported by: non-poster Patches: 20080114__bug11760.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, non-poster, jamesgolovich
r103503-1035042008-02-12
  • revert accidental change from last commit. oops
  • Remove condition that was impossible.
r103324-1033852008-02-12
  • Even if no CallerID name or number has been provided by the remote party still use the configured sip.conf ones. (closes issue #11977) Reported by: pj
  • If entering a conference with the 'w' option ensure that we can't listen or speak until the marked user appears. (closes issue #11835) Reported by: alanmcmillan
r1033152008-02-11
  • improve 2BCT documentation a bit (thanks Jared)
r1031972008-02-09
  • Commit fix for being unable to send voicemail from VoiceMailMain Reported by: William F Acker (via the -users mailing list) Patch by: Corydon76 (license 14)
r103070-1031202008-02-08
  • Prevent a potential three-thread deadlock. Also added a comment block to explicitly state the locking order necessary inside app_queue. (closes issue #11862) Reported by: flujan Patches: 11862.patch uploaded by putnopvut (license 60) Tested by: flujan
  • Yield the thread and return -1 if the ioctl fails for Zaptel timing device. (closes issue #11891) Reported by: tzafrir
r1029682008-02-08
  • Make sure the presence of dbsecret is factored into user scoring. (closes issue #11952) Reported by: bbhoss
r1028582008-02-07
  • Specify which digit string was matched in debug message. (closes issue #11949) Reported by: dimas Patches: v1-feature-debug.patch uploaded by dimas (license 88)
r1028072008-02-07
  • document usage of 'transfer' configuration option for ISDN PRI switch-side transfers
r102653-1027252008-02-06
  • Only consider a T.38-only INVITE compatible if we have both a joint capability between us and them and if they provided T.38.
  • Add missing header file and ASTERISK_FILE_VERSION usage. (closes issue #11936) Reported by: snuffy
r1026512008-02-06
  • Clarify setting DYNAMIC_FEATURES so that it gets inherited by outbound channels. (due to a discussion between me and a user via email)
r1026272008-02-06
  • ensure that all remaining multi-object modules are built using their proper CFLAGS and include directory paths
r1025762008-02-06
  • Move around some defines to unbreak ODBC storage. (closes issue #11932) Reported by: snuffy
r1024532008-02-05
  • Clear the DTMF buffer on hangup. (closes issue #11919) Reported by: eferro Patches: mgcp_dtmfclean_on_hangup.diff uploaded by eferro (license 337) Tested by: eferro
r1024502008-02-05
  • If a REGISTER attempt comes in that is a retransmission of a previous REGISTER do not create a new nonce value. (issue #BE-381)
r1024252008-02-05
  • ensure that components of chan_misdn.so are built using any special build options that the configure script generated (reported by Philipp Kempgen on asterisk-dev)
r1023782008-02-05
  • Perform dialing asynchronously when using the originate CLI command so the CLI does not appear to block. (closes issue #11927) Reported by: bbhoss
r102214-1023232008-02-04
  • main/asterisk.c, utils/muted.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Cross-platform fix: OS X now deprecates the use of the daemon(3) API. (closes issue #11908) Reported by: oej Patches: 20080204__bug11908.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76
  • Missing braces. (closes issue #11912) Reported by: dimas Patches: sprintf.patch uploaded by dimas (license 88)
r102090-1021422008-02-03
  • Use the same CSEQ on CANCEL as on INVITE (according to RFC 3261) (closes issue #9492) Reported by: kryptolus Patches: bug9492.txt uploaded by oej (license 306) Tested by: oej
  • Handle ACK and CANCEL in an invite transaction - even if we get INFO transactions during the actual call setup. (closes issue #10567) Reported by: jacksch Tested by: oej Patch by: oej inspired by suggestions from neutrino88 in the bug tracker
r1019892008-02-01
  • Change the SDP_SAMPLE_RATE macro. It turns out that even though G.722 is 16 kHz, it is supposed to specified as 8 kHz in the RTP, and RTP timestamps are supposed to be calculated based on 8 kHz. (Apparently this is due to a bug in a spec, but people follow it anyway, because it's the spec ...)
r101894-1019422008-02-01
  • Fix the VM_DUR variable for forwarded voicemail, and fixed several other bugs while I'm in the area. (closes issue #11615) Reported by: jamessan Patches: 20071226__bug11615__2.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, jamessan
  • configure, include/asterisk/autoconfig.h.in, configure.ac, acinclude.m4: Change detection of getifaddrs to use AST_C_COMPILE_CHECK, backported from trunk (as suggested by kpfleming)
r1018222008-02-01
  • Remove a needless (and incorrect) call to feof() after fgets(). This would have exited the loop early if you had an authentication file with no newline at the end.
r101818-1018202008-02-01
  • off by one error
  • Don't overwrite the last character of a line if it's not a newline. This would happen if the last line in the file doesn't have a newline. (pointed out by Qwell)
r1017722008-02-01
  • configure, include/asterisk/autoconfig.h.in, configure.ac, main/acl.c: Compatibility fix for OpenWRT (reported by Brian Capouch via the mailing list)
r1016932008-02-01
  • Add some more sanity checking on IAX2 dial strings for the case that no peer or hostname was provided, which is the one part of the dial string that is absolutely required. If it's not there, bail out. (closes issue #11897) Reported by sokhapkin Patch by me
r1016492008-02-01
  • From bugtracker: "fix totalAnalysisTime to handle periods of no channel activity" (closes issue #9256) Reported by: cmaj Patches: amd-dont-wait-too-long-for-frames-take3.diff.txt uploaded by cmaj (license 111) Tested by: cmaj, skygreg, ZX81, rjain

Asterisk 1.4.18

VersionDateDescription
r1016012008-01-31
  • Fix a couple of places where ast_frfree() was not called on a frame that came from a translator. This showed itself by g729 decoders not getting released. Since the flag inside the translator frame never got unset by freeing the frame to indicate it was no longer in use, the translators never got destroyed, and thus the g729 licenses were not released. (closes issue #11892) Reported by: xrg Patches: 11892.diff uploaded by russell (license 2) Tested by: xrg, russell
r1015312008-01-31
  • 1. Prevent the addition of an extra '/' to the beginning of an absolute pathname. 2. If ast_monitor_change_fname is called and the new filename is the same as the old, then exit early and don't set the filename_changed field in the monitor structure. Setting it in this case was causing ast_monitor_stop to erroneously delete them. (closes issue #11741) Reported by: garlew Tested by: putnopvut
r1014822008-01-31
  • Solaris compat fixes for struct in_addr funkiness. Issue #11885, patch by snuffy.
r1014802008-01-31
  • closes issue #11845; that's the one where there's a 1004 byte cdr leak with every AMI Redirect to a zap channel
r101413-1014332008-01-31
  • Add more missing locking of the agents list ...
  • Move the locking from find_agent() into the agent dialplan function handler to ensure that the agent doesn't disappear while we're looking at it.
  • Add missing locking to the find_agent() function.
r1012222008-01-30
  • Fix an issue where if a frame of higher sample size preceeded a frame of lower sample size and ast_slinfactory_read was called with a sample size of the combined values or higher a crash would happen. (closes issue #11878) Reported by: stuarth
r1012192008-01-30
  • Change default config to use descending channel order of groups, rather than ascending. Fixes a potential source of confusion in glare-type situations. Issue 11875, reported by JimVanM.
r1012162008-01-30
  • Fix a logic error with regards to autofill. Prior to this change, it was possible for a caller to go out of turn if autofill were enabled and callers ahead in the queue were attempting to call a member. This change fixes this.
r1011522008-01-30
  • Stop musiconhold on attended transfer. (closes issue #11872) Reported by: gareth Patches: svn-101018.patch uploaded by gareth (license 208)
r1010802008-01-29
  • updated build_tools to handle the autotag directory structure changes; changes related to BE-353. Patch by The Russell and reviewed by The Me.
r100973-1010352008-01-29
  • Remove a memory leak from updating realtime queues
  • Fixing an erroneous return value returned when attempting to pause or unpause a queue member fails. Fixes BE-366, thanks to John Bigelow for writing the patch.
r1009342008-01-29
  • Don't forget to record the channel so we know whether it is bridged or not later. (closes issue #11811) Reported by: slavon
r1009322008-01-29
  • Fix the last couple of issues related to building from a path that contains spaces. (closes issue #11834)
r1009302008-01-29
  • Initialize an array to 0s if config option not specified. (closes issue #11860) Patches: misdn_get_config.v1.diff uploaded by IgorG (license 20)
r100882-1009222008-01-29
  • Use GNU make magic instead of shell magic to escape spaces in the working directory. (related to issue #11834)
  • Fix building Asterisk when the working path has spaces in it. (closes issue #11834) Reported by: spendergrass Patched by: me
r1008352008-01-29
  • Allow zap groups above 30 to work properly. (closes issue #11590) Reported by: tbsky
r1007932008-01-29
  • fixed potential segfault in misdn show channels CLI command
r1007402008-01-29
  • (closes issue #11736) Reported by: MVF Patches: bug11736-2.diff uploaded by oej (license 306) Tested by: oej, MVF, revolution (russellb: This was the showstopper for the release.)
r1006752008-01-28
  • WaitExten didn't handle AbsoluteTimeout properly (went to 't' instead of 'T')
r1006732008-01-28
  • Undoing the deprecation of chan_vpb. It is alive and well.
r1006722008-01-28
  • When using ODBC_STORAGE, make sure we put greeting files into the database like we do with the others. Issue #11795 Reported by: dimas Patches: vmgreet.patch uploaded by dimas (license 88)
r100626-1006292008-01-28
  • For some reason, the use of this strdupa() is leading to memory corruption on freebsd sparc64. This trivial workaround fixes it. (closes issue #10300, closes issue #11857, reported by mattias04 and Home-of-the-Brave)
  • Fix a crash in ast_masq_park_call() (issue #11342) Reported by: DEA Patches: res_features-park.txt uploaded by DEA (license 3)
r1006242008-01-28
  • Correct a comment which made little/no sense.
r1005812008-01-28
  • main/channel.c, channels/chan_local.c, include/asterisk/channel.h: Make some deadlock related fixes. These bugs were discovered and reported internally at Digium by Steve Pitts. - Fix up chan_local to ensure that the channel lock is held before the local pvt lock. - Don't hold the channel lock when executing the timing function, as it can cause a deadlock when using chan_local. This actually changes the code back to be how it was before the change for issue #10765. But, I added some other locking that I think will prevent the problem reported there, as well.
r1004652008-01-27
  • main/rtp.c, channels/chan_mgcp.c, main/cdr.c, channels/chan_misdn.c, main/dnsmgr.c, channels/chan_sip.c, channels/chan_h323.c, include/asterisk/sched.h, main/file.c, pbx/pbx_dundi.c, channels/chan_iax2.c: When deleting a task from the scheduler, ignoring the return value could possibly cause memory to be accessed after it is freed, which causes all sorts of random memory corruption. Instead, if a deletion fails, wait a bit and try again (noting that another thread could change our taskid value). (closes issue #11386) Reported by: flujan Patches: 20080124__bug11386.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, flujan, stuarth`
r1004182008-01-25
  • Deprecating chan_vpb. It is now preferred that users of Voicetronix products use chan_zap in combination with their zaptel drivers.
r1003782008-01-25
  • This would have never been true, since we're passing (sizeof(req.data) - 1) as the len to recvfrom().
r1002642008-01-24
  • make these macros not assume that the only other field in the structure is 'argc'... this is true when someone uses AST_DECLARE_APP_ARGS, but it's perfectly reasonable to define your own structure as long as it has the right fields
r1001642008-01-24
  • Update main Asterisk copyright info to 2008
r1001382008-01-24
  • Fix compilation on Solaris. (closes issue #11832) Patches: bug-11832.diff uploaded by snuffy (license 35)
r99977-999782008-01-23
  • Second attempt. Don't change invitestate when receiving 18x messages in CANCEL state. (issue #11736) Reported by: MVF Patch by oej.
  • Make sure we don't cancel destruction on calls in CANCEL state, even if we get 183 while waiting for answer on our CANCEL. (issue #11736) Reported by: MVF Patches: bug11736.txt uploaded by oej (license 306) Tested by: MVF
r999752008-01-23
  • Fixing a typo.
r999232008-01-23
  • ChanSpy issues a beep when it starts at the beginning of a list of channels to potentially spy on. However, if there were no matching channels, it would beep at you over and over, which is pretty annoying. Now, it will only beep once in the case that there are no channels to spy on, but it will still beep again once it reaches the beginning of the channel list again. (closes issue #11738, patched by me)
r998782008-01-23
  • These flag tests were illogical. They were testing sip_peer flags on a sip_pvt. Thanks to Russell for helping to get this odd problem figured out.
r99718-997772008-01-23
  • When we reset the password via an external command, we should also reset the password stored in the in-memory list, too (otherwise it doesn't really take effect). (closes issue #11809) Reported by: davetroy Patches: fix_externpass.diff uploaded by davetroy (license 384)
  • Oops, should have checked for a NULL obj, here, too
  • Just confirmed that all current platforms need this header file
r996522008-01-22
  • Thanks to Russell's education I realize that BUFSIZ has changed since I learned the C language over 20 years ago... Resetting chan_sip to the size of BUFSIZ that I expected in my old head to avoid to heavy memory allocations on some systems.
r996432008-01-22
  • Fix the defines for OS X (and Solaris, too)
r99592-995942008-01-22
  • channels/chan_local.c, res/res_features.c, channels/chan_agent.c, apps/app_followme.c: Add more dependencies on chan_local and add a note to the description of chan_local so that people don't disable it in menuselect just to clean up.
  • Add dependency on chan_local to app_dial. Dial still runs without chan_local, but will be missing forwarding functionality.
r995402008-01-22
  • Ensure that we can get an address even when we don't have a default route. (closes issue #9225) Reported by: junky Patches: 20080122__bug9225.diff.txt uploaded by Corydon76 (license 14) Tested by: oej, loloski, sergee
r995012008-01-22
  • Cleaning up some documentation that led to confusion in a bug report
r994262008-01-21
  • Fixing an issue wherein monitoring local channels was not possible. During a channel masquerade, the monitors on the two channels involved are swapped. In 99% of the cases this results in the desired effect. However, if monitoring a local channel, this caused the monitor which was on the local channel to get moved onto a channel which is immediately hung up after the masquerade has completed. By swapping the monitors prior to the masquerade, we avoid the problem by tricking the masquerade into placing the monitor back onto the channel where we want it. During the investigation of the issue, the channel's monitor was the only thing that was swapped in such a manner which did not make sense to have done. All other variable swapping made sense.
r993412008-01-21
  • res/res_odbc.c, configs/res_odbc.conf.sample, include/asterisk/res_odbc.h: Permit the user to specify number of seconds that a connection may remain idle, which fixes a crash on reconnect with the MyODBC driver. (closes issue #11798) Reported by: Corydon76 Patches: 20080119__res_odbc__idlecheck.diff.txt uploaded by Corydon76 (license 14) Tested by: mvanbaak
r993012008-01-21
  • Bump the buffer size for Via headers up to 512. There are some exceptionally large Via headers out there. (closes issue #11783) Reported by: ofirroval
r991872008-01-19
  • Fix a couple of memory leaks with frame handling. Specifically, ast_frame_free() needed to be called on the frame that came from the translator to signed linear.
r991272008-01-18
  • Remove the __ in front of the unused variable. This causes some compilers to freak out.
r99079-990812008-01-18
  • Revert adding the packed attribute, as it really doesn't make sense why that would do any good. Fix the real bug, which is to do the check to see if the frame came from a translator at the beginning of ast_frame_free(), instead of at the end. This ensures that it always gets checked, even if none of the parts of the frame are malloc'd, and also ensures that we aren't looking at free'd memory in the case that it is a malloc'd frame. (closes issue #11792, reported by explidous, patched by me)
  • Since we're relying on the offset between the frame and the beginning of the translator pvt struct, set the packed attribute to make sure we get to the right place. (potential fix for issue #11792)
r990322008-01-18
  • This should at least temporarily fix a problem where the 't' Dial option is incorrectly passed to the transferee when built-in attended transfers are used. There is still a problem with 'T', but better to fix some problems than no problems while we work on it. (closes issue #7904) Reported by: k-egg Patches: transfer-fix-b14-r97657.diff uploaded by sergee (license 138) Tested by: sergee, otherwiseguy
r99007-990142008-01-17
  • doh! revert a revert of a revert (changed by mistake in 99010)
  • missed that one while reverting
  • reverting 99001 - We need the Max-Age for extending the life of cookie mansession_id
r990042008-01-17
  • main/frame.c, channels/chan_iax2.c, include/asterisk/frame.h: Have IAX2 optimize the codec translation path just like chan_sip does it. If the caller's codec is in our codec list, move it to the top to avoid transcoding. (closes issue #10500) Reported by: stevedavies Patches: iax-prefer-current-codec.patch uploaded by stevedavies (license 184) iax-prefer-current-codec.1.4.patch uploaded by stevedavies (license 184) Tested by: stevedavies, pj, sheldonh
r990012008-01-17
  • we should only send the Set-Cookie header to the browser on the first response after creating a manager session, not on every response (doing so causes the browser to clear any local cookies it may have associated with the session)
r989912008-01-17
  • Add a clarification about the immediate= option of zapata.conf Issue 11784, patch by klaus3000.
r989822008-01-16
  • Add an unused pointer to the ast_channel struct. This makes the ast_channel structure retain the same size as it had in previous 1.4 releases. Also, all of the offsets for members in the structure are still the same (except for the two pointers that got replaced for the new spy/whisper architecture.)
r98966-989732008-01-16
  • Bump up cleancount due to previous commit that changed the channel structure.
  • apps/app_chanspy.c, apps/app_mixmonitor.c, main/rtp.c, main/channel.c, apps/app_meetme.c, include/asterisk/audiohook.h (added), main/Makefile, include/asterisk/chanspy.h (removed), include/asterisk/channel.h, main/audiohook.c (added): Replace current spy architecture with backport of audiohooks. This should take care of current known spy issues.
  • Add missing NULLs at end of two ast_load_realtimes. (closes issue #11769) Reported by: tequ Patches: chaniax.patch uploaded by dimas (license 88)
r989642008-01-16
  • Fix a deadlock in chan_local in local_hangup. There was contention because the local_pvt was held and it was attempting to lock a channel, which is the incorrect locking order. (closes issue #11730) Reported by: UDI-Doug Patches: 11730.patch uploaded by putnopvut (license 60) Tested by: UDI-Doug
r98951-989602008-01-16
  • Introduce a lock into the dialing API that protects it when destroying the structure. (closes issue #11687) Reported by: callguy Patches: 11687.diff uploaded by file (license 11)
  • Add two more SDP names for ulaw and alaw. (closes issue #11777) Reported by: tootai
  • Don't drop the old record route information when dealing with packets related to a reinvite. (closes issue #11545) Reported by: kebl0155 Patches: reinvite-patch.txt uploaded by kebl0155 (license 356)
  • build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, codecs/codec_speex.c, configure.ac, makeopts.in: Add autoconf logic for speexdsp. Later versions use a separate library for some things so we need to use it if present in codec_speex. (closes issue #11693) Reported by: yzg
r98943-989462008-01-15
  • Change a buffer in check_auth() to be a thread local dynamically allocated buffer, instead of a massive buffer on the stack. This fixes a crash reported by Qwell due to running out of stack space when building with LOW_MEMORY defined. On a very related note, the usage of BUFSIZ in various places in chan_sip is arbitrary and careless. BUFSIZ is a system specific define. On my machine, it is 8192, but by definition (according to google) could be as small as 256. So, this buffer in check_auth was 16 kB. We don't even support SIP messages larger than 4 kB! Further usage of this define should be avoided, unless it is used in the proper context.
  • main/rtp.c, include/asterisk/translate.h, main/frame.c, main/translate.c, main/abstract_jb.c, channels/chan_iax2.c, codecs/codec_zap.c, include/asterisk/frame.h: Commit a fix for some memory access errors pointed out by the valgrind2.txt output on issue #11698. The issue here is that it is possible for an instance of a translator to get destroyed while the frame allocated as a part of the translator is still being processed. Specifically, this is possible anywhere between a call to ast_read() and ast_frame_free(), which is _a lot_ of places in the code. The reason this happens is that the channel might get masqueraded during this time. During a masquerade, existing translation paths get destroyed. So, this patch fixes the issue in an API and ABI compatible way. (This one is for you, paravoid!) It changes an int in ast_frame to be used as flag bits. The 1 bit is still used to indicate that the frame contains timing information. Also, a second flag has been added to indicate that the frame came from a translator. When a frame with this flag gets released and has this flag, a function is called in translate.c to let it know that this frame is doing being processed. At this point, the flag gets cleared. Also, if the translator was requested to be destroyed while its internal frame still had this flag set, its destruction has been deffered until it finds out that the frame is no longer being processed. Admittedly, this feels like a hack. But, it does fix the issue, and I was not able to think of a better solution ...
r98894-989342008-01-15
  • Based on the boundary found move over the correct amount. (closes issue #11750) Reported by: tasker
  • Accept "; boundary=" not just ";boundary=" in the multipart mixed content type. (closes issue #11750) Reported by: tasker
r988492008-01-14
  • Adding in appropriate unlocks for the locks I added. Thanks to joetester on IRC for pointing this out.
r987742008-01-14
  • Revert a change that introduces an unacceptable performance hit and is causing memory leaks ... (from rev 97973)
r98733-987372008-01-14
  • Fixing another compilation error. I'm a bit off today :(
  • Oops. Last commit had compilation error.
  • Adding explicit defaults for missing options to init_queue. This is necessary because if a user either removes or comments one of these options and reloads their queues, the option will not reset to its default, instead maintaining the value from prior to the reload. Thanks to John Bigelow for pointing this error out to me.
r984672008-01-12
  • Add a connection timeout attribute, as that was what was intended with the login timeout, but ODBC divides it up into 2 different timeouts. (Closes issue #11745)
r983902008-01-11
  • Fix up setting the EID on BSD based systems. (closes issue #11646) Reported by: caio1982 Patches: dundi_osx_eid6.diff.txt uploaded by caio1982 (license 22) dundi_osx_eid6-1.4.diff uploaded by caio1982 (license 22) Tested by: caio1982, mvanbaak
r983722008-01-11
  • Comment explaining how to force browser to always read some html files from server.
r98317-983252008-01-11
  • If the incoming RTP stream changes codec force the bridge to break if the other side does not support it. (closes issue #11729) Reported by: tsearle Patches: new_codec_patch_udiff.patch uploaded by tsearle (license 373)
  • If the channel is hungup during RECORD FILE send a result code of -1 to be uniform with everything else. (closes issue #11743) Reported by: davevg Patches: res_agi.diff uploaded by davevg (license 209)
r983152008-01-11
  • Properly report the hangup cause as no answer when someone does not answer (closes issue #10574, reported by boch, patched by moy)
r982662008-01-11
  • Add another exception (which doesn't work) for -march optimization flag. Reported by: thomasmebes Patch by: tilghman (Closes issue #11563)
r982652008-01-11
  • doc/security.txt, main/asterisk.c, configure, include/asterisk/autoconfig.h.in, main/Makefile, configure.ac, makeopts.in: Backport the ability to set the ToS bits on Linux when not running as root. Normally, we would not backport features into 1.4, but, I was convinced by the justification supplied by the supplier of this patch. He pointed out that this patch removes a requirement for running as root, thus reducing the potential impacts of security issues. (closes issue #11742) Reported by: paravoid Patches: libcap.diff uploaded by paravoid (license 200)
r982192008-01-11
  • Ensure the return value of ast_bridge_call is passed back up as the application return value. This is needed for transfers to function so the PBX core knows to continue execution. (closes issue #10327) Reported by: kkiely
r981642008-01-11
  • Back out changes from revision 97077, since it wasn't perfect
r97976-980822008-01-11
  • Fix samples vs. length calculations for g722
  • Simplify this code with a suggestion from Luigi on the asterisk-dev list. Instead of using is16kHz(), implement a format_rate() function.
  • Fix various timing calculations that made assumptions that the audio being processed was at a sample rate of 8 kHz.
r979732008-01-10
  • 1) When we get a translated frame out, clone it, because if the translator pvt is freed before we use the frame, bad things happen. 2) Getting a failure from ast_sched_delete means that the schedule ID is currently running. Don't just ignore it. (Closes issue #11698)
r979252008-01-10
  • Let us leave a voicemail for ourself if we have logged into VoiceMailMain and chosen to leave a message. (closes issue #11735, reported and patched by jamessan)
r97849-978892008-01-10
  • Applied the same fixes for ael.flex as was done in 97849 for ast_expr2.fl; overrode the normally generate yyfree func with our own version that checks the pointer for non-null before passing to free(). Also takes care of a little problem with 2.5.33 and the use of the __STDC_VERSION__ macro.
  • This is a fix for 2 things: a problem Terry was having in OSX with null pointers, which was my fault, as I probably forgot to run the sed script last time I made mods. So, I moved the fix into the flex input itself. Then, I found when I used flex 2.5.33, that it was using __STDC_VERSION__, and that's not real good; so I added back in a DIFFERENT sed script to fix that little mess. Tested everything, a couple different ways. Hope I did no harm, at the least.
r978472008-01-10
  • Fix a comment that is no longer true.
r97734-977532008-01-10
  • pbx/pbx_kdeconsole.h (removed), configs/modules.conf.sample, pbx/kdeconsole_main.cc (removed): Remove other remnants of pbx_kdeconsole
  • pbx/pbx_kdeconsole.cc (removed), build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Remove pbx_kdeconsole from the tree. It hasn't worked in ages, and nobody has complained. (closes issue #11706, reported by caio1982)
r976972008-01-10
  • Don't try to copy the category from the group if no category exists. (closes issue #11724) Reported by: IgorG Patches: group_count.v1.patch uploaded by IgorG (license 20)
r97640-976452008-01-09
  • Strip terminal sequences from the verbose messages
  • Make pbx_gtkconsole build ... but doesn't actually load on my system still (related to issue #11706)
r97618-976222008-01-09
  • Correctly display a message if a command could not be found. Also fix a comment which may have led to this happening. Issue 11718, reported by kshumard.
  • Fix some locking and return value funkiness. We really shouldn't be unlocking this lock inside of a function, unless we locked it there too.
r975752008-01-09
  • Part 2 of app_queue doxygen improvements. Some smaller functions this time
r975292008-01-09
  • Fix saying the parking space number to the caller doing the parking ...
r974912008-01-09
  • report the same message whether Zaptel does not have transcoder support loaded or no transcoders were found
r974892008-01-09
  • Set the caller id within the gtalk_alloc function. As underlined in issue #10437 by Josh, we need to prevent a possible memory leak. We only set the name part of the caller id, the number part is not relevant when dealing with JIDs. Closes issue #11549.
r974502008-01-09
  • Don't do conferencing totally in Zaptel if Monitor is running on the channel. (closes issue #11709) Reported by: BigJimmy Patches: patch-meetmerec uploaded by BigJimmy (license 371)
r97410-974482008-01-09
  • pass the right variable to get an error string... oops
  • add error number output to ioctl failure messages to help with debugging
r973502008-01-09
  • Allow filename completion on zero-length modules, remove a memory leak, remove a file descriptor leak, and make filename completion thread-safe. Patched and tested by tilghman. (Closes issue #11681)
r97206-973082008-01-09
  • use the \retval doxygen command properly
  • Part 1 of N of adding doxygen comments to app_queue. I picked some of the most common functions used (which also happen to be some the biggest/ugliest functions too) to document first. I'm pretty new to doxygen so criticism is welcome.
  • Some coding guidelines-related cleanup
r971952008-01-08
  • Fix various DTMF issues in chan_mgcp. (closes issue #11443) Reported by: eferro Patches: dtmf_control_hybrid-inband-mode.patch uploaded by eferro (license 337)
r971942008-01-08
  • Increase constants to where we're less likely to hit them while debugging. (Closes issue #11694)
r971922008-01-08
  • Making some changes designed to not allow for a corrupted mailstream for a vm_state. 1. Add locking to the vm_state retrieval functions so that no linked list corruption occurs. 2. Make sure to always grab the persistent vm_state when mailstream access is necessary. 3. Correct an incorrect return value in the init_mailstream function. (closes issue #11304, reported by dwhite)
r97093-971522008-01-08
  • If no group has been provided to the GROUP_COUNT dialplan function then use the first one specific to the channel. (closes issue #11077) Reported by: m4him
  • Make app_queue calls work with directed pickup. (closes issue #11700) Reported by: jbauer
r970772008-01-08
  • Apply multiple crash fixes, found in issue #11386, but not completely closing that issue.
r96884-969322008-01-07
  • Merged revisions 96931 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r96931 | russell | 2008-01-07 14:46:22 -0600 (Mon, 07 Jan 2008) | 2 lines Change misery.digium.com to pbx.digium.com ........
  • Don't crash if something happens when setting up an SMDI interface and it gets destroyed before the SMDI port handling thread gets created.
r96797-968152008-01-07
  • Indentation fix, makes the code easier to read
  • Compute the base64 value over the [authzid]\0authcid\0password string, thus excluding the trailing NULL byte. This change has already been committed to trunk, see #11644.
r966442008-01-05
  • Don't pass an empty string as the device name.
r965752008-01-04
  • Fix the problem of notification of a device state change to a device with a '-' in the name. Could probably do with a better fix in trunk, but this bug has been open way too long without a better solution. Reported by: stevedavies Patch by: tilghman (Closes issue #9668)
r965732008-01-04
  • Properly continue in the dialplan if using PARKINGEXTEN and the slot is full. Issue 11237, patch by me.
r965252008-01-04
  • If you change the bindaddr in sip.conf to a non-bound address and reload, sip goes kablooie. Reported and patched by: one47 (Closes issue #11535)
r96394-964492008-01-04
  • Make use of the temporary channel pointer while the pvt is unlocked. (closes issue #11675) Reported by: flefoll Patches: chan_zap.c.patch-store-owner-before-unlock uploaded by flefoll (license 244)
  • Don't crash if the iax2 pvt structure has been destroyed before we get to this point (closes issue #11672, reported by snuffy, patched by me)
r963182008-01-03
  • Missed initialization caused crash. Reported and fixed by: tiziano (Closes issue #11671)
r96198-961992008-01-03
  • make sure frame is completely clean, before we send it to asterisk as DTMF. If we don't make it clean, it happens that one way audio occurs..
  • when overlapdial was used and no number was dialed, the call was dropped, now we just jump into the s extension, which makes a lot more sense.
r961022008-01-02
  • We need to reset the membername to NULL on each iteration of this loop, otherwise the result is that multiple members can have the same name, since the variable was not reset on each iteration of the loop.
r96020-960242008-01-02
  • Convert locks of the contexts list in pbx_config to the appropriate rdlock or wrlock
  • pbx_dundi only needs a rdlock on the contexts list.
  • app_macro only needs a rdlock on the contexts list.

Asterisk 1.4.17

VersionDateDescription
r959462008-01-02
  • Allocate a SIP refer structure when performing a transfer using BYE with Also so that the transfer information is properly stored. (AST-2008-028) (closes issue #11637) Reported by: greyvoip
r958902008-01-02
  • A change to improve the accuracy of queue logging in the case where a member does not answer during the specified timeout period. Prior to this change, there was a small chance that the member name recorded in this case would be blank. Also prior to this change, if using the ringall strategy, if no one answered the call during the specified timeout, the member name listed in the queue log would randomly be one of the members that was rung. (closes issue #11498, reported and tested by hloubser, patched by me)
r955772007-12-31
  • Avoiding a potentially bad locking situation. ast_merge_contexts_and_delete writelocks the conlock, then calls ast_hint_extension, which attempts to readlock the same lock. Recursion with read-write locks is dangerous, so the inner lock needs to be removed. I did this by copying the "guts" of ast_hint_extension into ast_merge_contexts_and_delete (sans the extra lock). (this change is inspired by the locking problems seen in issue #11080, but I have no idea if this is the problematic area experienced by the reporters of that issue)
r954702007-12-31
  • Allow the default "0" to be returned if the STAT fails (Closes issue #11659)
r951912007-12-28
  • Remove duplicate increment of the header count in the add_header() function. (closes issue #11648) Reported by: makoto Patch provided by sergee, committed patch by me, inspired by comments from putnopvut
r950952007-12-28
  • I found a bug while browsing the queue code and managed to reproduce it in a small setup. If a queue uses the ringall strategy, it was possible through unfortunate coincidence for a single member at a given penalty level to make app_queue think that all members at that penalty level were unavailable and cause the members at the next penalty level to be rung. With this patch, we will only move to the next penalty level if ALL the members at a given penalty level are unreachable.
r950242007-12-27
  • Don't report a syntax error when an empty string is passed to ast_get_group. Just return 0. (closes issue #11540) Reported by: tzafrir Patches: group_empty.diff uploaded by tzafrir (license 46) -- slightly changed by me
r949772007-12-27
  • Fixing a typo in a comment.
r94905-949242007-12-27
  • Include types.h in chan_h323 as without it it can not be compiled on some operating systems like FreeBSD to name one. (closes issue #11585) Reported by: sobomax Patches: chan_h323.c.diff uploaded by sobomax (license 359)
  • Use ast_strlen_zero to see if our_contact is set or not on the dialog. It is possible for it to be a pointer to NULL. (closes issue #11557) Reported by: FuriousGeorge
r94828-948312007-12-27
  • Now that the contexts lock is a read/write lock, it should not be locked here in ast_hint_state_changed(). This makes it get locked recursively which now causes a deadlock. (closes issue #11080, thanks to callguy for the access to a deadlocked machine)
  • Use the constant that I really meant to use here ...
  • Change ast_translator_best_choice() to only pay attention to audio formats. This fixes a problem where Asterisk claims that a translation path can not be found for channels involving video. (closes issue #11638) Reported by: cwhuang Tested by: cwhuang Patch suggested by cwhuang, with some additional changes by me.
r948242007-12-27
  • make this comment explain the situation in an even more explicit fashion
r948082007-12-26
  • Workaround for what is probably a glibc bug (but we'll see this crop up again and again, if we don't add the workaround). Reported by: rolek Patch by: tilghman (Closes issue #11601, closes issue #11426)
r94789-948012007-12-26
  • Just in case the AST_FLAG_END_DTMF_ONLY flag was already set before starting autoservice, remember it and ensure that the channel has the same setting when autoservice gets stopped. (pointed out by d1mas, patched up by me)
  • When a channel is in autoservice, mark a flag on the channel that says that we only care about the END of a digit. That way, no magic digit emulation stuff will happen when all we're doing is queueing up END frames.
  • Don't try to send a parked call back to itself. (closes issue #11622, reported by djrodman, patched by me)
  • Don't store DTMF BEGIN frames while a channel is in autoservice. It's just going to make ast_read() do a lot of extra work when the channel comes back out of autoservice. (closes issue #11628, patched by me)
  • List include/asterisk/version.h as a .PHONY target because we want the commands listed for this target to be executed regardless of whether the file exists or not. This fixes having the version not up to date when running from svn. (closes issue #11619, reported by plack, fixed by me)
r947692007-12-25
  • file says... build on the builders.
r94763-947672007-12-24
  • Race: we need to wait to queue a NewChannel event until after the channel is inserted into the channel list. The reason is because some manager users immediately queue requests from the channel when they see that event and are confused when Asterisk reports no such channel. (Closes issue #11632)
  • More deadlock avoidance code (this time between sip_monitor and sip_hangup) Reported by: apsaras Patch by: tilghman (Closes issue #11413)
  • Another bit of bad logic in realtime_peer Reported by: dimas Patch by: dimas (Closes issue #11631)
r946602007-12-23
  • Argh... I suppose third time's the charm.
r94468-945432007-12-21
  • Bunch of coding guidelines cleanup
  • Better quota support for using IMAP storage voicemail (closes issue #11415, reported by jaroth) (closes issue #11152, reported by selsky) Patch provided by jaroth
  • The mail_copy c-client function does not expect a full imap mailbox string, just the name of the mailbox. (closes issue #11419, reported and patched by jaroth, with additional patchwork from me)
  • Since we are freeing list elements within a list traversal, we need to use the safe traversal and remove the item from the list before freeing it. (closes issue 11612, reported by dtyoo)
r944662007-12-21
  • Convert the contexts lock to a read/write lock to resolve a deadlock. This has a nice side benefit of improving performance. :) (closes issue #11609) (closes issue #11080)
r94420-944642007-12-21
  • Removing a debug message I accidentally just committed
  • Fixing Portuguese syntax for saying dates and times. Also some coding guidelines cleanup. (closes issue #11599, reported and patched by caio1982, coding guidelines cleanup by me)
r944182007-12-21
  • Fix for restart-as-user problem reported via the -dev list

Asterisk 1.4.16.2

VersionDateDescription
r94215-942562007-12-20
  • Merged revisions 94255 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r94255 | russell | 2007-12-20 14:21:41 -0600 (Thu, 20 Dec 2007) | 5 lines Fix another potential seg fault ... (closes issue #11606) Reported by: dimas ........
  • Fix a deadlock in d-channel handling in chan_zap. This deadlock was introduced by the fix to ensure that channels are properly locked when handling channel variables. There were sections of this code where the channel pvt was locked before the channel lock, when in fact it _must_ be the other way around. (closes issue #11582) Reported by: bugi
r941222007-12-19
  • Sox versions 13.0.0 and newer do not have "soxmix" and instead use sox -m. res_monitor needs to use this if the user does not have soxmix. (closes issue #11589, reported by amessina, patch inspired by amessina but with a flourish from me)
r940772007-12-19
  • Check for the existence of the soxmix application on the target platform and have the result available in autoconfig.h. (part of issue #11589)

Asterisk 1.4.16.1

VersionDateDescription
r939552007-12-19
  • Make the 1.4 builders happy, ensure var is NULL.
r939492007-12-19
  • Avoid segfault in chan_iax when peer isn't defined (Closes issue #11602)
r937642007-12-18
  • FreeBSD also does not have byte swap functions. Issue 11586, patch by sobomax.

Asterisk 1.4.16

VersionDateDescription
r93668-936762007-12-18
  • Merged revisions 93667 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r93667 | tilghman | 2007-12-18 12:23:06 -0600 (Tue, 18 Dec 2007) | 2 lines Fixing AST-2007-027 (Closes issue #11119) ........
r936252007-12-18
  • Rework deadlock avoidance used in ast_write, since it meant that agent channels which were being monitored had one audio file recorded and one empty audio file saved. (closes issue #11529, reported by atis patched by me)
r93381-934202007-12-17
  • What was I thinking when I wrote this masterpiece? -1 + 1 = 0.. who woulda thunk it?.
r933772007-12-17
  • Do not try to access information about a lock when printing out a trylock attempt. It is possible for the lock that it references to no longer be valid. This would have caused segfaults or deadlocks. (issue #BE-263) (closes issue #11080) Reported by: callguy (closes issue #11100) Reported by: callguy
r933362007-12-17
  • Today is tomorrow's yesterday, and yesterday's tomorrow is today, and tomorrow's tomorrow is the day after tomorrow, so who cares if you recycle anyway? If this confuses you, that's nothing compared to what this fixes. ;-)
r932912007-12-17
  • We need to create the directory for a voicemail user even if they are using IMAP storage since greetings are stored in the filesystem. (closes issue #11388, reported by spditner, patch by me inspired by a patch by spditner)
r932502007-12-17
  • If a call is received with a called number IE containing nothing go to the 's' extension. (closes issue #9099) Reported by: kb1_kanobe2 Patches: 20070906__9099.diff.txt uploaded by Corydon76 (license 14)
r931832007-12-17
  • funcs/Makefile, codecs/Makefile, cdr/Makefile, pbx/Makefile, res/Makefile, channels/Makefile, formats/Makefile: fix some copy-and-paste leftovers
r931822007-12-17
  • channels/chan_mgcp.c, channels/chan_zap.c, channels/chan_sip.c, apps/app_queue.c, channels/chan_iax2.c: Issue 11574: Add dependencies on res_monitor and res_features. I wonder if Asterisk can run at all without res_features. My guess is that there's propably a lot of more modules and the core that depends on it. Reported by: caio1982 (closes issue #11574)
r931802007-12-17
  • formats, Makefile, codecs/Makefile, funcs, apps/Makefile, configure, cdr/Makefile, build_tools/prep_tarball, makeopts.in, formats/Makefile, pbx, res, channels, funcs/Makefile, codecs, include/asterisk/autoconfig.h.in, build_tools/make_version, apps, configure.ac, Makefile.moddir_rules, build_tools/prep_moduledeps (removed), res/Makefile, pbx/Makefile, cdr, channels/Makefile: In http://lists.digium.com/pipermail/asterisk-dev/2007-December/031145.html, rizzo brought up some issues related to the way that the metadata required for menuselect and the rest of the build system is extracted from the source files. Since I had a few hours to kill on an airplane today, I decided to improve this situation... so now the system caches the extracted metadata and uses it to build the menuselect 'tree' as much as it can. The result of this is that when a single source file is changed, only the metadata for that file needs to be extracted again, and the rest is used from the cache files. I also reduced the number of forked processes required to do the metadata extraction; it was actually possible to do most of what we needed in the Makefiles themselves without using any shell scripts at all! On my laptop, these changes resulted in an 80% decrease in the time required for the 'menuselect.makeopts' automatic check to occur after editing a single source file. While doing this work I also cleaned up a few minor things in the Makefiles, adding a check for 'awk' to the configure script and changed all remaining places we use 'grep' or 'awk' to use the ones found by the configure script, and changed the 'prep_tarball' script to build the menuselect metadata so that tarballs of Asterisk will include it and won't require the user to wait while it is extracted after unpacking.
r930002007-12-14
  • There are a lot of existing systems that #include non-existent files. So, to make the transition to treating this as an error a bit less painless, just issue a huge error message for now. Then, later, we can reinstate the code that treats it as a failure. (Thanks to philippel for the feedback)
r929372007-12-14
  • Up the length of the format on the SIP channel since it can now be rather long. (closes issue #11552) Reported by: francesco_r
r929342007-12-14
  • fixed the sequencing of WAITING_4DIGS state setting and overlap_task thread starting.
r929332007-12-14
  • Change help documentation to match actual behavior (FAILURE vs FAILED). Reported by: angeloxx-sir Patch by: tilghman (Closes issue #11548)
r928752007-12-14
  • When compiling with DETECT_DEADLOCKS, don't spam the CLI with messages about possible deadlocks. Instead just print the intended single message every five seconds. (closes issue 11537, reported and patched by dimas)
r928152007-12-13
  • Properly initialize polarity statuses, so that they are detected properly. Reported by: julianjm Patch by: julianjm (Closes issue #10238)
r928092007-12-13
  • Make application help text a little more clear about the use of extensions in a filename.
r92803-928072007-12-13
  • Prevent another potential fd leak
  • Prevent a possible fd leak.
r926962007-12-13
  • main/config.c, channels/chan_sip.c, channels/chan_h323.c, channels/chan_iax2.c: If a typo is found in a config file, we previous continued on with what was already loaded. We do not want to do this (see bug below for details). This makes it so that if a [ is found without a ], the entire config will fail, and nothing in it will be loaded. Isue #10690.
r926562007-12-12
  • emit a warning message when we drop a G.729B CNG frame destined for the transcoder
r926172007-12-12
  • Don't increment user count until after name has been recorded (if enabled). Issue 11048, tested by pep.
r925562007-12-12
  • resolve compiler warning
r925102007-12-12
  • Correctly detect where a dynamic feature was activated. Before this patch, the channel which initiated the bridge was always assumed to have been the one which activated the dynamic feature. This patch corrects this. (closes issue #11529, reported and patched by nic_bellamy)
r924632007-12-12
  • Test directly for the API that fixed AST-2007-026, to ensure that older versions of PostgreSQL are no longer acceptable. (Closes issue #11526)
r924432007-12-12
  • Removing an unused variable.
r923632007-12-11
  • Fix potential memory leak with the dialed interfaces list if another memory allocation fails. (closes issue #11507) Reported by: eliel Patches: global_datastores.c.patch uploaded by eliel (license 64)
r923232007-12-11
  • Fixing autofill to be more accurate. Specifically, if calls ahead of the current caller were ringing members (but not yet bridged) there could be available members and waiting callers who would not get matched up. The member availability checker was correctly determining the number of available members in this scenario, but the queue itself did not parallelly reflect this status on the pending calls. This commit corrects the issue. (closes issue #11459, reported by equissoftware, patched by me)
r922042007-12-10
  • Add G729A as another possible payload name for G729. Some devices use this instead of G729, which is perfectly normal since the payload number itself is defined and can't be used by anything else so the name doesn't matter that much. (closes issue #11483) Reported by: revolution Patches: rtp.diff uploaded by revolution (license 346)
r922022007-12-10
  • If there are no members in a queue, then the loop where the datastore for detecting duplicate dialed numbers will be skipped, meaning the datastore isn't created. This means that when we try to free it, there's a crash. This stops that crash from occurring. (closes issue #11499, reported by slavon, patched by eliel)
r922002007-12-10
  • It is possible for nativeformats to contain more then one codec, so print out multiple ones. (closes issue #11366) Reported by: ovi
r921582007-12-10
  • Avoid reinvite race situations with two Asterisks trying to reinvite each other in 1.4 and trunk. This patch implements support for the 491 error code that Asterisk 1.4 generates on situations where we get an incoming INVITE and already has one in progress. Thanks to mavetju for reporting and to Raj Jain for an excellent explanation of the problem. Patch by myself. Tested with 8 Asterisk servers connected to each other in a training network. Closes issue #10481
r918902007-12-07
  • We need to make sure we free the input frame if we return a different frame in ast_dsp_process. Issue 11273, pointed out by dimas, with a patch by eliel.
r918702007-12-07
  • even though Asterisk explicitly requests that endpoints using G.729 do *not
  • use Annex B (silence detection and comfort noise generation) some do anyway; the transcoder card interface does not currently work properly with CNG frames, so trim off the CNG before sending the data
r91777-918302007-12-07
  • Make the lock protecting each thread's list of locks it currently holds recursive. I think that this will fix the situation where some people have said that "core show locks" locks up the CLI. (related to issue #11080)
  • Fix another bug in the DEBUG_THREADS code. The ast_mutex_init() function had the mutex attribute object marked as static. This means that multiple threads initializing locks at the same time could step on each other and end up with improperly initialized locks. (found when tracking down locking issues related to issue #11080)
  • I love fixing lock related errors in the lock debugging code. That's about as ironic as it gets in Asterisk programming land. Anyway, I spotted this bug while trying to track down why systems are locking up and acting weird in issue #11080. The mutex attribute object was marked as static in this function when it should not have been.
  • Add channel locking around datastore operations that expect the channel to be locked.
  • Document why we don't record Local channels in the dialed interfaces list. * Remove the dialed variable as it isn't needed.
  • Restructure some code for clarity and coding guidelines stuff
  • Add channel locking around datastore operations that expect the channel to be locked.
  • Document why we don't record Local channels in the dialed interfaces list. * Handle memory allocation failure.
  • Remove the dialed variable, as it wasn't actually needed.
  • Tweak some formatting to conform to coding guidelines.
  • Add a bit more of a verbose comment as to why a hangup frame needs to be queued up if autoservice gets a NULL return from ast_read().
  • Make the process of queueing the hangup frame more efficient by putting the frame where it is going to end up and avoiding some locking and extra memory allocations and freeing.
r917372007-12-07
  • Hangups that happen during autoservice were not processed appropriately. This is because a hangup actually causes a NULL frame to be received, not a hangup frame. Queueing a hangup if we receive a NULL frame during autoservice corrects this problem (closes issue #11467, reported by jmls, patched by me)
r91675-916932007-12-07
  • Don't unlock the dialed_interfaces list until we're done messing with the iterator.
  • Allow dialing local channels from Queue() and Dial() again. There was a slight flaw in the code to prevent call forwards from looping that caused this problem. (related to issue #11486)
  • Fix in an issue in the call forwarding handling code that was causing crashes on every call into a queue. I'm not entirely sure about the logic in this part of the code, so I want to look at it some more tomorrow. However, this makes it safe and keeps it from crashing. (closes issue #11486, reported by adamg, patched by me)
r916372007-12-07
  • At the end of a call, when we're reporting, RTCP may already be partially torn down, so check for NULL dereference Reported by: blitzrage Patch by: tilghman (Closes issue #11450)
r915412007-12-06
  • IMAP storage did not honor the maxmsg setting in voicemail.conf, and it also had the possibility of crashing if a user had more than 256 messages in their voicemail. This patch kills two birds with one stone by adding maxmsg support and also setting a hard limit on the number of messages at 255 so that the crashes cannot happen. (closes issue #11101, reported by Skavin, patched by me)
r915012007-12-06
  • Add a new module flag to indicate that a build sum is present. Modules built against older Asterisk 1.4 headers will now load properly with just a warning indicating that they are old and may cause problems. (patch by paravoid)
r91439-914502007-12-06
  • Fix various in the udptl implementation. It could return empty modem frames, have an incorrect sequence number on packets, and display the wrong sequence number in the debug messages. (closes issue #11228) Reported by: Cache Patches: udptl-4.patch uploaded by dimas (license 88)
  • Add support for accepting and sending T.38 in the initial INVITE. (closes issue #9402) Reported by: thdei
r913662007-12-06
  • Make sure logger is reloaded at general reload in the cli. (Discovered during Asterisk training in Portugal)
r91273-912922007-12-05
  • Reverting extra stuff I didn't mean to commit
  • The 'G' option for Dial() did not properly handle the case where only a label was provided. This was due to the fact that the answering channel did not have an extension set, so ast_parseable_goto would fail. This fix eliminates the call to ast_parseable_goto on the answering channel since it is a wasteful call. The answering channel and the calling channel are both directed to the same extension and context, just different priorities, so we can just copy the values from the calling channel to the answering channel and increment the answering channel's priority. (closes issue #11382, reported by jon, patch by me with correction by jon)
r912372007-12-05
  • Upgrade to the latest version of extra sounds
r90967-911922007-12-05
  • Make the lock in the threadstorage debugging code untracked to avoid a deadlock on thread destruction. (closes issue #11207) Reported by: ys Patches: threadstorage.c.diff uploaded by ys (license 281) Also fixes an open bug report: (closes issue #11446)
  • When DEBUG_THREADS is enabled, we only have the details about who is holding a lock that we are waiting on for a mutex, not rwlocks. This should fix the problem where people have reported "core show locks" crashing sometimes.
  • Fix some crashes in chan_iax2 that were reported as happening on Mac systems. It turns out that the problem was the Mac version of the ast_atomic_fetchadd_int() function. The Mac atomic add function returns the _new_ value, while this function is supposed to return the old value. So, the crashes happened on unreferencing objects. If the reference count was decreased to 1, ao2_ref() thought that it had been decreased to zero, and called the destructor. However, there was still an outstanding reference around. (closes issue #11176) (closes issue #11289)
  • include/asterisk/file.h, configure, include/asterisk/autoconfig.h.in, configure.ac, include/asterisk/compiler.h: Modify file.h to maintain API compatibility with earlier versions. If a recent compiler is being used, then a warning will show up for any modules still using the old name "private" instead of "_private". (patch suggested by paravoid)
  • Make some changes to some additions I made recently for doing channel autoservice when looking up extensions. This code was added to handle the case where a dialplan switch was in use that could block for a long time. However, the way that I added it, it did this for all extension lookups. However, lookups in the in-memory tree of extensions should _not_ take long enough to matter. So, move the autoservice stuff to be only around executing a switch.
r908762007-12-04
  • If we fail to create a channel after allocating a timing fd, we need to make sure to close it. Issue 11454, patch by eliel.
r907982007-12-04
  • Fix build issue on the build cluster.
r90736-907532007-12-03
  • Solaris requires the inclusion of sys/loadavg.h for getloadavg(). Reported by: snuffy Patch by: snuffy,tilghman (Closes issue #11430)
  • If both dbhost and dbsock were not set, a NULL deref could result Reported by: xrg Patch by: tilghman (Closes issue #11387)
r907352007-12-03
  • apps/app_dial.c, main/channel.c, main/global_datastores.c (added), channels/chan_local.c, main/Makefile, include/asterisk/channel.h, include/asterisk/global_datastores.h (added), apps/app_queue.c: A big one... This is the merge of the forward-loop branch. The main change here is that call-forwards can no longer loop. This is accomplished by creating a datastore on the calling channel which has a linked list of all devices dialed. If a forward happens, then the local channel which is created inherits the datastore. If, through this progression of forwards and datastore inheritance, a device is attempted to be dialed a second time, it will simply be skipped and a warning message will be printed to the CLI. After the dialing has been completed, the datastore is detached from the channel and destroyed. This change also introduces some side effects to the code which I shall enumerate here: 1. Datastore inheritance has been backported from trunk into 1.4 2. A large chunk of code has been removed from app_dial. This chunk is the section of code which handles the call forward case after the channel has been requested but before it has been called. This was removed because call-forwarding still works fine without it, it makes the code less error-prone should it need changing, and it made this set of changes much less painful to just have the forwarding handled in one place in each module. 3. Two new files, global_datastores.h and .c have been added. These are necessary since the datastore which is attached to the channel may be created and attached in either app_dial or app_queue, so they need a common place to find the datastore info. This approach was taken in case similar datastores are needed in the future, there will be a common place to add them.
r906962007-12-03
  • Make sure we always close the conference fd if we have an open one. Issue 11383, reported by markmhy, patch by eliel.
r906392007-12-03
  • Changing some bad logic when calculating the interdigit timeout. (closes issue #11402, reported and patched by eferro)
r906072007-12-03
  • Fix crash in ParkAndAnnounce application. Issue #11436, reported by lytledd, patch by eliel.
r90548-905882007-12-03
  • Do not create a smoother for G723.1 frames, they need to be left alone to their native 20/24 byte size.
  • Preserve the indication currently playing on a channel when a masquerade operation happens. (issue #BE-88)
r905462007-12-03
  • Only log debug messages if debug is enabled. Closes issue #11416, patch by casper.
r904702007-12-02
  • The other day when I went through making changes as a result of the ao2_link() change, I added some code to set pointers to NULL after they were unreferenced. This pointed out that in this place, the object was unreferenced before the code was done using it. So, move the unref down a little bit. (crash reported by jmls on IRC)
r904322007-12-02
  • Clarify the return value on autoservice. Specifically, if you started autoservice and autoservice was already on, it would erroneously return an error. Reported by: adiemus Patch by: dimas (Closes issue #11433)
r90310-903482007-11-30
  • main/astobj2.c, main/manager.c, include/asterisk/astobj2.h, apps/app_queue.c, channels/chan_iax2.c: Change the behavior of ao2_link(). Previously, in inherited a reference. Now, it automatically increases the reference count to reflect the reference that is now held by the container. This was done to be more consistent with ao2_unlink(), which automatically releases the reference held by the container. It also makes it so it is no longer possible for a pointer to be invalid after ao2_link() returns.
  • Add some notes on the behavior of ao2_unlink() after a discussion with Tilghman
r902692007-11-30
  • Fix locking issues under one legged replaces scenarios. (closes issue #11420) Reported by: irroot Patches: chan_sip_oneleg.patch uploaded by irroot (license 52)
r902312007-11-30
  • Clear the DTMF buffer if the call times out. (closes issue #11418, reported and patched by eferro)

Asterisk 1.4.15

VersionDateDescription
r901662007-11-29
  • Properly escape cdr->src and cdr->dst and ensure we use thread-safe escaping (Fixes AST-2007-026)
r901632007-11-29
  • This patch handles the case where a queue member with a negative penalty is added via the manager. If a negative value is submitted for a member penalty, we set it to 0. (closes issue #11411, reported and patched by Laureano)
r90154-901602007-11-29
  • Properly escape input buffers (Fixes AST-2007-025)
  • formats/format_g726.c, include/asterisk/file.h, formats/format_wav.c, formats/format_pcm.c, formats/format_ogg_vorbis.c, main/file.c, formats/format_h263.c, formats/format_h264.c, formats/format_wav_gsm.c: Use of "private" as a field name in a header file messes with C++ projects Reported by: chewbacca Patch by: casper (Closes issue #11401)
  • Upgrade the core sounds release version
r90142-901472007-11-29
  • fix some formatting i accidentally changed
  • funcs/func_callerid.c, main/channel.c, include/asterisk/channel.h: This set of changes is to make some callerID handling thread-safe. The ast_set_callerid() function needed to lock the channel. Also, the handlers for the CALLERID() dialplan function needed to lock the channel when reading or writing callerid values directly on the channel structure.
  • Merge a change from team/russell/chan_refcount ... This makes ast_stopstream() thread-safe.
r901012007-11-28
  • Fix a few memory leaks. (closes issue #11405) Reported by: eliel Patches: load_realtime.patch uploaded by eliel (license 64)
r900982007-11-28
  • it is impossible to set permissions for manager accounts created by users.conf (reported internally, patched by me)
r89999-900592007-11-28
  • Removing some seemingly pointless code. This sets a channel variable for every priority executed in the dialplan if you have debug set to anything non-zero. This seems pointless due to the fact that these channel variables are not referenced anywhere else in the code and their names are esoteric enough that they would not be practical to reference in the dialplan. Plus the fact that this behavior isn't documented anywhere means that the change is not likely to cause any disruption. If anything, this may actually cause a slight performance increase if running with debug on. The motivating influence for this code change is the eventwhencalled option for queues. If set to vars, all channel variables will be output to the manager. These unnecessary channel variables make the output a lot more difficult to deal with.
  • Recording greetings when using IMAP storage was causing zero-length files to be stored. Since greetings are not retrieved from IMAP anyway, it is pointless to attempt storing them there. (closes issue #11359, reported by spditner, patched by me)
r89839-898932007-11-28
  • - update documentation for some of the goto functions to note that they handle locking the channel as needed - update ast_explicit_goto() to lock the channel as needed
  • Don't do frame processing if ast_read() returned NULL.
  • Instead of depending on the return value of ast_true(), explicitly set the eventwhencalled variable to 1.
  • Don't start/stop autoservice in pbx_extension_helper() unless a channel exists
r898372007-11-27
  • Two changes with regards to the 'eventwhencalled' option of queues.conf 1) Due to some signed vs. unsigned silliness, setting 'eventwhencalled' to 'vars' or 'yes' did exactly the same thing. Thus the sign change of the ast_true call. 2) The vars2manager function overwrote a \n for every channel variable it parsed, resulting in bizarre output for the channel variables. This patch remedies this. (related to issue #11385, however I'm not sure if this will actually be enough to close it)
r897902007-11-27
  • Merge changes from team/russell/autoservice_1.4 This set of changes fixes an issue that was reported to me on IRC yesterday. The user, d1mas, was using chan_zap for incoming calls and was having DTMF recognition issues in some situations. Specifically, he noticed that the problem occurred when using DISA or WaitExten. He also noticed that when using Read, the problem did not occur. His system also used DUNDi for dialplan lookups. So, he theorized that if the DUNDi lookups blocked for some period of time, that audio from the zap channel could get lost. If the audio got lost, then it wouldn't be run through the DTMF detector, and digits could get lost. He was correct, and the following set of changes fixes the problem. However, the changes go a little bit further than what was necessary to fix this exact problem. 1) I updated pbx_extension_helper() to autoservice the associated channel to handle cases where extension lookups may take a long time. This would normally be a dialplan switch that does some lookup over the network, such as the DUNDi or IAX2 switches. This ensures that even while a DUNDi lookup is blocking, the channel will be continuously serviced. 2) I made a change to the autoservice code. This is actually something that has bothered me for a long time. When a channel is in autoservice, _all_ frames get thrown away. However, some frames really shouldn't be thrown away. The most notable examples are signalling (CONTROL) frames, and DTMF. So, this patch queues up important frames while a channel is in autoservice. When autoservice is stopped on the channel, the queued up frames get stuck back on the channel so that they can get processed instead of thrown away. 3) I made another change to the autoservice code to handle the case where autoservice is started on channels recursively. Previously, you could call ast_autoservice_start() multiple times on a channel, and it would stop the first time ast_autoservice_stop() gets called. Now, it will ensure that autoservice doesn't actually stop until the final call to ast_autoservice_stop().
r897272007-11-27
  • Changing some calls from free() to ast_free() since they were allocated with ast_calloc(). (closes issue #11390, reported and patched by Laureano)
r89701-897092007-11-27
  • on second thought... revert all the other changes i've made in app options parsing leaving only one: if an empty argument is supplied for an option, set that argument pointer to point to an empty string rather than NULL, so that the application can do normal checks on it without worrying about it being NULL
  • generate a warning when an application option that requires an argument is ignored due to lack of an argument
r896342007-11-27
  • Add a note to the sample voicemail config noting that when using IMAP storage, only the first format specified will be attached to the message.
r896312007-11-27
  • Default result of STAT should be "0" not "". Reported via the -users mailing list, fixed by me.
r89624-896302007-11-27
  • If we get a codec offer using a well-known payload type, but using it for another codec that we don't know, Asterisk did not remove that codec from the list. With this patch, we remove the codec from audio and video rtp objects and deny it ever existed. Thanks to lasse for testing. (closes issue #11376) Reported by: lasse Patches: bug11376.txt uploaded by oej (license 306) Tested by: lasse
  • Clarify limitonpeers=yes (closes issue #11304) Reported by: pj
r896222007-11-27
  • apps/app_dial.c, main/cdr.c, configs/cdr.conf.sample, include/asterisk/cdr.h: closes issue #11379; OK, this is an attempt to make both sides happy. To the cdr.conf file, I added the option 'unanswered', which defaults to 'no'. In this mode, you will see a cdr for a call, whether it was answered or not. The disposition will be NO ANSWER or ANSWERED, as appropriate. The src is as you'd expect, the destination channel will be one of the channels from the Dial() call, usually the last in the list if more than one chan was specified. With unanswered set to 'yes', you will still see this cdr entry in both cases. But in the case where the dial timed out, you will also see a cdr for each line attempted, marked NO ANSWER, with no destination channel name. The new option defaults to 'no', so you don't see the pesky extra cdr's by default, and you will not see the irritating 'not posted' messages.
r89616-896182007-11-26
  • After issuing a "say load new", if a caller hangs up during the middle of playback of a number, app_playback will continue to try to play the remaining files. With this change, no more files will be played back upon hangup. (closes issue #11345, reported and patched by IgorG)
  • After issuing a "say load new" tons of warning messages are printed out to the CLI every time do_say in app_playback is called. Removing these warnings
r89599-896102007-11-26
  • Fix issues with async dialing with an application executing. The application has to be terminated and control returned to the thread before hanging things up. (issue #BE-252)
  • Add module counting removal for error conditions. (closes issue #11333) Reported by: Laureano Patches: res_features_v2.c.patch uploaded by Laureano (license 265)
r895942007-11-26
  • Add channel locking to a function that needed to be doing it. This is just a little something I noticed while working on a completely unrelated issue.
r89587-895922007-11-26
  • Use ast_free to free memory, or else we shall implode if MALLOC_DEBUG is enabled. (closes issue #11347) Reported by: ys Patches: pbx.pbx_config.c.diff uploaded by ys (license 281)
  • Close the audio file before sending it to the post processing application. (closes issue #11357) Reported by: reformed Patches: mixmonitor.patch uploaded by reformed (license 330)
r895862007-11-26
  • when parsing application options that take arguments, don't indicate that the option was supplied unless a non-zero-length argument was found for it
r895802007-11-26
  • Revert vmu->email back to an empty string if it was empty when imap_store_file was called. This prevents sending a duplicate e-mail. (closes issue #11204, reported by spditner, patched by me)
r89571-895772007-11-26
  • If channel allocation fails because the alert pipe could not be created also free the scheduler context. (closes issue #11355) Reported by: eliel Patches: main.channel.c.patch uploaded by eliel (license 64)
  • When unloading app_meetme destroy any auto created contexts created by SLA. (closes issue #11367) Reported by: eliel
r895592007-11-25
  • res/res_odbc.c, configs/res_odbc.conf.sample, include/asterisk/res_odbc.h, res/res_config_odbc.c: We previously attempted to use the ESCAPE clause to set the escape delimiter to a backslash. Unfortunately, this does not universally work on all databases, since on databases which natively use the backslash as a delimiter, the backslash itself needs to be delimited, but on other databases that have no delimiter, backslashing the backslash causes an error. So the only solution that I can come up with is to create an option in res_odbc that explicitly specifies whether or not backslash is a native delimiter. If it is, we use it natively; if not, we use the ESCAPE clause to make it one. Reported by: elguero Patch by: tilghman (Closes issue #11364)
r89534-895452007-11-24
  • Free some frames that would otherwise leak on error. Reported by: Laureano Patch by: Laureano,tilghman (Closes issue #11351)
  • Currently, zero-length voicemail messages cause a hangup in VoicemailMain. This change fixes the problem, with a multi-faceted approach. First, we do our best to avoid these messages from being created in the first place, and second, if that fails, we detect when the voicemail message is zero-length and avoid exiting at that point. Reported by: dtyoo Patch by: gkloepfer,tilghman (Closes issue #11083)
  • Up until this point, the XML output of the manager has been technically invalid, due to the repetition of certain parameters in a single event. This caused various issues for XML parsers, some of which refused to parse at all, given the invalidity of the rendered XML. So this commit fixes the XML output, ensuring that each entity parameter has a unique name, thus ensuring valid XML. Reported by: msetim Patch by: tilghman (Closes issue #10220)
  • Use ESCAPE clause for the first parameter, not just 2nd-Nth parameters. Reported by: apsaras Patch by: tilghman (Closes issue #11353)
r895272007-11-22
  • mvanbaak pointed out a spelling error in this sample configuration file. While I was at it, I went ahead and tweaked it a little bit more.
r89493-894952007-11-21
  • Fix a small error I made in my previous commit
  • Changing an inaccurate debug message to be less inaccurate. Under the circumstances, this message would always report that there were 0 members available, even though that may not be true.
r894912007-11-21
  • If a channel gets masqueraded in the middle of a park, don't play the announcement to the masqueraded channel, and dial back to the original channel on timeout.
r89461-894622007-11-20
  • re-doxygen some comments
  • main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: bring back compile-option checking when loading modules, only this time use a string-based storage and comparison mechanism because it is easier to support on other platforms
r894572007-11-20
  • According to comments in main/pbx.c, it is essential that if we are going to lock the conlock as well as the hints lock, it must be locked in that respective order. In order to prevent a potential deadlock, we need to lock the conlock prior to locking the hints lock in ast_hint_state_changed (see the call stack example on issue #11323 for how this can happen). (closes issue #11323, reported by eelcob, suggestion for patch by eelcob, patch by me)
r894502007-11-20
  • closes issue #11324; break statements missing in switch cases.
r894452007-11-20
  • added RR patch from iroot #10908, thanks.
r89416-894192007-11-19
  • Print out the correct filename (features.conf) in the log message when parkpos options are incorrect. (closes issue #11295) Reported by: Laureano Patches: res_features.c.patch uploaded by Laureano (license 265)
  • Clarify documentation a bit, include that a frame has to pass through the core in order for the Local channel optimization to happen. (closes issue #11246) Reported by: jon

Asterisk 1.4.14

VersionDateDescription
r893392007-11-16
  • main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: Temporarily revert revision 89325, which added md5 magic for keeping track of what build options were used. We agreed that we should remove this before making a 1.4 release, and then we can put it back in. Then, we can take a month or so to play around with it to get it how we want it.
r893252007-11-16
  • main/loader.c, include/asterisk/module.h, build_tools/make_buildopts_h: To help combat problems where people build external modules (asterisk-addons or others) and then change the build options of the Asterisk build in a way that makes the incompatible without warning, this commit introduces an MD5 signature of the important build-time options and includes that signature into modules when they are built. When the loader loads one of these modules and notices the problem, it will emit a warning to console and refuse to initialize the module, as doing so could cause the system to be unstable or even crash. If you upgrade to this version of Asterisk, you must rebuild *all* of your modules that came from other sources before trying to run this version. If you are using Digium's G.729 binary codec module, you will need v33 or newer.
r893232007-11-16
  • Make realtime queues accessible from the QUEUE_MEMBER_COUNT function. (closes issue #11271, reported and patched by atis, with small modifications from me)
r89298-893022007-11-15
  • Start Asterisk in Debian at a more reasonable time (since zaptel is at level 20)
  • Fix an uninitialized memory read found by valgrind
  • Yet another memory corruption issue. Reported by: atis Patch by: tilghman Fixes issue #10923
r892962007-11-15
  • Update the SLAStation application to account for the case where the SLA thread has a call out to the station, but the user has pressed a line button to answer the call instead of picking up the handset. If they do, the phone sends out a new INVITE. So, the SLAStation app must check to see if it is picking up a ringing trunk, and ensure that the other stations stop ringing. (reported internally, patched by me, tested by mogorman)
r89286-892882007-11-15
  • Undoing previous commit since I realize it was wrong
  • Adding a missing mutex unlock. (closes issue 11256, reported and patched by ys)
r89280-892812007-11-15
  • Don't send re-invites during pending INVITE transactions. Patch by one47 - thanks! Closes issue #9305
  • Improve support for multipart messages. Code by gasparz, changes by me (mostly formatting). Thanks, gasparz! Closes issue #10947
r892752007-11-14
  • When a recording ends with '#', we are improperly trimming an extra 200ms from the recording. Reported by: sim Patch by: tilghman Closes issue #11247
r892602007-11-14
  • Return the proper value when the srv_callback function executes properly. (closes issue #11240) Reported by: jtodd
r89248-892542007-11-13
  • Fix building on newer systems which require a third arg to open() when using O_CREAT. Issue 11238, reported by puzzled.
  • Revert change from revision 67064. It is documented behavior that if a parking extension already exists while using PARKINGEXTEN, dialplan execution will continue. If blind transferring to a Park with PARKINGEXTEN, you must keep this in mind, and handle the failure yourself. Issue 11237, reported by jon.
r892462007-11-13
  • If we set a value for qualify, we should actually pay attention to it, instead of overriding the value
r892412007-11-13
  • Reverting commit made in revision 89205 since it is unnecessary. Thanks to Kevin for pointing this out
r892392007-11-13
  • Debugging is running into the 16-lock limit. Increase to avoid. (This define is only effective when debugging is turned on, so there's no effect for most installations.)
r892052007-11-13
  • Some sanity checking for MixMonitor. If only 1 argument is given, then the args.options and args.post_process strings are uninitialized and could contain garbage. This change handles this situation properly by only using arguments that we have parsed.
r891942007-11-12
  • Fix a typo pointed out by De_Mon on #asterisk-dev
r89184-891912007-11-12
  • If two config writes collide, file corruption could result. Use a mkstemp() file, instead. Reported by: paravoid Patch by: tilghman Closes issue #10781
  • Fix two cases of memory corruption caused by background threads. Reported by: atis Patch by: tilghman Fixes issue #10923
r89169-891732007-11-12
  • if we're NT and no number was dialed and overlapdial is set, we wait for the ISDN timeout instead of starting our own timer. added a comment for the misdn.conf.sample for the overlapdial config option.
  • channels/misdn/isdn_lib.c, channels/misdn/isdn_lib_intern.h, channels/chan_misdn.c, channels/misdn/isdn_msg_parser.c: added restart all interfaces Restart_Indicator, to automatically send a RESTART after the L2 of a PTP Port comes up. Also fixed some places where we have send a RELEASE without need for it.
  • fixed a state/event issue with overlapdial=yes when no extension matched. removed the general sending of a RELEASE_COMPLETE when we receive a RELEASE, this is done by mISDNuser/mISDN. This makes it possible to use asterisk-1.4 with mISDN trunk, but requires users of mISDN/mISDNuser-1.1.X to upgrade to at least mISDNuser-1.1.6 (when using the NT mode at all)
  • fixed the support for CW and therefore for the reject_cause option.
  • channels/misdn/isdn_lib.c, channels/misdn_config.c, channels/misdn/isdn_lib.h, channels/chan_misdn.c, channels/misdn/chan_misdn_config.h, configs/misdn.conf.sample: aded ntkeepcalls option, to avoid droÃpping calls when the L2 goes down on a PTP link. There are some pbx which do turn off the L1 for a very short while and restart it immediately. normally T310 should be started and after 10 seconds or so the calls should be dropped, this is a simple fix wihtout this timer.
r891252007-11-08
  • Properly say the seconds here.. Issue 11203, fix described by vma.
r891192007-11-08
  • Rework of the commit I made yesterday to use the already built-in ast_uri_decode function as opposed to my home-rolled one. Also added comments. Thanks to oej for pointing me in the right direction
r891152007-11-08
  • Avoid warnings on load when using sample configuration files. Issue 11195, patch by eliel.
r891112007-11-08
  • I made this same adjustment in trunk to fix a bug, and it makes sense to do it in 1.4 as well. If an imapfolder is specified in voicemail.conf, don't ever explicitly connect to INBOX since it may not exist.
r891052007-11-08
  • fix a glaring bug in the new SRV record handling that would cause incorrect weight sorting
r891032007-11-08
  • Typo
r89095-891012007-11-08
  • Do not add a sip: to the beginning of the To URI unless needed. (closes issue #10756) Reported by: goestelecom
  • Improve the devicestate logic for multiple devices. If any are available then the extension is considered available. (closes issue #10164) Reported by: nic_bellamy Patches: sip-hinting-svn-branch-1.4.patch uploaded by nic (license 299)
  • Add support for allowing one outgoing transaction. This means if a response comes back out of order chan_sip will still handle it. I dream of a chan_sip with real transaction support. (closes issue #10946) Reported by: flefoll (closes issue #10915) Reported by: ramonpeek (closes issue #9567) Reported by: atca_pres
  • If callerid is configured in sip.conf use that for checking the presence of an extension in the dialplan. (closes issue #11185) Reported by: spditner
r890932007-11-07
  • The member refcount must be incremented, to avoid using it after deallocation. A huge thanks go to lvl- for patiently providing the necessary valgrind output that was necessary to finding this problem of memory corruption. Reported by: lvl- Patch by: tilghman Closes issue #11174
r890902007-11-07
  • This patch makes it possible for SIP phones to dial extensions defined with '#' characters in extensions.conf AND maintain their escaped characters when forming URI's (closes issue #10681, reported by cahen, patched by me, code review by file)
r890882007-11-07
  • In response to 10578, I just ran 1.4 thru valgrind; some of the config leakage I've already fixed, but it doesn't hurt to double check. I found and fixed leaks in res_jabber, cdr_tds, pbx_ael. Nothing major, tho.
r890852007-11-07
  • Fixing a segfault in the manager "core show channels concise" command. (closes issue #11183, reported by arnd and patched by ys)
r890792007-11-07
  • Suppress AEL warnings on load. Reported by: eliel Patch by: eliel Closes issue #11178
r890532007-11-06
  • Fix init_classes() so that classes that actually do have files loaded aren't treated as empty, and immediately destroyed ...
r890462007-11-06
  • Correctly set the total number of channels from a zaptel transcoder board. SPD-49, patch by Matthew Nicholson.
r890452007-11-06
  • We went to the trouble of creating a method of tracking failed trylocks, then never turned it on (oops).
r890422007-11-06
  • Bug fixes to tdd support in zaptel.
r890372007-11-06
  • If someone were to delete the files used by an existing MOH class, and then issue a reload, further use of that class could result in a crash due to dividing by zero. This set of changes fixes up some places to prevent this from happening. (closes issue #10948) Reported by: jcomellas Patches: res_musiconhold_division_by_zero.patch uploaded by jcomellas (license 282) Additional changes added by me.
r890362007-11-06
  • closes issue #8786 - where the [catname](!) and [catname](othercat1,othercat2,...) notation gets dropped across a ConfigUpdate (or any other thing that would cause a config file to be written). While I was at it, I also cleaned up some of the destroy routines to free up comments, which was not being done. Made sure the new struct I introduced is also cleaned up properly at destruction time. My code handles multiple template inclusions. Many thanks to ssokol for his patch, which, while not literally used in the final merge, served as a foundation for the fix.
r88994-890322007-11-06
  • Make it so that if a peer is determined to be unreachable using qualify their devicestate will report back unavailable. (closes issue #11006) Reported by: pj
  • Fix improbable but possible memory leaks in chan_zap. (closes issue #11166) Reported by: eliel Patches: chan_zap.c.patch uploaded by eliel (license 64)
r889312007-11-06
  • Remove some checks to see if locks are initialized from the non-DEBUG_THREADS versions of the lock routines. These are incorrect for a number of reasons: - It breaks the build on mac. - If there is a problem with locks not getting initialized, then the proper fix is to find that place and fix the code so that it does get initialized. - If additional debug code is needed to help find the problem areas, then this type of things should _only_ be put in the DEBUG_THREADS wrappers.
r888622007-11-06
  • update comment to match the state of the code
r888262007-11-05
  • Reworked deadlock avoidance in __ast_read. Restored audio to callback agents. (closes issue #11071, reported by callguy, patched by me, tested by callguy and Ted Brown)
r88709-888052007-11-05
  • After seeing crashes related to channel variables, I went looking around at the ways that channel variables are handled. In general, they were not handled in a thread-safe way. The channel _must_ be locked when reading or writing from/to the channel variable list. What I have done to improve this situation is to make pbx_builtin_setvar_helper() and friends lock the channel when doing their thing. Asterisk API calls almost all lock the channel for you as necessary, but this family of functions did not. (closes issue #10923, reported by atis) (closes issue #11159, reported by 850t)
  • When traversing the list of channel variables here in transmit_invite(), the asterisk channel must be locked, as this data may change at any time. (I have seen numerous reports of crashes related to the handling of channel variables. There are a couple of issues on the bug tracker related to it, but it has also been noted on IRC and mailing lists. So, I am finding and fixing some places where channel variables are handled improperly.)
  • Fix up some indentation.
  • Merge changes from asterisk/team/kpfleming/SRV-priority-handling Previously, the SRV record support in Asterisk was broken. There was no guarantee on what record Asterisk would choose to actually use. This set of changes improves the situation by ensuring that Asterisk will choose the highest priority record.
  • Merge the last bit of changes from asterisk/team/russell/readq-1.4 The issue here is that the channel frame readq handling got broken when the code was converted to use the linked list macros. It caused corruption of the list head and tail pointers. So, I fixed up the usage of the linked list macros and in passing, simplified the code. I also documented what the code is doing, as it was a bit difficult to figure out at first. This bug showed itself with crashes showing messed up head/tail pointers for the readq. However, there are a couple of crashes that aren't quite as obvious, but I think may be related. So, if your bug gets closed by this commit, but you still have a problem, please reopen or create a new bug report. (closes issue #10936) (closes issue #10595) (closes issue #10368) (closes issue #11084) (closes issue #10040) (closes issue #10840)
r886712007-11-05
  • If a SIP channel is put on hold multiple times do not keep incrementing the onHold value. (closes issue #11085) Reported by: francesco_r Tested by: blitzrage (closes issue #10474) Reported by: acennami
r886242007-11-05
  • Fix up datastore handling in ast_do_masquerade(). The code is intended to move any channel datastores from the old channel to the new one. However, it did not use the linked list macros properly to accomplish the task. The existing code would only work if there was only a single datastore on the old channel.
r885852007-11-05
  • Make sure we destroy the config structure on configuration failure. Issue 11163, patch by eliel.
r885392007-11-05
  • Don't check used pooled connections for connection status, as it will cause issues for prepared queries. Reported by: Nick Gorham (via -dev list) Patch by: tilghman
r884712007-11-04
  • include/asterisk/stringfields.h, main/channel.c, apps/app_meetme.c, channels/chan_sip.c, channels/chan_iax2.c: Rename ast_string_field_free_pool to ast_string_field_free_memory, and ast_string_field_free_all to ast_string_field_reset_all to avoid misuse (due to too similar names and an error in documentation). Fix two related memory leaks in app_meetme. No need to merge to trunk, different fix already applied there. Not applicable to 1.2
r88328-883662007-11-02
  • Make subscribecontext behave as advertised. It will now look for the presence of a hint in the given context (be it subscribecontext or context). (closes issue #10702) Reported by: slavon
  • If an INFO request within a dialog is received with a content length of 0 simply send back a 200 OK. It is valid to do this and the remote side is probably using it to make sure the signalling is still alive. (closes issue #5747) Reported by: chandi Patches: infofix-81430-1.patch uploaded by IgorG (license 20)
r882832007-11-02
  • We need to make sure to specify a language to ast_fileexists, otherwise it may fail for anything besides en Issue 11147, fix discovered by both citats and myself (independently), with input from Corydon76
r88116-882102007-11-02
  • Fix build on Solaris Reported by: snuffy Patch by: ys Closes issue #11143
  • Add some notes on using valgrind
r880782007-11-01
  • Make sure we set the poll fds to NULL after free()ing it. Part of issue 11017, patch by tzafrir.
r87970-880262007-11-01
  • Fix up commit for my Zap channel with spies in Meetme fix. (thanks Tony Mountifield!)
  • If a Zap channel contains a spy or a spy is added take it out of the conference in kernel space and make it go through Asterisk so the spy gets audio from both sides. (closes issue #10060) Reported by: mparker
r87906-879082007-10-31
  • Make sure we free some allocated memory before returning. Issue 11131, patch by eliel.
  • Don't try to allocate memory that we're just going to re-allocate later anyways. Issue 11130, patch by eliel.
r878522007-10-31
  • Create samples for ALL of the available options in asterisk.conf
r87775-878492007-10-31
  • closes issue #11108 -- where the 'dialplan save' cli command saves a file where the semicolon is not escaped. Fixed this; User also wanted comments to be preserved across dialplan save, but this is impossible at this point in time, because comments are not stored in the dialplan. They are 'compiled' out of extensions.conf. The only way to preserve those comments is to use the config file reader/writer that the GUI uses to allow online user edits. extensions.conf is first and foremost, a config file, and is read in by the normal config-file reading routines. Then, it is processed into a dialplan (context/exten structs).
  • Included some verbage in the check_includes func, to inform the user that included contexts that have no match in the AEL, might be OK, as AEL cannot check in the extensions.conf or the in-memory contexts, as they may not be there at the time of the check.
r877392007-10-30
  • Fix for uninitialized mutexes on *BSD Reported by: ys Fixed by: ys Closes issue #11116
r876862007-10-30
  • Merge the changes from team/russell/iax2_poke_fix and iax2-poke-fix-trunk There was a race condition related to the handling of POKEing peers. Essentially, a reference to a peer is held by the scheduler when there are pending callbacks, but the reference count didn't reflect it. So, it was possible for a peer to hit a reference count of zero and have its destructor begin to be called at the same time that the scheduler thread ran a POKE related callback. If that happened, a crash would likely occur. (closes issue #11082, closes issue #11094)
r876502007-10-30
  • Only try to clean out h323/ if the h323/Makefile exists.
r875712007-10-30
  • Add two more checks before printing out a warning message about bridging. If either channel has hungup of course the bridge will have failed. (closes issue #10009) Reported by: dimas
r875672007-10-30
  • Fix build of editline on Solaris. Issue 11113, patch by snuffy.
r875342007-10-30
  • Return 1.4 to a state where it builds. Changing the arguments to a function and not changing where they are used is bad, mmmk?
r875142007-10-30
  • Fix issue where the recorded name wasn't getting removed correctly. (closes issue #11115) Reported by: davevg Patches: followme-v3.diff
r87460-874652007-10-29
  • missed one directory
  • codecs/ilbc, formats, utils/Makefile, agi/Makefile, funcs, codecs/lpc10, main/db1-ast, main/editline, main, codecs/ilbc/Makefile, pbx, res, channels, main/db1-ast/Makefile, codecs/lpc10/Makefile, utils, codecs, agi, main/editline/Makefile.in, apps, Makefile.moddir_rules, cdr: clean up (and ignore) assembler and preprocessor intermediate files if any are created during the build
  • don't put '-pipe' into ASTCFLAGS if '-save-temps' is already there (used when debugging preprocessor issues) because the compiler will whine about each compile command
r874272007-10-29
  • Removing a completely unnecessary quota check from IMAP code.
r87373-873962007-10-29
  • Add some more details to the output of "core show locks". When a thread is waiting for a lock, this will now show the details about who currently has it locked. (inspired by issue #11100)
  • Remove a lock that doesn't make any sense. The regions lock needs to be held when traversing the list of allocated chunks so that they can be printed out to the CLI. (Thanks to eliel on #asterisk-dev for pointing this out!)
r873422007-10-29
  • Fix issue where if both sides of the dialog cancelled the dialog at the same time chan_sip could kepe retransmitting a response for no reason. (closes issue #9566) Reported by: atca_pres Patches: bug9566.patch uploaded by oej
r873402007-10-29
  • Allow some function modules to compile under dev mode. Issue 11104, patch by andrew.
r872942007-10-29
  • Fix issue with ast_unescape_semicolon going into an endless loop. (closes issue #10550) Reported by: ramonpeek Patches: unescape-85177-1.patch uploaded by IgorG (license 20)
r872622007-10-28
  • funcs/func_realtime.c, funcs/func_odbc.c, funcs/func_strings.c, funcs/func_cut.c: Add autoservice to several more functions which might delay in their responses. Also, make sure that func_odbc functions have a channel on which to set variables. Reported by russell Fixed by tilghman Closes issue #11099
r871682007-10-26
  • pbx/ael/ael-test/ref.ael-test19, pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/ael/ael_lex.c, pbx/pbx_ael.c, include/asterisk/ael_structs.h, pbx/ael/ael.tab.h, utils/ael_main.c, pbx/ael/ael-test/ref.ael-test16, pbx/ael/ael.flex: closes issue #11086 where a user complains that references to following contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config,
r871202007-10-26
  • The addition of autoservice to func_curl additionally made func_curl dependent on the existence of a channel, with no real reason. This should make func_curl once again work without a channel. Reported by jmls. Fixed by tilghman. Closes issue #11090
r870692007-10-25
  • appending one list to another should leave the first list empty, and not require the user to do that
r870672007-10-25
  • Backport alternate encoding of newline delimiters from trunk to 1.4, as approved by Russell Reported by blitzrage Closes issue #10903
r869822007-10-24
  • Correctly respect hidecalleridname configuration option. Simplify code slightly in the process. Issue 11079, reported by ddv2005
r86880-869362007-10-24
  • closes issue #11037 -- unable to specify app:spec in hint arguments
  • closes issue #11052 -- where nothing after the ? will allow un-initialized variable values to corrupt and crash asterisk on 64-bit platforms
  • this update to Makefile corrects how ast_expr2f.c should be generated
  • This should get rid of a really, really irritating warning generated by some 64-bit platforms from libc, where free(0) is frowned upon
r868362007-10-22
  • If lock tracking is not enabled, then we can not attempt to log any mutex failures. If so, we could end up in infinite recursion. The only lock that is affected by this is a mutex in astmm.c used when MALLOC_DEBUG is enabled. (closes issue #11044) Reported by: ys Patches: lock.h.diff uploaded by ys (license 281)
r867872007-10-22
  • Minor FreeBSD build fix
r86754-867562007-10-22
  • After reading online I have confirmed that Record-Route headers should be copied to 1xx responses as well. (closes issue #10113) Reported by: makoto
  • Make sure res is a positive value before performing the check to determine whether the user stopped it or not. (closes issue #11023) Reported by: cfc
r86726-867502007-10-22
  • Don't leak a frame in the case that an END frame is received and the time since the BEGIN is less than that of the defined minimum DTMF duration. (closes issue #11051) Reported by: casper Patches: channel.c.86664.diff uploaded by casper (license 55)
  • Update the static mutex initializer to include the initialization of the internal mutex used to protect the lock debugging data. (closes issue #11044, patch suggested by Ivan)
r866942007-10-22
  • Account for the fact that sometimes headers may be terminated with \r\n instead of just \n (closes issue #11043, reported by yehavi)
r86630-866632007-10-22
  • Move log message to before the frame it references is freed. (closes issue #11050) Reported by: slavon Patches: channel.c.86662.diff uploaded by casper (license 55)
  • Fix tab completion for dundi show peer. (closes issue #11041) Reported by: jsmith Patches: asterisk-dundicomplete.diff.txt uploaded by jamesgolovich (license 176)
  • Fixes for building under OpenSolaris. (closes issue #11047) Reported by: snuffy Patches: 11047-fixes.diff uploaded by snuffy (license 35)
r865982007-10-22
  • we send DISCONNECT instead of RELEASE/RELEASE_COMPLETE if the dialplan does not match after an overlap call. Also added out_cause=1
r86469-865022007-10-19
  • When returning a DTMF digit from ast_control_streamfile cast it as a char so that 0 does not overlap with the success return code. (closes issue #11023) Reported by: cfc
  • Fix two issues with domains and transfers. If a port was given in the hostname it was treated as part of the hostname. If domains were configured but external domains were not enabled all transfers would be considered remote. (closes issue #11027) Reported by: ramonpeek Patches: 11027-1.diff uploaded by ramonpeek (license 266)
  • Set port number in received as information for registrations as well. (closes issue #11028) Reported by: brad-x
r864382007-10-19
  • Fixed OSP module did not report source/devinfo IP in correct format.
r86405-864062007-10-18
  • Correct documentation. I removed the wrong line..
  • Add documentation for options in asterisk.conf Issue 11029, patch by eserra
r86330-863722007-10-18
  • Revert erroneous commit.
  • Add support for setting the maximum trunk size for IAX2 trunking
  • The channel needs to stay locked while running timer callbacks, as they access and modify channel data that may change elsewhere. I went through every timer callback in the source tree to make sure that none of them did any additional locking that could introduce deadlocks, and all is well. (closes issue #10765) Reported by: Ivan Patches: ast_1_4_11_svn_patch_channel_rc.diff uploaded by Ivan (license 229)
r863282007-10-18
  • If a non-existent file is specified to be played either as a periodic announcement or as a hold/position announcement, the caller would be kicked out of the queue. No longer does this happen.
r86237-862962007-10-18
  • Execute the RELEASE operation on transcoder channels in the destroy callback. (patch from jsloan)
  • Revert a change that I made for issue #10979 which, as has been pointed out to me in issue #11018, doesn't really make sense. There is no reason to have the base64 decode function force a '\0' terminated buffer, when the result is almost always binary, anyway. In fact, this caused some breakage, as some code in res_crypto passed in a buffer exactly the right size to get its binary result, which got stomped on by this patch. (closes issue #11018, reported by dimas)
r862022007-10-17
  • Changing the strategy field of the call_queue struct to be signed instead of unsigned, since the code attempts to set the strategy to -1 if you specify a bogus strategy. While this isn't a huge issue in 1.4, it could be a problem for someone who, say, tries to use the roundrobin strategy in trunk (despite all the deprecation warnings in 1.4).
r861492007-10-17
  • If Asterisk is in the middle of shutting down, respond to OPTIONS with 503 Unavailable. (closes issue #10994) Reported by: eserra Patches: sip-options-503.patch uploaded by eserra (license 45)
r861172007-10-17
  • Whoops, forgot to remove the original sip_scheddestroy. (closes issue #11010) Reported by: vadim
r860662007-10-17
  • When runuser/rungroup is specified, a remote console could only be attained by root (Closes issue #9999)
r860632007-10-17
  • Don't schedule dialog destruction if a MESSAGE is received using an existing dialog. (closes issue #11010) Reported by: vadim
r86028-860322007-10-16
  • Since monitor-join is deprecated now, remove the example from the sample queues.conf file
  • Updating UPGRADE.txt to reflect the deprecation of the monitor-join queue option
  • Adding deprecated warning to monitor-join option, since the plan is to no longer support this in favor of monitor-type = mixmonitor (related to issue #10885)
r85994-859972007-10-16
  • really picky formatting tweak ...
  • Some locking errors exposed the fact that the lock debugging code itself was not thread safe. How ironic! Anyway, these changes ensure that the code that is accessing the lock debugging data is thread-safe. Many thanks to Ivan for finding and fixing the core issue here, and also thanks to those that tested the patch and provided test results. (closes issue #10571) (closes issue #10886) (closes issue #10875) (might close some others, as well ...) Patches: (from issue #10571) ivan_ast_1_4_12_rel_patch_lock.h.diff uploaded by Ivan (license 229) - a few small changes by me
r859582007-10-16
  • Trying to remove a non-dynamic queue member via dynamic means can lead to some interesting (read nasty) situations. This patch clears up the issue by making only dynamic queue members removable via dynamic methods.
r859212007-10-16
  • Also set up gmtoff (this is used in the %z gnu extension to strftime) Reported and fixed by jcmoore Closes issue #11002
r858962007-10-16
  • Remove a pointless lock.
r858522007-10-16
  • Fixing a double free which happens in the statechange thread. (closes issue #10987, reported by andrew)
r85818-858502007-10-16
  • Check to make sure a value has been given to the VMCOUNT dialplan function. (closes issue #10996) Reported by: marsosa
  • Fix memory allocation issue in threadstorage. (closes issue #10995) Reported by: snuffy Patches: new-patch.diff uploaded by snuffy (license 35)
r858002007-10-16
  • Fix the output for this channel help CLI command
r85717-857202007-10-15
  • Ensure that no pending state changes are leaked when the device state change thread gets stopped on module unload.
  • Previously, app_queue created a thread to handle every single device state change. I changed this a while ago in trunk for performance reasons. However, bug 8407 points out that it is actually a race condition, causing device state changes to get processed in random order. So, I backported my changes from trunk to 1.4. (closes issue #8407, patch provided by tim_ringenbach, committed patch by me)
r856872007-10-15
  • Don't execute a gosub if the arguments is zero-len (not just NULL) Reported by davevg Fixed by me Closes issue #10985
r856862007-10-15
  • Add a small fix for the tw version of saying dates. (closes issue #7827) Reported by: sharkey Patches: say.nits.patch uploaded by sharkey (license 172)
r856842007-10-15
  • Properly use DESTDIR in 'config' target. Do not try to run chkconfig or similar if using DESTDIR. Issue 10938, patch by cabal95.
r85604-856492007-10-15
  • Be pedantic about handling memory allocation failure.
  • The loop in the handler for the "core show locks" could potentially block for some amount of time. Be a little bit more careful and prepare all of the output in an intermediary buffer while holding a global resource. Then, after releasing it, send the output to ast_cli().
  • Make the default for the srvlookup option to be yes. It doesn't really make sense for it to default to off. The default configuration file has it on, and proper RFC behavior, as indicated by a comment in the code, is for it to be on. So, let's have it on by default to make lives easier. (closes issue #10954, suggested by jtodd)
r855712007-10-15
  • Document that DTMF based features only work when two channels are bridged together. (closes issue #10773) Reported by: pbayley
r855612007-10-15
  • Make a few changes so that characters in the upper half of the ISO-8859-1 character set don't get stripped when reading configuration. (closes issue #10982, dandre)
r855592007-10-15
  • Bring both DTMF begin and end frames up through to the core for DTMF feature handling. (closes issue #10826) Reported by: dimas
r855562007-10-15
  • Ensure the buffer passed to ast_canmatch_extension() is properly initialized so that it is null terminated. (issue #10977) Reported by: dimas Patches: pbxdundi.patch uploaded by dimas (license 88) - small mods by me
r855522007-10-15
  • If Monitor or a spy was added to a P2P or native bridged channel bring the channel back to the generic bridging core so the monitor or spy operations work. (closes issue #10943) Reported by: julianjm
r85540-855482007-10-15
  • Suppress a LOG_DEBUG message if debug is not enabled. (closes issue #10980) Reported by: casper Patches: db.c.84633.diff uploaded by casper (license 55)
  • Make sure remote consoles unmute themselves again after reconnecting. (closes issue #10847) Reported by: atis Patches: console_unmute_on_reconnect.patch uploaded by atis (license 242)
  • Make sure that the base64 decoder returns a terminated string. (closes issue #10979) Reported by: ys Patches: util.c.diff uploaded by ys (license 281) - small mods by me
  • Don't create the context for users in users.conf until we know at least one user exists. (closes issue #10971) Reported by: dimas Patches: pbxconfig.patch uploaded by dimas (license 88)
r855362007-10-13
  • Remove deprecated syntax from sample ael file Reported and patched by: dimas Closes issue #10967
r85532-855332007-10-13
  • Fix an issue with console verbosity when running asterisk -rx to execute a command and retrieve its output. The issue was that there was no way for the main Asterisk process to know that the remote console was connecting in the -rx mode. The way that James has fixed this is to have all remote consoles muted by default. Then, regular remote consoles automatically execute a CLI command to unmute themselves when they first start up. (closes issue #10847) Reported by: atis Patches: asterisk-consolemute.diff.txt uploaded by jamesgolovich (license 176)
  • Properly handle the case where read() may return the text for more than one CLI command at once for a remote console. (closes issue #10888) Reported by: jamesgolovich Patches: asterisk-climultiple.diff.txt uploaded by jamesgolovich (license 176)
r855232007-10-12
  • Change Digium address
r85515-855172007-10-12
  • Fix a spelling error in a log message. SMDI, not SDMI. (closes issue #10959)
  • Fix the potential use of an uninitialized buffer in a log message. (closes issue #10958) Reported by: dimas Patches: realtime.patch uploaded by dimas (license 88)
r853972007-10-11
  • When creating a new packet don't try to stop retransmission of it. It was just allocated/created so it's impossible for it to have already been scheduled. (closes issue #10945) Reported by: flefoll Patches: chan_sip.c.br14.85280.xmit_reliable-patch uploaded by flefoll (license 244)
r853562007-10-11
  • A dollar sign by itself, not indicating a start of a variable or expression prematurely ends substitution (closes issue #10939)

Asterisk 1.4.13

VersionDateDescription
r853162007-10-10
  • I introduced a new member to the ast_filestream struct in 1.4.12, but put it in the middle of the struct, instead of at the end. One of the Debian folks, paravoid, pointed out that this breaks binary compatability with modules compiled against older headers. So, I'm moving the new member to the end of the struct to resolve the situation.
r853152007-10-10
  • The thread ID should be unsigned.
r85277-852802007-10-10
  • If devicestate is passed a port number strip it out. (closes issue #10930) Reported by: ibc
  • Add support for handling a 182 Queued response. (closes issue #10924) Reported by: ramonpeek Patches: queued-182.diff uploaded by ramonpeek (license 266)
r852762007-10-10
  • A bunch of changes from sprintf to snprintf. See security advisory AST-2002-022
r852422007-10-10
  • Close voicemail message description file if duration did not meet the minimum, or else we will eventually run out of file descriptors. (closes issue #10918) Reported by: brak2718 Patches: vm1.4.12.1.patch uploaded by brak2718 (license 279)
r851952007-10-10
  • use a macro instead of an inline function, so that backtraces will report the caller of ast_frame_free() properly
r851582007-10-09
  • This commit fixes the following issues: - Deadlock in ast_write (issue #10406) - Deadlock in ast_read (issue #10406) - Possible mutex initialization error in lock.h (issue #10571)
r84990-850932007-10-09
  • Don't perform a reinvite if a transfer is in progress. (issue #10915) Reported by: ramonpeek
  • Only update codec information if the channel has a technology private structure. (issue #10915) Reported by: ramonpeek
  • Update codec information as well as address when doing hold reinvites. (issue #10868) Reported by: mavince
  • Don't keep trying to native bridge if either of the channels are involved in a masquerade operation to be done. (closes issue #10696) Reported by: tbelder
r849572007-10-08
  • Enable file dependency tracking for _all_ builds, and not just for builds with dev-mode enabled. I have seen enough problems caused by this that I don't think it's worth keeping. I want to continue to encourage anybody that is interested to continue to run Asterisk from svn. Furthermore, I do not want their systems to break when we change a structure definition in a header file. :)
r84890-849022007-10-07
  • Presence packets from a client who's connected with our Jabber ID are valid, therefore, those clients must be considered as buddies. The resource string helps us make the distinction between clients. Closes issue #10707, reported by yusufmotiwala.
  • Prevent Asterisk from crashing when receiving a presence packet without resource from a buddy that is known to have a resource list. Revert a change I previously made, where Asterisk could point to a freed memory location.
r848512007-10-05
  • Log exactly why we can't open the database, if we fail (closes issue #10887)
r848182007-10-05
  • Update the remembered RTP peer information when putting an endpoint on hold or taking it off hold so that the RTP stack does not initiate a needless reinvite. (closes issue #10868) Reported by: mavince
r847832007-10-05
  • Do deadlock avoidance in a couple more places. You can't lock two channels at the same time without doing extra work to make sure it succeeds. (closes issue #10895, patch by me)

Asterisk 1.4.12.1 released. (This is mainly to include

VersionDateDescription
r847422007-10-05
  • Fix a copy/paste error in the description of UpdateConfig that was pointed out by JerJer on #asterisk-dev
r846922007-10-04
  • Don't allocate space for queue members unless it's needed. You end up deleting dynamic members on a reload. Not good. closes issue (#10879, reported by dazza76, patched by me)
r846902007-10-04
  • callers of sig2str already add the word 'signalling' in the appropriate place, so don't duplicate it
r846372007-10-04
  • Create a duplicate of the channel's member name as the tab completion stuff will free it. (closes issue #10884) Reported by: adamg
r845812007-10-03
  • When an RFC 2833 event is sent that we don't recognize, ignore it, don't queue a NULL digit (closes issue #10877)
r84511-845442007-10-03
  • closes issue #10870 ; where a CUT() function call in a switch expr doesn't execute correctly, because the commas in the function args are not converted to vertbars before the func is called. I modified just the switch code to convert the commas to vertbars if there, but if more of these sort of probs are found, I may have to resort to something a little more fundamental. We'll see, I guess.
  • pbx/ael/ael-test/ref.ael-test8, pbx/ael/ael-test/ref.ael-test18, pbx/ael/ael-test/ref.ael-vtest13, pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test3, pbx/pbx_ael.c, pbx/ael/ael-test/ref.ael-test5: closes issue #10834 ; where a null input to a switch statement results in a hangup; since switch is implemented with extensions, and the default case is implemented with a '.', and the '.' matches 1 or more remaining characters, the case where 0 characters exist isn't matched, and the extension isn't matched, and the goto fails, and a hangup occurs. Now, when a default case is generated, it also generates a single fixed extension that will match a null input. That extension just does a goto to the default extension for that switch. I played with an alternate solution, where I just tack an extra char onto all the patterns and the goto, but not the default case's pattern. Then even a null input will still have at least one char in it. But it made me nervous, having that extra char in , even if that's a pretty secret and low-level issue.

Asterisk 1.4.12

VersionDateDescription
r844742007-10-02
  • Don't build the menuselect-tree for the tarball, as it requires running the configure script first
  • Change the Makefile to note that menuselect-tree depends on the configure script.
r84410-844372007-10-02
  • Fix some odd formatting I missed..
  • Finish up on transferee channel before return on failure. Issue 10821, patch by Ivan
r843702007-10-02
  • Use snprintf instead of sprintf in one place. There is no vulnerability here due to various buffer sizes around the code, but I still didn't like seeing a non length-limited copy of data coming off of the wire into a stack buffer, as this would be a problem in the future if buffer sizes elsewhere got changed or size limitations removed ...
r843452007-10-02
  • terminate USERUSER String with 0
r842912007-10-01
  • Add dist-clean support for subdirs. Change h323 to only remove the Makefile on a dist-clean, rather than a clean. This fixes a bug I found with trying to run make after a make clean
r842742007-10-01
  • moved get_base_channel() code from action_redirect to ast_channel_masquerade() for issue 7706 and BE-160
r842732007-10-01
  • Anything to keep gcc 4.2 happy...
r842712007-10-01
  • Fulfull a feature request from Qwell on the "core show locks" output. It will now note the lock type for each lock that a thread holds. (mutex, rdlock, or wrlock)
r842392007-10-01
  • closes issue #10777 -- by returning a null for the parse tree when there's really nothing there, and making sure we don't try to do checking on a null tree.
r84166-842362007-10-01
  • Add another sanity check in the AGI read loop. We really don't care about EAGAIN unless we didn't read an entire line. If there is a newline at the end if the read buffer, break, because we got the whole thing. (reported and patched by bmd)
  • Show rwlocks in the "core show locks" output. Before, it only showed mutexes.
  • Remove another file in "make clean". (closes issue #10814, paravoid)
  • Simplify the CAN_EARLY_BRIDGE macro a bit.
r84158-841632007-10-01
  • Remove chan_usbradio config file from tree, it is not present in here. (closes issue #10839) Reported by: casper
  • Fix randomness. save_pos was being set to 0 initially instead of -1, causing it to jump to position 0 when moh started. (closes issue #10859) Reported by: jamesgolovich Patches: asterisk-mohpos2.diff.txt uploaded by jamesgolovich (license 176)
  • Only attempt early bridging if the options given to Dial() permit it. (closes issue #10861) Reported by: peekyb
r841462007-09-30
  • Fix the AST_MODULE_INFO macro for C++ modules. The load and reload parameters were in the wrong place. (closes issue #10846, alebm)
r84133-841352007-09-29
  • pbx/ael/ael-test/ael-ntest22/t1/a.ael (added), pbx/ael/ael-test/ael-ntest22/t1/b.ael (added), pbx/ael/ael-test/ael-ntest22/t1/c.ael (added), pbx/ael/ael-test/ael-ntest22/t2/d.ael (added), pbx/ael/ael-test/ael-ntest22/t2/e.ael (added), pbx/ael/ael-test/ael-ntest22/t2/f.ael (added), pbx/ael/ael-test/ref.ael-test2, pbx/ael/ael-test/ref.ael-ntest22 (added), pbx/ael/ael-test/ael-ntest22/t3/g.ael (added), pbx/ael/ael-test/ref.ael-test3, pbx/ael/ael-test/ael-ntest22/t3/h.ael (added), pbx/ael/ael-test/ref.ael-test4, pbx/ael/ael-test/ael-ntest22/t3/i.ael (added), pbx/ael/ael-test/ael-ntest22/t3/j.ael (added), pbx/ael/ael-test/ael-ntest22/qq.ael (added), pbx/ael/ael-test/ael-ntest22/t1 (added), pbx/ael/ael-test/ael-ntest22/t2 (added), pbx/ael/ael-test/ael-ntest22/t3 (added), pbx/ael/ael-test/ael-ntest22/extensions.ael (added), pbx/ael/ael-test/ael-ntest22 (added): This is a regression update that matches what I did in 84134 for AEL regressions.
  • This issue sort of closes 10786; All config files support #include with globbing (you know, *,[chars],?,{list,list},etc), so I've updated the AEL system to support this also.
r84049-840782007-09-28
  • Correct pronunciations of numbers for .nl (Closes issue #10837)
  • Avoid a deadlock with ALL of the locks in the masquerade function, not just the pairs of channels. (Closes issue #10406)
r840182007-09-27
  • main/manager.c, channels/chan_agent.c, include/asterisk/channel.h: if an Agent is redirected, the base channel should actually be redirected. This was causing multiple issues, especially issue 7706 and BE-160
r839762007-09-27
  • remove a todo item that has been completed
r839742007-09-26
  • avoid the weird usage of assert() in the ALSA header files that gcc 4.2 wants to complain about
r83910-839432007-09-26
  • I changed my mind ... I think this should be a LOG_NOTICE.
  • Add a log message that was requested by the masses in the developer tutorial session at Astricon. chan_sip did not output any message when a call was rejected because the extension was not found. This adds a verbose message (at verbose level 3) to note when this happens.
  • Fix building chan_misdn under dev-mode. (please run the configure script with --enable-dev-mode so this doesn't happen again ...)
r838792007-09-26
  • Remove unused 4k of memory on the program stack (closes issue #10827)
r83637-837732007-09-25
  • jmls pointed out that unsetting the group and setting the group to the blank string aren't quite the same.
  • In the source, keys are relative to the datadir, not varlib (which is the same in most cases, but it's good to be accurate). Closes issue #10811
  • Oops. Removed the unworkable workaround. This note should never have been in the release.
  • Making change to group splitting, as discussed on the -dev list. The main effect of this will be to permit Set(GROUP([cat])=), i.e. unsetting a group.
r836202007-09-24
  • fixed round_robin group dial method, this never worked well on BRI Ports (2 channels)
r83558-835892007-09-22
  • This closes issue #10788 -- The exact same fixes are made here for the first arg in the for(arg1; arg2; arg3) {} statement, as were done for the 3rd arg. It can now be an assignment that will embedded in a Set() app, or a macro call, or an app call.
  • This closes issue #10788 -- the 3rd arg in the for statement is now wrapped in Set() only if there's an '=' in that string. Otherwise, if it begins with '&', then a Macro call is generated; otherwise it is made into an app call. A bit more accomodating, keeps the new guys happy, and the guys with ael-1 code should be happy, too
r834322007-09-21
  • main/rtp.c, channels/misdn_config.c, main/cdr.c, main/channel.c, channels/chan_misdn.c, pbx/ael/ael.tab.c, main/ast_expr2f.c, main/file.c, include/asterisk/sched.h, channels/chan_h323.c, pbx/pbx_dundi.c, utils/ael_main.c, main/ast_expr2.fl, channels/chan_mgcp.c, main/sched.c, res/res_config_pgsql.c, main/dnsmgr.c, channels/chan_sip.c, pbx/ael/ael.y, main/db1-ast/hash/hash.c, include/asterisk/channel.h, channels/chan_iax2.c: gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set of changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2. (closes issue #10774, patch from qwell)
r834002007-09-21
  • Fix video under certain circumstances. It would have been possible for the formats on the channel to not contain the video format. (closes issue #10782) Reported by: cwhuang
r83316-833482007-09-20
  • When daemonizing, don't change working directory to "/". It makes it not be able to do a core dump when not running as uid=root. (closes issue #10766, xrg)
  • Change safe_asterisk to explicitly ask for /bin/bash, as it uses bashisms. (closes issue #10772, reported by culrich)
r832462007-09-20
  • If # is pressed after dialing an extension in DISA, stop trying to collect more digits. (issue #10754) Reported by: atis Patches: app_disa.c.branch.patch uploaded by atis (license 242) app_disa.c.trunk.patch uploaded by atis (license 242)
r83230-832322007-09-20
  • Make sure the minimum T1 timer value is obeyed in all cases. (closes issue #10768) Reported by: flefoll Patches: chan_sip.c.trunk.83071.retrans-patch uploaded by flefoll (license 244) chan_sip.c.br14.83070.retrans-patch uploaded by flefoll (license 244)
  • Fix a minor spelling error. (closes issue #10769) Reported by: flefoll Patches: chan_sip.c.trunk.83071.inita-patch uploaded by flefoll (license 244) chan_sip.c.br14.83070.inita-patch uploaded by flefoll (license 244)
r83121-831792007-09-19
  • The System() and TrySystem() applications can take a substantial amount of time to execute while not servicing the channel. So, put the channel in autoservice while the command is being executed. (closes issue #10726, reported by mnicholson)
  • Using curl can take a substantial amount of time, so the channel should be autoserviced while waiting for it to complete. (closes issue #10725, reported by mnicholson)
  • When handling a reload of chan_iax2, don't use an ao2_callback() to POKE all peers. Instead, use an iterator. By using an iterator, the peers container is not locked while the POKE is being done. It can cause a deadlock if the peers container is locked because poking a peer will try to lock pvt structs, while there is a lot of other code that will hold a pvt lock when trying to go lock the peers container. (reported to me directly by Loic Didelot. Thank you for the debug info!)
  • Fix up another potential race condition. Do the loop decrementing use count on events with the eventq protected from being changed. (reported on IRC by Ivan)
r83070-830742007-09-19
  • Protect the CDR record from modification by pbx_exec so that the application data contains the Queue data. (closes issue #10761) Reported by: snar Patches: app-queue-mixmonitor.patch uploaded by snar (license 245)
  • (closes issue #10760) Reported by: dimas Patches: chan_sip.patch uploaded by dimas (license 88) Read in subscribecontext option in general to be the default.
r83023-830242007-09-19
  • removed comment which violates the coding guidelines.
  • channels/misdn_config.c, channels/chan_misdn.c, channels/misdn/chan_misdn_config.h: added 'astdtmf' option to allow configuring the asterisk dtmf detector instead of the mISDN_dsp ones. also added the patch from irroot #10190, so that dtmf tones detected by the asterisk detector are passed outofband to asterisk, to make any use of dtmf tones at all.
r829922007-09-19
  • Change the description of app_flash to note how it can be a useful tool instead of just saying that it is generally a worthless feature. (Thanks to Jim Van Meggelen for pointing it out and providing the proposed text)
r829612007-09-18
  • Initialize a variable to NULL to make the world happy.
r829292007-09-18
  • Add a new patch to handle interrupting the fgets() call when using FastAGI. This version of the patch maintains the original behavior of the code when not using FastAGI. (closes issue #10553) Reported by: juggie Patches: res_agi_fgets-4.patch uploaded by juggie (license 24) res_agi_fgets_1.4svn.patch uploaded by juggie (license 24) Slight mods by me Tested by: juggie, festr
r82887-829132007-09-18
  • Corrected patch applied in revision r82887.
  • Fixed a bug where http manager sessions prevented the eventq from being cleaned out because http manager sessions do not have a valid file descriptor.
r828672007-09-18
  • Fix a memory leak that can occur on systems under higher load. The issue is that when events are appended to the master event queue, they use the number of active sessions as a use count so it will know when all active sessions at the time the event happened have consumed it. However, the handling of the number of sessions was not properly synchronized, so the use count was not always correct, causing an event to disappear early, or get stuck in the event queue for forever. (closes issue #9238, reported by bweschke, patch from Ivan, modified by me)
r828652007-09-18
  • Moving the logic for handling an empty membername to the create_member function so that there is a common place where this occurs instead of being spread out to several different places.
r828342007-09-18
  • there is no need for conditional logic to select ->interface or ->membername, snince ->membername will always be populated
r828022007-09-18
  • When copying the contents from the wildcard peer, do a deep copy instead of shallow copy so that it doesn't crash when beging destroyed. (closes issue #10546, patch by me)
r827512007-09-18
  • Correct the allowexternaldomains option in SIP sample config. Issue 10753
r82594-826762007-09-17
  • Put a memset in ast_localtime() instead of a couple places in app_voicemail to prevent the problem everywhere instead of just a couple of places. (related to issue #10746)
  • Initialize some memory to fix crashes when leaving voicemail. This problem was fixed by running Asterisk under valgrind. (closes issue #10746, reported by arcivanov,
  • We need to check to see if this same bug exists elsewhere.
  • Handle the case where there are multiple dynamic features with the same digit mapping, but won't always match the activated on/by access controls. In that case, the code needs to keep trying features for a match. (reported by Atis on the asterisk-dev list, patched by me)
r82590-825922007-09-17
  • revert a change that wasn't supposed to be committed... doh!
  • fix a couple of places where a logical member name (if specified) was not used, but instead the direct interface was listed
r825142007-09-17
  • (closes issue #10734) Reported by: asgaroth Instead of passing a NULL pointer into snprintf pass "". It makes Solaris much happier.
r824442007-09-14
  • closes issue #10668; thanks to arkadia for his patch; had to leave out the bit about ending the previous cdr in the fork; it would destroy current implementations.
r824352007-09-14
  • Add a note to help clarify the value set with the echocancel option. (inspired by Malcolm's blog post on blogs.digium.com about HPEC)
r82396-823982007-09-14
  • Crap, I broke the build. Fixed.
  • Adding member name field to manager events where they were missing before (closes issue #10721, reported by snar)
r823942007-09-14
  • If a channel does not have an owner, do not try to set a channel variable. This will end up making the channel variable global, which is not right. Closes issue #10720, patch by flefoll.
r82382-823852007-09-14
  • build_tools/menuselect-deps.in, configure, include/asterisk/autoconfig.h.in, configure.ac, makeopts.in: Add checking for libusb here, so nobody has to deal with conflicts in the chan_usbradio-1.4 branch every time the configure script gets changed
  • channels/chan_usbradio.c (removed), channels/xpmr (removed), channels/Makefile: Remove chan_usbradio from the main 1.4 branch. It can't live here because we have a strict policy to not include new features in release branches. However, I'm going to merge it into trunk, and I also have a special 1.4 based branch that includes this module. svn co http://svn.digium.com/svn/asterisk/team/jdixon/chan_usbradio-1.4
r823762007-09-14
  • Fixing a typo in the coding guidelines (closes issue #10717, reported and patched by leedm777)
r823682007-09-14
  • Fixed problem with changes made to cdr functionality
r823672007-09-14
  • this new driver may not live in this branch for long (since it is a new feature), but it definitely should not be built by default
r823662007-09-14
  • apps/app_rpt.c, channels/xpmr/xpmr_coef.h (added), channels/chan_usbradio.c (added), channels/xpmr/xpmr.h (added), channels/xpmr (added), channels/xpmr/LICENSE (added), channels/xpmr/sinetabx.h (added), configs/usbradio.conf.sample (added), channels/Makefile, channels/xpmr/xpmr.c (added): Added channel driver for USB Radio device and support thereof.
r823582007-09-13
  • Fix a small typo. retrytime > waittime
r823462007-09-13
  • Preemptively fixing a possible segfault. It is possible that queuename is NULL (meaning pause ALL queues), so use q->name instead.
r823442007-09-13
  • Fix a crash that could occur in cdr_csv when mutliple threads tried to close the same file. Do we actually need the locking here? What happens if you open the same file twice, and two threads try to write to it at the same time? Is fputs() going to write out the entire line at once? I suspect that it could be possible for the second fopen to run during the first fputs, so the position could be in the middle of the previously written line... Issue 10347, initial patch by explidous (but I removed all of the paranoia stuff..)
r82337-823392007-09-13
  • resolve a warning when not building under dev mode
  • Only compile in tracking astobj2 statistics if dev-mode is enabled. Also, when dev mode is enabled, register the CLI command that can be used to run the astobj2 test and print out statistics.
r823352007-09-13
  • Merged revisions 82334 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r82334 | kpfleming | 2007-09-13 11:10:12 -0700 (Thu, 13 Sep 2007) | 2 lines clarify the OpenSSL and OpenH323 license exceptions ........
r823262007-09-13
  • Added logic to handle the unlikely case that someone has two queues with the same name. Asterisk will log a warning message letting the user know that one was already defined with that name and is it skipping all further instances. This also will work for realtime queues but in order for that to happen, the user would have to trigger a perfectly timed reload as a realtime queue is being looked up, which is highly unlikely (but taken care of nonetheless).
r823092007-09-13
  • Closes issue #9401, reported and patched by irrot, with slight modifications by me. Handle DTMF sent by Asterisk properly.
r822962007-09-12
  • Fix a check of the wrong pointer, as pointed out by an XXX comment left in the code. The problem was harmless, however.
r822912007-09-12
  • Oops, wrong location for FreeBSD zone files
r822862007-09-12
  • remove a race condition for the creation of recordthread's, and fix a small memory leak. This closes issue# 10636
r822852007-09-12
  • main/stdtime/private.h, main/stdtime/tzfile.h, include/asterisk/localtime.h, main/stdtime/localtime.c: Working on issue #10531 exposed a rather nasty 64-bit issue on ast_mktime, so we updated the localtime.c file from source. Next we'll have to write ast_strptime to match.
r82278-822802007-09-12
  • Clean up the output of "asterisk -h". This tweaks the wording and wraps lines at 80 characters. (closes issue #10699, seanbright)
  • revert patch from issue #10553, as someone not using fastagi reported that this broke their system.
r82274-822762007-09-12
  • Accidentally committed changes to app_voicemail which do NOT need to be in the 1.4 branch yet. reverting...
  • We should only initialize a realtime queue when it is allocated, not every time we access it. This prevents the members ao2_container from being reallocated every time the queue is accessed. I also removed a debug message I had accidentally left in on a previous commit.
r822672007-09-11
  • Fix incorrect uses of ao2_find(). Every one of these calls was reading bogus memory ...
r822652007-09-11
  • (closes issue #10679) Reported by: andrew Build under dev mode when K6OPTS is enabled.
r822632007-09-11
  • Fix another missing unref of member objects. This one was pointed out by Marta. When building the outgoing list in try_calling(), a member reference is stored in each outgoing entry. However, when this list got destroyed, the reference was not released.
r822612007-09-11
  • this change should fix issue # 10659 -- what I worry about is how many other bug reports it may generate. Hopefully, we can please the/a majority. Hopefully. We shall see. Calls not marked ANSWERED and with only one channel name will not be posted. This should eliminate the double CDR's.
r822522007-09-11
  • All instances of ao2_iterators which were just named 'i' have been renamed to 'mem_iter' so that when refcounted queues are merged into trunk, there will be little confusion regarding iterator names, especially when a queue and member iterator are used in the same function.
r822502007-09-11
  • The sample dundi.conf claims support for a wildcard peer entry - [*], but the code did not support it. This patch makes it work. (closes issue #10546, patch by dds, with some changes by me)
r822492007-09-11
  • fixed a hold/retrieve issue.
r822452007-09-11
  • (closes issue #10553) Reported by: juggie Patches: res_agi_fgets-2.patch uploaded by juggie (license 24) Tested by: juggie When using fastagi, fgets() can return before a full line is read. Add explicit handling for the case where it gets interrupted.
r822432007-09-11
  • (closes issue #10577) Reported by: jamesgolovich Patches: asterisk-dundifree.diff.txt uploaded by jamesgolovich (license 176) Don't leak memory when unloading DUNDi.
r82198-822402007-09-11
  • Add a couple more missing unrefs of queue member objects
  • Add a missing unref of a queue member in an error handling block
  • Document why membercount can not simply be replaced by ao2_container_count()
  • backport astobj2 race condition fix. This function is the exact same as trunk so it applies here as well.
r821552007-09-10
  • Convert struct member to use refcounts (closes issue #10199)
r820912007-09-10
  • Removing non-existent options from misdn configuration sample. (closes issue #10678, reported and patched by IgorG)
r820282007-09-09
  • Fix inline compiles on really old compilers (who uses gcc 2.7 anymore, really?)
r81952-819972007-09-08
  • Fix a small memory leak. ast_unregister_atexit() did not free the entry it removed.
  • (closes issue #10672) Bump the cleancount so that a "make clean" will be forced. This is needed because my fix in revision 81599 made a change to a data structure in file.h, and since file dependency tracking is only on with dev-mode enabled, file format modules that don't get rebuilt may crash, as is the case with this issue. This makes me wonder - how much faster does the code build without the file dependency tracking enabled? If it doesn't make much of a difference, then it may be worth just keeping it on all of the time, or perhaps just not in release tarballs, so that this type of issue is avoided.
r819232007-09-07
  • Allow the MEMBERINTERFACE variable to be used as the mixmonitor filename. This moves the setting of the MEMBERINTERFACE variable to before mixmonitor. Issue 10671, patch by sim.
r818862007-09-07
  • Moving the explanation for joinempty to a more appropriate place
r818322007-09-06
  • (closes issue #9724, closes issue #10374) Reported by: kenw Patches: 9724.txt uploaded by russell (license 2) Tested by: kenw, russell Resolve a deadlock that occurs when doing a SIP transfer to parking. I come across this type of deadlock fairly often it seems. It is very important to mind the boundary between the channel driver and the core in respect to the channel lock and the channel-pvt lock. Channel drivers lock to lock the pvt and then the channel once it calls into the core, while the core will do it in the opposite order. The way this is avoided is by having channel drivers either release their pvt lock while calling into the core, or such as in this case, unlocking the pvt just long enough to acquire the channel lock.
r81778-818262007-09-06
  • We added COPTS for ASTCFLAGS additions, but not LDOPTS for ASTLDFLAGS. This adds LDOPTS
  • This should fix a build issue that people building against uClibc were seeing with the addition of astobj2
r817762007-09-06
  • (closes issue #10122) Reported by: stevefeinstein Patches: meetme-unmute-manager.diff uploaded by qwell (license 4) Tested by: stevefeinstein After looking over the code I agree with Qwell. Setting the file descriptor to conference each time just causes a fight back and forth.
r817432007-09-06
  • Various string length fixes. Removed an unused variable in aji_client structure (context)
r81682-817132007-09-06
  • Fixes an issue where valid DTMF had to be pressed twice to exit a queue if a member's phone was ringing. (closes issue #10655, reported by strider2k, patched by me)
  • Fixes a memory leak (closes issue #10658, reported and patched by Ivan)
r816502007-09-06
  • According to both RFC 3920 - section 9.1.2 - and Google's XMPP server complaint, if set, the 'from' attribute must be set to the user's full JID.
r815992007-09-05
  • include/asterisk/file.h, main/say.c, res/res_features.c, main/file.c, include/asterisk/channel.h: Fix an issue that can occur when you do an attended transfer to parking. If you complete the transfer before the announcement of the parking spot finishes, then the channel being parked will hear the remainder of the announcement. These changes make it so that will not happen anymore. Basically, res_features sets a flag on the channel is playing the announcement to so that the file streaming core knows that it needs to watch out for a channel masquerade, and if it occurs, to abort the announcement. (closes BE-182)
r815692007-09-05
  • Solaris x86 compatibility fix
r815252007-09-05
  • Fixing the build...
r815232007-09-05
  • Do not try to unregister a NULL channel tech. Also changed load_module function to use defines rather than numbers for return values. Issue 10651, patch by rbraun_proformatique, with additions by me.
r815202007-09-05
  • Reverting behavior of QUEUE_MEMBER_COUNT to only count members who are logged in and available. (related to issue #10652, reported by wuwu)
r814922007-09-05
  • (closes issue #10650) Reported by: tacvbo Only print out that the spy was removed while holding the spy lock.
r81453-814552007-09-04
  • Rather than attempt to play a file, we can just check whether it exists. Issue 10634, patch by me, testing by pabelanger, sanity checked by bweschke
  • Change default followme config file to point to the correct files. Issue 10644, patch by pabelanger
r814482007-09-04
  • main/astobj2.c, include/asterisk/astobj2.h, channels/chan_iax2.c: Remove the typedefs on ao2_container and ao2_iterator. This is simply because we don't typedef objects anywhere else in Asterisk, so we might as well make this follow the same convention.
r814422007-09-04
  • there is no point in sending 401 Unauthorized to a UAS that sent us a properly-formatted Authentication header with the expected username and nonce but an incorrect response (which indicates the shared secret does not match)... instead, let's send 403 Forbidden so that the UAS doesn't retry with the same authentication credentials repeatedly
r81435-814392007-09-04
  • (closes issue #10632) Reported by: jamesgolovich Patches: asterisk-iaxfirmwareleak.diff.txt uploaded by jamesgolovich (license 176) Fix memory leak when unloading chan_iax2. The firmware files were not being freed.
  • (closes issue #10476) Reported by: mdu113 Only look for the end of a digit when waiting for a digit. This in turn disables emulation in the core.
  • (closes issue #10610) Reported by: john Patches: dns.c.patch uploaded by john (license 218) Tested by: mvanbaak Don't return a match if no SRV record actually exists.
r814332007-09-03
  • Remove a couple of calls to ast_string_field_free_pools() on peers in error handling blocks in the code for building peers. The peer object destructor does this and doing it twice will cause a crash. (closes issue #10625, reported by and patched by pnlarsson)
r81426-814282007-09-01
  • Changed a comment to be more accurate. (really this is just a test to make sure I can commit properly from home)
  • Making match_by_addr into ao2_match_by_addr and making it available everywhere since it could be a handy callback to have
r814182007-08-31
  • Remove references to a debugging parameter that does not exist
r814162007-08-31
  • Fixed broken behavior of a reload on realtime queues. Prior to this patch, if a reload was issued and a realtime queue had callers waiting in it, then the queue would be removed from the queue list, but it would not actually be freed (in fact, a debug message warning about a memory leak would come up). With this patch, reloads do not touch realtime queues at all.
r814152007-08-31
  • The IF() function was not allowing true values that had embedded colons (closes issue #10613)
r814122007-08-31
  • Re-order dial options to be in line with the existing alpha order. Issue 10621, initial patch by junky
r814102007-08-31
  • Make the 'gtalk show channels' CLI command available. Closes issue 10548, reported by keepitcool.
r814062007-08-31
  • Make it the engine's responsible to check for the presence of results.
r814052007-08-31
  • add missing "transcoder show" (and deprecated "show transcoder") CLI commands that were in 1.2 but never added to 1.4
r81401-814032007-08-31
  • (closes issue #10618) Reported by: dimas Don't pass through the stopped sounds frame.... just drop it.
  • (closes issue #10009) Reported by: dimas Don't output a bridge failed warning message if it failed because one of the channels was part of the masquerade process. That is perfectly normal.
r813972007-08-30
  • Removing an extraneous (and possibly misleading) log message. Firstly, if the announce file isn't found, the streaming functions will report it. Secondly, not all non-zero returns from play_file mean that the announce file wasn't found. Positive return values simply mean that a digit was pressed (most likely to skip through the announcement). (closes issue #10612, reported and patched by dimas)
r813952007-08-30
  • (closes issue #10514) Reported by: casper Patches: chan_sip.c.80129.diff uploaded by casper (license 55) Remove needless check for AUTH_UNKNOWN_DOMAIN. It was impossible for it to ever be that value.
r813922007-08-30
  • via issue 10599, where 'CDR already initialized' messages are being generated. Since all channels will have an init'd CDR attached at creation time, this message is now particularly useless. Removed.
r813832007-08-30
  • Add missing checks for the PTRACING define. (closes issue #10559, paravoid)
r813812007-08-30
  • Changed some manager event messages to reflect whether a queue member is a realtime member or not
r813792007-08-30
  • configs/modem.conf.sample (removed), configs/enum.conf.sample, configs/extensions.ael.sample: Fix a typo, update a reload command, and remove an unused configuration file. (closes issue #10606, casper)
r813752007-08-30
  • (closes issue #10603) Reported by: jmls Patches: pbx.diff uploaded by jmls (license 141) Backport changes from 81372. Add REASON dialplan variable for when an originated call fails and the failed extension is executed.
r813732007-08-30
  • Fixed some warnings.
r813692007-08-30
  • (issue #10599) Reported by: dimas Handle the -1 control subclass during feature dialing (it indicates to stop sounds).
r813672007-08-30
  • Fixed a severe issue where a misdn_read would lock the channel, but read would not return because it blocks. later chan_misdn would try to queue a frame like a AST_CONTROL_ANSWER which could result in a deadlock situation. misdn_read will now not block forever anymore, and we don't queue the ANSWER frame at all when we already was called with misdn_answer -> answer would be called twice. Also we don't explicitly send a RELEASE_COMPLETE on receiption of a RELEASE anymore, because mISDN does that for us, this resulted in a problem on some switches, which would block our port after some calls for a short while.
r81346-813492007-08-29
  • This patch, in essence, will correctly pause a realtime queue member and reflect those changes in the realtime engine. (issue #10424, reported by irroot, patch by me) This patch creates a new function called update_realtime_member_field, which is a generic function which will allow any one field of a realtime queue member to be updated. This patch only uses this function to update the paused status of a queue member, but it lays the foundation for persisting the state of a realtime member the same way that static members' state is maintained when using the persistentmembers setting
  • Changed some tabs to spaces
r813422007-08-29
  • If chan_h323 is not being built, don't use g++ to do the final link of Asterisk. (in response to a question on the asterisk-dev list)
r813402007-08-29
  • This fix creates a more accurate way of detecting whether realtime members were deleted. (closes issue 10541, reported by Alric, patched by me) The REALLY nice things about this patch is that queue members now have a "realtime" field which will be true if the member is a realtime member. This means we can check this value prior to certain processing if it should ONLY be done for realtime members.
r813312007-08-29
  • (closes issue #9690) Reported by: mattv Make rtp timeouts work even if two RTP streams are directly bridged in the RTP stack.
r81226-812912007-08-28
  • Change the message about receiving a mini-frame before the first full voice frame to a DEBUG message.
  • revert unintentional changes in rev 81226
  • Add Russian tones. (closes issue #7953, hanabana)
r81120-811892007-08-28
  • Fixes a forwarding problem when using res_config_mysql (closes issue #10573, reported by chrisvaughan, patch suggested by chrisvaughan as well)
  • Resolve a potential deadlock. In this case, a single queue is locked, then the queue list. In changethread(), the queue list is locked, and then each individual queue is locked. Under the right circumstances, this could deadlock. As such, I have unlocked the individual queue before locking the queue list, and then locked the queue back after the queue list is unlocked.
  • DTMF begin frames should be ignored so that when an agent acks a call with the '#' key, he doesn't cause a queue's announce file to be interrupted. Also went ahead and did the same for the '*' key and for ending a call. (closes issue #10528, reported by deskhack, patched by me)
r81042-810742007-08-27
  • Add a \todo to note that this module leaks most of the memory it allocates on unload and should be fixed (when I'm not in the middle of something else ...).
  • explicity define a variable as a boolean
  • (closes issue #10419) Reported by: mustardman Patches: asterisk-mohposition.diff.txt uploaded by jamesgolovich (license 176) This patch fixes a few problems with music on hold.
  • Fix issues with starting at the beginning of a file when it shouldn't.
  • Fix the inuse counter to be decremented even if the class had not been set to be deleted when not in use anymore
  • Don't arbitrarily limit the number of MOH files to 255
r810122007-08-27
  • (closes issue #10561) Reported by: jesselang Patches: chan_sip-ChannelReload-20080825.patch uploaded by jesselang (license 202) Remove an extra \r\n to make the ChannelReload event conform with every other event.
r810102007-08-27
  • Found a case where the queue's membercount is off. It does not take into account dynamic members on a reload.
r809742007-08-27
  • (closes issue #10562) Reported by: idkpmiller Correct jitter value output in the CLI to be as expected.
r809322007-08-26
  • Remove an extra signal_condition() for the scheduler thread. (closes issue #10564, patch from casper)
r808952007-08-25
  • Fix some issues with the handling of the scheduler in chan_iax2. Most of the places that scheduled items to be executed by the scheduler thread did not signal the scheduler thread to wake up so that it could recalculate the time until the next action. These changes will make the scheduler thread more responsive and ensure that actions get executed as close to when intended as possible instead of it being possible for very long delays.
r808782007-08-24
  • An empty string is an empty callerid ... so zap it. This closes issue #10502, which was pointed out by dswartz. Thank you, and may the swartz be with you
r80820-808492007-08-24
  • If dnsmgr is in use, and no DNS servers are available when Asterisk first starts, then don't give up on poking peers. Allow the poke to get rescheduled so that it will work once the dnsmgr is able to resolve the host. (closes issue #10521, patch by jamesgolovich)
  • Improve the debouncing logic in the DTMF detector to fix some reliability issues. Previously, this code used a shift register of hits and non-hits. However, if the start of the digit isn't clean, it is possible for the leading edge detector to miss the digit. These changes replace the flawed shift register logic and also does the debouncing on the trailing edge as well. (closes issue #10535, many thanks to softins for the patch)
r808182007-08-24
  • A minor correction to the available logic of autofill. If a queue member is paused, they're not really "available" so don't count them as such. Somewhat related to issue #10155
r807892007-08-24
  • From a complaint by jmls, I realize that the message in cdr_disposition is unnecessary. To get failure disposition, just return -1; no use having more than one case do that.
r807502007-08-24
  • Fix a possible crash in IMAP voicemail.
r807472007-08-24
  • Make the deprecation warning inline with the code, instead of only in documentation (closes issue #10549)
r807222007-08-24
  • Tweak the formatting of this MODULEINFO block. I think this would have caused a "*" to get in the menuselect-tree file.
r80689-807172007-08-24
  • This change addresses JerJer's complaint that aelparse builds and installs even if pbx_ael is unchecked in the menuselect stuff.
  • pbx/ael/ael.tab.c, pbx/ael/ael.y, pbx/ael/ael-test/ref.ael-test6: backport of 80649, a fix to an unreported problem in the ael parser, that results in a crash on a 64bit machine
r806612007-08-24
  • Closes issue #10509 Googletalk calls are answered too early, which results in CDRs wrongly stating that a call was ANSWERED when the calling party cancelled a call before before being established. We must not answer the call upon reception of a 'transport-accept' iq packet, but this packet still needs to be acknowledged, otherwise the remote peer would close the call (like in #8970).
r80601-806172007-08-23
  • make misdn/isdn_lib compile without warnings
  • make chan_misdn compile without warnings
r80539-805732007-08-23
  • When executing a dynamic feature, don't look it up a second time by digit pattern after we already looked it up by name. This causes broken behavior if there is more than one feature defined with the same digit pattern. (closes issue #10539, reported by bungalow, patch by me)
  • Revert very broken fix for issue #10540 ... none of these values take ms so I don't know what I was thinking
  • Fix func_timeout to take values in floating point so 1.5 actually means 1.5 seconds instead of being rounded. (closes issue #10540, reported by spendergrass, patch by me)
r80505-805072007-08-23
  • *sigh*
  • use autotagged externals
r805012007-08-23
  • report the actual channel number that was unregistered, instead of assuming that the interface list consists of channels 1 through <x> with no gaps in the sequence
r80360-804992007-08-23
  • Fix some code where it was possible for a reference to a peer to not get released when it should. Thank you to Marta Carbone for pointing this out!
  • main/astobj2.c, include/asterisk/astobj2.h, channels/chan_iax2.c: This is a hack to maintain old behavior of chan_iax2. This ensures that if the peers and users are being stored in a linked list, that they go in the list in the same order that the older code used. This is necessary to maintain the behavior of which peers and users get matched when traversing the container.
  • Revert res_agi fix that didn't quite work until we get it right ...
  • Add some more documentation on iterating ao2 containers. The documentation implies that is possible to miss an object or see an object twice while iterating. After looking through the code and talking with mmichelson, I have documented the exact conditions under which this can happen (which are rare and harmless in most cases).
  • When converting this code to use the list macros, I changed it so objects are added to the head of a bucket instead of the tail. However, while looking over code with mmichelson, we noticed that the algorithm used in ao2_iterator_next requires that items are added to the tail. This wouldn't have caused any huge problem, but it wasn't correct. It meant that if an object was added to a container while you were iterating it, and it was added to the same bucket that the current element is in, then the new object would be returned by ao2_iterator_next, and any other objects in the bucket would be bypassed in the traversal.
  • Don't crash when using realtime in chan_sip without an insecure setting in the database. (closes issue #10348, reported by link55, fixed by me)
  • main/astobj2.c (added), main/Makefile, include/asterisk/astobj2.h (added), doc/iax.txt, UPGRADE.txt, include/asterisk/strings.h, channels/chan_iax2.c: Merge changes from team/russell/iax_refcount. This set of changes fixes problems with the handling of iax2_user and iax2_peer objects. It was very possible for a thread to still hold a reference to one of these objects while a reload operation tries to delete them. The fix here is to ensure that all references to these objects are tracked so that they can't go away while still in use. To accomplish this, I used the astobj2 reference counted object model. This code has been in one of Luigi Rizzo's branches for a long time and was primarily developed by one of his students, Marta Carbone. I wanted to go ahead and bring this in to 1.4 because there are other problems similar to the ones fixed by these changes, so we might as well go ahead and use the new astobj if we're going to go through all of the work necessary to fix the problems. As a nice side benefit of these changes, peer and user handling got more efficient. Using astobj2 lets us not hold the container lock for peers or users nearly as long while iterating. Also, by changing a define at the top of chan_iax2.c, the objects will be distributed in a hash table, drastically increasing lookup speed in these containers, which will have a very big impact on systems that have a large number of users or peers. The use of the hash table will be made the default in trunk. It is not the default in 1.4 because it changes the behavior slightly. Previously, since peers and users were stored in memory in the same order they were specified in the configuration file, you could influence peer and user matching order based on the order they are specified in the configuration. The hash table does not guarantee any order in the container, so this behavior will be going away. It just means that you have to be a little more careful ensuring that peers and users are matched explicitly and not forcing chan_iax2 to have to guess which user is the right one based on secret, host, and access list settings, instead of simply using the username. If you have any questions, feel free to ask on the asterisk-dev list.
  • Juggie in #asterisk-dev was reporting problems where fgets would return without reading the whole line when using fastagi. When this happens, errno was set to EINTR or EAGAIN. This patch accounts for the possibility and lets fgets continue in that case.
r80302-803302007-08-22
  • Makefile, build_tools/mkpkgconfig, build_tools/make_build_h, build_tools/strip_nonapi, build_tools/prep_moduledeps, build_tools/make_buildopts_h: Fix a few build issues in Solaris (and likely others). Use GREP and ID variables from autoconf. Reported to me in #asterisk-dev I forgot who reported this - sorry. :(
  • Change a syntax that the GNU make in Solaris dislikes.
  • Fix a bashism (we explicitly request /bin/sh). Remove some oddly placed quotes I found in passing.
r802572007-08-22
  • Honor the contents of the COPTS variable as custom target CFLAGS. Apparently this is what openwrt does. (reported by Brian Capouch on the asterisk-dev list, patch by me)
r802552007-08-22
  • (closes issue #10526) Reported by: sinistermidget Revert commit from issue #10355 and return timestamp skew to 640.

Asterisk 1.4.11

VersionDateDescription
r801832007-08-21
  • Don't record SIP dialog history if it's not turned on. Also, put an upper limit on how many history entires will be stored for each SIP dialog. It is currently set to 50, but can be increased if deemed necessary. (closes issue #10421, closes issue #10418, patches suggested by jmoldenhauer, patches updated by me) (Security implications documented in AST-2007-020)
r80166-801672007-08-21
  • ugh. removing the diffs from ulaw.h and alaw.h for now; accidentally added them in 80166
  • main/alaw.c, include/asterisk/alaw.h, include/asterisk/ulaw.h: This patch solves problem 1 in 8126; it should not slow down the alaw codec, but should prevent signal degradation via multiple trips thru the codec. Fossil estimates the twice thru this codec will prevent fax from working. 4-6 times thru would result hearable, noticeable, voice degradation.
r801322007-08-21
  • Don't try to dereference the owner channel when it may not exist (issue #10507, maxper)
r801302007-08-21
  • (issue #10510) Reported by: casper Patches: cdr.conf.diff uploaded by casper (license 55) Fix a few errors in sample cdr config file.
r800882007-08-20
  • Fix the build of app_queue
r80049-800862007-08-20
  • After a discussion on #asterisk-dev, it was decided that this should be in 1.4 as well. (issue #10424, reported and patched by irroot)
  • Found a pointless ternary if. member->dynamic was set to 1 and has no opportunity to change between then and this line, so "dynamic" will ALWAYS be output.
r800472007-08-20
  • (issue #10499) Reported by: casper Patches: extensions.conf.sample.diff uploaded by casper (license 55) Update CLI examples in extensions.conf.sample to reflect command changes.
r800442007-08-20
  • Ukrainian language voicemail support. (closes issue #10458, reported and patched by Oleh)
r799982007-08-20
  • Missing curly braces. Oops. (Reported by snuffy via IRC)
r799472007-08-18
  • Don't allocate vmu for messagecount when we could just use the stack instead (closes issue #10490) Also, remove a useless (and leaky) SQLAllocHandle (closes issue #10480)
r799122007-08-17
  • Avoid a crash in the handling of DTMF based Caller ID. It is valid for ast_read to return NULL in the case that the channel has been hung up. (crash reported by anonymouz666 on IRC in #asterisk-dev)
r799062007-08-17
  • Patch allows for more seamless transition from file storage voicemail to ODBC storage voicemail. If a retrieval of a greeting from the database fails, but the file is found on the file system, then we go ahead an insert the greeting into the database. The result of this is that people who switch from file storage to ODBC storage do not need to rerecord their voicemail greetings.
r79902-799042007-08-17
  • channels/chan_sip.c, main/utils.c, include/asterisk/strings.h: Don't send a semicolon over the wire in sip notify messages. Caused by fix for issue 9938. I basically took the code that existed before 9938 was fixed, and copied it into a new function - ast_unescape_semicolon There should be very few places this will be needed (pbx_config does NOT need this (see issue 9938 for details)) Issue 10430, patch by me, with help/ideas from murf (thanks murf).
  • Re-add the setting of callerid name and number. Issue 10485, reported by and fix explained by paradise.
r798572007-08-17
  • Fix some crashes in chan_sip. This patch changes various places that add items to the scheduler to ensure that they don't overwrite the ID of a previously scheduled item. If there is one, it should be removed. (closes issue #10391, closes issue #10256, probably others, patch by me)
r798332007-08-17
  • sometimes we don't need to signal dtmf tones to asterisk, we just want them to go through as inband. Otherwise they might be generated by the other channel partner and then there is a double tone.
r79756-797922007-08-16
  • Fix a little race condition that could cause a crash if two channels had MOH stopped at the same time that were using a class that had been marked for deletion when its use count hits zero.
  • This patch fixes a bug where reloading the module with "module reload" did not delete classes from memory that were no longer in the config. This patch fixes that problem as well as another one. Previously, if you reloaded MOH using the "moh reload" CLI command, which behaved differently than "module reload ...", MOH had to be stopped on every channel and started again immediately. However, there was no way to tell what class was being used, so they would all fall back to the default class. (closes issue #10139) Reported by: blitzrage Patches: asterisk-10139-advanced.diff.txt uploaded by jamesgolovich (license 176) Tested by: jamesgolovich
  • Fix more deadlocks in chan_iax2 that were introduced by making frame handling and scheduling multi-threaded. Unfortunately, we have to do some expensive deadlock avoidance when queueing frames on to the ast_channel owner of the IAX2 pvt struct. This was already handled for regular frames, but ast_queue_hangup and ast_queue_control were still used directly. Making these changes introduced even more places where the IAX2 pvt struct can disappear in the context of a function holding its lock due to calling a function that has to unlock/lock it to avoid deadlocks. I went through and fixed all of these places to account for this possibility. (issue #10362, patch by me)
r79690-797482007-08-16
  • Fixes a problem where agents would get stuck busy due to their wrapuptime being longer than the queue's wrapuptime and ringinuse=no for the queue. (closes issue #10215, reported by Doug, repaired by me) Special thanks to fkasumovic for pointing out the source of the problem and to bweschke for helping to come up with a solution!
  • base_encode is not trying to open a log file, so we should not call it a log file in the warning. (related to issue #10452, reported by bcnit)
r796652007-08-16
  • A fix for two critical problems detected while working with Daniel McKeehan in issue #10184. Upon priority change, the resource list is not NULL terminated when moving an item to the end of the list. This makes Asterisk endlessy loop whenever it needs to read the list. Jids with different resource and priority values, like in Gmail's and GoogleTalk's jabber clients put that problem in evidence. Upon reception of a 'from' attribute with an empty resource string, Asterisk crashes when trying to access the found->cap pointer if the resource list for the given buddy is not empty. This situation is perfectly valid and must be handled. The Gizmoproject's jabber client put that problem in evidence. Also added a few comments in the code as well as a handle for the capabilities from Gmail's jabber client, which are stored in a caps:c tag rather than the usual c tag. Closes issue #10184.
r796422007-08-16
  • 0x80 + protocol is wrong for USERUSER when we want to send IA5 Chars.
r795532007-08-15
  • (closes issue #10440) Reported by: irroot (closes issue #10454) Reported by: flo_turc Increase maximum timestamp skew to 120. 20 was apparently far too low.
r795272007-08-15
  • Fixed an error in the Russian language voicemail intro. (issue #10458, reported and patched by Oleh)
r795232007-08-15
  • (closes issue #10456) Reported by: irroot Patches: sip_timeout.patch uploaded by irroot (license 52) Change hardcoded timer value to defined value. I'm doing this in 1.4 as well so if it needs to be changed in the future this place would not have been forgotten.
r79436-794702007-08-14
  • Fix another spot where an iax2_peer would be leaked if realtime was in use.
  • Fix some memory leaks throughout chan_iax2 related to the use of realtime. I found these while working on iax2_peer object reference tracking.
r793972007-08-14
  • (closes issue #10415) Reported by: atis Revert fix for #10327 as it causes more issues then it solves.
r793632007-08-13
  • memset really, really needs to be used here.
r793342007-08-13
  • res/res_speech.c, apps/app_speech_utils.c, include/asterisk/speech.h: Instead of accepting a single DTMF character accept a full string.
r79272-793012007-08-13
  • Don't call find_peer in registry_authrequest with the pvt lock held to avoid a deadlock.
  • Release the pvt lock before calling find_peer in register_verify to avoid a deadlock. Also, remove some unnecessary locking in auth_fail that was only done recursively.
  • Don't call find_peer within update_registry with a pvt lock held. This can cause a deadlock as the code will eventually call find_callno.
  • I am fighting deadlocks in chan_iax2. I have tracked them down to a single core issue. You can not call find_callno() while holding a pvt lock as this function has to lock another (every) other pvt lock. Doing so can lead to a classic deadlock. So, I am tracking down all of the code paths where this can happen and fixing them. The fix I committed earlier today was along the same theme. This patch fixes some code down the path of authenticate_reply.
r792552007-08-13
  • pbx/ael/ael-test/ref.ael-vtest21 (added), pbx/ael/ael-test/ref.ael-test19, pbx/ael/ael-test/ael-vtest21/extensions.ael (added), pbx/ael/ael-test/ael-vtest21 (added), pbx/ael/ael-test/ref.ael-vtest17, pbx/ael/ael-test/ref.ael-ntest10, pbx/ael/ael-test/ref.ael-test1, pbx/ael/ael-test/ref.ael-test11, pbx/pbx_ael.c, pbx/ael/ael-test/ref.ael-test14, utils/ael_main.c: This patch fixes bug 10411. I added a new regression test, some regression test cleanups
r792142007-08-13
  • Fix a potential deadlock in socket_process. check_provisioning can eventually call find_callno. You can't hold a pvt lock while calling find_callno because it goes through and locks every single one looking for a match.
r79174-792072007-08-13
  • res/res_speech.c, apps/app_speech_utils.c, include/asterisk/speech.h: Add an API call to allow the engine to know that DTMF was received.
  • channels/chan_oss.c, channels/chan_mgcp.c, channels/chan_phone.c, channels/chan_local.c, channels/chan_misdn.c, channels/chan_zap.c, channels/chan_sip.c, channels/chan_skinny.c, channels/chan_h323.c, channels/chan_gtalk.c, channels/chan_iax2.c: (closes issue #10437) Reported by: haklin Don't set the callerid name and number a second time on a newly created channel. ast_channel_alloc itself already sets it and setting it twice would cause a memory leak.
r791422007-08-11
  • Ensure the connection gets marked as used at allocation time (closes issue #10429, report and fix by mnicholson)
r79044-790992007-08-10
  • From a user complaint on #asterisk, I have forced pbx_spool to explain what reason codes mean, when they are logged
  • Re bug behavior mentioned in #asterisk, made this tweak to code, to prevent hundreds of log messages from being generated
  • This will help debug; from a question asked on #asterisk

Asterisk 1.4.10.1

VersionDateDescription
r789952007-08-10
  • The last set of changes that I made to "core show locks" made it not able to track mutexes unless they were declared using AST_MUTEX_DEFINE_STATIC. Locks initialized with ast_mutex_init() were not tracked. It should work now.
r78951-789552007-08-10
  • Don't bother having the core pass through or emulate begin DTMF frames when in an ast_waitstream. It only cares about the end of DTMF.
  • (closes issue #10422) Reported by: bhowell Add note to sample configuration about module load order and how it can cause perfectly good queue members to be marked as invalid.
r789362007-08-10
  • channels/chan_misdn.c, channels/misdn/ie.c, channels/misdn/isdn_msg_parser.c: fixed a bug with the useruser information element. We send them now also in the disconnect message.
r789072007-08-09
  • Improved a bit of logic regarding comma-separated mailboxes in has_voicemail. Also added some braces to some compound if statements since unbraced if statements scare me in general.
r788912007-08-09
  • This fixes bug 10416; thanks to mvanbaak for the pretty output
r78826-788602007-08-09
  • Removing some extra debug code I left in my last commit
  • Quite a few changes regarding IMAP storage. 1. instead of using inboxcount as the core message counting function, we use messagecount instead. This makes it possible to count messages in folders besides just INBOX and Old. 2. inboxcount and hasvoicemail now use messagecount as their means of determining return values. 3. Added a copy_message function for IMAP storage. Unfortunately I don't have the means to test it, but it seems like a pretty straightforward function. 4. Removed a #ifndef IMAP_STORAGE and matching #endif from leave_voicemail for a couple of reasons. One, we want to support copying mail to multiple IMAP boxes, and two, IMAP was broken because a STORE macro had been moved into this section of code.
  • I broke canreinvite...Now I'm fixing it. I put some new code in the wrong place and so I've reverted the canreinvite section to how it was and put my new code where it should be.
r78717-787782007-08-09
  • add a comment to indicate that inboxcount for ODBC_STORAGE needs to be fixed to support multiple mailboxes
  • Fix subscriptions to multiple mailboxes for ODBC_STORAGE. Also, leave a comment for this to be fixed for IMAP_STORAGE, as well. I left IMAP alone since I know MarkM was working on this code right now for another reason. This is broken even worse in trunk, but for a different reason. The fact that the mailbox option supported multiple mailboxes is completely not obvious from the code in the channel drivers. Anyway, I will fix that in another commit ...
  • Fix a problem with the combination of the 'F' option to pass DTMF through a conference and options that use DTMF to activate various features. The problem was that the BEGIN frame would be passed through, but the END frame would get intercepted to activate a feature. Then, the other conference members would hear DTMF for forever, which they didn't seem to like very much. (closes issue #10400, reported by stevefeinstein, fixed by me)
r786462007-08-08
  • Fix mogs email address.
r78575-786202007-08-08
  • Fixed some compiler warnings so that compiling with dev-mode and IMAP storage would not have any errors. This section of code may get changed again shortly since my change uncovers a rather silly bit of logic.
  • Changing a bit of logic so that someone will NEVER exit the queue on timeout unless they have enabled the 'n' option. This commit relates to issue #10320. Thanks to jfitzgibbon for detailing the idea behind this code change.
r785692007-08-08
  • (closes issue #10335) Reported by: adamgundy Update sip.conf to include another scenario where directrtpsetup will fail.

Asterisk 1.4.10

VersionDateDescription
r784882007-08-07
  • Fix the build of this module on 64-bit platforms
r784502007-08-07
  • The logic behind inboxcount's return value was reversed in has_voicemail and message_count. (closes issue #10401, reported by st1710, patched by me)
r784372007-08-07
  • Don't free the environment handle when the connection fails, because other connections might be depending upon it
r784162007-08-07
  • Allow chan_sip to build in devmode
r784152007-08-07
  • apps/app_voicemail.c, res/res_config_odbc.c, apps/app_directory.c: Reconnection doesn't happen automatically when a DB goes down (fixes issue #9389)
r783752007-08-07
  • Properly check the capabilities count to avoid a segfault. (ASA-2007-019)
r783712007-08-07
  • Merged revisions 78370 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r78370 | russell | 2007-08-07 12:44:04 -0500 (Tue, 07 Aug 2007) | 4 lines Revert patch committed for issue #9660. It broke E&M trunks. (closes issue #10360) (closes issue #10364) ........
r782752007-08-06
  • Add additional DTMF log messages to help when debugging issues.
r78184-782422007-08-06
  • Fix an issue where dynamic threads can get free'd, but still exist in the dynamic thread list. (closes issue #10392, patch from Mihai, with credit to his colleague, Pete)
  • Fix the return value of AST_LIST_REMOVE(). This shouldn't be causing any problems, though, because the only code that uses the return value only checks to see if it is NULL. (closes issue #10390, pointed out by mihai)
r781822007-08-06
  • It is possible for a transfer to occur before the remote device has our tag in which case they send none in the transfer. In this case we need to not fail the transfer dialog lookup.
r781802007-08-06
  • Fix an issue with using UpdateConfig (manager action) where escaped semicolons in a config would be converted to just semicolons (\; to ;) Issue 9938
r78166-781722007-08-06
  • (closes issue #10355) Reported by: wdecarne Now that we pass through RTP timestamp information we need to make the allowed timestamp skew considerably less. There are situations where a source may change and due to the timestamp difference the receiver will experience an audio gap since we did not indicate by setting the marker bit that the source changed.
  • (closes issue #10383) Reported by: rizzo Include stdlib.h so NULL gets defined for gethostbyname_r checks.
r781642007-08-06
  • Fixed a mistake I made in realtime_peer which caused it to return NULL every time. Thanks to Jon Fealy for emailing me the correction.
r781462007-08-05
  • Portability fix for devmode compiling (closes bug #10382)
r781432007-08-05
  • Fix compilation failure when MALLOC_DEBUG is enabled, but DEBUG_THREADS is not
r781392007-08-05
  • If peer is not found, the error message is misleading (should be peer not found, not ACL failure)
r781032007-08-03
  • main/config.c, channels/chan_sip.c, include/asterisk/config.h: Changed the behavior of sip's realtime_peer function to match the corresponding way of matching for non-realtime peers. Now matches are made on both the IP address and port number, or if the insecure setting is set to "port" then just match on the IP address. In order to accomplish this, I also added a new API call, ast_category_root, which returns the first variable of an ast_category struct
r78028-781012007-08-03
  • (closes issue #10194) Reported by: blitzrage Patches: bug0010194 uploaded by vovochka Tested by: blitzrage Fix a problem when you call Voicemail() with multiple mailboxes specified and ODBC_STORAGE is in use. The audio part of the message was only given to the first mailbox specified.
  • Add some improvements to lock debugging. These changes take effect with DEBUG_THREADS enabled and provide the following:
  • This will keep track of which locks are held by which thread as well as which lock a thread is waiting for in a thread-local data structure. A reference to this structure is available on the stack in the dummy_start() function, which is the common entry point for all threads. This information can be easily retrieved using gdb if you switch to the dummy_start() stack frame of any thread and print the contents of the lock_info variable.
  • All of the thread-local structures for keeping track of this lock information are also stored in a list so that the information can be dumped to the CLI using the "core show locks" CLI command. This introduces a little bit of a performance hit as it requires additional underlying locking operations inside of every lock/unlock on an ast_mutex. However, the benefits of having this information available at the CLI is huge, especially considering this is only done in DEBUG_THREADS mode. It means that in most cases where we debug deadlocks, we no longer have to request access to the machine to analyze the contents of ast_mutex_t structures. We can now just ask them to get the output of "core show locks", which gives us all of the information we needed in most cases. I also had to make some additional changes to astmm.c to make this work when both MALLOC_DEBUG and DEBUG_THREADS are enabled. I disabled tracking of one of the locks in astmm.c because it gets used inside the replacement memory allocation routines, and the lock tracking code allocates memory. This caused infinite recursion.
  • Only pass through HOLD and UNHOLD control frames when the mohinterpret option is set to "passthrough". This was pointed out by Kevin in the middle of a training session.
  • Don't reuse the timespec that was set to 0 in the previous timedwait as it will just return immediately. Also, fix some logic so the thread's lock isn't unlocked twice in the weird case of dynamic threads getting acquired right after a timeout. (pointed out by SteveK)
r77993-779962007-08-02
  • Make sure we actually allow 6 chars to be sent. Also make note of the "A" option of date format. Issue 9779, modifications by DEA, wedhorn, and myself.
  • If a device disconnects, the session will go away. If this happens during call setup, we need to give up. Issue 10325.
r779492007-08-02
  • Fix the case where a dynamic thread times out waiting for something to do during the first time it runs. This shouldn't ever happen, but we should account for it anyway. (pointed out by pete, who works with mihai)
r779472007-08-02
  • Make sure we clear the prompt status message on a hangup. Also rearrange messages to better fit with what a wireshark trace shows it should be. Issue 10299, initial patch and solution by sbisker, modified by me to fit with wireshark trace.
r779452007-08-02
  • Merged revisions 77942 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77942 | murf | 2007-08-02 11:56:37 -0600 (Thu, 02 Aug 2007) | 1 line This patch hopefully solves 10141; The user is running with it, and it doesn't appear to harm asterisk's operation, and may prevent a crash. I'll store it in 1.2, as we have shut down support on 1.2, but since I developed the patch before support finished, and it might affect 1.4 and trunk, I'm going ahead with it. ........
r77939-779432007-08-02
  • Fix another race condition in the handling of dynamic threads. If the dynamic thread timed out waiting for something to do, but was acquired to perform an action immediately afterwords, then wait on the condition again to give the other thread a chance to finish setting up the data for what action this thread should perform. Otherwise, if it immediately continues, it will perform the wrong action. (reported on IRC by mihai, patch by me) (related to issue #10289)
  • Add another sanity check to vnak_retransmit(). This check ensures that frames that have already been marked for deletion don't get retransmitted. (closes issue #10361, patch from mihai)
r77890-778942007-08-02
  • Make sure that we show the correct extension if dialed from a macro "From: 5555" rather than "From: s" Issue 10358, initial patch by DEA, reworked by me to use S_OR, tested by sbisker
  • Put in some additional debug information for softkey/stimulus messages. Issue 10291, patch by DEA.
r778872007-08-01
  • Fix some race conditions which have been causing weird problems in chan_iax2. The most notable problem is that people have been seeing storms of VNAK frames being sent due to really old frames mysteriously being in the retransmission queue and never getting removed. It was possible that a dynamic thread got created, but did not acquire its lock before the thread that created it signals it to perform an action. When this happens, the thread will sleep until it hits a timeout, and then get destroyed. So, the action never gets performed and in some cases, means a frame doesn't get transmitted and never gets freed since the scheduler never gets a chance to reschedule transmission. Another less severe race condition is in the handling of a timeout for a dynamic thread. It was possible for it to be acquired to perform at action at the same time that it hit a timeout. When this occurs, whatever action it was acquired for would never get performed. (patch contributed by Mihai and SteveK) (closes issue #10289) (closes issue #10248) (closes issue #10232) (possibly related to issue #10359)
r778862007-08-01
  • Voicemail with ODBC_STORAGE defined does not compile cleanly (missing def)
r778832007-08-01
  • Fix an issue that caused one-way audio on some newer devices (specifically the 7921), due to sending packets in the wrong order during hangup. Also make sure we clear tones/messages on the correct line/instance. Issue 10291, patch by DEA, tested by sbisker and myself.
r77863-778712007-08-01
  • (closes issue #10351) Reported by: ftarz Some platforms don't like it when you pass NULL to vsnprintf so pass "" instead.
  • include/asterisk/threadstorage.h, channels/chan_mgcp.c, apps/app_voicemail.c, main/acl.c, utils/smsq.c, channels/chan_iax2.c: Add some fixes for building on Solaris.
  • Whoops, I meant R_5 not R5.
  • And for my last trick... make sure that if gethostbyname_r is exported by a library that it is used.
  • configure, include/asterisk/autoconfig.h.in, configure.ac, main/utils.c: Extend autoconf logic to determine which version of gethostbyname_r is on the system.
r77852-778542007-08-01
  • Fixes an issue I introduced to queues wherein a queue with joinempty=yes would kick people out of the queue because of erroneously thinking the 'n' option was in use. (closes issue #10320, reported by jfitzgibbon, patched by me, tested by blitzrage and me) Thank you blitzrage for all the testing you've done lately with queues! It's much appreciated!
  • If a queue uses dynamic realtime members, then the member list should be updated after each attempt to call the queue. This fixes an issue where if a caller calls into a queue where no one is logged in, they would wait forever even if a member logged in at some point. (closes issue #10346, reported by and tested by blitzrage, patched by me)
r77845-778462007-07-31
  • Much newer version, 0.70 with much additions
  • Made VAST improvements in DTMF receiver in RADIO_RELAX mode (thanx Steve W9SH), and oversight in logic in TONE_VERIFY/RELAX mode in chan_zap.
r778442007-07-31
  • Merged revisions 77842 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77842 | murf | 2007-07-31 13:19:35 -0600 (Tue, 31 Jul 2007) | 1 line This probably isn't super-general, but it's a first stab at using kill -11 to generate a core file instead of gcore. ........
r778312007-07-31
  • Add a flag to the speech API that allows an engine to set whether it received results or not.
r778272007-07-31
  • DETECT_DEADLOCKS can't be enabled without DEBUG_THREADS or it does nothing
r778242007-07-31
  • This patch makes Asterisk send 100 Trying provisional responses upon receipt of re-invites. This makes it so that if there are two or more Asterisk servers between endpoints, the Asterisk servers will not keep retransmitting the re-invites. (closes issue #10274, reported by cstadlmann, patched by me with approval from file)
r777952007-07-30
  • Applications like SayAlpha() should not hang up the channel if you request an "unknown" character such as a comma. Instead, skip the character and move on. Issue 10083, initial patch by jsmith, modified by me.
r77785-777942007-07-30
  • Fix an issue that could potentially cause corruption of the global iax frame queue. In the network_thread() loop, it traverses the list using the AST_LIST_TRAVERSE_SAFE macro. However, to remove an element of the list within this loop, it used AST_LIST_REMOVE, instead of AST_LIST_REMOVE_CURRENT, which I believe could leave some of the internal variables of the SAFE macro invalid. Mihai says that he already made this change in his local copy and it didn't help his VNAK storm issues, but I still think it's wrong. :)
  • (closes issue #10279) Reported by: seanbright Patches: res_agi.carefulwrite.1.4.07252007.patch uploaded by seanbright (license 71) res_agi.carefulwrite.trunk.07252007.patch uploaded by seanbright (license 71) Allow the "agi_network: yes" line to be printed out in the AGI debug output. Also, allow partial writes to be handled when writing out this line just like it is for all of the others.
  • file and I both committed changes for issue #10301. Remove a duplicated assignment to restore the original value of the previous channel.
r777832007-07-30
  • Merged revisions 77782 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77782 | tilghman | 2007-07-30 13:40:54 -0500 (Mon, 30 Jul 2007) | 2 lines Revert change in revision 71656, even though it fixed a bug, because many people were depending upon the (broken) behavior. ........
r777802007-07-30
  • (closes issue #10301) Reported by: fnordian Patches: asterisk-1.4.9-channel.c.patch uploaded by fnordian (license 110) Additional changes by me Fix some problems in channel_find_locked() which can cause an infinite loop. The reference to the previous channel is set to NULL in some cases. These changes ensure that the reference to the previous channel gets restored before needing it again. I'm not convinced that the code that is setting it to NULL is really the right thing to do. However, I am making these changes to fix the obvious problem and just leaving an XXX comment that it needs a better explanation that what is there now.
r77768-777782007-07-30
  • (closes issue #10327) Reported by: kkiely Instead of directly mucking with the extension/context/priority of the channel we are transferring when it has a PBX simply call ast_async_goto on it. This will ensure that the channel gets handled properly and sent to the right place.
  • (closes issue #10301) Reported by: fnordian Patches: asterisk-1.4.9-channel.c.patch uploaded by fnordian (license 110) Restore previous behavior where if we failed to lock the channel we wanted we would return to exactly the same point as if we had just reentered the function.
  • Merged revisions 77767 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77767 | file | 2007-07-30 11:50:02 -0300 (Mon, 30 Jul 2007) | 4 lines (closes issue #10334) Reported by: ramonpeek Pass through the return value from macro_exec through the MacroIf application. ........
r775712007-07-27
  • Missing newline
r77536-775402007-07-27
  • (closes issue #10310) Reported by: prashant_jois Patches: cdr_pgsql.patch uploaded by prashant (license 114) Finish the Postgresql connection after the log messages are printed so we don't access invalid memory.
  • (closes issue #10323) Reported by: julianjm Patches: chan_sip_device_state_hold_fix.v1.diff.txt uploaded by julianjm (license 99) Clear ONHOLD flag when decrementing the onHold peer count. If we did not do this the count may keep decreasing.
r774902007-07-27
  • "re-invite" was misspelled
r774602007-07-26
  • (closes issue #10302) Reported by: litnialex If a DTMF end frame comes from a channel without a begin and it is going to a technology that only accepts end frames (aka INFO) then use the minimum DTMF duration if one is not in the frame already.
r77424-774292007-07-26
  • change protocol for downloads as well
  • use new canonical name for download server
r774102007-07-26
  • AST_DEVMODE was defined in trunk, but not in 1.4. When Asterisk is compiled under dev mode, AST_DEVMODE will get defined in buildopts.h. Change 1.4 to define it in the same way that trunk does. Also, revert the change that added this define in the Makefile The advantage to doing it this way is that buildopts.h gets installed when you install Asterisk. Then, when building any out of tree modules, or building asterisk-addons, these modules know which options the rest of Asterisk was built with.
r773802007-07-26
  • Fixes to get ast_backtrace working properly. The AST_DEVMODE macro was never defined so the majority of ast_backtrace never attempted compilation. The makefile now defines AST_DEVMODE if configure was run with --enable-dev-mode. Also, changes were made to acccomodate 64 bit systems in ast_backtrace. Thanks to qwell, kpfleming, and Corydon76 for their roles in allowing me to get this committed
r77348-773502007-07-26
  • Missed one
  • Oops, that builtin define should be all-lowercase.
r773182007-07-26
  • Two consecutive calls to PQfinish could occur, meaning free gets called on the same variable twice. This patch sets the connection to NULL after calls to PQfinish so that the problem does not occur. Also in this patch, prashant_jois informed me that it is safe to pass a null pointer to PQfinish, so I have removed the check for conn's existence from my_unload_module. (closes issue 10295, reported by junky, patched by me with input from prashant_jois)
r771912007-07-25
  • This fix solves problem with intense squelch noise when someone joins conf in bug 9430; We repro'd the problem with meetme opts of 'CciMo'; Josh Colp supplied this patch, and I'm applying it. It looks like playing the recorded username will louse up the next thing played into the channel. Josh rearranged the code so as to start things over before playing data directly into the conference.
r771762007-07-25
  • (closes issue #10303) Reported by: jtodd Add SPEECH_DTMF_TERMINATOR variable so the user can specify the digit to terminate a DTMF string with. If none is specified then no terminator will be used.
r771542007-07-25
  • chan->emulate_dtmf_duration is an unsigned int, not a signed int, so use %u instead of %d in the format string
r77116-771362007-07-25
  • so are my fingers...
  • autotagexternals script is still obviously misbehaving...
  • use autotagged externals
r770712007-07-25
  • Fix autoconf logic for finding OpenH323 when it is not in the first place searched (/usr/share/openh323).
r770222007-07-25
  • set the sequence number in a frame for all frame types
r769832007-07-25
  • Merged revisions 76978 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76978 | murf | 2007-07-24 18:07:24 -0600 (Tue, 24 Jul 2007) | 1 line this fixes bug 10293, where the error message because defaultzone or loadzone was not defined was confusing ........
r76891-769372007-07-24
  • Merged revisions 76934 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76934 | tilghman | 2007-07-24 17:11:33 -0500 (Tue, 24 Jul 2007) | 2 lines Oops, res contains the error code, not errno. I was wondering why a mutex was reporting "No such file or directory"... ........
  • Found another place where we should be using the umask (thanks jcmoore)

Asterisk 1.4.9

VersionDateDescription
r76803-768052007-07-24
  • Don't create the Asterisk channel until we are starting the PBX on it. (ASA-2007-018)
r768012007-07-24
  • Added a membercount variable to call_queue struct which keeps track of the number of logged in members in a particular queue. This makes it so that the 'n' option for Queue() can act properly depending on which strategy is used. If the strategy is roundrobin, rrmemory, or ringall, we want to ring each phone once before moving on in the dialplan. However, if any other strategy is used, we will only ring one phone since it cannot be guaranteed that a different phone will ring on subsequent attempts to ring a phone. As a side effect of this, the QUEUE_MEMBER_COUNT dialplan function now just reads the membercount variable instead of traversing through the member list to figure out how many members there are. Special thanks to blitzrage for helping to test this out. (closes issue #10127, reported by bcnit, patched by me, tested by blitzrage)
r767082007-07-23
  • It was our stated intention for 1.4 that files created in app_voicemail should depend upon the umask. Unfortunately, mkstemp() creates files with mode 0600, regardless of the umask. This corrects that deficiency.
r766562007-07-23
  • Fix some incorrect softkey labels in messages. Don't try to play dialtone in some unimplemented features.
r766542007-07-23
  • Merged revisions 76653 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76653 | file | 2007-07-23 15:28:13 -0300 (Mon, 23 Jul 2007) | 4 lines (closes issue #5866) Reported by: tyler Do not force channel format changes when a generator is present. The generator may have changed the formats itself and changing them back would cause issues. ........
r766202007-07-23
  • Don't try to queue up hold/unhold frames on a non-existent channel. Issue 10276.
r76519-766182007-07-23
  • Allow app_morsecode to build on PPC Linux by putting the value of the digit char in an int.
  • Merged revisions 76560 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76560 | file | 2007-07-23 11:32:07 -0300 (Mon, 23 Jul 2007) | 6 lines (closes issue #10236) Reported by: homesick Patches: rpid_1.4_75840.patch uploaded by homesick (license 91) Accept Remote Party ID on guest calls. ........
  • (closes issue #10268) Reported by: mvanbaak Patches: chan_skinny_openbsd.diff uploaded by mvanbaak (license 7) Add another OS that has to use the Macros for byte ordering.
r764852007-07-23
  • Use a signed integer for storing the number of bytes in the packet read from the network. Using an unsigned value here made it impossible to handle an error returned from recvfrom(). Furthermore, in the case that recvfrom() did return an error, this would cause a crash due to a heap overflow. (closes issue #10265, reported by and fix suggested by timrobbins)
r762272007-07-21
  • Merged revisions 76226 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76226 | russell | 2007-07-20 21:01:46 -0500 (Fri, 20 Jul 2007) | 4 lines Backport a fix for a memory leak that was fixed in trunk in reivision 76221 by rizzo. The memory used for the localaddr list was not freed during a configuration reload. ........
r762112007-07-20
  • This patch from 10249 is worth applying! It prevents downloading sound files if they are already downloaded. Darn Practical, if you ask me
r76174-761782007-07-20
  • Allow getting a call from an existing "sub" channel. Cancel ringing if endpoint hangs up before answering. Fixes were backported from trunk (there was apparently a bit of confusion during merge of a previous patch). (closes issue #10241)
  • Eliminate a compiler warning with gcc 4.2 by constifying a char *
  • It's possible for sub->owner to be NULL here if you cancel the call immediately after/during sending a digit.
r761392007-07-20
  • When using users.conf for the entries in the directory, if multiple users had the same last name, only the first user listed would be available in the directory. (closes issue #10200, reported by mrskippy, patched by me)
r761322007-07-20
  • Use the define that specifies the default length of an artificially created DTMF digit in the ast_senddigit() function. The define is set to 100ms by default, which is the same thing that this function was using. But, using the define lets changes take effect in this case, as well as the others where it was already used.
r76054-760872007-07-20
  • Merged revisions 76080 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r76080 | file | 2007-07-20 14:16:48 -0300 (Fri, 20 Jul 2007) | 6 lines (closes issue #10247) Reported by: fkasumovic Patches: chan_sip.patch uploaded by fkasumovic (license #101) Drop any peer realm authentication entries when reloading so multiple entries do not get added to the peer. ........
  • (closes issue #10246) Reported by: fkasumovic Patches: res_conver.patch uploaded by fkasumovic (license #101) Use the last occurance of . to find the extension, not the first occurance.
  • Move makeannouncement variable declaration to proper place.
r759802007-07-19
  • Remove some duplicate code.
r75969-759782007-07-19
  • The diff on this looks pretty big but all I did was remove a pointless if statement (always evaluates true).
  • Changes in handling return values of several functions in app_queue. This all started as a fix for issue #10008 but now includes all of the following changes: 1. Simplifying the code to handle positive return values from ast API calls. 2. Removing the background_file function. 3. The fix for issue #10008 (closes issue #10008, reported and patched by dimas)
r759282007-07-19
  • Merged revisions 75927 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75927 | russell | 2007-07-19 10:49:42 -0500 (Thu, 19 Jul 2007) | 6 lines When processing full frames, take sequence number wraparound into account when deciding whether or not we need to request retransmissions by sending a VNAK. This code could cause VNAKs to be sent erroneously in some cases, and to not be sent in other cases when it should have been. (closes issue #10237, reported and patched by mihai) ........
r758072007-07-18
  • Need to make sure we set milliseconds and timestamp - pointed out by the recent ast_ time stuff from Tilghman
r757592007-07-18
  • Merged revisions 75757 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75757 | russell | 2007-07-18 16:09:13 -0500 (Wed, 18 Jul 2007) | 5 lines When traversing the queue of frames for possible retransmission after receiving a VNAK, handle sequence number wraparound so that all frames that should be retransmitted actually do get retransmitted. (issue #10227, reported and patched by mihai) ........
r757492007-07-18
  • Merged revisions 75748 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75748 | tilghman | 2007-07-18 15:31:36 -0500 (Wed, 18 Jul 2007) | 2 lines Store prior to copy (closes issue #10193) ........
r757322007-07-18
  • Umm, why are we transmitting dialtone on cfwdall?
r757122007-07-18
  • apps/app_voicemail.c, channels/chan_sip.c, channels/chan_agent.c, pbx/pbx_realtime.c: Backport GCC 4.2 fixes. Without these Asterisk won't build under devmode using GCC 4.2.
r75707-757112007-07-18
  • Fixes for 7935/7936 conference phones. Issue 9245, patch by slimey.
  • Fix issues with new 79x1 phones. Issue 9887, patches by DEA
r756582007-07-18
  • Merged revisions 75657 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75657 | dhubbard | 2007-07-18 12:48:33 -0500 (Wed, 18 Jul 2007) | 1 line removed the word 'pissed' from ast_log(...) function call for BE-90 ........
r75583-756232007-07-18
  • Few more places that needs to check for onhold state.
  • (closes issue #10165) Reported by: elandivar It is possible for hold status to exist without call limits set, so we need to ensure update_call_counter is executed regardless.
  • Don't bother reloading chan_h323 if it did not load successfully in the first place. This would otherwise cause a crash.
  • (closes issue #10224) Reported by: irroot Record the threadid of each running thread before shutting them down as the thread themselves may change the value.
r755292007-07-18
  • Using a freed frame causes crashes (closes issue #9317)

Asterisk 1.4.8

VersionDateDescription
r75441-754502007-07-17
  • Merged revisions 75449 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75449 | russell | 2007-07-17 15:57:09 -0500 (Tue, 17 Jul 2007) | 3 lines Properly check for the length in the skinny packet to prevent an invalid memcpy. (ASA-2007-016) ........
  • cast arguments to ast_log so that it builds without warnings for me
  • channels/iax2-parser.c, channels/iax2-parser.h, /, channels/chan_iax2.c: Merged revisions 75444 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75444 | russell | 2007-07-17 15:45:27 -0500 (Tue, 17 Jul 2007) | 5 lines Ensure that when encoding the contents of an ast_frame into an iax_frame, that the size of the destination buffer is known in the iax_frame so that code won't write past the end of the allocated buffer when sending outgoing frames. (ASA-2007-014) ........
  • Merged revisions 75440 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75440 | russell | 2007-07-17 15:41:41 -0500 (Tue, 17 Jul 2007) | 4 lines After parsing information elements in IAX frames, set the data length to zero, so that code later on does not think it has data to copy. (ASA-2007-015) ........
r754392007-07-17
  • Ensure that the pointer to STUN data does not go to unaccessible memory. (ASA-2007-017)
r754372007-07-17
  • (issue #10210) Reported by: juggie Patches: 10210-1.4-grr.patch uploaded by juggie (license #24) Tested by: juggie, blitzrage Log a warning if someone uses DeadAGI on a live channel.
r754052007-07-17
  • Fixing an error I made earlier. ast_fileexists can return -1 on failure, so I need to be sure that we only enter the if statement if it is successful. Related to my fix to issue #10186
r75401-754032007-07-17
  • (closes issue #10209) Reported by: juggie Patches: 10209-trunk-2.patch uploaded by juggie Tested by: juggie, blitzrage In ast_pbx_run(), mark a channel as hung up after an application returned -1, or when it runs out of extensions to execute. This is so that code can detect that this channel has been hung up for things like making sure DeadAGI is used on actual dead channels, and is beneficial for other things, like making sure someone doesn't try to start spying on a channel that is about to go away.
  • Remove a duplicated newline character in AGI debug output. (closes issue #10207, patch by seanbright)
r75258-753062007-07-16
  • Merged revisions 75304 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75304 | kpfleming | 2007-07-16 15:46:58 -0500 (Mon, 16 Jul 2007) | 3 lines provide proper copyright/license attribution for this structure that was copied from a BSD-licensed header file long, long ago... ........
  • another fix that is not needed here (finishing up 75251)
r752532007-07-16
  • Restoring functionality from 1.2 wherein Retrydial will not exit if there is no announce file specified. This change makes it so that if there is no announce file specified, the application will continue until finished (or caller hangs up). If a bogus announce file is specified, then a warning message will be printed saying that the file could not be found, but execution will still continue. (closes issue #10186, reported by jon, patched by me)
r752522007-07-16
  • block change that is not relevant here
r751082007-07-13
  • Merged revisions 75107 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75107 | russell | 2007-07-13 15:35:22 -0500 (Fri, 13 Jul 2007) | 3 lines Fix a couple potential minor memory leaks. load_moh_classes() could return without destroying the loaded configuration. ........
r750782007-07-13
  • Merged revisions 75066 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75066 | mmichelson | 2007-07-13 15:10:39 -0500 (Fri, 13 Jul 2007) | 5 lines Fixed an issue where chanspy flags were uninitialized if no options were passed. What triggered this investigation was an IRC chat where some people's quiet flags were set while others' weren't even though none of them had specified the q option. ........
r75053-750672007-07-13
  • Merged revisions 75059 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75059 | russell | 2007-07-13 15:07:21 -0500 (Fri, 13 Jul 2007) | 6 lines Ensure that adding a user to the list of users of a specific music on hold class is not done at the same time as any of the other operations on this list to prevent list corruption. Using the global moh_data lock for this is not ideal, but it is what is used to protect these lists everywhere else in the module, and I am only changing what is necessary to fix the bug. ........
  • Merged revisions 75052 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r75052 | russell | 2007-07-13 14:10:00 -0500 (Fri, 13 Jul 2007) | 12 lines (closes issue #9660) Reported by: mmacvicar Patches submitted by: bbryant, russell Tested by: mmacvicar, marco, arcivanov, jmhunter, explidous When using a TDM400P (and probably other analog cards) there was a chance that you could hang up and pick the phone back up where it has been long enough to be not considered a flash hook, but too soon such that the device reports that it is busy and the person on the phone will only hear silence. This patch makes chan_zap more tolerant of this and gives the device a couple of seconds to succeed so the person on the phone happily gets their dialtone. ........
r749982007-07-12
  • Change to my previous fix regarding agent logoff soft. Now uses deferlogoff instead of loginstart since loginstart is used after logoff. Thanks to makoto for pointing this out and suggesting the fix. (closes issue #10178, reported and patched by makoto, with modification by me)
r749552007-07-12
  • This patch resolves 10143; thanks to irroot for the patch; looked acceptable. Let the community decide if it messes things up
r74888-749222007-07-12
  • Whoops... didn't want this to be returned to 0 each iteration.
  • When waiting for a digit ensure that a begin frame was received with it, not just an end frame. (issue #10084 reported by rushowr)
r74839-748662007-07-12
  • It helps if I actually add this stuff for the 7921 too - otherwise it won't actually do much of anything.
  • Add device ID for 7921 wireless skinny phone
  • Fix dialing in skinny that was broken in some cases. Issue 10136, fix provided by DEA.
r748152007-07-12
  • Merged revisions 74814 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74814 | file | 2007-07-12 12:51:24 -0300 (Thu, 12 Jul 2007) | 2 lines Only print out a warning for situations where it is actually helpful. (issue #10187 reported by denke) ........
r747672007-07-11
  • Merged revisions 74766 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74766 | russell | 2007-07-11 17:53:26 -0500 (Wed, 11 Jul 2007) | 5 lines The function make_trunk() can fail and return -1 instead of a valid new call number. Fix the uses of this function to handle this instead of treating it as the new call number. This would cause a deadlock and memory corruption. (possible cause of issue #9614 and others, patch by me) ........
r747222007-07-11
  • Merged revisions 74719 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74719 | mmichelson | 2007-07-11 16:12:30 -0500 (Wed, 11 Jul 2007) | 5 lines The cli command "agent logoff Agent/x soft" did not work...at all. Now it does. (closes issue #10178, reported and patched by makoto, with slight modification for 1.4 and trunk by me) ........
r746572007-07-11
  • Merged revisions 74656 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74656 | russell | 2007-07-11 13:33:23 -0500 (Wed, 11 Jul 2007) | 4 lines Make sure that the ESCAPE immediately follows the condition that uses LIKE. This fixes realtime extensions with ODBC. (closes issue #10175, reported by stuarth, patch by me) ........
r74628-746422007-07-11
  • This fixes 10172, where the entire man8 dir gets removed during an uninstall of asterisk
  • utils/expr2.testinput, doc/channelvariables.txt, UPGRADE.txt: further reversion of previously applied floating point stuff for expr2
r74515-745902007-07-11
  • channels/chan_phone.c, configure, include/asterisk/autoconfig.h.in, configure.ac: Instead of figuring out kernel versions that have compiler.h and not... let's just use autoconf to check for it's presence. (issue #10174 reported by francesco_r)
  • Only check if we need to do a SIGMA based tone generation if we have a card. (issue #10179 reported by mikowhy)
r744762007-07-10
  • Forwarding a message with IMAP storage was storing the message in the sender's box instead of the forwarded mailbox. (closes issue #10138, reported and patched by jaroth)
r74374-744282007-07-10
  • Merged revisions 74427 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r74427 | qwell | 2007-07-10 14:57:20 -0500 (Tue, 10 Jul 2007) | 6 lines Fix an issue where it was possible to have a service level of over 100% Between the time reca