Я пытаюсь настроить входящие звонки от twilio.Я вижу, что он назначает резервирование, и он console.logs out. Получено сообщение типа [booking.created], однако рабочее событие для worker.on ("servation.created ", function (routing) {не срабатывает.
Если я включу taskrouter / js / v1.0 / taskrouter.worker.min.js, как некоторые предыдущие примеры включают, тогда я получу событие. Проблема в том, что я пытаюсь сделать booking.conference () в направленииподдержки twilio, и это не поддерживается даже в исходном маршрутизаторе задач 1.14, который я использовал. Я думал, что это из-за конфликтующих библиотек и удаления taskrouter.worker.min.js, но тогда это даже не срабатывает.
Вызовы наподобие worker.on («подключен», функция () работает нормально, поэтому я знаю, что кусок есть, но сообщения не поддерживаются.
В настоящее время я использую следующие библиотеки
// media.twiliocdn.com/sdk/js/client/v1.7/twilio.min.js и //media.twiliocdn.com/taskrouter/js/v1.20/taskrouter.min.js
Попробовал Taskrouter 1.14,проверено на более поздние версии taskrouter.worker.js.Проверил версию v2, чтобы увидеть, изменилось ли имя по запросу.
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://media.twiliocdn.com/sdk/js/client/v1.7/twilio.min.js"></script>
<script type="text/javascript" src="//media.twiliocdn.com/taskrouter/js/v1.20/taskrouter.min.js"></script>
</head>
<body>
<!-- dialer is here -->
<script type="text/javascript">
window.onload = function(){
//if the user is in the console only, then create a worker.
//get a worker token for the given workspace sid using the twilio
var workerToken = "{! TRToken }";
//create a new worker and set up the device
var worker = new Twilio.TaskRouter.Worker(workerToken);
Twilio.Device.setup("{! token }");
var taskID;
worker.on("ready", function(worker) {
console.log(worker.sid) // 'WKxxx'
console.log(worker.friendlyName) // 'Worker 1'
console.log(worker.activityName) // 'Reserved'
console.log(worker.available) // false
});
worker.on("connected", function() {
console.log("Websocket has connected");
});
//show on ready status (not seeing this)
worker.on("ready", function(worker) {
console.log(worker.sid) // 'WKxxx'
console.log(worker.friendlyName) // 'Worker 1'
console.log(worker.activityName) // 'Reserved'
console.log(worker.available) // false
});
worker.on("reservation.created", function(reservation) {
console.log('showing reservation');
console.log('details', reservation);
//console.log('reservation', reservation.task.attributes);
//console.log('Call coming from ' + reservation.task.attributes.from);
//show dialog to accept incoming call.
if (window.confirm('Accept incoming call?')){
console.log('accepting incoming call');
//set to conference which should accept the reservation and connect the call
reservation.conference();
}
else{
//user declines the call
updateWokerStatusJS();
}
});
worker.on("reservation.accepted", function(reservation) {
console.log('accepting reservation ' + reservation.task.sid)
taskID = reservation.task.sid;
});
// Handle incoming calls from Twilio. This is after the reservation is accepted so it would just connect the call
Twilio.Device.incoming(function (conn) {
console.log('incoming call ringing');
conn.accept();
});
};
</script>
</body>
</html>
Используя приведенный выше код, я вижу эти журналы консоли, поэтому он показывает, что я подключаюсь, меняю статус, и есть сообщение booking.created, но он выигралне активировать действие worker.on для booking.created, хотя worker.on («подключен» .. работает).
Websocket подключился
Получено сообщение типа [подключено]
Получено сообщение типа [booking.created]
Рабочая активность изменена на: Зарезервировано
Получено сообщение типа [activity.update]
IОднако, не получайте всплывающее окно, и оно никогда не войдет в блок кода «показ резервирования».
Если я включу библиотеку twilio v1.0 / taskrouter.worker.min.js, то она покажет всплывающее окноОднако, когда я пытаюсь сделать booking.conference (), он говорит, что это недопустимая функция (и я не вижу этот метод видимым для объекта резервирования. Я предполагаю, что это произошло из-за версий библиотеки.