Twilio REST APIシーケンシャル呼び出しは可能ですか?
質問
レストAPIとTWIMLアプリをしばらく書いた後、REST APIでシーケンシャルダイヤルアプリを作成しようとしていましたが、多くのエラーや問題の後、私は困惑しています。 Twimlでシーケンシャルダイヤリングアプリを作成しましたが、同じアプリをRESTで書くのは地獄です。
私がREST APIでやろうとしているのは、このプログラムを作成することです。このプログラムでは、人が人のリストを持っている人、人はSMSをTwilio番号に送りたいと考えています。そのうちの1人が拾うまで。プロセスは次のようになります:
1) Person A text's Twilio number
2) Twilio gathers its array of phone numbers of persons B C D E F G H I J K
3) Twilio's REST api calls person B
4) Person B does **NOT** pick up (busy or doesn't pick up so answering machine) so then REST api calls person C next
5) Person C does **NOT** pick up (busy or doesn't pick up so answering machine) so then the REST api calls person D
6) Person D **DOES** pick up and twilio **reads the SMS sent by person A and then hangs up**
7) application ends, so person E F G H I J K are not called because one person picked up so **not everyone** had to be called
私はREST APIでこれを作成しようとしていますが、何時間も試してみました...私の唯一の質問は次のとおりです。 REST API?もしそうなら?
SMS Twilioでアプリを作成することができました。TwilioはREST APIでコールバックし、SMSを読みますが、シーケンシャルダイヤルは非常に異なります...
私はTwilioのスタッフと話をしてみましたが、他に何をすべきかわからないので、シーケンシャルの呼び出しを作る方法を理解することができませんでした....私はStatusCallbackなどを使ってみましたが、今は私は今ですアイデアから。
解決
はい、それは可能です。
これが必要なことの大まかなアウトラインです:
SMSスクリプト
これは、Twilio番号のSMSを指摘するものです。それはにかかるはずです Body
パラメーターとそれをデータベースに保存します(何らかの形で複数のリクエストでこれを維持する必要があるため)。また、呼び出しが必要な番号のリストを取得する必要があります(おそらくデータベースまたは共通の構成ファイルから)。
ボディが保存されると、SMSスクリプトは、「リダイアルスクリプト」を使用して、リストの最初の番号への呼び出しを開始する必要があります。 StatusCallback
, 、および「メッセージ」スクリプト Url
.
追加します id
のパラメーター StatusCallback
そしてその Url
(クエリ文字列を使用すると問題ありません)。したがって、これらのスクリプトは、再生されるべきメッセージを識別できます。
リダイアルスクリプト
これはリストを介して作業することを処理します、それは CallStatus
通話が応答されたかどうかを確認します。もしそうなら、単に終了します。そうでない場合、それは数字のリストを介して動作します(繰り返しますが、データベースまたは一般的な構成ファイルから引っ張られます) To
リスト内のnubmerへのパラメーター。
その一致が行われたら、スクリプトは 次 リストの番号、再び「redialスクリプト」を使用して StatusCallback
, 、および「メッセージ」スクリプト Url
メッセージを渡します id
両方のスクリプトにパラメーターとして。
メッセージスクリプト
これは、コールが応答されたときにTwilioが要求するスクリプトであり、単に id
パラメーターは、データベースからメッセージを引いて読み取ります。
データベースの使用はそうではないことに注意してください 必要 IDの代わりに完全なメッセージを渡すことができます。メッセージスクリプトをaに置き換えることもできます ツイムレット.