
Twilio是位于美国加州的一家科技公司,Twilio的程序接口支持网络开发者把拨打和接听电话以及收发文本信息的功能整合到他们的应用中。开发者编写不数不多的几行代码就可以构建简单的电话功能,并植入到他们的产品中。索尼等一些主要品牌厂商已经使用了这项使用。Twilio目前注册赠送 30$的试用话费,可以免费拨打美国1000分钟,也可以发送短信,3美分一条,但必需购买Twilio的美国虚拟号码(普通号码1$/月,TollFree号码2$/月)。Twilio主要面向开发者,所以应用Twilio首先得有一定的网站建设及程序设计基础。当然,LxVOIP在下面给出了详细的指导说明,相信你也能很快就能搭建自己的回拨平台。由于Twilio目前限于美国电话号码(说明上并没有限制国际长途,可能测试帐号限于美国号码),所以回拨平台也只是美国号与美国号之间的回拨。或许大家觉得Google Voice完全可以免费无限回拨美国,要用Twilio干什么呢?其实Twilio给我们提供了一个很好的应用接口,对于开发人员,你可以应用Twilio的API程序接口,实现自己的特定功能。
Twilio官方网址: www.Twilio.com
Twilio回拨平台的准备工作:
1.一个有试用话费的Twilio帐号(注册很简单,每个帐号都会赠送30美元)
2.一个支持curl的PHP空间(免费空间也是可以的)
3.下载Twilio回拨平台源代码(Twilio回拨平台PHP源代码下载)
准备完成之后,解压Twilio-php.rar,以记事本方式打开其中的makecall.php,修改$AccountSid、$AuthToken、$number、$url这四个参数。
- <?php
- require "lxvoiptwilio.php"; /* 示例代码这里文件名有错 */
- $outgoing = $_POST["caller"];
- /*LxVOIP Twilio REST API version */
- $ApiVersion = "2008-08-01";
- /* Set our AccountSid and AuthToken */
- /* 这两项是从你的账户里面拷贝出来,填写在此处,登录账户以后,很容易可以看到 */
- $AccountSid = "AC9d840b39cce56dd7dc956e410c6d1f1a";
- $AuthToken = "b0472a92a202876f5634542193e3e03c";
- /* Outgoing Caller ID you have previously validated with Twilio
- * 这个是注册在twilio上的电话号码。回拨的时候,首先被叫的一方显示这个号码
- */
- $number = '5672441595';
- /* Outgoing Number you wish to call
- * 这个填写你的虚拟号。就是回拨一旦触发,首先接通这个号码。
- */
- /* Directory location for callback.php file (for use in REST URL)
- * 下面这项url非常重要!!!必须将它改成你存放callback.php的空间地址!!!!
- *
- */
- $url = 'http://tel.lxvoip.net/clicktocall/';
- /* 下面的部分可以不用修改 */
- /* Instantiate a new Twilio Rest Client */
- $client = new TwilioRestClient($AccountSid, $AuthToken);
- if (!isset($_REQUEST['called'])) {
- $err = urlencode("Must specify your phone number");
- header("Location: index.php?msg=$err");
- die;
- }
- /* make Twilio REST request to initiate outgoing call */
- $response = $client->request("/$ApiVersion/Accounts/$AccountSid/Calls",
- "POST", array(
- "Caller" => $number,
- "Called" => $outgoing,
- "Url" => $url . 'callback.php?number=' . $_REQUEST['called']
- ));
- if($response->IsError) {
- $err = urlencode($response->ErrorMessage);
- header("Location: index.php?msg=$err");
- die;
- }
- /* redirect back to the main page with CallSid */
- $msg = urlencode("Connecting... ".$_REQUEST['called']);
- header("Location: index.php?msg=$msg");
- ?>