aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_local.c
AgeCommit message (Collapse)AuthorFilesLines
2010-04-28Merged revisions 259870 via svnmerge from dvossel1-5/+14
https://origsvn.digium.com/svn/asterisk/trunk ................ r259870 | dvossel | 2010-04-28 16:20:03 -0500 (Wed, 28 Apr 2010) | 39 lines Merged revisions 259858 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r259858 | dvossel | 2010-04-28 16:16:03 -0500 (Wed, 28 Apr 2010) | 33 lines resolves deadlocks in chan_local Issue_1. In the local_hangup() 3 locks must be held at the same time... pvt, pvt->chan, and pvt->owner. Proper deadlock avoidance is done when the channel to hangup is the outbound chan_local channel, but when it is not the outbound channel we have an issue... We attempt to do deadlock avoidance only on the tech pvt, when both the tech pvt and the pvt->owner are locked coming into that loop. By never giving up the pvt->owner channel deadlock avoidance is not entirely possible. This patch resolves that by doing deadlock avoidance on both the pvt->owner and the pvt when trying to get the pvt->chan lock. Issue_2. ast_prod() is used in ast_activate_generator() to queue a frame on the channel and make the channel's read function get called. This function is used in ast_activate_generator() while the channel is locked, which mean's the channel will have a lock both from the generator code and the frame_queue code by the time it gets to chan_local.c's local_queue_frame code... local_queue_frame contains some of the same crazy deadlock avoidance that local_hangup requires, and this recursive lock prevents that deadlock avoidance from happening correctly. This patch removes ast_prod() from the channel lock so only one lock is held during the local_queue_frame function. (closes issue #17185) Reported by: schmoozecom Patches: issue_17185_v1.diff uploaded by dvossel (license 671) issue_17185_v2.diff uploaded by dvossel (license 671) Tested by: schmoozecom, GameGamer43 Review: https://reviewboard.asterisk.org/r/631/ ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@259936 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-02Merged revisions 256015 via svnmerge from russell1-24/+8
https://origsvn.digium.com/svn/asterisk/trunk ................ r256015 | russell | 2010-04-02 18:46:45 -0500 (Fri, 02 Apr 2010) | 16 lines Merged revisions 256014 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r256014 | russell | 2010-04-02 18:45:56 -0500 (Fri, 02 Apr 2010) | 9 lines Resolve a deadlock that occurs due to a pointless call to ast_bridged_channel() (closes issue #16840) Reported by: bzing2 Patches: patch.txt uploaded by bzing2 (license 902) issue_16840.rev1.diff uploaded by russell (license 2) Tested by: bzing2, russell ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@256016 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-02Merged revisions 249893 via svnmerge from dvossel1-0/+1
https://origsvn.digium.com/svn/asterisk/trunk ........ r249893 | dvossel | 2010-03-02 13:08:38 -0600 (Tue, 02 Mar 2010) | 11 lines fixes adaptive jitterbuffer configuration When configuring the adaptive jitterbuffer, the target_extra value not only could not be set from the configuration, but was not even being set to its proper default. This value is required in order for the adaptive jitterbuffer to work correctly. To resolve this a config option has been added to expose this value to the conf files, and a default value is provided when no config specific value is present. ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@249907 f38db490-d61c-443f-a65b-d21fe96a405b
2010-03-01Merged revisions 249538 via svnmerge from jpeeler1-35/+2
https://origsvn.digium.com/svn/asterisk/trunk ................ r249538 | jpeeler | 2010-03-01 11:11:31 -0600 (Mon, 01 Mar 2010) | 18 lines Merged revisions 249536 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r249536 | jpeeler | 2010-03-01 11:02:03 -0600 (Mon, 01 Mar 2010) | 11 lines Modify queued frames from local channels to not set the other side to up In this case, attended transfers were broken due to ast_feature_request_and_dial detecting the channel being set to up before the answer frame could be read and therefore failing to mark the channel as ready. This fix is a regression fix for 244785, which should continue to work properly as well. (closes issue #16816) Reported by: jamhed Tested by: jamhed, corruptor ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@249539 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-10Merged revisions 246070 via svnmerge from jpeeler1-0/+36
https://origsvn.digium.com/svn/asterisk/trunk ........ r246070 | jpeeler | 2010-02-10 10:47:37 -0600 (Wed, 10 Feb 2010) | 22 lines Change channel state on local channels for busy,answer,ring. Previously local channels channel state never changed. This became problematic when the state of the other side of the local channel was lost, for example during a masquerade. Changing the state of the local channel allows for the scenario to be detected when the channel state is set to ringing, but the peer isn't ringing. The specific problem scenario is described in 164201. Although this was noted on one of the issues, here is the tested dialplan verified to work: exten => 9700,1,Dial(Local/*9700@default&Local/0009700@default) exten => *9700,1,Set(GLOBAL(TESTCHAN)=${CHANNEL:0:${MATH(${LEN(${CHANNEL})}-1):0:2}}1) exten => *9700,n,wait(3) ;3 works, 1 did not exten => *9700,n,Dial(SIP/5001) exten => 0009700,1,Wait(1) ;1 works, 3 did not exten => 0009700,n,ChannelRedirect(${TESTCHAN},parkedcalls,701,1) (closes issue #14992) Reported by: davidw ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@246071 f38db490-d61c-443f-a65b-d21fe96a405b
2010-02-01Merged revisions 244071 via svnmerge from tilghman1-3/+1
https://origsvn.digium.com/svn/asterisk/trunk ................ r244071 | tilghman | 2010-02-01 11:53:39 -0600 (Mon, 01 Feb 2010) | 22 lines Merged revisions 244070 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r244070 | tilghman | 2010-02-01 11:46:31 -0600 (Mon, 01 Feb 2010) | 16 lines Revert previous chan_local fix (r236981) and fix instead by destroying expired frames in the queue. (closes issue #16525) Reported by: kobaz Patches: 20100126__issue16525.diff.txt uploaded by tilghman (license 14) 20100129__issue16525__1.6.0.diff.txt uploaded by tilghman (license 14) Tested by: kobaz, atis (closes issue #16581) Reported by: ZX81 (closes issue #16681) Reported by: alexr1 ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@244072 f38db490-d61c-443f-a65b-d21fe96a405b
2010-01-04Merged revisions 237319 via svnmerge from tilghman1-1/+1
https://origsvn.digium.com/svn/asterisk/trunk ................ r237319 | tilghman | 2010-01-04 10:20:03 -0600 (Mon, 04 Jan 2010) | 10 lines Merged revisions 237318 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r237318 | tilghman | 2010-01-04 10:18:59 -0600 (Mon, 04 Jan 2010) | 3 lines It's also possible for the Local channel to directly execute an Application. Reviewboard: https://reviewboard.asterisk.org/r/452/ ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@237320 f38db490-d61c-443f-a65b-d21fe96a405b
2009-12-30Merged revisions 236982 via svnmerge from tilghman1-1/+3
https://origsvn.digium.com/svn/asterisk/trunk ................ r236982 | tilghman | 2009-12-30 15:59:18 -0600 (Wed, 30 Dec 2009) | 16 lines Merged revisions 236981 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r236981 | tilghman | 2009-12-30 15:57:10 -0600 (Wed, 30 Dec 2009) | 9 lines Don't queue frames to channels that have no means to process them. (closes issue #15609) Reported by: aragon Patches: 20091230__issue16521__1.4__chan_local_only.diff.txt uploaded by tilghman (license 14) Tested by: aragon Review: https://reviewboard.asterisk.org/r/452/ ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@236983 f38db490-d61c-443f-a65b-d21fe96a405b
2009-11-13Merged revisions 230039 via svnmerge from file1-1/+1
https://origsvn.digium.com/svn/asterisk/trunk ................ r230039 | file | 2009-11-13 13:44:53 -0600 (Fri, 13 Nov 2009) | 16 lines Merged revisions 230038 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r230038 | file | 2009-11-13 13:44:07 -0600 (Fri, 13 Nov 2009) | 9 lines Fix a crash caused by two threads thinking they should both free the chan_local private structure when only one should. (closes issue #15314) Reported by: sroberts Patches: Issue15314_Move_Nulling_owner.patch uploaded by davidw (license 780) Tested by: davidw, lottc ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@230040 f38db490-d61c-443f-a65b-d21fe96a405b
2009-10-29Merged revisions 226532 via svnmerge from file1-2/+6
https://origsvn.digium.com/svn/asterisk/trunk ................ r226532 | file | 2009-10-29 15:13:42 -0300 (Thu, 29 Oct 2009) | 13 lines Merged revisions 226531 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r226531 | file | 2009-10-29 15:11:26 -0300 (Thu, 29 Oct 2009) | 6 lines Add an option to enabling passing music on hold start and stop requests through instead of acting on them in chan_local. (closes issue #14709) Reported by: dimas ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@226533 f38db490-d61c-443f-a65b-d21fe96a405b
2009-08-31Merged revisions 214945 via svnmerge from tilghman1-0/+3
https://origsvn.digium.com/svn/asterisk/trunk ................ r214945 | tilghman | 2009-08-31 11:18:33 -0500 (Mon, 31 Aug 2009) | 14 lines Merged revisions 214940 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r214940 | tilghman | 2009-08-31 11:16:52 -0500 (Mon, 31 Aug 2009) | 7 lines Also unlock the "other" channel, when returning, due to glare. (closes issue #15787) Reported by: tim_ringenbach Patches: chan_local.diff uploaded by tim ringenbach (license 540) Tested by: tim_ringenbach ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@214957 f38db490-d61c-443f-a65b-d21fe96a405b
2009-04-23Merged revisions 190287 via svnmerge from file1-3/+0
https://origsvn.digium.com/svn/asterisk/trunk ................ r190287 | file | 2009-04-23 16:15:30 -0300 (Thu, 23 Apr 2009) | 13 lines Merged revisions 190286 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r190286 | file | 2009-04-23 16:13:18 -0300 (Thu, 23 Apr 2009) | 6 lines Fix a bug in chan_local glare hangup detection. If both sides of a Local channel were hung up at around the same time it was possible for one thread to destroy the local private structure and have the other thread immediately try to remove the already freed structure from the local channel list. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@190288 f38db490-d61c-443f-a65b-d21fe96a405b
2009-03-16Merged revisions 182211 via svnmerge from tilghman1-11/+16
https://origsvn.digium.com/svn/asterisk/trunk ................ r182211 | tilghman | 2009-03-16 10:50:55 -0500 (Mon, 16 Mar 2009) | 14 lines Merged revisions 182208 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r182208 | tilghman | 2009-03-16 10:39:15 -0500 (Mon, 16 Mar 2009) | 7 lines Fixup glare detection, to fix a memory leak of a local pvt structure. (closes issue #14656) Reported by: caspy Patches: 20090313__bug14656__2.diff.txt uploaded by tilghman (license 14) Tested by: caspy ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@182212 f38db490-d61c-443f-a65b-d21fe96a405b
2009-02-17Merged revisions 176642 via svnmerge from tilghman1-2/+3
https://origsvn.digium.com/svn/asterisk/trunk ........ r176642 | tilghman | 2009-02-17 15:14:18 -0600 (Tue, 17 Feb 2009) | 8 lines Prior to masquerade, move the group definitions to the channel performing the masq, so that the group count lingers past the bridge. (closes issue #14275) Reported by: kowalma Patches: 20090216__bug14275.diff.txt uploaded by Corydon76 (license 14) Tested by: kowalma ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@176643 f38db490-d61c-443f-a65b-d21fe96a405b
2009-01-19Merged revisions 169211 via svnmerge from mmichelson1-4/+4
https://origsvn.digium.com/svn/asterisk/trunk ................ r169211 | mmichelson | 2009-01-19 09:54:06 -0600 (Mon, 19 Jan 2009) | 21 lines Merged revisions 169210 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r169210 | mmichelson | 2009-01-19 09:52:15 -0600 (Mon, 19 Jan 2009) | 13 lines Prevent a crash in chan_local due to a potential NULL pointer dereference Move the check for if both channels on a local_pvt have generators to below where p->chan is checked for NULLity (NULLness?). This prevents a crash from occurring if p->chan is NULL. (closes issue #14189) Reported by: sascha Patches: 14189.patch uploaded by putnopvut (license 60) Tested by: sascha ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@169212 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-31Merged revisions 166954 via svnmerge from tilghman1-0/+1
https://origsvn.digium.com/svn/asterisk/trunk ................ r166954 | tilghman | 2008-12-31 13:34:28 -0600 (Wed, 31 Dec 2008) | 12 lines Merged revisions 166953 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r166953 | tilghman | 2008-12-31 13:20:35 -0600 (Wed, 31 Dec 2008) | 5 lines Also inherit the musiconhold class. (Closes #14153) Reported by: Jerry Geis, via the users list. Patch by: me (license 14) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@166956 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-02Merged revisions 152216,152287,152369,152467,152569,152605 via svnmerge from tilghman1-0/+4
https://origsvn.digium.com/svn/asterisk/trunk ................ r152216 | tilghman | 2008-10-27 16:34:04 -0500 (Mon, 27 Oct 2008) | 13 lines Merged revisions 152215 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r152215 | tilghman | 2008-10-27 16:32:00 -0500 (Mon, 27 Oct 2008) | 6 lines Inherit ALL elements of CallerID across a local channel. (closes issue #13368) Reported by: Peter Schlaile Patches: 20080826__bug13368.diff.txt uploaded by Corydon76 (license 14) ........ ................ r152287 | jpeeler | 2008-10-27 18:31:39 -0500 (Mon, 27 Oct 2008) | 10 lines Merged revisions 152286 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r152286 | jpeeler | 2008-10-27 18:28:49 -0500 (Mon, 27 Oct 2008) | 2 lines Buffer policy setting for half is not needed. ........ ................ r152369 | tilghman | 2008-10-28 12:07:39 -0500 (Tue, 28 Oct 2008) | 15 lines Merged revisions 152368 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r152368 | tilghman | 2008-10-28 12:04:56 -0500 (Tue, 28 Oct 2008) | 8 lines Reset all DIAL variables back to blank, in case Dial is called multiple times per call (which could otherwise lead to inconsistent status reports). (closes issue #13216) Reported by: ruddy Patches: 20081014__bug13216.diff.txt uploaded by Corydon76 (license 14) Tested by: ruddy ........ ................ r152467 | tilghman | 2008-10-28 17:33:40 -0500 (Tue, 28 Oct 2008) | 10 lines Merged revisions 152463 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r152463 | tilghman | 2008-10-28 17:32:34 -0500 (Tue, 28 Oct 2008) | 3 lines Quoting in the wrong direction (Fixes AST-107) ........ ................ r152569 | russell | 2008-10-29 00:34:26 -0500 (Wed, 29 Oct 2008) | 15 lines Merged revisions 152539 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r152539 | russell | 2008-10-29 00:23:51 -0500 (Wed, 29 Oct 2008) | 7 lines Fix an incorrect usage of sizeof() (closes issue #13795) Reported by: andrew53 Patches: chan_sip_sizeof.patch uploaded by andrew53 (license 519) ........ ................ r152605 | murf | 2008-10-29 00:47:13 -0500 (Wed, 29 Oct 2008) | 22 lines Merged revisions 152538 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r152538 | murf | 2008-10-28 23:19:04 -0600 (Tue, 28 Oct 2008) | 14 lines A little documentation cross-ref between features and dial and queue... I wasted some time (stupidly) trying to get the one-touch parking stuff working, because it didn't occur to me that I had to also have the corresponding options in the dial command! Duh! (In all this time, I never set this up before!) So, to keep some poor fool from suffering the same fate, I made the features.conf.sample file mention the corresponding opts in dial/queue; and the docs for dial/app specifically mention the corresponding decls in the feature.conf file. I hope this doesn't spoil some vast, eternal plan... ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@160388 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-18Merged revisions 157306 via svnmerge from mmichelson1-1/+7
https://origsvn.digium.com/svn/asterisk/trunk ................ r157306 | mmichelson | 2008-11-18 12:31:08 -0600 (Tue, 18 Nov 2008) | 20 lines Merged revisions 157305 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r157305 | mmichelson | 2008-11-18 12:25:55 -0600 (Tue, 18 Nov 2008) | 12 lines Fix a crash in the end_bridge_callback of app_dial and app_followme which would occur at the end of an attended transfer. The error occurred because we initially stored a pointer to an ast_channel which then was hung up due to a masquerade. This commit adds a "fixup" callback to the bridge_config structure to allow for end_bridge_callback_data to be changed in the case that a new channel pointer is needed for the end_bridge_callback. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@157307 f38db490-d61c-443f-a65b-d21fe96a405b
2008-10-14Merged revisions 148913 via svnmerge from mmichelson1-0/+4
https://origsvn.digium.com/svn/asterisk/trunk ................ r148913 | mmichelson | 2008-10-14 12:38:06 -0500 (Tue, 14 Oct 2008) | 17 lines Merged revisions 148912 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r148912 | mmichelson | 2008-10-14 12:33:38 -0500 (Tue, 14 Oct 2008) | 9 lines Deadlock prevention in chan_local. (closes issue #13676) Reported by: tacvbo Patches: 13676.patch uploaded by putnopvut (license 60) Tested by: tacvbo ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@148914 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-12Merged revisions 142929 via svnmerge from jpeeler1-0/+4
https://origsvn.digium.com/svn/asterisk/trunk ................ r142929 | jpeeler | 2008-09-12 17:24:13 -0500 (Fri, 12 Sep 2008) | 14 lines Merged revisions 142927 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r142927 | jpeeler | 2008-09-12 17:22:28 -0500 (Fri, 12 Sep 2008) | 6 lines (closes issue #12965) Reported by: rlsutton2 Prevents local channels from playing MOH at each other which was causing ast_generic_bridge to loop much faster. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@142932 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-27Merged revisions 125853 via svnmerge from tilghman1-5/+1
https://origsvn.digium.com/svn/asterisk/trunk ........ r125853 | tilghman | 2008-06-27 11:00:05 -0500 (Fri, 27 Jun 2008) | 3 lines Revert half of the fix, as this part may have been unnecessary (related to issue #12914) Requested here: http://lists.digium.com/pipermail/asterisk-dev/2008-June/033658.html ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@125854 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-27Merged revisions 125741 via svnmerge from tilghman1-7/+12
https://origsvn.digium.com/svn/asterisk/trunk ................ r125741 | tilghman | 2008-06-27 07:28:38 -0500 (Fri, 27 Jun 2008) | 15 lines Merged revisions 125740 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r125740 | tilghman | 2008-06-27 07:19:39 -0500 (Fri, 27 Jun 2008) | 7 lines Add proper deadlock avoidance. (closes issue #12914) Reported by: ozan Patches: 20080625__bug12914.diff.txt uploaded by Corydon76 (license 14) Tested by: ozan ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@125742 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-20Merged revisions 124316 via svnmerge from tilghman1-0/+3
https://origsvn.digium.com/svn/asterisk/trunk ................ r124316 | tilghman | 2008-06-20 15:17:04 -0500 (Fri, 20 Jun 2008) | 16 lines Merged revisions 124315 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r124315 | tilghman | 2008-06-20 15:16:02 -0500 (Fri, 20 Jun 2008) | 8 lines 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) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@124317 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-07Merged revisions 121079 via svnmerge from russell1-1/+0
https://origsvn.digium.com/svn/asterisk/trunk ................ r121079 | russell | 2008-06-07 09:18:44 -0500 (Sat, 07 Jun 2008) | 15 lines Merged revisions 121078 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r121078 | russell | 2008-06-07 09:10:56 -0500 (Sat, 07 Jun 2008) | 7 lines Don't run LIST_HEAD_DESTROY on a STATIC list (closes issue #12807) Reported by: ys Patches: chan_agent_local.diff uploaded by ys (license 281) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@121080 f38db490-d61c-443f-a65b-d21fe96a405b
2008-05-13Merged revisions 116039 via svnmerge from russell1-11/+14
https://origsvn.digium.com/svn/asterisk/trunk ................ r116039 | russell | 2008-05-13 16:18:55 -0500 (Tue, 13 May 2008) | 32 lines Merged revisions 116038 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r116038 | russell | 2008-05-13 16:17:23 -0500 (Tue, 13 May 2008) | 24 lines 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) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@116040 f38db490-d61c-443f-a65b-d21fe96a405b
2008-04-24Merged revisions 114625 via svnmerge from mmichelson1-0/+6
https://origsvn.digium.com/svn/asterisk/trunk ................ r114625 | mmichelson | 2008-04-24 15:06:06 -0500 (Thu, 24 Apr 2008) | 18 lines Merged revisions 114624 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r114624 | mmichelson | 2008-04-24 15:04:24 -0500 (Thu, 24 Apr 2008) | 10 lines 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 ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@114626 f38db490-d61c-443f-a65b-d21fe96a405b
2008-04-24Merged revisions 114622 via svnmerge from tilghman1-0/+1
https://origsvn.digium.com/svn/asterisk/trunk ................ r114622 | tilghman | 2008-04-24 14:54:57 -0500 (Thu, 24 Apr 2008) | 12 lines Merged revisions 114621 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r114621 | tilghman | 2008-04-24 14:53:36 -0500 (Thu, 24 Apr 2008) | 4 lines Ensure that when we set the accountcode, it actually shows up in the CDR. (Fix for AMI Originate) (Closes issue #12007) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@114623 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-03Merged revisions 105570 via svnmerge from russell1-1/+8
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r105570 | russell | 2008-03-03 11:16:53 -0600 (Mon, 03 Mar 2008) | 3 lines In the case of an ast_channel allocation failure, take the local_pvt out of the pvt list before destroying it. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@105571 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-03Merged revisions 105568 via svnmerge from russell1-10/+14
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r105568 | russell | 2008-03-03 11:05:16 -0600 (Mon, 03 Mar 2008) | 3 lines 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. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@105569 f38db490-d61c-443f-a65b-d21fe96a405b
2008-02-20Merged revisions 103904 via svnmerge from mmichelson1-3/+5
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r103904 | mmichelson | 2008-02-20 15:40:08 -0600 (Wed, 20 Feb 2008) | 6 lines Fix a crash if the channel becomes NULL while attempting to lock it. (closes issue #12039) Reported by: danpwi ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@103908 f38db490-d61c-443f-a65b-d21fe96a405b
2008-02-19Merged revisions 103821 via svnmerge from russell1-13/+11
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r103821 | russell | 2008-02-19 14:02:49 -0600 (Tue, 19 Feb 2008) | 8 lines 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 ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@103822 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-28Merged revisions 100581 via svnmerge from russell1-18/+17
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100581 | russell | 2008-01-28 11:15:41 -0600 (Mon, 28 Jan 2008) | 9 lines 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. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@100582 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-22Merged revisions 99594 via svnmerge from oej1-1/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r99594 | oej | 2008-01-22 18:41:57 +0100 (Tis, 22 Jan 2008) | 3 lines 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. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@99596 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-21Merged revisions 99426 via svnmerge from mmichelson1-0/+11
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r99426 | mmichelson | 2008-01-21 17:55:26 -0600 (Mon, 21 Jan 2008) | 12 lines 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. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@99427 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-16Merged revisions 98964 via svnmerge from mmichelson1-1/+9
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r98964 | mmichelson | 2008-01-16 11:20:11 -0600 (Wed, 16 Jan 2008) | 10 lines 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 ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@98965 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-04Merged revisions 90735 via svnmerge from mmichelson1-0/+1
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r90735 | mmichelson | 2007-12-03 17:12:17 -0600 (Mon, 03 Dec 2007) | 22 lines 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. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@90873 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-21remove another set of redundant #include "asterisk/options.h"rizzo1-1/+0
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89512 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-19include "logger.h" and errno.h from asterisk.h - usage shows that theyrizzo1-2/+0
were included almost everywhere. Remove some of the instances. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89424 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-17trim more redundant headersrizzo1-4/+0
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89384 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-17more removal of duplicate #include linesrizzo1-1/+0
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89349 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-16Start untangling header inclusion in a way that does not affectrizzo1-4/+0
build times - tested, there is no measureable difference before and after this commit. In this change: use asterisk/compat.h to include a small set of system headers: inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h, stdlib.h, alloca.h, stdio.h Where available, the inclusion is conditional on HAVE_FOO_H as determined by autoconf. Normally, source files should not include any of the above system headers, and instead use either "asterisk.h" or "asterisk/compat.h" which does it better. For the time being I have left alone second-level directories (main/db1-ast, etc.). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89333 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-26Correctly use defined return values in (some) load_module functions.qwell1-2/+2
(issue #11096) Patches: chan_agent.c.patch uploaded by eliel (license 64) chan_local.c.patch uploaded by eliel (license 64) chan_features.c.patch uploaded by eliel (license 64) chan_zap.c.patch uploaded by eliel (license 64) res_monitor.c.patch uploaded by eliel (license 64) res_realtime.c.patch uploaded by eliel (license 64) res_crypto.c.patch uploaded by eliel (license 64) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@87202 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-22Switch from AST_CLI (formerly NEW_CLI) to AST_CLI_DEFINE, since the former ↵qwell1-1/+1
didn't make much sense git-svn-id: http://svn.digium.com/svn/asterisk/trunk@86820 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-19Convert NEW_CLI to AST_CLI.qwell1-1/+1
Closes issue #11039, as suggested by seanbright. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@86536 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-09Add jitterbuffer support for chan_local. To enable it, you use the 'j' optionrussell1-0/+20
in the Dial command. The 'j' option _must_ be used in conjunction with the 'n' option. This feature will allow you to use the existing jitterbuffer implementation to put a jitterbuffer on incoming SIP calls connecting to Asterisk applications by putting a local channel in the middle. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@85097 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-18(issue #10724)qwell1-13/+18
Reported by: eliel Patches: res_features.c.patch uploaded by eliel (license 64) res_agi.c.patch uploaded by seanbright (license 71) res_musiconhold.c.patch uploaded by seanbright (license 71) pbx.c.patch uploaded by moy (license 222) logger.c.patch uploaded by moy (license 222) frame.c.patch uploaded by moy (license 222) manager.c.patch uploaded by moy (license 222) http.c.patch uploaded by moy (license 222) dnsmgr.c.patch uploaded by moy (license 222) res_realtime.c.patch uploaded by eliel (license 64) res_odbc.c.patch uploaded by seanbright (license 71) res_jabber.c.patch uploaded by eliel (license 64) chan_local.c.patch uploaded by eliel (license 64) chan_agent.c.patch uploaded by eliel (license 64) chan_alsa.c.patch uploaded by eliel (license 64) chan_features.c.patch uploaded by eliel (license 64) chan_sip.c.patch uploaded by eliel (license 64) RollUp.1.patch (includes all of the above patches) uploaded by seanbright (license 71) Convert many CLI commands to the NEW_CLI format. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82930 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-17convert various places that access the channel lock directly to use the ↵russell1-8/+8
channel lock wrappers git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82728 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-17Merged revisions 79902 via svnmerge from qwell1-0/+6
https://origsvn.digium.com/svn/asterisk/branches/1.4 (closes issue #10485) ........ r79902 | qwell | 2007-08-17 12:44:22 -0500 (Fri, 17 Aug 2007) | 4 lines Re-add the setting of callerid name and number. Issue 10485, reported by and fix explained by paradise. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@79903 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-13Merged revisions 79174 via svnmerge from file1-2/+0
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r79174 | file | 2007-08-13 11:18:04 -0300 (Mon, 13 Aug 2007) | 4 lines (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. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@79175 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-01Convert code that checks the _softhangup member of ast_channel directory to userussell1-4/+4
the ast_check_hangup() funciton. This function takes scheduled hangups into account. (closes issue #10230, patch by Juggie) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@77858 f38db490-d61c-443f-a65b-d21fe96a405b