2011-12-06 30 views
5

Tôi mới trong twilio api. Trong một ứng dụng web đang làm việc trên, tôi phải kiểm tra cuộc gọi hoàn thành hay không và tôi đang gửi tập tin wav để twiml. Nếu hoàn thành tôi phải trích tín dụng của người dùng .. tôi đang sử dụng đoạn mã sau ...Làm thế nào để biết trạng thái cuộc gọi twilio (đã hoàn thành hay không)

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

hãy giúp tôi. .. Cảm ơn trước. :)

Trả lời

4

Đặt URL cho StatusCallback (docs halfway down this page) và đặt logic phí của bạn trong tập lệnh đó.

Bạn chuyển URL StatusCallback khi tạo cuộc gọi, bạn sẽ có thể chuyển một mảng tham số tùy chọn làm đối số thứ tư tới: $client->account->calls->create().

Đối với các cuộc gọi đến, URL được (tùy chọn) được xác định cho mỗi số (hoặc ứng dụng, nếu bạn sử dụng phương pháp đó).

+0

Cảm ơn bạn đã trả lời. Tôi có các mã này nhưng không hoạt động. ; http : // myUrl POST Manoj

+3

không phải là một động từ TwiML hợp lệ. Cuộc gọi lại được chỉ định trong các tham số cấu hình của số điện thoại tương ứng (trong bảng điều khiển dành cho nhà phát triển của bạn tại twilio.com). Đọc qua liên kết tài liệu Tim đã gửi. – Greg

+0

Được cập nhật với hy vọng rõ ràng hơn một chút. –

3

Nếu bạn đang thực hiện cuộc gọi đi thông qua giao diện REST, bạn cần chỉ định status callback in the request parameters.

Hơn nữa, gọi lại đó sẽ không đồng bộ, do đó bạn không thể đợi kết quả trong chức năng gọi điện như bạn đang làm trong ví dụ của mình. Bạn sẽ cần phải quản lý tín dụng trong cuộc gọi lại.

0

Bạn nên đặt url trạng thái trở lại trong mã của mình sau khi bạn có thể nhận phản hồi gọi điện trong trang hoặc chức năng trạng thái của bạn.

Url gọi lại này sẽ không hoạt động trong máy chủ cục bộ. Đối với các thử nghiệm, bạn nên triển khai dự án của bạn trong 00webhost sau khi bạn có thể kiểm tra nó sẽ làm việc cho bạn.

Để biết thêm chi tiết Vui lòng đọc tài liệu twilio.

Các vấn đề liên quan