我已按照此线程中的说明进行操作:Asterisk AMI-picking call。但是,我仍然无法通过 AMI 接听电话。我可以拨打分机,但该分机对应的电话不响。然后我可以运行 AMI 命令来接听该呼叫,它确实接听了,但显然没有任何实际响应。
拨号方案(使用分机 116 进行测试):
exten => 116,1,AGI(agi:async)
有什么想法我在这里做错了吗?
我已按照此线程中的说明进行操作:Asterisk AMI-picking call。但是,我仍然无法通过 AMI 接听电话。我可以拨打分机,但该分机对应的电话不响。然后我可以运行 AMI 命令来接听该呼叫,它确实接听了,但显然没有任何实际响应。
拨号方案(使用分机 116 进行测试):
exten => 116,1,AGI(agi:async)
有什么想法我在这里做错了吗?
找到了答案。对于那些想用 API Manager 回答的人,您可以使用以下内容 -
http://ip-address:port/asterisk/rawman?action=Originate&Channel=Local/(exten you want to answer with)@(context)&Application=Exec&Data=Pickup((exten you want to answer with)@PICKUPMARK)
我当然使用 http 来发送我的请求,如果您使用其他东西,则需要更改格式。
或者你可以使用 bridge 命令。当您从一个分机向另一个分机拨打电话时,将创建两个通道,桥接这些通道,您将拥有比代答更好的整体功能。
利用
exten => 116,1,Answer
exten => 116,2,AGI(agi:async)
或通过 ami 使用 Answer 动作。
http://www.voip-info.org/wiki/view/Asterisk+manager+API
当在同一频道上看到 agi-async 事件问题答案时,您需要监听事件。例如,您可以使用答案执行播放命令。
很可能你需要从 AGI 接口开始,这更容易理解。不使用 agi:async,它需要了解星号内部。