2013-07-24 2 views
7

私は非常に簡単な会議通話システムをセットアップしています。ここでは、ユーザーがPINを入力し、その会議に関連付けられています。私も部屋に入る前に彼らの名前を記録するように設定しています。すべての会議参加者に動詞を使用してください

録音URLを取得して参加者のリストを取得し、各発信者に「Now enter」との呼び出しを変更するREST API呼び出しを行い、録音URLを再生することです。それ以降も部屋に戻さなくてはならないと思う。確かではない。

私は、それぞれのコールを変更すると会議室から外に出ると思うのですが、これは理想的ではありません。 Say/PlayをREST APIに組み込まれた会議のすべてのメンバーに使用する簡単な方法はありますか?

答えて

8

Twilioフォーラムの誰かがthe very same questionに興味がありましたが、現在のところ、そのための直接的なREST API呼び出しがないという回答があります。

参加者が会議に参加するときは、you'll use the REST API to make Twilio dial back in to your applicationが必要です。自分のカンファレンスに電話をかけていることを検出する方法を選択できます(たとえば、アウトバウンドとインバウンドの電話番号を比較するなど)。それを検出すると、その電話に直接参加して、TwiML<Say><Play>の動詞を使用して、皆のために紹介を再生することができます。

少し畳み込まれていますが、この方法では、会議から各参加者を削除しておらず(お互いの聴聞会を瞬時に止めることはできません)、再び参加することはありません。


ここでは、エンドツーエンドの優れたソリューションに似せるべきものがあります。

まず、ユーザーがダイヤルインし、標準プロンプトを使用して会議室のPINとその名前を取得します。

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Gather action="/conference/pin" finishOnKey="#"> 
     <Say>Please the conference pin number followed by the pound key.</Say> 
    </Gather> 
</Response> 

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Say>Say your name and then press the pound key.</Say> 
    <Record action="/conference/name" finishOnKey="#" /> 
</Response> 

ここで、ユーザーのピンと録音を取得すると、次の2つのことが発生します。 /conference/nameへのポストからの応答が部屋にユーザーを配置し、<Conference>動詞が含まれています:

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Dial> 
    <Conference>{conference ID}</Conference> 
    </Dial> 
</Response> 

を...と、それへの非同期、それがバックに新しい通話を開始するためにREST APIを使用します。会議室。

POST /2010-04-01/Accounts/{AccountSid}/Calls 
From = {your conference phone number} 
To = {your conference phone number} 
SendDigits = wwww{conference PIN}# 
Url = /conference/announce?name={name ID} 

次に、次のビットが混乱します。 Twilioは、コールの着信側のコールバックURLと、コールの発信側のために上記で指定したURLと話します。着信コールハンドラは、会議回線が自分自身にコールバックして動作が異なることを検出する必要があります。最初に、コールの発信側が会議室のピンに入ることを可能にする単純なTwiMLで応答する必要があります。 POSTの

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Gather action="/conference/announce-pin" finishOnKey="#" /> 
</Response> 

SendDigitsパラメータはTwiMLのビットを期待している数字を提供します。そのアクションは、新しいコールで会議で応答する必要があります。

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Dial> 
    <Conference>{conference ID}</Conference> 
    </Dial> 
</Response> 

パズルの最後の部分は、POSTで指定したURLによって生成されたTwiMLです。これはループバックコールが会議に追加されると実行されるマークアップです。マークアップが実行されることを

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Play>/conference/name-recordings/{name ID}</Play> 
    <Say>has joined the call.</Say> 
    <Hangup /> 
</Response> 

は、会議室の中に発信者の名前とメッセージを再生した後、電話を切りました。

+0

私はあなたの解決策を考えようとしていますが、私は正確には従っていません。おそらく、特定のREST API呼び出しを参照したとします。 – Alex

+0

私は "/ 2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants"を使用して各callSidを取得し、それぞれの "/ 2010-04-01/Accounts/Play/Say TwiMLを持っている[AccountSid}/Calls/{CallSid} "と呼ばれています。私はこれが会議から参加者を削除すると仮定していますが、私はこれについては分かりません。 – Alex

+0

実際には、参加者は会議から削除されます。私はあなたのためにサンプルを作成することはできませんが、今日または明日後には、あなたのために全体のプロセスを概説することができます。 –

関連する問題