Исходящие звонки из браузера с использованием Twilio — звонок прерывается автоматически

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

<?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, я добавил http://mywebsite.com/hello-client-monkey.php как Голос-> Запросить URL.

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

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

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

0

Решение

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

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

Предупреждение о проверке схемы

Предоставленный XML не соответствует XML-схеме Twilio Markup.
Пожалуйста, обратитесь к конкретной ошибке и исправьте проблему.

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

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

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]