1

我正在调整简单的应用程序,除其他外,它应该能够使用 Asterisk AMI Originate 命令呼叫另一方。

我被卡住了,我相信我的起源命令是错误的。

当我使用普通手机时,我在哪里/如何查看 Asterisk 创建的 Originate 命令日志,以便将其与我手工制作的手机进行比较?

4

1 回答 1

2

使用网络嗅探器,例如tcpdumpwireshark,并捕获进出 asterisk 的数据包。默认情况下,它使用 5038/tcp。检查您的manager.conf文件,并查找bindaddr端口选项以确保您捕获正确的流量。

如果您使用的是 ssl (sslenable=yes),那么您必须使用您的 ssl 密钥配置 wireshark,以便它可以解密流量或仅使用普通 tcp(无 ssl)进行调试,然后切换到 ssl。

您应该看到Action: Originate进入星号,以及星号响应和相关事件。查找操作的ActionID参数,以便您可以跟踪与每个发出的操作对应的响应和事件。

考虑到异步发起(async:true)将在星号收到操作后立即返回响应,但随后它将发送异步事件以通知调用状态(一旦完成)。另一方面,当使用 async: false 时,将发出调用并且响应将具有状态。

有关发起操作的更多资源:

与异步参数有关的另一个问题: Asterisk origin response says succeeded queued but no more

希望能帮助到你!

编辑:Asterisk 不会创建发起命令,但会根据传入的发起操作或调用文件拨打目标(通道) ,因此您的应用程序(ami 客户端)将发出发起操作,然后星号将对它做出反应通过打电话。如果您的呼叫来自电话,则呼叫更有可能是由dialplan中的dial()命令发起的。

于 2012-06-29T20:53:16.923 回答