我正在使用"显示器"用于记录完整呼叫的命令。这很有效,但只有当用户完成整个调用流程时才会这样。随着呼叫的进行,我尝试监控录制的文件大小。呼叫开始后,文件大小开始增加(" in"" out"两侧)。但是,如果用户在呼叫过程中过早挂断,则到目前为止记录的任何内容都会被莫名其妙地丢弃,并且存根(44字节)留在其位置。任何有关此行为发生原因的见解将不胜感激。
我正在从我在下面的extensions.conf文件中使用的拨号方案中复制一个片段:
exten => 7611,1,Answer()
exten => 7611,n,Playback(/var/lib/asterisk/sounds/custom/transferring_with_record_wa rning)
exten => 7611,n,Set(GROUP()=outgoing)
exten => 7611,n,NoOp(The current group count : ${GROUP_COUNT(outgoing)})
exten => 7611,n,GotoIf($[${GROUP_COUNT(outgoing)}>1]?15)
exten => 7611,n,Set(GLOBAL(current_timestamp_7611)=${STRFTIME(${EPOCH},GMT+1,%s)})
exten => 7611,n,Set(GLOBAL(current_full_format_timestamp_7611)=${STRFTIME(${EPOCH},G MT-8,%d%m%Y_%H%M%S)})
exten => 7611,n,NoOp(The current timestamp : ${current_timestamp_7611})
exten => 7611,n,NoOp(The last timestamp : ${last_timestamp_7611})
exten => 7611,n,GotoIf($[(${last_timestamp_7611}+20>${current_timestamp_7611})]?15)
exten => 7611,n,NoOp(All cases passed)
exten => 7611,n,Ringing()
exten => 7611,n,Wait(2)
exten => 7611,n,Monitor(wav,HALEF_audio_ext_7611_${current_full_format_timestamp_761 1})
exten => 7611,n,Dial(SIP/1200@JVXML97,,XgF(default^7611^14))
exten => 7611,n,Set(GLOBAL(last_timestamp_7611)=${STRFTIME(${EPOCH},GMT+1,%s)})
exten => 7611,n,Hangup()
exten => 7611,n,Ringing()
exten => 7611,n,Wait(2)
exten => 7611,n,Playback(/var/lib/asterisk/sounds/custom/busy_later)
exten => 7611,n,Wait(1)
exten => 7611,n,Hangup()
我理解"记录"命令有一个" k"挂起时保留录制文件的参数,但是我无法使用Monitor命令找到任何类似的功能。 (我使用"记录",但我想记录完整的呼叫(双工)并自动执行,无需任何用户输入要求。)
谢谢!
答案 0 :(得分:0)
使用MixMonitor命令。
检查您是否具有写文件所需的权限。
如果您不确定,请检查调试。
PS。使用diaplan WITH n,没有标签和转到EXACT优先级是非常糟糕的做法,可能导致难以捕获的错误。使用GLOBAL变量而不需要那么好的想法。