1 Star 0 Fork 8

ythyty/PHP SIP

forked from flymotes/PHP SIP 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
run.php 2.42 KB
一键复制 编辑 原始数据 按行查看 历史
<?php
set_time_limit(600);
date_default_timezone_set('Asia/Shanghai');
header("Content-type: application/json; charset=utf-8");
require_once('PhpSIP.class.php');
function dtmfINFO($str){
global $api;
if (empty($str) || empty($api))
return;
$dtmfone = str_split($str);
foreach ($dtmfone as $one){
usleep(500000);
$res = $api->info("Signal=$one \r\nDuration=160 \r\n");
// echo $api->getCode()." return code \r\n";
}
}
function dtmfRFC($str){
global $api;
if (empty($str) || empty($api))
return;
$dtmfone = str_split($str);
foreach ($dtmfone as $one){
$res = $api->sendRTPDTMF($one);
usleep(20000);
}
}
try{
$api = new PhpSIP();
$api->setDebug(TRUE);//显示信令交互过程及程序内部信息
// $api->setUsername('8888'); // authentication username
// $api->setPassword('741741741'); // authentication password
$api->setUsername('200012'); // authentication username
$api->setPassword('8999'); // authentication password
// //// $api->setProxy('some_ip_here');
$api->addHeader('Event: resync');
$api->setMethod('INVITE');//准备发出invite请求
$api->setFrom('"07948111116" <sip:200012@117.21.29.8:280>');//设置sip的from信息,即主叫信息
$api->setUri('sip:11888@117.21.29.8:280');//设置要拨打的电话,拨出电话都需通过setUri,即被叫信息设置
$api->send();//开始拨打
//下面检查返回信息,200为正常应答,否则就没打通(invite方法会自动处理401和407的用户认证,listen方法最多检测5次回馈代码(这里检测代码code,也可以检测信令method),这里只要有一次200代码返回就认为成功)
$api->listen("200","code");
// if ($api->getCode()!="200")
// die("未正常处理请求,不能继续! 返回状态码:".$api->getCode());
// sleep(6);
// //---sip info -------------------
// dtmfINFO("15872933#");//输入按键串,用INFO带外传输方式发送dtmf信令
// sleep(11);
// dtmfINFO("791322141939506458#");
// //---rfc2833 -------------------
// $api->sendRTPDTMF(1);
// sleep(2);
// $api->sendRTPDTMF(1);
// sleep(2);
// $api->sendRTPDTMF(2);
// sleep(2);
// dtmfRFC("15872933#");//输入按键串,用RFC2833协议发送dtmf信息
// sleep(2);
// $api->sendRTPDTMF(1);
// sleep(2);
// $api->sendRTPDTMF(1);
// sleep(2);
// dtmfRFC("791322077857708457#");
$api->info("","BYE");//发送bye信令,挂断电话
} catch (Exception $e) {
echo $e;
}
?>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/ythyty/PHP-SIP.git
git@gitee.com:ythyty/PHP-SIP.git
ythyty
PHP-SIP
PHP SIP
master

搜索帮助