aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2010-11-24Merged revisions 296165 via svnmerge from rmudgett1-113/+197
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r296165 | rmudgett | 2010-11-24 16:41:07 -0600 (Wed, 24 Nov 2010) | 43 lines Oneway audio to SIP phone from FXS port after FXS port gets a CallWaiting pip. The FXS connected phone has to have CW/CID support to fail, as it will send back a DTMF 'A' or 'D' when it's ready to receive CallerID. A normal phone with no CID never fails. Also the SIP phone does not hear MOH when the CW call is answered. The DTMF end frame is suppressed when the phone acknowledges the CW signal for CID. The problem is the DTMF begin frame needs to be suppressed as well. The DTMF begin frame is causing SIP to start sending the DTMF RTP frames. Since the DTMF end frame is suppressed, SIP will not stop sending those DTMF RTP packets. * Suppress the DTMF begin and end frames when the channel driver is looking for DTMF digits. * Fixed a couple issues caused by not cleaning up the CID spill if you answer the CW call while it is sending the CID spill. * Fixed not sending CW/CID spill to the phone when the call is natively bridged. (Fixed by not using native bridge if CW/CID is possible.) * Suppress received audio when sending CW/CID spills. The other parties involved do not need to hear the CW/CID spills and may be confused if the CW call is for them. (closes issue #18129) Reported by: alecdavis Patches: issue_18129_v1.8_v3.patch uploaded by rmudgett (license 664) Tested by: alecdavis, rmudgett NOTE: * v1.4 does not have the main problem fixed by suppressing the DTMF start frames. The other three items fixed are relevant. * If you really must restore native bridging between analog ports, you need to disable CW/CID either by configuring chan_dahdi.conf callwaitingcallerid=no or dialing *70 before dialing the number to temporarily disable CW. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@296166 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-24Merged revisions 296082 via svnmerge from russell1-7/+17
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r296082 | russell | 2010-11-24 14:22:32 -0600 (Wed, 24 Nov 2010) | 12 lines Fix false reporting of an error by set_format(). In the case that the native format was able to be changed to match the new requested format, the code proceeded to attempt to build a translation path, anyway. The result would be NULL, since no translation path is necessary and resulted in this function thinking an error has occurred. This case is now specifically caught and no attempt to build a translation path is attempted. Thanks to our automated tests and bamboo.asterisk.org for catching this problem and making a whole lot of noise when things started failing. :-) ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@296083 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-24Merged revisions 296000 via svnmerge from russell2-4/+13
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r296000 | russell | 2010-11-24 10:48:39 -0600 (Wed, 24 Nov 2010) | 38 lines Handle failures building translation paths more effectively. The problem scenario occurred on a heavily loaded system that was using the codec_dahdi module and exceeded the hardware transcoding capacity. The failure mode at that point was not good. The report came in to us as an Asterisk lock-up. The "core show locks" shows a ton of threads locked up (but no obvious deadlock). Upon deeper investigation, when the system is in this state, the CPU was maxed out. The CPU was being consumed by the Asterisk logger spewing messages on every audio frame for calls set up after transcoder capacity was reached. The purpose of this patch is to make Asterisk handle failures to create a translation path in a more graceful manner. If we can't translate, then the call just needs to be dropped, as it's not going to work. These are the changes: 1) In set_format() of channel.c (which is called by set_read_format() and set_write_format()), it was ignoring if ast_translator_build_path() failed and returned NULL. It now pays attention to that case and returns a result reflecting failure. With this change in place, the bridging code will immediately detect a failure and end the bridge instead of proceeding to try to bridge frames that can't be translated and making channel drivers freak out by sending them frames in a format they weren't expecting. 2) In ast_indicate_data() of channel.c, failure of ast_playtones_start() was ignored. It is now reflected in the return value of the function. This didn't turn out to have any affect on the bug, but seemed like a good change to leave in. 3) In app_dial(), when only sending a call to a single endpoint, it will attempt to do some bridging of its own of early audio. It uses make_compatible() when it's going to do this. However, it ignored failure from make compatible. So, even with the fix from #1, if there was early audio going through app_dial, there would still be a period of invalid frames passing through. After detecting failure here, Dial() exits. ABE-2658 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@296001 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-23Merged revisions 295906 via svnmerge from oej1-3/+3
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r295906 | oej | 2010-11-23 10:28:14 +0100 (Tis, 23 Nov 2010) | 8 lines Fix support of saynumber(1,n) in the Swedish language (closes issue #18353) Reported by: oej Review: https://reviewboard.asterisk.org/r/1031/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295907 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-22Change some documentation to suggest dahdi_monitor instead of ztmonitor.seanbright1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295868 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-22Merged revisions 295790 via svnmerge from rmudgett5-57/+134
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r295790 | rmudgett | 2010-11-22 12:46:26 -0600 (Mon, 22 Nov 2010) | 46 lines The channel redirect function (CLI or AMI) hangs up the call instead of redirecting the call. To recreate the problem: 1) Party A calls Party B 2) Invoke CLI "channel redirect" command to redirect channel call leg associated with A. 3) All associated channels are hung up. Note that if the CLI command were done on the channel call leg associated with B it works. This regression was a result of the fix for issue #16946 (https://reviewboard.asterisk.org/r/740/). The regression affects all features that use an async goto to execute the dialplan because of an external event: Channel redirect, AMI redirect, SIP REFER, and FAX detection. The struct ast_channel._softhangup code is a mess. The variable is used for several purposes that do not necessarily result in the call being hung up. I have added doxygen comments to describe how the various _softhangup bits are used. I have corrected all the places where the variable was tested in a non-bit oriented manner. The primary fix is the new AST_CONTROL_END_OF_Q frame. It acts as a weak hangup request so the soft hangup requests that do not normally result in a hangup do not hangup. JIRA SWP-2470 JIRA SWP-2489 (closes issue #18171) Reported by: SantaFox (closes issue #18185) Reported by: kwemheuer (closes issue #18211) Reported by: zahir_koradia (closes issue #18230) Reported by: vmarrone (closes issue #18299) Reported by: mbrevda (closes issue #18322) Reported by: nerbos Review: https://reviewboard.asterisk.org/r/1013/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295843 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-20Fix cache of device state changes for multiple servers.russell2-3/+174
This patch addresses a regression where device states across multiple servers were not being processing completely correctly. The code works to determine the overall state by looking at the last known state of a device on each server. However, there was a regression due to some invasive rewrites of how the cache works that led to the cache only storing the last device state change for a device, regardless of which server it was on. The code is set up to cache device state change events by ensuring that each event in the cache has a unique device name + entity ID (server ID). The code that was responsible for comparing raw information elements (which EID is) always returned a match due to a memcmp() with a length of 0. There isn't much code to fix the actual bug. This patch also introduces a new CLI command that was very useful for debugging this problem. The command allows you to dump the contents of the event cache. (closes issue #18284) Reported by: klaus3000 Patches: issue18284.rev1.txt uploaded by russell (license 2) Tested by: russell, klaus3000 (closes issue #18280) Reported by: klaus3000 Review: https://reviewboard.asterisk.org/r/1012/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295710 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-19Merged revisions 295628 via svnmerge from twilson1-3/+19
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r295628 | twilson | 2010-11-19 12:53:36 -0800 (Fri, 19 Nov 2010) | 8 lines Discard responses with more than one Via This is not a perfect solution as headers that are joined via commas are not detected. This is a parsing issue that to fix "correctly" would necessitate a new SIP parser. Review: https://reviewboard.asterisk.org/r/1019/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295672 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-18Fix compiler warnings when using openssl-dev 1.0.0+pabelanger2-10/+15
Review: https://reviewboard.asterisk.org/r/1016/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295440 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-16Merged revisions 295280 via svnmerge from rmudgett1-5/+0
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r295280 | rmudgett | 2010-11-16 16:52:06 -0600 (Tue, 16 Nov 2010) | 1 line Dead code elimination in channel.c:ast_channel_bridge() variable who. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295281 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-15Merged revisions 295026 via svnmerge from tilghman1-0/+191
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r295026 | tilghman | 2010-11-15 11:58:37 -0600 (Mon, 15 Nov 2010) | 2 lines Create test verifying results of expression parser ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295062 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-15It is possible to crash Asterisk by feeding the curl engine invalid data.tilghman1-1/+4
(closes issue #18161) Reported by: wdoekes Patches: 20101029__issue18161.diff.txt uploaded by tilghman (license 14) Tested by: tilghman git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294988 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-12Return correct error code if lock path fails. The recent changes to ↵jpeeler1-1/+1
open_mailbox actually caused it to be fixed, but let's be consistent. Reported by alecdavis in asterisk-dev. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294910 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-12Merged revisions 294903 via svnmerge from jpeeler1-1/+2
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r294903 | jpeeler | 2010-11-12 14:49:09 -0600 (Fri, 12 Nov 2010) | 16 lines Fix regression causing abort in voicemail after opening a mailbox with no mesgs. In order to be more safe, some error handling code was changed to respect more error conditions including the potential memory allocation failure for deleted and heard message tracking introduced in 293004. However, last_message_index returns -1 for zero messages (perhaps as expected) and was triggering the stricter error checking. Because last_message_index is only called directly in one place, just return 0 from open_mailbox (for file based storage) when no messages are detected unless a real error has occurred. (closes issue #18240) Reported by: leobrown Patches: bug18240.1-6-2.diff.txt uploaded by alecdavis (license 585) Tested by: pabelanger ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294904 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-12Merged revisions 294821 via svnmerge from rmudgett1-2/+9
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r294821 | rmudgett | 2010-11-11 20:41:13 -0600 (Thu, 11 Nov 2010) | 11 lines Asterisk is getting a "No D-channels available!" warning message every 4 seconds. Asterisk is just whining too much with this message: "No D-channels available! Using Primary channel XXX as D-channel anyway!". Filtered the message so it only comes out once if there is no D channel available without an intervening D channel available period. (closes issue #17270) Reported by: jmls ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294822 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-11Merged revisions 294688 via svnmerge from jpeeler1-1/+15
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r294688 | jpeeler | 2010-11-11 15:12:27 -0600 (Thu, 11 Nov 2010) | 18 lines Fix problem with qualify option packets for realtime peers never stopping. The option packets not only never stopped, but if a realtime peer was not in the peer list multiple options dialogs could accumulate over time. This scenario has the potential to progress to the point of saturating a link just from options packets. The fix was to ensure that the poke scheduler checks to see if a peer is in the peer list before continuing to poke. The reason a peer must be in the peer list to be able to properly manage an options dialog is because otherwise the call pointer is lost when the peer is regenerated from the database, which is how existing qualify dialogs are detected. (closes issue #16382) (closes issue #17779) Reported by: lftsy Patches: bug16382-3.patch uploaded by jpeeler (license 325) Tested by: zerohalo ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294733 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-11Merged revisions 294384 via svnmerge from jpeeler3-108/+187
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r294384 | jpeeler | 2010-11-09 11:37:59 -0600 (Tue, 09 Nov 2010) | 47 lines Fix a deadlock in device state change processing. Copied from some notes from the original author (Russell): Deadlock scenario: Thread 1: device state change thread Holds - rdlock on contexts Holds - hints lock Waiting on channels container lock Thread 2: SIP monitor thread Holds the "iflock" Holds a sip_pvt lock Holds channel container lock Waiting for a channel lock Thread 3: A channel thread (chan_local in this case) Holds 2 channel locks acquired within app_dial Holds a 3rd channel lock it got inside of chan_local Holds a local_pvt lock Waiting on a rdlock of the contexts lock A bunch of other threads waiting on a wrlock of the contexts lock To address this deadlock, some locking order rules must be put in place and enforced. Existing relevant rules: 1) channel lock before a pvt lock 2) contexts lock before hints lock 3) channels container before a channel What's missing is some enforcement of the order when you involve more than any two. To fix this problem, I put in some code that ensures that (at least in the code paths involved in this bug) the locks in (3) come before the locks in (2). To change the operation of thread 1 to comply, I converted the storage of hints to an astobj2 container. This allows processing of hints without holding the hints container lock. So, in the code path that led to thread 1's state, it no longer holds either the contexts or hints lock while it attempts to lock the channels container. (closes issue #18165) Reported by: antonio ABE-2583 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294639 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-10Actually pay attention to documented settings in features.conf.tilghman1-0/+11
(closes issue #16757) Reported by: voxter Patches: 20101012__issue16757.diff.txt uploaded by tilghman (license 14) Review: https://reviewboard.asterisk.org/r/994/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294571 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-10Improve a debug message to be more readable and consistent.russell1-1/+2
(closes issue #18282) Reported by: klaus3000 Patches: ast_devstate2str-patch.txt uploaded by klaus3000 (license 65) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294500 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-09Detect GMime properly on systems where gmime flags and libs are configured ↵tilghman2-99/+135
with pkg-config. (closes issue #16155) Reported by: jcollie Patches: 20100917__issue16155.diff.txt uploaded by tilghman (license 14) Tested by: tilghman git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294429 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-08add missing unlock not present in 294277jpeeler1-0/+1
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294312 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-08Fix playback failure when using IAX with the timerfd module.jpeeler4-1/+27
To fix this issue the alert pipe will now be used when the timerfd module is in use. There appeared to be a race that was not solved by adding locking in the timerfd module, but needed to be there anyway. The race was between the timer being put in non-continuous mode in ast_read on the channel thread and the IAX frame scheduler queuing a frame which would enable continuous mode before the non-continuous mode event was read. This race for now is simply avoided. (closes issue #18110) Reported by: tpanton Tested by: tpanton I put tested by tpanton because it was tested on his hardware. Thanks for the remote access to debug this issue! git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294277 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-08Go off hold when we get an empty reinvite telling us to.mnicholson1-31/+40
(closes issue 0014448) Reported by: frawd (closes issue #17878) Reported by: frawd git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294242 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-08Blocked revisions 294163 via svnmergemnicholson0-0/+0
This is not needed in 1.6.2 as dialogs are reference counted. ........ r294163 | mnicholson | 2010-11-08 12:59:20 -0600 (Mon, 08 Nov 2010) | 6 lines Modify our handling of 491 responses to drop any pending reinvite retry scheduler entries if we get a new 491. This prevents a scheduler entry from leaking if we receive a 491 response when one is pending. If a scheduler entry leaks, the pvt it is associated my get destroyed before the scheduler entry fires, and then memory corruption and crashes can occur when the scheduled reinvite attempts to access and modify the memory of the destroyed pvt. ABE-2543 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@294209 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-05Merged revisions 293968 via svnmerge from sruffell1-4/+4
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293968 | sruffell | 2010-11-04 19:02:53 -0500 (Thu, 04 Nov 2010) | 17 lines codecs/codec_dahdi: Prevent "choppy" audio when receiving unexpected frame sizes. dahdi-linux 2.4.0 (specifically commit 9034) added the capability for the wctc4xxp to return more than a single packet of data in response to a read. However, when decoding packets, codec_dahdi was still assuming that the default number of samples was in each read. In other words, each packet your provider sent you, regardless of size, would result in 20 ms of decoded data (30 ms if decoding G723). If your provider was sending 60 ms packets then codec_dahdi would end up stripping 40 ms of data from each transcoded frame resulting in "choppy" audio. This would only affect systems where G729 packets are arriving in sizes greater than 20ms or G723 packets arriving in sizes greater than 30ms. DAHDI-744. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293969 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-04Blocked revisions 293922 via svnmergedvossel0-0/+0
........ r293922 | dvossel | 2010-11-04 16:28:12 -0500 (Thu, 04 Nov 2010) | 4 lines Fixes ringback tone on feature semi-attended transfer ABE-2168 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293923 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-03Merged revisions 293805 via svnmerge from rmudgett1-11/+14
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293805 | rmudgett | 2010-11-03 13:23:04 -0500 (Wed, 03 Nov 2010) | 20 lines Party A in an analog 3-way call would continue to hear ringback after party C answers. All parties are analog FXS ports. 1) A calls B. 2) A flash hooks to call C. 3) A flash hooks to bring C into 3-way call before C answers. (A and B hear ringback) 4) C answers 5) A continues to hear ringback during the 3-way call. (All parties can hear each other.) * Fixed use of wrong variable in dahdi_bridge() that stopped ringback on the wrong subchannel. * Made several debug messages have more information. A similar issue happens if B and C are SIP channels. B continues to hear ringback. For some reason this only affects v1.8 and trunk. * Don't start ringback on the real and 3-way subchannels when creating the 3-way conference. Removing this code is benign on v1.6.2 and earlier. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293806 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-02Merged revisions 293722 via svnmerge from jpeeler1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293722 | jpeeler | 2010-11-02 18:02:51 -0500 (Tue, 02 Nov 2010) | 8 lines Add enabled/disabled information for rtautoclear sip show settings output. When setting to zero/"no", the numeric default was shown making it not obvious the disabled setting was respected. (closes issue #18123) Reported by: zerohalo ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293723 f38db490-d61c-443f-a65b-d21fe96a405b
2010-11-02Merged revisions 293639 via svnmerge from rmudgett1-2/+5
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293639 | rmudgett | 2010-11-02 16:24:13 -0500 (Tue, 02 Nov 2010) | 6 lines Make warning message have more useful information in it. Change "Unable to get index, and nullok is not asserted" to "Unable to get index for '<channel-name>' on channel <number> (<function>(), line <number>)". ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293647 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-30Merged revisions 293416 via svnmerge from rmudgett1-11/+0
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293416 | rmudgett | 2010-10-29 20:45:49 -0500 (Fri, 29 Oct 2010) | 1 line Remove some more code that serves no purpose. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293417 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-30Merged revisions 293339 via svnmerge from rmudgett1-11/+0
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293339 | rmudgett | 2010-10-29 19:34:12 -0500 (Fri, 29 Oct 2010) | 1 line Remove some code that serves no purpose. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293340 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-28Merged revisions 293194 via svnmerge from tilghman2-251/+384
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293194 | tilghman | 2010-10-28 14:44:37 -0500 (Thu, 28 Oct 2010) | 5 lines "!00" evaluated as false, which is incorrect. Fixing. Reported (though the reporter did not understand he was reporting a bug) on the asterisk-users list: http://lists.digium.com/pipermail/asterisk-users/2010-October/255505.html ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293196 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-28Merged revisions 293194 via svnmerge from tilghman4-337/+764
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293194 | tilghman | 2010-10-28 14:44:37 -0500 (Thu, 28 Oct 2010) | 5 lines "!00" evaluated as false, which is incorrect. Fixing. Reported (though the reporter did not understand he was reporting a bug) on the asterisk-users list: http://lists.digium.com/pipermail/asterisk-users/2010-October/255505.html ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293195 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-28Fix infinite loop in FILTER(). jpeeler1-3/+3
Specifically when you're using characters above \x7f or invalid character escapes (e.g. \xgg). (closes issue #18060) Reported by: wdoekes Patches: issue18060_func_strings_filter_infinite_loop.patch uploaded by wdoekes (license 717) Tested by: wdoekes git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293158 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-26Merged revisions 293004 via svnmerge from jpeeler1-21/+91
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r293004 | jpeeler | 2010-10-25 17:55:28 -0500 (Mon, 25 Oct 2010) | 29 lines Fix inprocess_container in voicemail to correctly restrict max messages. The comparison function logic was off, so the number of sessions for a given mailbox were not being incremented properly. This problem caused the maximum number of messages per folder to not be respected when simultaneously leaving multiple voicemails just below the threshold. These problems should be fixed by the above, but just in case: Fixed resequence_mailbox to rely on the actual number of detected number of files in a directory rather than just assuming only 10 messages more than the maximum had been left. Also if more messages than the maximum are deleted they are actually removed now. The second purpose of this commit should have been separated out probably, but is related to the above. Again, if the number of messages in a given voicemail folder exceeds the maximum set limit make sure to allocate enough space for the deleted and heard index tracking array. A few random fixes: There was a forgotten decrement of the inprocess count in imap_store_file. When using IMAP storage, do not look in the directory where file based storage messages may still reside and influence the message count. Ensure to use only the first format in sendmail. ABE-2516 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@293118 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-25Merged revisions 292866 via svnmerge from dvossel1-150/+180
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r292866 | dvossel | 2010-10-25 14:05:07 -0500 (Mon, 25 Oct 2010) | 27 lines This patch turns chan_local pvts into astobj2 objects. chan_local does some dangerous things involving deadlock avoidance. tech_pvt functions like hangup and queue_frame are provided with a locked channel upon entry. Those functions are completely safe as long as you don't attempt to give up that channel lock, but that is impossible to guarantee due to the required deadlock avoidance necessary to lock both the tech_pvt and both channels involved. In the past, we have tried to account for this by doing things like setting a "glare" flag that indicates what function should destroy the pvt. This was used in local_hangup and local_queue_frame to decided who should destroy the pvt if they collided in separate threads. I have removed the need to do this by converting all chan_local tech_pvts to astobj2. This means we can ref a pvt before deadlock avoidance and not have to worry about that pvt possibly getting destroyed under us. It also cleans up where we destroy the tech_pvt. The only unlink from the tech_pvt container occurs in local_hangup now, which is where it should occur. Since there still may be thread collisions on some functions like local_hangup after deadlock avoidance, I have added some checks to detect those collisions and exit appropriately. I think this patch is going to solve quite a bit of weirdness we have had with local channels in the past. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@292867 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-22Update the LDIF file for LDAP.lmadsen3-45/+168
The LDIF file asterisk.ldif was quite a bit out of date from the asterisk.ldap-schema file, so I've now updated that to be in sync. The asterisk.ldif file being out of sync was a problem on my systems where I was doing an ldapadd to import the schema into the LDAP database, and the existing file would cause problems and ERROR messages when registering. Additional documention has been added based on feedback in the issue I'm closing. (closes issue #13861) Reported by: scramatte Patches: ldap-update.txt uploaded by lmadsen (license 10) Tested by: lmadsen, jcovert, suretec, rgenthner git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@292786 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-21Change res_ldap.sample.conf to match the schema.lmadsen1-3/+3
(closes issue #17376) Reported by: jcovert Patches: res_ldap.conf.sample.patch uploaded by jcovert (license 551) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@292556 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-21Merged revisions 292411 via svnmerge from pabelanger1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r292411 | pabelanger | 2010-10-20 20:00:51 -0400 (Wed, 20 Oct 2010) | 10 lines Record priv-recordintro as sln, not gsm This removes the gsm->sln step when transcoding priv-recordintro. (closes issue #18176) Reported by: pabelanger Patches: chan_sip.diff uploaded by pabelanger (license 224) ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@292412 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-18Fix typo in the sounds/Makefile.lmadsen1-1/+1
(Issue #17426) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@292229 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-18Merged revisions 292223 via svnmerge from jpeeler1-2/+12
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r292223 | jpeeler | 2010-10-18 16:50:30 -0500 (Mon, 18 Oct 2010) | 11 lines Fix improper operator key acceptance and clean up temp recording files. This is a fix for when pressing the operator key after recording an unavailable, busy, name, or temporary message in mailbox options. The operator key should not be accepted here, but should be allowed during the message recording. If the operator key is pressed during ensure the file is saved or deleted as apporopriate. Also, ensure removal of temporary recorded files after an early hang up or when message acceptance confirmation times out. ABE-2518 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@292226 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-18Merged revisions 292222 via svnmerge from lmadsen2-4/+25
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r292222 | lmadsen | 2010-10-18 16:47:25 -0500 (Mon, 18 Oct 2010) | 9 lines Add support for the new English (Australian Accent) sound files. (closes issue #17426) Reported by: camsown Patches: core-sounds-en_AU.txt uploaded by camsown (license 1050) add_AU_sounds.patch.txt uploaded by lmadsen (license 10) Tested by: camsown, lmadsen, jtodd, qwell ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@292224 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-16Base directory for MOH should be ASTDATADIRtzafrir2-2/+2
If the directive 'directory' is relative, make it relative to the datadir, rather than to the varlibdir. In the sample configuration it is relative ('moh'). This has no effect unless you have actively set the datadir explicitly (at build time or at run time). (closes issue #16906) Patches: moh_datadir uploaded by tzafrir (license 46) Review: https://reviewboard.asterisk.org/r/974/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@292049 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-15Merged revisions 291938 via svnmerge from pabelanger1-14/+12
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r291938 | pabelanger | 2010-10-15 15:30:41 -0400 (Fri, 15 Oct 2010) | 2 lines Clean up formatting. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@291939 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-15Don't crash or deadlock on module unloadtwilson1-3/+3
We can't hold the lock while pthread_join is called since aji_log_hook will attempt to lock from the other therad. We reorder the pthread_join and ast_aji_disconnect so that we don't do an SSL_read() while SSL_shutdown is running, causing a crash. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@291904 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-13Merged revisions 291643 via svnmerge from rmudgett1-76/+222
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r291643 | rmudgett | 2010-10-13 18:29:58 -0500 (Wed, 13 Oct 2010) | 20 lines Deadlock between dahdi_exception() and dahdi_indicate(). There is a deadlock between dahdi_exception() and dahdi_indicate() for analog ports. The call-waiting and three-way-calling feature can experience deadlock if these features are trying to do something and an event from the bridged channel happens at the same time. Deadlock avoidance code added to obtain necessary channel locks before attemting an operation with call-waiting and three-way-calling. (closes issue #16847) Reported by: shin-shoryuken Patches: issue_16847_v1.4.patch uploaded by rmudgett (license 664) issue_16847_v1.6.2.patch uploaded by rmudgett (license 664) issue_16847_v1.8_v2.patch uploaded by rmudgett (license 664) Tested by: alecdavis, rmudgett Review: https://reviewboard.asterisk.org/r/971/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@291655 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-13Merged revisions 291577 via svnmerge from twilson1-1/+12
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r291577 | twilson | 2010-10-13 15:45:15 -0700 (Wed, 13 Oct 2010) | 21 lines Don't ignore frames that have been queued when softhangup'd When an outgoing call is answered and hung up by the far end *very* quickly, we may not read any frames and therefor end up with a call that displays the wrong disposition/DIALSTATUS. The reason is because ast_queue_hangup() immediately sets the _softhangup flag on the channel and then queues the HANGUP control frame, but __ast_read refuses to read any frames if ast_check_hangup() indicates that a hangup request has been made (which it will if _softhangup is set). So, we end up losing control frames. This change makes __ast_read continue to read frames even if a soft hangup has been requested. It queues a hangup frame to make sure that __ast_read() will still eventually return NULL. Much thanks to David Vossel for all of the reviews, discussion, and help! (closes issue #16946) Reported by: davidw Review: https://reviewboard.asterisk.org/r/740/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@291580 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-13Merged revisions 291392 via svnmerge from russell1-0/+16
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r291392 | russell | 2010-10-13 10:23:19 -0500 (Wed, 13 Oct 2010) | 6 lines Lock pvt so pvt->owner can't disappear when queueing up a frame. This fixes a crash due to a hangup race condition. ABE-2601 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@291393 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-12Add undocumented variables to phoneprov.conf.samplelmadsen1-0/+14
(closes issue #18107) Reported by: lathama Patches: phoneprov.conf.sample.diff uploaded by lathama (license 1028) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@291280 f38db490-d61c-443f-a65b-d21fe96a405b
2010-10-12Merged revisions 291263 via svnmerge from tilghman1-2/+2
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r291263 | tilghman | 2010-10-12 11:55:30 -0500 (Tue, 12 Oct 2010) | 2 lines Oops, incorrect range (although unallocated at ARIN) ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@291264 f38db490-d61c-443f-a65b-d21fe96a405b