我正在调整简单的应用程序,除其他外应该能够使用Asterisk AMI Originate命令调用另一方。
我被困住了,我相信我的原始命令是错误的。
当我使用普通手机时,我在哪里/如何看到Asterisk创建的Originate命令的日志,以便将其与我手工制作的手机进行比较?
答案 0 :(得分:1)
使用网络嗅探器,例如tcpdump或wireshark,并捕获进出星号的数据包。默认情况下,它使用5038 / tcp。检查您的manager.conf文件,然后查找 bindaddr 和端口选项,以确保捕获正确的流量。
如果你正在使用ssl(sslenable = yes),那么你必须使用你的ssl密钥配置wireshark,这样它就可以解密流量或只是使用普通的tcp(没有ssl)进行调试,然后切换到ssl。 / p>
您应该看到操作:源头进入星号,星号响应和相关事件。查找操作的 ActionID 参数,以便跟踪哪些响应和事件对应于每个已发布的操作。
考虑到星号接收到操作后异步发起(async:true)将返回响应,但它会发送异步事件以通知呼叫状态(一旦完成)。另一方面,当使用async:false时,将调用该调用并且响应将具有状态。
关于原始行动的更多资源:
与async参数相关的另一个问题: Asterisk originate response says successfully queued but nothing more
希望它有所帮助!
编辑:Asterisk不会创建originate命令,但会根据传入的源操作拨打目标(频道),或call file,因此您的应用程序(ami客户端) )将发出原始动作,然后星号将通过拨打电话对其作出反应。如果您的通话来自手机,则更有可能通过dial()中的dialplan命令发起通话。