2016-11-15 3 views
0

Ich versuche ausgehende Anrufe von meinem tlilo Trial-Konto zu tätigen. Ich verweise diese link. Basierend auf diesem Link, habe ich eine Seite namens hallo-client-twiml.php mit folgendem Code erstellt:Abgehende Anrufe vom Browser mit Twilio machen - Anruf wird automatisch beendet

<?php 
header('Content-type: text/xml'); 

// put a phone number you've verified with Twilio to use as a caller ID number 
$callerId = "+xxxxxxxxxx"; 

// put your default Twilio Client name here, for when a phone number isn't given 
$number = "jenny"; 

// get the phone number from the page request parameters, if given 
if (isset($_REQUEST['PhoneNumber'])) { 
    $number = htmlspecialchars($_REQUEST['PhoneNumber']); 
} 

// wrap the phone number or client name in the appropriate TwiML verb 
// by checking if the number given has only digits and format symbols 
if (preg_match("/^[\d\+\-\(\) ]+$/", $number)) { 
    $numberOrClient = "<Number>" . $number . "</Number>"; 
} else { 
    $numberOrClient = "<Client>" . $number . "</Client>"; 
} 
?> 
<Response> 
    <Dial callerId="<?php echo $callerId ?>"> 
      <?php echo $numberOrClient ?> 
    </Dial> 
</Response> 

und hallo-client-monkey.php Seite mit dem Code:

<?php 
include "vendor/autoload.php"; 

use Twilio\Jwt\ClientToken; 

// put your Twilio API credentials here 
$accountSid = 'your_sid_here'; 
$authToken = 'your_auth_token'; 

// put your TwiML Application Sid here 
$appSid = 'APXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; 

$capability = new ClientToken($accountSid, $authToken); 
$capability->allowClientOutgoing($appSid); 
$capability->allowClientIncoming('jenny'); 
$token = $capability->generateToken(); 
?> 

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Hello Client Monkey 4</title> 
    <script type="text/javascript" 
     src="//media.twiliocdn.com/sdk/js/client/v1.3/twilio.min.js"></script> 
    <script type="text/javascript" 
     src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"> 
    </script> 
    <link href="//static0.twilio.com/resources/quickstart/client.css" 
     type="text/css" rel="stylesheet" /> 
    <script type="text/javascript"> 

     Twilio.Device.setup("<?php echo $token; ?>"); 

     Twilio.Device.ready(function (device) { 
     $("#log").text("Ready"); 
     }); 

     Twilio.Device.error(function (error) { 
     $("#log").text("Error: " + error.message); 
     }); 

     Twilio.Device.connect(function (conn) { 
     $("#log").text("Successfully established call"); 
     }); 

     Twilio.Device.disconnect(function (conn) { 
     $("#log").text("Call ended"); 
     }); 

     Twilio.Device.incoming(function (conn) { 
     $("#log").text("Incoming connection from " + conn.parameters.From); 
     // accept the incoming connection and start two-way audio 
     conn.accept(); 
     }); 

     function call() { 
     // get the phone number to connect the call to 
     params = {"PhoneNumber": $("#number").val()}; 
     Twilio.Device.connect(params); 
     } 

     function hangup() { 
     Twilio.Device.disconnectAll(); 
     } 
    </script> 
    </head> 
    <body> 
    <button class="call" onclick="call();"> 
     Call 
    </button> 

    <button class="hangup" onclick="hangup();"> 
     Hangup 
    </button> 

    <input type="text" id="number" name="number" 
     placeholder="Enter a phone number to call"/> 

    <div id="log">Loading pigeons...</div> 
    </body> 
</html> 

In Twilio-Konsole, TwiML apps page, habe ich http://mywebsite.com/hello-client-monkey.php als Voice-> Request URL hinzugefügt.

Nun, wenn ich die Seite hallo-client-monkey.php ausführen, wird der Anruf automatisch beendet zu werden und in twilio console logs Ich erhalte Fehlerprotokoll als:

WARNING 
    12200 Schema validation warning 
DESCRIPTION 
Cannot find the declaration of element 'html'. 

jemand kann mir helfen, zu behebt dieses Problem? Danke im Voraus.

+0

Twilio Evangelist hier. Sie müssen Ihre TwiML-Anwendung mit der URL "Hallo-Client-twiml.php" und nicht mit der URL "Hello-Client-Monkey.php" konfigurieren. –

+0

@Devin ... Ich habe TwiML mit der 'Hallo-Client-twiml.php' URL konfiguriert. Aber es funktioniert nicht und bekommen Twilio-Konsole log wie: 'Es wurden keine HTTP-Anfragen für dieses Ereignis protokolliert. ' – Jenz

+0

@ DevinRader..Auch meine Twilio-Nummer ist US-Nummer und ich versuche, auf ein Handy in Indien anzurufen .. Ist das eine Einschränkung für Testkonten? – Jenz

Antwort

0

Aus der Dokumentation:

https://www.twilio.com/docs/api/errors/12200

Schema-Validierung Warnung

Die bereitgestellten XML entspricht nicht den Twilio Markup XML-Schema. Bitte beachten Sie den spezifischen Fehler und beheben Sie das Problem.

Mögliche Ursachen

falsch geschriebene Verben, falschen Fall für Verben, falsch geschriebene oder unbekannte Attribute, unbekannte oder unerwartete verschachtelte Elemente.

Mögliche Lösungen

Überprüfung der Zeile und Spalte durch die Warnung gemeldet, um zu sehen, welcher Teil von Ihre XML-Antwort, die Beschwerde verursacht

Wie Devin oben schon sagt, Ihre TwiML Anwendung erwartet twiml wie Sie‘ definiert in hallo-client-twiml.php.

+0

@Megan ... Ich habe TwiML mit der 'Hallo-Client-twiml.php' URL konfiguriert. Aber es funktioniert nicht und ruft Twilio-Konsolenlog wie: 'Es wurden keine HTTP-Anfragen für dieses Ereignis protokolliert – Jenz

Verwandte Themen