2016-03-20 7 views
2

Ich habe zwei Benutzer und ich schloss sie beide in eine <Conference>.Twilio: programmatisch beitreten Konferenz und spielen <Say> Befehl oder <Play> Sound-Datei?

Ich hätte gerne einen Roboter beitreten die <Conference> und dann eine Ankündigung machen.

Es gibt zwei Ansätze Ich erwäge:

  1. jeder der Konferenz teilnehmen, leiten sie an einen TwiML, die einen Ton spielt, und sie dann in die Konferenz zurückbewegen.

  2. Erstelle einen Bot, der irgendwie der Konferenz beitritt und TwiML spielt, aber es ist nicht klar für mich, aus der Dokumentation, wie das geht.

Antwort

1

Twilio Entwickler Evangelist hier.

Beide Ansätze funktionieren, obwohl sie leicht unterschiedliche Auswirkungen haben. Redirecting wird die Konferenz unabhängig davon abschneiden, wer gerade spricht, aber ein Bot, der sich anmeldet, kann überredet werden. Es hängt davon ab, welche für Ihren Anwendungsfall besser funktionieren wird.

die Umleitung zu tun, müssen Sie durch die list of Conference participants, leiten sie durch updating their call to a new URL und Rück TwiML von dieser URL, dass plays the sound und redirects zurück zu Ihrer ursprünglichen Conference URL laufen. Etwas wie:

$sid = "{{ account_sid }}"; 
$token = "{{ auth_token }}"; 
$client = new Services_Twilio($sid, $token); 

// Loop over the list of participants and redirect ($client->account->conferences->get(CONFERENCE_SID)->participants as $participant) { 
    $call = $client->account->calls->get($participant->call_sid); 
    $call->update(array(
     "Url" => "http://example.com/conference_message" 
    )); 
} 

Dann wird Ihr /conference_message Endpunkt würde TwiML wie diese braucht:

<Response> 
    <Play>http://example.com/message.mp3</Play> 
    <Redirect>http://example.com/conference</Redirect> 
</Response> 

Auf der anderen Seite, ein Bot Eingabe der Raum erfordert, dass Sie create a call an die Konferenznummer und liefert eine URL was auf die TwiML zu play die Nachricht und dann hangup zeigt. Wie folgt aus:

$sid = "{{ account_sid }}"; 
$token = "{{ auth_token }}"; 
$client = new Services_Twilio($sid, $token); 

$call = $client->account->calls->create(A_TWILIO_NUMBER, THE_CONFERENCE_NUMBER, "http://example.com/conference_message"); 

Dann wird Ihr /conference_message Endpunkt zurückkehren würde TwiML wie folgt aus:

<Response> 
    <Play>http://example.com/message.mp3</Play> 
    <Hangup/> 
</Response> 

Lassen Sie mich wissen, ob dies überhaupt hilft.

+0

Danke, das ist hilfreich! Wie bekomme ich 'THE_CONFERENCE_NUMBER'? Ist es die ConferenceSid? Zunächst erstellt die Konferenz durch ein Verb, {beliebige interne ID. –

+0

Ah, nein, das ist nur eine Nummer, die Sie anrufen können, um Ihre Konferenz zu erreichen. Ich nahm an, dass sich die Leute nur in die Konferenz einwählten und auch Ihr Bot konnte. – philnash

+0

Also gibt es keine Möglichkeit, einen Bot einer programmatisch erstellten Konferenz beitreten zu lassen? –