我设置了一个宏来记录分机上的入站呼叫:
[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 的出站录音(这就是这个问题的内容)。
我是否必须为这两个扩展编写单独的上下文?还是有其他方法?
提前谢谢。
您不能在同一频道上执行 2 个监视器。
要做你想做的事,你有 2 种变体
1)挂断时创建脚本,该脚本将复制文件(推荐方式)
2)通过本地/soemexte@somecontext/n拨号并在某个上下文中创建其他监视器。