我有一个宏设置来记录扩展程序上的入站呼叫:
[macro-DialStartMonitor]
; Calculate the time of the call from "epoch time", format it into yyyy-mm-dd and add the PhoneExt. at the end
exten => s,1,Set(MONITOR_FILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-FROM-${CALLERID(num)}-TO-${ARG1})
same => n,MixMonitor(${MONITOR_FILENAME}.wav,b)
exten => 1001,1,noop(Dialing ${PEX_ONE})
same => n,Macro(DialStartMonitor,${PEX_ONE})
same => n,Dial(SIP/${PEX_ONE},30,mTt)
same => n,Playback(vm-nobodyavail) ; Play "no one's available"
same => n,Hangup()
exten => 1002,1,noop(Dialing ${PEX_TWO})
same => n,Macro(DialStartMonitor,${PEX_TWO})
same => n,Dial(SIP/${PEX_TWO},30,mTt)
same => n,Playback(vm-nobodyavail) ; Play "no one's available"
same => n,Hangup()
因此,当我从 1002 拨打电话到 1001 时,录制内容将保存到/var/spool/asterisk/monitor
,格式如下“ 20140106 -122313-FROM-1002-TO-PExten1001.wav “
我需要记录源自1002的出站呼叫,因为它是自己的单独文件 - 也就是说,当从 1002 到 1001 进行呼叫时,有2个记录是制作,一个是1001的入站录音(这是上面的代码),一个是1002的出站录音(这就是这个问题)。
我是否必须为这两个扩展编写单独的上下文?还是有另一种方法吗?
提前致谢。
答案 0 :(得分:1)
您无法在SAME频道上执行2个监听。
做你想做的事,你有2个变种
1)在hangup上创建将复制文件的脚本(推荐方式)
2)通过Local / soemexte @ somecontext / n拨号,并在somecontext中创建另一个监听器。