Recording Calls

Home » Asterisk Users » Recording Calls
Asterisk Users 2 Comments

I am trying to record calls on demand both inbound and outbound calls. I can record outbound calls just fine but not inbound calls or calls from an internally between extensions. I am using the latest asterisk 1.8.x certified version.

On an outbound call I see:

== Using SIP RTP CoS mark 5
— Called SIP/ BVTrunk /7190000000
SIP/BVTrunk-00000163 is making progress passing it to SIP/1010-00000162
— SIP/BVTrunk-00000163 answered SIP/1010-00000162
— Feature Found: apprecord exten: apprecord
— Executing [s@macro-one-touch-record:1] ExecIf(“SIP/1010-00000162”, “0?Set(THISEXTEN=71900000000)”) in new stack
— Executing [s@macro-one-touch-record:2] ExecIf(“SIP/1010-00000162”, “1?Set(THISEXTEN=1010)”) in new stack
— Executing [s@macro-one-touch-record:3] ExecIf(“SIP/1010-00000162”, “0?MacroExit()”) in new stack
— Executing [s@macro-one-touch-record:4] GotoIf(“SIP/1010-00000162”, “0?stoprec”) in new stack
— Executing [s@macro-one-touch-record:5] GotoIf(“SIP/1010-00000162”, “0?stopped”) in new stack
— Executing [s@macro-one-touch-record:6] GotoIf(“SIP/1010-00000162”, “0?recording”) in new stack
— Executing [s@macro-one-touch-record:7] Set(“SIP/1010-00000162”, “MASTER_CHANNEL(ONETOUCH_REC)=RECORDING”) in new stack
— Executing [s@macro-one-touch-record:8] Set(“SIP/1010-00000162”, “MASTER_CHANNEL(REC_STATUS)=RECORDING”) in new stack
— Executing [s@macro-one-touch-record:9] Set(“SIP/1010-00000162”, “AUDIOHOOK_INHERIT(MixMonitor)=yes”) in new stack
— Executing [s@macro-one-touch-record:10] MixMonitor(“SIP/1010-00000162”, “2012/08/21/out-7190000000-1010-20120821-183119-1345595479.530.wav,a,”) in new stack
== Begin MixMonitor Recording SIP/1010-00000162
— Executing [s@macro-one-touch-record:11] Set(“SIP/1010-00000162”, “MON_FMT=wav”) in new stack
— Executing [s@macro-one-touch-record:12] Set(“SIP/1010-00000162”, “MASTER_CHANNEL(CDR(recordingfile))=out-7190000000-1010-20120821-183119-1345595479.530.wav”) in new stack
— Executing [s@macro-one-touch-record:13] Set(“SIP/1010-00000162”, “MASTER_CHANNEL(ONETOUCH_RECFILE)=out-7190000000-1010-20120821-183119-1345595479.530.wav”) in new stack
— Executing [s@macro-one-touch-record:14] Playback(“SIP/1010-00000162”, “beep”) in new stack
Playing ‘beep.ulaw’ (language ‘en’)
— Executing [s@macro-one-touch-record:15] MacroExit(“SIP/1010-00000162”, “”) in new stack
— Executing [h@macro-dialout-trunk:1] Macro(“SIP/1010-00000162”, “hangupcall,”) in new stack
— Executing [s@macro-hangupcall:1] GotoIf(“SIP/1010-00000162”, “1?theend”) in new stack
— Goto (macro-hangupcall,s,3)
— Executing [s@macro-hangupcall:3] ExecIf(“SIP/1010-00000162”, “1?Set(CDR(recordingfile)=out-7190000000-1010-20120821-183119-1345595479.530.wav)”) in new stack
— Executing [s@macro-hangupcall:4] Hangup(“SIP/1010-00000162”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/1010-00000162’ in macro ‘hangupcall’
== Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on ‘SIP/1010-00000162’
== Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on ‘SIP/1010-00000162’ in macro ‘dialout-trunk’
== Spawn extension (from-internal, 7190000000, 6) exited non-zero on ‘SIP/1010-00000162’
== MixMonitor close filestream
== End MixMonitor Recording SIP/1010-00000162
== Extension Changed 1010[ext-local] new state Idle for Notify User 1004

On inbound calls I see:

== Using SIP RTP CoS mark 5
— Called SIP/1010
— Connected line update to SIP/ BVTrunk -00000160 prevented.
== Extension Changed 1010[ext-local] new state Ringing for Notify User 1004
— SIP/1010-00000161 is ringing
— Connected line update to SIP/ BVTrunk -00000160 prevented.
— SIP/1010-00000161 answered SIP/ BVTrunk -00000160
== Extension Changed 1010[ext-local] new state InUse for Notify User 1004
— Executing [s@macro-auto-blkvm:1] Set(“SIP/1010-00000161”, “__MACRO_RESULT=”) in new stack
— Executing [s@macro-auto-blkvm:2] Macro(“SIP/1010-00000161”, “blkvm-clr,”) in new stack
— Executing [s@macro-blkvm-clr:1] Set(“SIP/1010-00000161”, “SHARED(BLKVM,SIP/BVTrunk-00000160)=”) in new stack
— Executing [s@macro-blkvm-clr:2] Set(“SIP/1010-00000161”, “GOSUB_RETVAL=”) in new stack
— Executing [s@macro-blkvm-clr:3] MacroExit(“SIP/1010-00000161”, “”) in new stack
— Executing [s@macro-auto-blkvm:3] ExecIf(“SIP/1010-00000161”, “0?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=1010)”) in new stack
— Executing [s@macro-auto-blkvm:4] ExecIf(“SIP/1010-00000161”, “0?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=Josh Hopkins)”) in new stack
— Feature Found: apprecord exten: apprecord
— Executing [s@macro-one-touch-record:1] ExecIf(“SIP/1010-00000161”, “0?Set(THISEXTEN=1010)”) in new stack
— Executing [s@macro-one-touch-record:2] ExecIf(“SIP/1010-00000161”, “1?Set(THISEXTEN=1010)”) in new stack
— Executing [s@macro-one-touch-record:3] ExecIf(“SIP/1010-00000161”, “1?MacroExit()”) in new stack
— Executing [h@macro-dial:1] Macro(“SIP/ BVTrunk -00000160”, “hangupcall”) in new stack
— Executing [s@macro-hangupcall:1] GotoIf(“SIP/ BVTrunk -00000160”, “1?theend”) in new stack
— Goto (macro-hangupcall,s,3)
— Executing [s@macro-hangupcall:3] ExecIf(“SIP/ BVTrunk -00000160”, “0?Set(CDR(recordingfile)=)”) in new stack
— Executing [s@macro-hangupcall:4] Hangup(“SIP/ BVTrunk -00000160”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/ BVTrunk -00000160’ in macro ‘hangupcall’
== Spawn extension (macro-dial, h, 1) exited non-zero on ‘SIP/ BVTrunk -00000160’
== Spawn extension (macro-dial, s, 7) exited non-zero on ‘SIP/BVTrunk-00000160’ in macro ‘dial’
== Spawn extension (from-did-direct, 1010, 21) exited non-zero on ‘SIP/BVTrunk-00000160’
== Extension Changed 1010[ext-local] new state Idle for Notify User 1004

2 thoughts on - Recording Calls

  • you need to provide dial plan for macro-one-touch-record.

    i think there is something which records outgoing only

  • Being new to asterisk I really don’t understand what I am looking at.

    [macro-one-touch-record]
    include => macro-one-touch-record-custom exten => s,1,ExecIf($[“${PICKUP_EXTEN}”!=””]?Set(THISEXTEN=${CUT(CALLFILENAME,-,2)}))
    exten => s,n,ExecIf($[“${THISEXTEN}”=””]?Set(THISEXTEN=${IF($[“${REALCALLERIDNUM}”=””]?${CUT(CALLFILENAME,-,2)}:${FROMEXTEN})}))
    exten => s,n,ExecIf($[“${CUT(CALLFILENAME,-,1)}”=”exten” & “${DB(AMPUSER/${THISEXTEN}/recording/ondemand)}”!=”enabled”]?MacroExit())
    exten => s,n,GotoIf($[“${MASTER_CHANNEL(ONETOUCH_REC)}”=”RECORDING”]?stoprec)
    exten => s,n,GotoIf($[“${MASTER_CHANNEL(REC_POLICY_MODE)}”=”never”]?stopped)
    exten => s,n,GotoIf($[“${MASTER_CHANNEL(ONETOUCH_REC)}”=”” & “${MASTER_CHANNEL(REC_STATUS)}”=”RECORDING”]?recording)
    exten => s,n,Set(MASTER_CHANNEL(ONETOUCH_REC)=RECORDING)
    exten => s,n,Set(MASTER_CHANNEL(REC_STATUS)=RECORDING)
    exten => s,n(mixmon),Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
    exten => s,n,MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT},a,${MIXMON_POST})
    exten => s,n,Set(MON_FMT=${IF($[${LEN(${MIXMON_FORMAT})}]?${MIXMON_FORMAT}:wav)})
    exten => s,n,Set(MASTER_CHANNEL(CDR(recordingfile))=${CALLFILENAME}.${MON_FMT})
    exten => s,n,Set(MASTER_CHANNEL(ONETOUCH_RECFILE)=${CALLFILENAME}.${MON_FMT})
    exten => s,n(recording),Playback(beep)
    exten => s,n,MacroExit()
    exten => s,n(stoprec),StopMixMonitor()
    exten => s,n,Set(MASTER_CHANNEL(ONETOUCH_REC)=PAUSED)
    exten => s,n,Set(MASTER_CHANNEL(REC_STATUS)=PAUSED)
    exten => s,n,ExecIf($[“${THISEXTEN}”=””]?Set(THISEXTEN=${IF($[“${REALCALLERIDNUM}”=””]?${DIALEDPEERNUMBER}:${FROMEXTEN})}))
    exten => s,n(stopped),Playback(beep&beep)
    exten => s,n,MacroExit()

    ;–== end of [macro-one-touch-record] ==–;

    From: asterisk-users-bounces@lists.digium.com [mailto:asterisk-users-bounces@lists.digium.com] I am trying to record calls on demand both inbound and outbound calls. I can record outbound calls just fine but not inbound calls or calls from an internally between extensions. I am using the latest asterisk 1.8.x certified version.

    On an outbound call I see:

    == Using SIP RTP CoS mark 5
    — Called SIP/ BVTrunk /7190000000
    — SIP/BVTrunk-00000163 is making progress passing it to SIP/1010-00000162
    — SIP/BVTrunk-00000163 answered SIP/1010-00000162
    — Feature Found: apprecord exten: apprecord
    — Executing [s@macro-one-touch-record:1] ExecIf(“SIP/1010-00000162”, “0?Set(THISEXTEN=71900000000)”) in new stack
    — Executing [s@macro-one-touch-record:2] ExecIf(“SIP/1010-00000162”, “1?Set(THISEXTEN=1010)”) in new stack
    — Executing [s@macro-one-touch-record:3] ExecIf(“SIP/1010-00000162”, “0?MacroExit()”) in new stack
    — Executing [s@macro-one-touch-record:4] GotoIf(“SIP/1010-00000162”, “0?stoprec”) in new stack
    — Executing [s@macro-one-touch-record:5] GotoIf(“SIP/1010-00000162”, “0?stopped”) in new stack
    — Executing [s@macro-one-touch-record:6] GotoIf(“SIP/1010-00000162”, “0?recording”) in new stack
    — Executing [s@macro-one-touch-record:7] Set(“SIP/1010-00000162”, “MASTER_CHANNEL(ONETOUCH_REC)=RECORDING”) in new stack
    — Executing [s@macro-one-touch-record:8] Set(“SIP/1010-00000162”, “MASTER_CHANNEL(REC_STATUS)=RECORDING”) in new stack
    — Executing [s@macro-one-touch-record:9] Set(“SIP/1010-00000162”, “AUDIOHOOK_INHERIT(MixMonitor)=yes”) in new stack
    — Executing [s@macro-one-touch-record:10] MixMonitor(“SIP/1010-00000162”, “2012/08/21/out-7190000000-1010-20120821-183119-1345595479.530.wav,a,”) in new stack
    == Begin MixMonitor Recording SIP/1010-00000162
    — Executing [s@macro-one-touch-record:11] Set(“SIP/1010-00000162”, “MON_FMT=wav”) in new stack
    — Executing [s@macro-one-touch-record:12] Set(“SIP/1010-00000162”, “MASTER_CHANNEL(CDR(recordingfile))=out-7190000000-1010-20120821-183119-1345595479.530.wav”) in new stack
    — Executing [s@macro-one-touch-record:13] Set(“SIP/1010-00000162”, “MASTER_CHANNEL(ONETOUCH_RECFILE)=out-7190000000-1010-20120821-183119-1345595479.530.wav”) in new stack
    — Executing [s@macro-one-touch-record:14] Playback(“SIP/1010-00000162”, “beep”) in new stack
    Playing ‘beep.ulaw’ (language ‘en’)
    — Executing [s@macro-one-touch-record:15] MacroExit(“SIP/1010-00000162”, “”) in new stack
    — Executing [h@macro-dialout-trunk:1] Macro(“SIP/1010-00000162”, “hangupcall,”) in new stack
    — Executing [s@macro-hangupcall:1] GotoIf(“SIP/1010-00000162”, “1?theend”) in new stack
    — Goto (macro-hangupcall,s,3)
    — Executing [s@macro-hangupcall:3] ExecIf(“SIP/1010-00000162”, “1?Set(CDR(recordingfile)=out-7190000000-1010-20120821-183119-1345595479.530.wav)”) in new stack
    — Executing [s@macro-hangupcall:4] Hangup(“SIP/1010-00000162”, “”) in new stack
    == Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/1010-00000162’ in macro ‘hangupcall’
    == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on ‘SIP/1010-00000162’
    == Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on ‘SIP/1010-00000162’ in macro ‘dialout-trunk’
    == Spawn extension (from-internal, 7190000000, 6) exited non-zero on ‘SIP/1010-00000162’
    == MixMonitor close filestream
    == End MixMonitor Recording SIP/1010-00000162
    == Extension Changed 1010[ext-local] new state Idle for Notify User 1004

    On inbound calls I see:

    == Using SIP RTP CoS mark 5
    — Called SIP/1010
    — Connected line update to SIP/ BVTrunk -00000160 prevented.
    == Extension Changed 1010[ext-local] new state Ringing for Notify User 1004
    — SIP/1010-00000161 is ringing
    — Connected line update to SIP/ BVTrunk -00000160 prevented.
    — SIP/1010-00000161 answered SIP/ BVTrunk -00000160
    == Extension Changed 1010[ext-local] new state InUse for Notify User 1004
    — Executing [s@macro-auto-blkvm:1] Set(“SIP/1010-00000161”, “__MACRO_RESULT=”) in new stack
    — Executing [s@macro-auto-blkvm:2] Macro(“SIP/1010-00000161”, “blkvm-clr,”) in new stack
    — Executing [s@macro-blkvm-clr:1] Set(“SIP/1010-00000161”, “SHARED(BLKVM,SIP/BVTrunk-00000160)=”) in new stack
    — Executing [s@macro-blkvm-clr:2] Set(“SIP/1010-00000161”, “GOSUB_RETVAL=”) in new stack
    — Executing [s@macro-blkvm-clr:3] MacroExit(“SIP/1010-00000161”, “”) in new stack
    — Executing [s@macro-auto-blkvm:3] ExecIf(“SIP/1010-00000161”, “0?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=1010)”) in new stack
    — Executing [s@macro-auto-blkvm:4] ExecIf(“SIP/1010-00000161”, “0?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=Josh Hopkins)”) in new stack
    — Feature Found: apprecord exten: apprecord
    — Executing [s@macro-one-touch-record:1] ExecIf(“SIP/1010-00000161”, “0?Set(THISEXTEN=1010)”) in new stack
    — Executing [s@macro-one-touch-record:2] ExecIf(“SIP/1010-00000161”, “1?Set(THISEXTEN=1010)”) in new stack
    — Executing [s@macro-one-touch-record:3] ExecIf(“SIP/1010-00000161”, “1?MacroExit()”) in new stack
    — Executing [h@macro-dial:1] Macro(“SIP/ BVTrunk -00000160”, “hangupcall”) in new stack
    — Executing [s@macro-hangupcall:1] GotoIf(“SIP/ BVTrunk -00000160”, “1?theend”) in new stack
    — Goto (macro-hangupcall,s,3)
    — Executing [s@macro-hangupcall:3] ExecIf(“SIP/ BVTrunk -00000160”, “0?Set(CDR(recordingfile)=)”) in new stack
    — Executing [s@macro-hangupcall:4] Hangup(“SIP/ BVTrunk -00000160”, “”) in new stack
    == Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/ BVTrunk -00000160’ in macro ‘hangupcall’
    == Spawn extension (macro-dial, h, 1) exited non-zero on ‘SIP/ BVTrunk -00000160’
    == Spawn extension (macro-dial, s, 7) exited non-zero on ‘SIP/BVTrunk-00000160’ in macro ‘dial’
    == Spawn extension (from-did-direct, 1010, 21) exited non-zero on ‘SIP/BVTrunk-00000160’
    == Extension Changed 1010[ext-local] new state Idle for Notify User 1004