Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP脚本注册SIP_Php_Sip_Voip_Sip Server - Fatal编程技术网

从PHP脚本注册SIP

从PHP脚本注册SIP,php,sip,voip,sip-server,Php,Sip,Voip,Sip Server,目标:使用LAMP服务器注册为SIP服务器,并将端点注册到SIP服务器 原因:在某个特定分机与PHP CRM交互时拦截该分机的电话呼叫 SIP服务器没有使用星号,因为必须使其具有足够的通用性来处理任何SIP服务 我正在使用一个方便的软件包,尽管在这个特定的软件包上没有太多的示例或支持 我的代码是: $api1 = new PhpSIP('x.x.x.x'); //My Servers public IP $api1->setMethod('REGISTER'); $api1-&

目标:使用LAMP服务器注册为SIP服务器,并将端点注册到SIP服务器

原因:在某个特定分机与PHP CRM交互时拦截该分机的电话呼叫

SIP服务器没有使用星号,因为必须使其具有足够的通用性来处理任何SIP服务

我正在使用一个方便的软件包,尽管在这个特定的软件包上没有太多的示例或支持

我的代码是:

  $api1 = new PhpSIP('x.x.x.x'); //My Servers public IP
  $api1->setMethod('REGISTER');
  $api1->setFrom('sip:111@my-dns.com');
  $api1->setUri('sip:111@sip-server.com');

  $api1->setUsername('12345');
  $api1->setPassword('abc123');
  $res = $api1->send(); 
代码执行成功,创建一个套接字(和一个锁文件),绑定到一个端口,并假设向SIP服务器发送一个UDP数据包。。。尽管如此,当我运行
tcpdump
时,我没有看到任何UDP数据包到达目标服务器的端口5060或5061

代码将运行10秒钟,同时等待SIP服务器的回复,因为它应该返回404响应。但从来没有

当然,我还禁用了防火墙

有没有人有使用PHP注册SIP端点的经验


有更好的方法吗?

我的建议是添加一个try…catch,看看在你的日常生活中会发生什么

try {
  $api1 = new PhpSIP('x.x.x.x'); //My Servers public IP
  $api1->setMethod('REGISTER');
  $api1->setFrom('sip:111@my-dns.com');
  $api1->setUri('sip:111@sip-server.com');

  $api1->setUsername('12345');
  $api1->setPassword('abc123');
  $res = $api1->send();

  echo "res: $res\n";

} catch (Exception $e) {

  echo $e->getMessage()."\n"; } 

但是,如果您使用的是SIP电话,另一个解决方案是尝试使用动作URL/活动URI。这里有一个很好的方法来了解如何使用它们

结果是,
@sip server.com
实际上不是一个活动的sip服务器

它更像是需要ping的
@sip.sip server.com
,一旦发生了变化,一切都按预期进行


谢谢。

谢谢。很抱歉,我有一个try-catch块包装,我只是没有包括它。我设法弄明白了——噢——这是个愚蠢的错误。