2011-06-20 14 views
2

私は、順次ダイヤルtwilioプログラムを構築するつもりです。これまでのところ、少しコードがあり、ちょっと立ち往生しています...私は何をしなければなりませんか、Twilioが数、その数は....その数はコール別の番号を拾うdoesntの場合は、配列内の次の番号を呼び出し拾うdoesntの場合twilio phpシーケンシャルダイヤル

<?php 
    require "twilio.php"; 

    // initiate response library 
    $response = new Response(); 

    header("content-type: text/xml"); 
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 


$PhoneNumbers= array('4167841543','6478704858'); 



$variableToCall=$PhoneNumbers[0]; 

    if(($_REQUEST['DialStatus'] == "busy" || $_REQUEST['DialCallStatus'] == "no-answer" || $_REQUEST['DialCallStatus'] == "failed" || $_REQUEST['DialCallStatus'] == "canceled")) { 

     $variableToCall=$PhoneNumbers[1]; 

    } 




?> 


<Response> 
<Dial> <?php echo $variableToCall ?> </Dial> 

</Response> 

答えて

2

あなたはWebサービス要求を送信するために、両方の必要Twilioを最大限に活用するには(REST )Twilioが通話データを投稿してさらなる指示(TwiML)を得るためのURLを提供します。

あなたはRESTで初期通話を行います。 http://www.twilio.com/docs/api/rest/making_calls。最初の呼び出しが完了するのを待つために後で呼び出す必要がある場合。その後、スクリプトは、最初の呼び出しが完了するのを待ってから別の呼び出しを作成する必要があります。 Twilioは実行中のスクリプトに投稿できないので、何らかの共有ストレージメカニズムを使用してコールのステータスを追跡する必要があります。

Twilioは、通話要求で指定したURLに投稿します。そのURLには共有ストレージの通話ステータスを更新するスクリプトがあります。他のスクリプトはステータスをチェックし、通話が完了するまで待機します。

0

さらに、アウトバウンド電話の発信についての詳細はthis example applicationをご覧ください。それはあなたが取る必要がある多くの手順を示しています。

1

あなたのユースケースを直接理解している場合、タイムアウトするまで1つの電話を呼び出し、次に別の番号をダイヤルし、最後にPHPコードの配列に格納している最後の番号を探します。

セッションでこれを行うことはできますが、calls-> createメソッドでcallback引数を使用すると、実装が簡単になると思います。たとえば、現在、そのように私たちのデフォルトの音声歓迎を参照するためにコールバックメソッドを使用します。

https://gist.github.com/1155487/919a93ed2ea9f5c8eb9f7cb75d99951f76430f2b

簡単な方法は、スクリプトの現在のインデックスを渡すためにあなた自身を参照するために第三のコールバックの引数を変更することになりますスクリプト:

https://gist.github.com/1155487/533223a4199dacc2dffff3bb5a6ceb107f94a697