通过AMI暂停Asterisk SIP呼叫

时间:2014-02-25 03:51:26

标签: asterisk ami

我试图通过Asterisk管理界面(AMI)暂停通话,我已经知道为了做到这一点,你需要有效地暂停通话。我遇到麻烦的地方是您放入和停放的第二个通道。

我尝试将Channel2设置为扩展702,但这不起作用,因为它抱怨它不是一个频道(显然)。那么我该如何创建第二个频道呢?我是否会发起另一个电话?

我的features.conf详细介绍了parkedcalls:

[general]
parkext => 700          
parkpos => 701-720      


context => parkedcalls      
;parkinghints = no      
;parkingtime => 45  

我正在使用优秀的PAMI库(AMI for PHP):

$parkMsg = new ParkAction($_REQUEST['channel'],'702');//Getting channel is the original call chan, 702 is my misguided attempt at parking
$results = $pamiClient->send($parkMsg); 

2 个答案:

答案 0 :(得分:3)

看起来你正在使用PAMI,你可能想在你的问题中提及。

您可能希望查看您正在使用的AMI命令的文档,即here

channel2是宣布停车位的通道,如果超时,则发送停靠的呼叫。它需要是另一个直播频道。

以下是此命令的星号帮助以供参考:

CLI> manager show command Park
Action: Park
Synopsis: Park a channel
Privilege: call,all
Description: Park a channel.
Variables: (Names marked with * are required)
    *Channel: Channel name to park
    *Channel2: Channel to announce park info to (and return to if timeout)
    Timeout: Number of milliseconds to wait before callback.

答案 1 :(得分:0)

我已经明白了,解决方案比我想象的要简单得多。

要做到这一点,你将Park1与Channel1和Channel2设置为相同的东西。

示例:

Action: Park
Channel: SIP/1037-0000bb4a
Channel2: SIP/1037-0000bb4a

不确定它是否正确,但它运行良好(它会将呼叫者置于保持状态)