如我所见,我可以使用 Asterisk cmd monitor 来录制通话,然后使用 ControlPlayback 播放录制的文件。并且默认的基本名称是在频道名称加上一个数字上构造的,所以我怎样才能播放最后一次通话?例如:我有 3 个通话,通话 1,通话 2,通话 3,频道是 111,那么我如何才能获得最后通话的名称(通话 3)来播放?
问问题
506 次
1 回答
0
一种简单的方法是使用全局变量来存储记录的文件名。
[call]
exten => s,1,Answer()
exten => s,n,MixMonitor(${UNIQUEID}.wav)
exten => s,n,Set(GLOBAL(lastcall)=${UNIQUEID})
exten => s,n,Dial(...)
[listen]
exten => s,1,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(${GLOBAL(lastcall)}.wav)
要阅读有关 GLOBAL() 函数的更多信息:
asterisk*CLI> core show function GLOBAL
-= Info about function 'GLOBAL' =-
[Synopsis]
Gets or sets the global variable specified.
[Description]
Set or get the value of a global variable specified in <varname>
[Syntax]
GLOBAL(varname)
于 2017-04-18T13:24:38.070 回答