-1

如我所见,我可以使用 Asterisk cmd monitor 来录制通话,然后使用 ControlPlayback 播放录制的文件。并且默认的基本名称是在频道名称加上一个数字上构造的,所以我怎样才能播放最后一次通话?例如:我有 3 个通话,通话 1,通话 2,通话 3,频道是 111,那么我如何才能获得最后通话的名称(通话 3)来播放?

4

1 回答 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 回答