<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 28, 2018 at 4:08 PM, Jonathan H <span dir="ltr"><<a href="mailto:lardconcepts@gmail.com" target="_blank">lardconcepts@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Last question for today, I promise!<br>
<br>
The problem: In order to disconnect calls after x minutes, I need to do this:<br>
<br>
[setup]<br>
exten => setup,1,Answer()<br>
    same => n,Set(LIMIT_PLAYAUDIO_CALLER=<wbr>yes)<br>
    same => n,Set(LIMIT_WARNING_FILE=/var/<wbr>lib/asterisk/sounds/en_GB_TNS/<wbr>time_limit_reached)<br>
    same => n,Dial(Local/s@root/n,3,L(<wbr>3540000:60000))<br>
    same => n,Hangup()<br>
<br>
[root]<br>
exten => s,1,Verbose(1,Call to: ${CALLERID(name)} from: ${CALLERID(num)})<br>
same => n,Set(CHANNEL(hangup_handler_<wbr>push)=hdlr1,s,1)<br>
<br>
etc etc<br>
<br>
Works well, but the result is it looks like there are 2 active calls<br>
in the console. Is there any way of forcing the drop of a call after x<br>
minutes without doing this "double dialling" business?<br></blockquote><div><br></div><div>Heh.  This is similar to the example given describing local channel optimization [1] and</div><div> what happens to state information on those channels when local channels optimize out.</div><div><br></div><div>The "call" counter you mention from the CLI "core show channels" output is an</div><div> approximation and is not very accurate.  Asterisk has no concept of what a "call" is.</div><div>That counter simply counts the number of channels that started PBX's to execute</div><div> dialplan normal.  In your dialplan you have two channels that do this and thus two</div><div> "calls" are counted.</div><div><br></div><div>If you want to eliminate the "double dialing" business avoid using local channels.  Have your</div><div> incoming PJSIP channels call other PJSIP channels directly.  Or you can make it so the</div><div> local channels can optimize themselves out.  Remember you cannot have state information</div><div>stored on an optimizing local channel as that information goes away when the local</div><div>channels optimize out.</div><div><br></div><div>The Dial 'L' option currently puts state on the caller and called channels depending on which</div><div> features are configured (who hears things).  If you set the verbose level to 4 you get information</div><div>in the log about that.<br></div><div><br></div><div>Richard<br></div><div><br></div><div>[1] <a href="https://wiki.asterisk.org/wiki/display/AST/Local+Channel+Optimization">https://wiki.asterisk.org/wiki/display/AST/Local+Channel+Optimization</a></div><br></div></div></div>