2011-12-06 13 views
5

twilio apiの新機能です。 Webアプリケーションでは、私は完了したかどうかを確認する必要があり、私はtwimlにwavファイルを送信しています。完了した場合、私は、ユーザーの信用を控除しなければならない..私は次のコードを使用しています...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 } ?> 

私を助けてください。 .. ありがとうございます。 :)

答えて

4

StatusCallback (docs halfway down this page)のURLを設定し、そのスクリプトに請求ロジックを設定します。

コールを作成するときにStatusCallback URLを渡すと、オプションのパラメータの配列を第4引数として$client->account->calls->create()に渡すことができます。

着信コールの場合、URLは(オプションで)各番号(またはその方法を使用する場合はアプリケーション)に対して定義されます。

+0

返信いただきありがとうございます。 私はこれらのコードを持っていますが、動作しません。 <??[ 'WAV'] $ _REQUESTをエコーPHP;> のhttp:// myUrl POST Manoj

+3

ではありません有効なTwiML動詞。コールバックは、それぞれの電話番号の設定パラメータ(twilio.comの開発者ダッシュボード)で指定します。 Timが送った文書リンクを読む。 – Greg

+0

うまくいけば、もう少し明確に更新されました。 –

3

RESTインターフェイス経由で発信コールを行う場合は、status callback in the request parametersを指定する必要があります。

さらに、そのコールバックは非同期であるため、例のように呼び出し関数内の結果を待つことはできません。コールバックで与信管理を行う必要があります。

0

statuscallbackページまたは機能で呼び出し応答を取得できるようになった後で、コードにstatuscallback urlを設定する必要があります。

このコールバックURLはlocalhostでは機能しません。テストのために、それがあなたのために働くことを確認することができたら、00webhostにあなたのプロジェクトを展開するべきです。

詳細については、twilioのドキュメントをお読みください。

関連する問題