如何知道twilio呼叫状态(是否完成)

问题描述:

我是twilio api中的新成员。在一个正在处理的Web应用程序中,我必须检查呼叫是否完成,并且发送wav文件到twiml。如果完成我必须扣除的用户信用..我用下面的代码...如何知道twilio呼叫状态(是否完成)

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 } ?> 

请帮助我。 .. 在此先感谢。 :)

设置StatusCallback (docs halfway down this page)的URL,并将您的收费逻辑放在该脚本中。

您在创建调用时传递StatusCallback URL,您应该能够将可选参数数组作为第四个参数传递给:$client->account->calls->create()

对于传入呼叫,URL(可选)为每个号码(或应用程序,如果使用该方法)定义。

+0

感谢您的回复。 我有这些代码,但它不工作。 ; HTTP :// myUrl StatusCallback> POST StatusCallbackMethod> Manoj

+3

不是一个有效的TwiML动词。该回调在相应电话号码的配置参数中指定(位于twilio.com的开发人员仪表板中)。阅读Tim发送的文档链接。 – Greg

+0

希望更清晰一点更新。 –

如果您通过REST界面进行外拨呼叫,则需要指定status callback in the request parameters

此外,该回调将是异步的,因此您不能等待调用函数中的结果,因为您在示例中正在执行此操作。您需要在回调中进行信用管理。

您应该在statuscallback页面或函数中调用响应后,在代码中设置statuscallback url。

此回调网址在localhost中不起作用。对于测试你应该在00webhost中部署你的项目后,你可以检查它会为你工作。

了解更多详情请阅读twilio文档。