Make Asterisk Do Something When An Outgoing Call Is Picked Up

Home » Asterisk Users » Make Asterisk Do Something When An Outgoing Call Is Picked Up
Asterisk Users 3 Comments

Hi,

how can I make asterisk do something when an outgoing call is picked up?

The background is that I would like to record incoming and outgoing phone calls. In order to do this, I need to play an announcement telling the person calling or being called that the call will be recorded.

Here’s what I’m trying to do:

call comes in:
if(I pick up) {
play announcement to caller;
start recording;
let me talk to the caller;
end recording when call ends;
send recording to my email account;
} else {
record voice mail;
}

call goes out:
if(call is picked up) {
play announcement to callee;
if(callee hangs up) {
end call;
} else {
start recording;
let me talk to callee;
end recording when call ends;
send recording to my email account;
}
} else {
call ends;
offer me to automatically call again later;
}

Please keep in mind that I’m new to asterisk and just got it to work. Searching for having asterisk do something when an outgoing call is picked up has been unsuccessful other than that I found out that you can have it make outgoing calls automatically to play pre-recorded messages:
So asterisk does have a way to detect when a call is picked up and a way of doing something when that happens.

What I have working so far is incoming and outgoing calls and voicemail for one phone/user, which is a basic set up I’m trying extend and improve now.

3 thoughts on - Make Asterisk Do Something When An Outgoing Call Is Picked Up

  • Thorsten Göllner writes:

    Thank you — I’m not sure what to do with these. I’ve been able to use Playback to play an announcement, and ChanSpy just looks complicated.

    What if I press a button on the phone while a call is going on? Can I
    somehow make it so that recording starts when I do that?


    Again we must be afraid of speaking of daemons for fear that daemons might swallow us. Finally, this fear has become reasonable.

  • Lee I recommend you use the MixMonitor application along with a combination of Playback to play your message to the Calling party and the A argument to Dial to play a file to the called party.

    So for your outbound calls:

    exten => _NXXXXXX,1,NoOP()
    same => n,MixMonitor(recording-${CDR(UNIQUEID)}.wav)
    same =>
    n,Playback(this-call-may-be-monitored-or-recorded,noanswer)
    same =>
    n,Dial(SIP/${EXTEN},A(this-call-may-be-monitored-or-recorded))

    While your inbound calls would look like

    exten => s,1,NoOP()
    same => n,Answer()
    same => n,MixMonitor(recording-${CDR(UNIQUEID)}.wav)
    same => n,Playback(this-call-may-be-monitored-or-recorded)
    same =>
    n,Dial(SIP/1001,Playback(this-call-may-be-monitored-or-recorded,))