【问题标题】:Put an Asterisk SIP call on hold via AMI通过 AMI 暂停 Asterisk SIP 呼叫
【发布时间】:2014-02-25 03:51:26
【问题描述】:

我正在尝试通过 Asterisk 管理界面 (AMI) 暂停呼叫,并且我发现为了做到这一点,您需要有效地暂留呼叫。我遇到麻烦的地方是您放置和停车的第二个通道。

我尝试让 Channel2 具有扩展名 702,但这不起作用,因为它抱怨它不是一个频道(显然)。那么如何创建第二个频道呢?我要拨打另一个电话吗?

我的 features.conf 详细说明了停放电话:

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


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

我正在使用出色的 PAMI 库(用于 PHP 的 AMI):

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

【问题讨论】:

  • 发布 conf 文件的相关部分。
  • 我是通过 AMI 执行此操作的,所以只需将 [general] 发布在停靠详细信息所在的功能中吗?
  • 有你贴的代码吗?

标签: asterisk amazon-ami


【解决方案1】:

您似乎正在使用PAMI,您可能想在问题中提及这一点。

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

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

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

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.

【讨论】:

    【解决方案2】:

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

    为此,您将 Channel1 和 Channel2 设置为相同的东西。

    例子:

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

    不确定它是否正确,但它工作得很好(它让调用者处于等待状态)

    【讨论】:

    • Channel2 在超时发生时发挥作用。将超时设置为较低的值,然后观察会发生什么。
    • 那是公平的,那我怎么让那个客户搁置呢?
    • 我不明白你的问题。但是您要做的是将 Channel2: 设置为拨号字符串,以便它会在超时后回叫将其搁置的人,或者将超时设置得非常高,使其永远不会超时。
    • 当我最初尝试拨号字符串(这是我做的第一件事)时,它说它不是一个有效的频道(我使用了 SIP/1037)
    • 看来我错了,Channel2:确实需要成为另一个直播频道。它向 Channel2 宣布停车位:除了在超时时将其回调。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多