我正在使用 Asterisk 18 和 ARI 的节点库。这个具体问题很简单:我的目标是创建一个频道,将其添加到一些参与者已经存在的现有桥接器中,然后拨打该频道。这样,桥接器中的参与者就可以听到呼叫的早期媒体,因为 ARI 在创建时将控制频道,而不是在频道只能在被应答后加入桥接器的情况下发起。
但是,我注意到,当我创建一个频道并拨打该频道时,被叫方拒绝了呼叫,这时出现了非常奇怪的行为。预期行为:触发 ChannelDestroyed 事件。实际行为:没有,Asterisk CLI 显示它收到了忙音响应,但事件未在 ARI 中触发。此外,当我尝试通过 ARI 删除频道时,它会响应“未找到频道”。
我不确定这里出了什么问题。
答案1
找到解决方案了!
我曾经wscat -c "ws://localhost:8088/ari/events?api_key=asterisk:asterisk&app=hello-world"
订阅显示所有事件,就像 Asterisk 网站上的 ARI 文档中那样。结果我需要订阅Dial
事件,它有一个显示进度的字段。