Jonathan H
2016-Nov-08 23:19 UTC
[asterisk-users] What could be stopping "Disconnect Call" feature from working (set in features.txt)
Asterisk 14.1 Here's a bit of test dialplan, which works as expected and simulates exactly what I'm doing at the top of my large dialplan... [dial-pre-test] exten => s,1,NoOp() same => n,Set(LIMIT_PLAYAUDIO_CALLER=yes) same => n,Set(LIMIT_WARNING_FILE=time_limit_reached) same => n,Dial(Local/s at dial-test,3,L(3540000:60000)) same => n,Hangup() [dial-test] exten => s,1,NoOp() same => n,Dial(Local/s at dial-dest,,gH) same => n,Playback(goodbye) same => n,Hangup() [dial-dest] exten => s,1,Answer() same => n,MusicOnHold() same => n,Hangup() See what I'm doing here? I'm using a little fiddle to allow the caller to stop listening to music on hold. And it works..... the gH means that the caller can hang up the remote end. Great! BUT.... I have a large dialplan, and something, somehow, somewhere, is messing with "Disconnect Call". Because once through, nothing, not even star, does anything. It's like the receiving end (dial-dest in the example above) has become deaf! I've turned on debug and verbose to level 9, and there's nothing. It connects, starts music on hold, and then just ignores everything. Anything else I can add to the dialplan to see what might be causing this? (I've also tried dumpchan, too). It USED to work, and some point in the last week, it stopped working. (But the test dialplan above works). Mind boggled! Just to double check, yes, it's all set OK features show Builtin Feature Default Current --------------- ------- ------- Pickup *8 *8 Blind Transfer # # Attended Transfer One Touch Monitor Disconnect Call * *
Richard Mudgett
2016-Nov-09 00:09 UTC
[asterisk-users] What could be stopping "Disconnect Call" feature from working (set in features.txt)
On Tue, Nov 8, 2016 at 5:19 PM, Jonathan H <lardconcepts at gmail.com> wrote:> Asterisk 14.1 > > Here's a bit of test dialplan, which works as expected and simulates > exactly what I'm doing at the top of my large dialplan... > > [dial-pre-test] > exten => s,1,NoOp() > same => n,Set(LIMIT_PLAYAUDIO_CALLER=yes) > same => n,Set(LIMIT_WARNING_FILE=time_limit_reached) > same => n,Dial(Local/s at dial-test,3,L(3540000:60000)) > same => n,Hangup() > > [dial-test] > exten => s,1,NoOp() > same => n,Dial(Local/s at dial-dest,,gH) > same => n,Playback(goodbye) > same => n,Hangup() > > [dial-dest] > exten => s,1,Answer() > same => n,MusicOnHold() > same => n,Hangup() > > See what I'm doing here? I'm using a little fiddle to allow the caller > to stop listening to music on hold. And it works..... the gH means > that the caller can hang up the remote end. Great! > > BUT.... I have a large dialplan, and something, somehow, somewhere, is > messing with "Disconnect Call". > > Because once through, nothing, not even star, does anything. It's like > the receiving end (dial-dest in the example above) has become deaf! > > I've turned on debug and verbose to level 9, and there's nothing. It > connects, starts music on hold, and then just ignores everything. > > Anything else I can add to the dialplan to see what might be causing > this? (I've also tried dumpchan, too). > > It USED to work, and some point in the last week, it stopped working. > (But the test dialplan above works). Mind boggled! > > Just to double check, yes, it's all set OK > > features show > Builtin Feature Default Current > --------------- ------- ------- > Pickup *8 *8 > Blind Transfer # # > Attended Transfer > One Touch Monitor > Disconnect Call * * > >Beware of local channel optimization. You are putting state on local channels that can optimize out. When the local channels optimize out they take the state with them. In the dialplan above you are creating the channel chain below. PJSIP/caller --> Local/s at dial-test;1 -- Local/s at dial-test;2 --> Local/s at dial-dest;1 -- Local/s at dial-dest;2 PJSIP/caller gets the L() duration and sounds put on it. The Local/s at dial-test;1 gets the L() duration put on it. The Local/s at dial-test;2 gets the H dial option put on it. There is a bridge connecting PJSIP/caller and Local/s at dial-test;1 There is a bridge connecting Local/s at dial-test;2 and Local/s at dial-dest;1 When Local/s at dial-dest;2 executes Answer it will allow Local/s at dial-test;1 and ;2 to optimize out because both ends are in a bridge. Thus the H dial option will disappear from the channel chain. Richard -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20161108/81738945/attachment.html>
Jonathan H
2016-Nov-09 07:17 UTC
[asterisk-users] What could be stopping "Disconnect Call" feature from working (set in features.txt)
Thank you - that makes sense. I've seen something about swapping and optimizing channels on the console, but I didn't realise "optimize" meant "not do what you wanted". OK, so here's why I'm dialling anything at all: The first dial is because I MUST limit the incoming call to less than 60 minutes. The second dial, which carries the gH option, is because I want someone to be able to listen to a radio stream>From previous discussion here, it seems the only way to do that is thegH workaround above. If I'm not missing a trick here and there's no better way to do those to things, is there any way to force Asterisk to NOT "optimize" those channels? On 9 November 2016 at 00:09, Richard Mudgett <rmudgett at digium.com> wrote:> > > On Tue, Nov 8, 2016 at 5:19 PM, Jonathan H <lardconcepts at gmail.com> wrote: >> >> Asterisk 14.1 >> >> Here's a bit of test dialplan, which works as expected and simulates >> exactly what I'm doing at the top of my large dialplan... >> >> [dial-pre-test] >> exten => s,1,NoOp() >> same => n,Set(LIMIT_PLAYAUDIO_CALLER=yes) >> same => n,Set(LIMIT_WARNING_FILE=time_limit_reached) >> same => n,Dial(Local/s at dial-test,3,L(3540000:60000)) >> same => n,Hangup() >> >> [dial-test] >> exten => s,1,NoOp() >> same => n,Dial(Local/s at dial-dest,,gH) >> same => n,Playback(goodbye) >> same => n,Hangup() >> >> [dial-dest] >> exten => s,1,Answer() >> same => n,MusicOnHold() >> same => n,Hangup() >> >> See what I'm doing here? I'm using a little fiddle to allow the caller >> to stop listening to music on hold. And it works..... the gH means >> that the caller can hang up the remote end. Great! >> >> BUT.... I have a large dialplan, and something, somehow, somewhere, is >> messing with "Disconnect Call". >> >> Because once through, nothing, not even star, does anything. It's like >> the receiving end (dial-dest in the example above) has become deaf! >> >> I've turned on debug and verbose to level 9, and there's nothing. It >> connects, starts music on hold, and then just ignores everything. >> >> Anything else I can add to the dialplan to see what might be causing >> this? (I've also tried dumpchan, too). >> >> It USED to work, and some point in the last week, it stopped working. >> (But the test dialplan above works). Mind boggled! >> >> Just to double check, yes, it's all set OK >> >> features show >> Builtin Feature Default Current >> --------------- ------- ------- >> Pickup *8 *8 >> Blind Transfer # # >> Attended Transfer >> One Touch Monitor >> Disconnect Call * * >> > > Beware of local channel optimization. You are putting state on local > channels > that can optimize out. When the local channels optimize out they take the > state with them. > > In the dialplan above you are creating the channel chain below. > > PJSIP/caller --> Local/s at dial-test;1 -- Local/s at dial-test;2 --> > Local/s at dial-dest;1 -- Local/s at dial-dest;2 > > PJSIP/caller gets the L() duration and sounds put on it. > The Local/s at dial-test;1 gets the L() duration put on it. > The Local/s at dial-test;2 gets the H dial option put on it. > > There is a bridge connecting PJSIP/caller and Local/s at dial-test;1 > There is a bridge connecting Local/s at dial-test;2 and Local/s at dial-dest;1 > > When Local/s at dial-dest;2 executes Answer it will allow Local/s at dial-test;1 > and ;2 to > optimize out because both ends are in a bridge. Thus the H dial option will > disappear from > the channel chain. > > Richard > > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > Check out the new Asterisk community forum at: > https://community.asterisk.org/ > > New to Asterisk? Start here: > https://wiki.asterisk.org/wiki/display/AST/Getting+Started > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users
Possibly Parallel Threads
- What could be stopping "Disconnect Call" feature from working (set in features.txt)
- Match one OR two digit extension not working as expected without using "dangerous" _. pattern (Ast 14)
- Using CentOS 7 to attempt recovery of failed disk
- Dialing a call back out on same SIP trunk as it came in
- call announce? in MeetMe?