2016-04-15 5 views
0

Ich habe ein kleines Problem mit der Twilio-Konferenz. Wenn ich den Code ausführen, rufen Sie die Teilnehmernummer. Wenn Teilnehmer den Anruf annehmen, wird Audio mit "Es gibt einen Anwendungsfehler, Sorry" abgespielt. Ich möchte die wartende URL-Audio beim Abrufen des Telefons spielen. Das ist Code, den ich benutzt habe.Wie implementiert man eine Telefonkonferenz mit waitUrl mit Twilio?

require_once('Services/Twilio.php'); 
$API_VERSION = '2010-04-01'; 
$ACCOUNT_SID = 'ACf4c0952bf89b57ce2a600b6f6b388c9'; 
$AUTH_TOKEN = '{{ auth token }}'; 
$client = new TwilioRestClient($ACCOUNT_SID, $AUTH_TOKEN); 
$participants = array('+917201990754'); 
foreach ($participants as $participant) 
{ 
    $vars = array(
     'From' => '+1 510-491-0176', 
     'To' => $participant, 
     'Url' => 'http://192.168.0.19/twilio/conference.xml'); 
    $response = $client->request("/$API_VERSION/Accounts/$ACCOUNT_SID/Calls", "POST", $vars); 

if ($response->isError) 
{ 
    echo "Something went terribly wrong. {$response->ErrorMessage}"; 
} 
else { 
    echo '<ul>'; 
     foreach ($response->ResponseXml->Conferences->Conference as $conference) 
     { 
      echo '<li>'.$conference->FriendlyName.'</li>'; 
      $response2 = $client->request("/$API_VERSION/Accounts/$ACCOUNT_SID/Conferences/{$conference->Sid}/Participants", "GET"); 
      echo '<ul>'; 
      foreach ($response2->ResponseXml->Participants->Participant as $participant) 
      { 
       echo '<li>'.$participant->CallSid.'</li>'; 
      } 
      echo '</ul>'; 
     } 
     echo '</ul>'; 
} 
} 

Unten ist der XML-Code, den ich verwendet habe.

<Response> 
<Dial hangupOnStar="true"> 
    <Conference>YourConference</Conference> 
</Dial> 
<Gather action="http://example.com/processConferenceMenu?confName=YourConference" numDigits="1"> 
    <Say>To mute all participants, press one</Say> 
    <Say>To leave the conference, press two</Say> 
</Gather> 

Ich habe es Google und es seit 10 Tagen googeln, aber keine richtige Lösung zu bekommen. Stellen Sie bitte das Arbeitsbeispiel einer Telefonkonferenz mit wartender URL zur Verfügung?

Antwort

1

Twilio Entwickler Evangelist hier.

Ich merke, dass Ihr Code die URL für den Anruf setzt, den Sie an 192.168.0.19 machen. IP-Adressen im Bereich 192.168.x.x sind in der Regel lokal für Ihr eigenes Netzwerk. Daher wird Twilio die URL nicht erreichen und die TwiML abrufen können, die erforderlich ist, um den Anruf an die Konferenz zu leiten. Wenn Sie Anwendungen lokal testen, empfehlen wir die Verwendung von ngrok bis test your webhook URLs. Ich schrieb auch why I like using ngrok to test Twilio applications.

Also, ich würde prüfen, ob Twilio Ihre Anwendung erreichen kann. Sobald es geht, sollte Ihre <Conference> anfangen zu arbeiten.

+0

Als Sie Herr. Es bedeutet, dass im obigen Code kein Fehler vorliegt. Ich muss die Lösung für das lokale Netzwerk überwinden, oder? –

+0

Wenn ich auf unserem Entwicklungsserver (d. H. Live-Server) testen, wird es kein Problem geben, oder? –

+0

Ich kann keinen Fehler in diesem Code sehen, der die Anwendungsfehlermeldung verursachen würde. Sie können dies auch im [Alerts-Bereich Ihres Twilio-Dashboards] (https://www.twilio.com/user/account/monitor/alerts) nachsehen. Wenn Sie eine Reihe von Warnungen für einen "11200 HTTP Retrieval Failure" haben, kann Twilio Ihre Anwendung nicht erreichen. Sie können entweder öffentlich zum Testen bereitstellen oder ein Tool wie ngrok verwenden, um Ihre lokale Anwendung verfügbar zu machen. – philnash