向 Asterisk Call Manager 发送操作

send action to Asterisk Call Manager

我正在尝试制作一个检查脚本来检查 IP asterisk 是否有 Asterisk Call Manager。

我是通过制作 php 脚本并使用 curl 完成的 - 结果和响应是

Asterisk Call Manager/1.3
Response: Error
Message: Missing action in request

目前还不错,符合预期。

另一个预期是我应该像消息说的那样在请求中发送操作。那么我怎样才能发送这样的动作:

action: login
user:admin
secret:admin

我强烈建议你使用已经编写好的库

对于 php 即 phpagi 库。

http://phpagi.sourceforge.net/

在此示例中,您不遵守协议。协议说必须采取行动。

http://www.voip-info.org/wiki/view/Asterisk+manager+API

我在 php 中构建了一个 click 2 调用脚本,它可以工作,但我无法找到要沿着调用文件发送到 AMI 的变量,该变量应该在特定时间后断开调用。即我想将 5 分钟设置为最大 window 以进行任何呼叫,如果呼叫仍在星号上,则应断开呼叫。

我的代码是:我正在寻找一个与套接字一起添加的变量,如果长度超过 5 分钟,它可以断开呼叫。

$oSocket = fsockopen($strHost, 5038, $errnum, $errdesc) or die("Connection to host failed");
fputs($oSocket, "Action: login\r\n");
fputs($oSocket, "Events: off\r\n");
fputs($oSocket, "Username: $strUser\r\n");
fputs($oSocket, "Secret: $strSecret\r\n\r\n");
fputs($oSocket, "Action: originate\r\n");
fputs($oSocket, "Channel: $strChannel\r\n");
fputs($oSocket, "WaitTime: $strWaitTime\r\n");
fputs($oSocket, "CallerId: $strCallerId\r\n");
fputs($oSocket, "Exten: $strExten\r\n");
fputs($oSocket, "Context: $strContext\r\n");
fputs($oSocket, "Priority: 1\r\n\r\n");
fputs($oSocket, "Action: Logoff\r\n\r\n");
sleep(3);
fclose($oSocket);