我是twilio api的新人。在我正在处理的Web应用程序中,我必须检查调用是否完成,我发送wav文件到twiml。如果完成,我必须扣除用户的信用..我正在使用以下代码......
callMeAction
$AccountSid = "**********************";
$AuthToken = "***************";
/* Your Twilio Number or an Outgoing Caller ID you have previously validated
with Twilio */
$from = '**************';
/* Number you wish to call */
$to = $_POST['contactno'];
/* Directory location for callback.php file (for use in REST URL) */
$url = 'http://'.$_SERVER['HTTP_HOST'].'/public/';
/* Instantiate a new Twilio Rest Client */
$client = new Services_Twilio($AccountSid, $AuthToken);
/* make Twilio REST request to initiate outgoing call */
$call = $client->account->calls->create($from, $to, $url . 'callback.php?number=' . $_POST['contactno'] . '&wav=' . $_POST['wav']);
/* redirect back to the main page with CallSid */
$msg = urlencode("Connecting... " . $call->sid);
//header("Location: index.php?msg=$msg");
$this->view->msg = $msg;
if($call->status == 'COMPLETED'){
/*
* Deduct credit if call completed
*/
$this->view->msg = $msg;
}
callback.php
<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<?php if($_REQUEST['wav']){ ?>
<Response>
<Say>A customer at the number <?php echo $_REQUEST['number']?> is calling</Say>
<Dial><?php echo $_REQUEST['number']?></Dial>
<Play><?php echo $_REQUEST['wav'] ;?></Play>
</Response>
<?php } ?>
请帮帮我... 提前致谢。 :)
答案 0 :(得分:4)
设置StatusCallback (docs halfway down this page)的网址,并将收费逻辑放入该脚本中。
在创建调用时传递StatusCallback URL,您应该能够将可选参数数组作为第4个参数传递给:$client->account->calls->create()
。
对于传入呼叫,(可选)为每个号码(或应用程序,如果您使用该方法)定义URL。
答案 1 :(得分:3)
如果您通过REST界面拨打电话,则需要指定status callback in the request parameters。
此外,该回调将是异步的,因此您不能像在示例中那样等待调用函数中的结果。您需要在回调中进行信用管理。
答案 2 :(得分:0)
您可以在状态回调页面或功能中调用响应后,在代码中设置statuscallback url。
此回调网址在localhost中不起作用。对于测试,您应该在检查它是否适合您之后在00webhost中部署项目。
有关详细信息,请阅读twilio文档。