Any Way Of “flattening Out” 2 Channels Back Into One?

Home » Asterisk Users » Any Way Of “flattening Out” 2 Channels Back Into One?
Asterisk Users 3 Comments

Last question for today, I promise!

The problem: In order to disconnect calls after x minutes, I need to do this:

[setup]
exten => setup,1,Answer()
same => n,Set(LIMIT_PLAYAUDIO_CALLER=yes)
same => n,Set(LIMIT_WARNING_FILE=/var/lib/asterisk/sounds/en_GB_TNS/time_limit_reached)
same => n,Dial(Local/s@root/n,3,L(3540000:60000))
same => n,Hangup()

[root]
exten => s,1,Verbose(1,Call to: ${CALLERID(name)} from: ${CALLERID(num)})
same => n,Set(CHANNEL(hangup_handler_push)=hdlr1,s,1)

etc etc

Works well, but the result is it looks like there are 2 active calls in the console. Is there any way of forcing the drop of a call after x minutes without doing this “double dialling” business?

Thanks

3 thoughts on - Any Way Of “flattening Out” 2 Channels Back Into One?

  • TIMEOUT function:

    example

    same => n,Set(TIMEOUT(absolute)=600)

    after 600 seconds Asterisk Hankup the call

    Regards


    I’m SoCIaL, MayBe

  • Oh… I looked at that before, but I don’t see how to play a warning before the caller is disconnected with TIMEOUT?

  • Heh. This is similar to the example given describing local channel optimization [1] and what happens to state information on those channels when local channels optimize out.

    The “call” counter you mention from the CLI “core show channels” output is an approximation and is not very accurate. Asterisk has no concept of what a
    “call” is. That counter simply counts the number of channels that started PBX’s to execute dialplan normal. In your dialplan you have two channels that do this and thus two
    “calls” are counted.

    If you want to eliminate the “double dialing” business avoid using local channels. Have your incoming PJSIP channels call other PJSIP channels directly. Or you can make it so the local channels can optimize themselves out. Remember you cannot have state information stored on an optimizing local channel as that information goes away when the local channels optimize out.

    The Dial ‘L’ option currently puts state on the caller and called channels depending on which features are configured (who hears things). If you set the verbose level to 4 you get information in the log about that.

    Richard

    [1] https://wiki.asterisk.org/wiki/display/AST/Local+Channel+Optimization