用云通讯做双向回拨的测试

route211 2014-07-22 09:44:09
好久没关注云通讯开发了,前段时间做了个回拨卡的测试,正好这回拿出来和大家分享下。
这里选用PHP作为开发环境,将向大家介绍一下,如果用云通讯做双向回拨卡如何实现。提供最基础的业务代码,其余部分将通过简述的方式告诉大家如何去做。首先要做的当然还是申请自己的账户啦,这种类型文章很多就不细述了,假设我们已经申请好了自己的应用并配置好。

我自己的服务器上需要上传如下的一段PHP代码
<?php
// 拼接请求包体//填入相应的值即可,这是老早以前的代码了,我看最近的更新貌似把subAccountSid 和 voipAccount都去掉了 只要from和to 以及显号customerSerNum和fromSerNum 后两项是选填的。//URL里的f和t对应拨叫和被叫号如果要做回拨卡,把这两个参数配置到用户的请求上即可。//之前是要给号码前加0086的 现在新的逻辑不知道还需要不$body= "<CallBack>
<subAccountSid>子账号</subAccountSid>
<voipAccount>VOIP的账号</voipAccount>
<from>0086".$_GET["f"]."</from>
<to>0086".$_GET["t"]."</to>
</CallBack>";
// 大写的sig参数
$val = "子账号"."账户授权令牌 就是那个TOKEN".date("YmdHis",time());
$sig = strtoupper(md5($val));
// 生成请求URL
$url="h体体ps://sandboxapp.cloopen.com:8883/2013-12-26/SubAccounts/子账号/Calls/Callback?sig=$sig";
// 生成授权:子账户Id + 英文冒号 + 时间戳。
$authen=base64_encode("子账号:".date("YmdHis",time()));
// 生成包头
$header = array("Accept:application/xml","Content-Type:application/xml;charset=utf-8","Authorization:$authen");
function curl_post($url,$data,$header,$post=1)
{
//初始化curl//首先确定你服务器PHP配置了curl
$ch = curl_init();
//参数设置 //用SSL方式请求
$res= curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, $post);
if( $post)
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
$result = curl_exec ($ch);
//连接失败
if($result == FALSE){
print curl_error($ch);
}
curl_close($ch);
return $result;
}//如果没有其他错误 一般等一会 两个号码就能接到一个中继号打来的电话了
echo curl_post($url,$body,$header);
?>

通过上面的代码就能实现简单的回拨了,在你的浏览器输入你服务器上这个文件的URL,并加上GET变量t和f的两个手机号,没有报错,并接到电话。第一步就已经成功了。
还有一点,默认申请好账号是没有子账户的,需要用API来申请 请查看创建子账户文档

作为一个回拨卡,剩下的就是用户用什么样的方式提供他的卡号密码,然后通过上面代码的逻辑拨通用户所需求的电话。一般可以做一个手机网站,用户手机登录这个页面验证后激发拨叫逻辑。还有个更简单的,就是直接利用云通讯的短信服务,用户通过向他的手机号充值,发送所需拨打号码短信到我们的短信端口,服务端根据短信拨通相应号码,并实时计费。
不过有一个问题,就是当用户余额不足时,如何挂断用户。正常情况下可以通过呼叫结果查询来实现用户的扣费,但是如果用户欠费后,暂时还没想到合适的强行挂断的方法。这是当时我碰到的一个问题,不知道最近解决这个了没。

云通讯在通讯方面做得确实很用心,因为工作关系,很久没关注云通讯,这次回来发现变化好大,REST API也修改的更明了,希望云通讯越做越大。赞一个
文章写得比较急,没有面面俱到,如有疑问可以跟帖啊 .
...全文
432 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cx_mdzlhnb 2014-07-29
  • 打赏
  • 举报
回复

2,245

社区成员

发帖
与我相关
我的任务
社区描述
OpenAPI
社区管理员
  • OpenAPI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧