]> git.ipfire.org Git - thirdparty/asterisk.git/commit
Change channel state on local channels for busy,answer,ring.
authorJeff Peeler <jpeeler@digium.com>
Thu, 4 Feb 2010 23:20:21 +0000 (23:20 +0000)
committerJeff Peeler <jpeeler@digium.com>
Thu, 4 Feb 2010 23:20:21 +0000 (23:20 +0000)
commit735485effc731ae8ad9ae67f575e0ba7d946fea3
treed640b94d99e1ec8706874801cecb6924d7965296
parent277db8b69d4e1914edf8e337a48bcf01686ab8eb
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/#9700@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 => #9700,1,Wait(1) ;1 works, 3 did not
exten => #9700,n,ChannelRedirect(${TESTCHAN},parkedcalls,701,1)

(closes issue #14992)
Reported by: davidw

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@244785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_local.c