質問

私はTwilio APIに新しくなっています。取り組んでいるWebアプリケーションでは、Callが完了したかどうかを確認する必要があります。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 } ?>

助けてください...事前に感謝します。 :)

役に立ちましたか?

解決

のURLを設定します StatusCallback(このページの途中でドキュメント), 、そしてそのスクリプトに充電ロジックを入れます。

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

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

他のヒント

RESTインターフェイスを介してアウトバウンドコールを行っている場合は、 リクエストパラメーターのステータスコールバック.

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

StatusCallbackページまたは関数で呼び出しの応答を取得できた後、コードでStatusCallback URLを設定する必要があります。

このコールバックURLは、LocalHostでは機能しません。テストについては、プロジェクトがあなたのために動作することを確認した後、00WebHostにプロジェクトを展開する必要があります。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top