2016-11-15 7 views
0

Я пытаюсь выполнить исходящие вызовы из моей сублицензионной учетной записи twilio. Я имею в виду это link. Основываясь на этой ссылке, я создал одну страницу под названием привет-клиент-twiml.php с помощью следующего кода:Выполнение исходящих вызовов из браузера с помощью Twilio - вызов прекращается автоматически

<?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> 

и привет-клиента monkey.php страницы с кодом:

<?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> 

В консоли Twilio, TwiML apps page, я добавил http://mywebsite.com/hello-client-monkey.php как Голос-> Запрос URL.

Теперь, когда я бегу на страницу с привет-клиент-monkey.php, вызов становится автоматически прекращается и в twilio console logs Я получаю журнал ошибок как:

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

Может кто-нибудь помочь мне исправить эту проблему? Заранее спасибо.

+0

Твилио евангелист здесь. Похоже, вам нужно настроить ваше приложение TwiML с URL-адресом 'hello-client-twiml.php', а не URL-адресом' hello-client-monkey.php'. –

+0

@Devin ... Я настроил TwiML с URL-адресом 'hello-client-twiml.php'. Но он не работает и получает журнал консоли twilio: «Не было запросов HTTP для этого события». – Jenz

+0

@ DevinRader..Также мой номер twilio - это номер в США, и я пытаюсь позвонить на мобильный телефон в Индии .. . Это ограничение для пробных счетов? – Jenz

ответ

0

Из документов:

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

Схема предупреждения проверки

Предоставленный XML не соответствует схеме XML Twilio разметки. Обратитесь к конкретной ошибке и устраните ее.

Возможные причины

орфографические ошибки глаголы, неправильный случай для глаголов, с ошибками или неизвестные атрибуты, неизвестные или неожиданные вложенные элементы.

Возможные решения

проверка линии и столбец сообщает предупреждения, чтобы увидеть, какая часть ваш ответ XML вызвало жалобу

Как Девин предполагает выше, приложение TwiML ожидает twiml как вы» ve определено в hello-client-twiml.php.

+0

@Megan ... Я настроил TwiML с URL-адресом 'hello-client-twiml.php'. Но он не работает и получает журнал консоли twilio: «Не было запросов HTTP для этого события». – Jenz