Finish ChanSpy() when channel spied hangs up

Home » Asterisk Users » Finish ChanSpy() when channel spied hangs up
Asterisk Users 6 Comments

As you know, this app allows you to to listen the audio from another Asterisk channel, both, outgoing and incoming audio from the given channel. S specificitying a chanprefix parameter lets you spy only on channels whose name starts with this string.

The syntax is the following:

ChanSpy(chanprefix,options)

The E option allows you to exit when the spied channel hangs up

6 thoughts on - Finish ChanSpy() when channel spied hangs up

  • Here’s my dialplan…

    [default]

    exten => _X.,1,System(echo -e “Channel: SIP/519912@SOFTSWITCH\nContext:
    spy\nExtension: 23\nSet:SPYCHANNEL=${CHANNEL}” > /tmp/${UNIQUEID}.call)
    exten => _X.,n,System(mv /tmp/${UNIQUEID}.call
    /var/spool/asterisk/outgoing/)
    exten => _X.,n,Dial(SIP/${EXTEN}@SOFTSWITCH)

    [spy]
    exten => s,1,Answer
    exten => s,2,Chanspy(${SPYCHANNEL}|q)
    exten => s,3,Hangup

    A call to B
    and C (519912) is called by Asterisk to spy the call.

    Whe the A-B conversation over, C continue connected to Asterisk, I need
    Asterisk hangs up this call.

    In my case C is another machine that records the call and can´t hang up
    when A-B has finished because it doesn’t know.

    I don’t know if i’m clear

  • I need call to C every time that A call to B, but when A-B hangs up i need
    to hang up Asterisk-C call too.

    Anyboby know another solution?

  • What you want to do is complicated with Asterisk. Your best solution may be to write an application to monitor active calls via the Asterisk Manager interface.

  • I had submitted a patch some time ago to add option s to chanspy. This would cause chanspy to exit once the specified change was not longer there. I do not know if it ever got into a released version as I use ABE. It was not in 1.6 but might be in 1.8.

  • Yes, Asterisk 1.8.10.0, chanspy have the option ‘E’, which terminate the
    function when the call hangs.
    Thanks to all.