【发布时间】:2018-10-05 15:28:09
【问题描述】:
我用正确的登录名和密码尝试了多台服务器,但我没有得到任何响应。
$ports = array('5060','5061');
foreach($ports as $port){
$socket = fsockopen("71.170.105.118", $port, $errno, $errstr, 30);
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: XXX\r\n");
fputs($socket, "Secret: XXX\r\n\r\n");
fputs($socket, "Action: Command\r\n");
fputs($socket, "Command: sip show peers\r\n\r\n");
$wrets=fgets($socket,128);
echo $wrets."¦".$errno."¦".$errstr."\n";
}
我收到了这个回复:
¦0¦
¦0¦
我正在寻找确保凭据是否正确以执行我的下一个命令。
谢谢
【问题讨论】:
-
我对 SIP 一无所知,但这看起来很像 HTTP 请求,只是它缺少包含方法和请求的第一行。您设置了标头,但没有设置请求。一点谷歌搜索表明这是必要的,即使我必须进行更多搜索才能了解如何使用该协议。
-
google了很多次,我从这个来源获取了这段代码:voip-info.org/asterisk-manager-example-php
-
TCP 和 UDP 上的端口 5060 和 5061 都由 IANA 与会话发起协议 (SIP) 相关联。具体来说,端口 5060 分配给明文 SIP,端口 5061 分配给加密 SIP,也称为 SIP-TLS(SIP over a TLS,Transport Layer Security,加密通道)。不幸的是,标准的 TLS(SSL 的继任者)只能通过 TCP 建立。
-
这个 RFC tools.ietf.org/html/rfc3261 看起来像是在使用不同的协议
标签: php sip voip sip-server