Клиент Twilio JS немедленно зависает - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь получить звонок, инициированный нажатием кнопки в браузере, чтобы позвонить на настоящий мобильный телефон в Великобритании (мой телефон, для тестирования).

Я немедленно получаю звук зависания и консольное сообщение «Получено HANGUP от шлюза».

Called init
Twilio:812 Received token and setting up device
Device.setup @ twilio.min.js:55
(anonymous) @ Twilio:813
Promise.then (async)
init @ Twilio:811
created @ Twilio:796
callHook @ vendor.js?id=32f887f09d9fd70ffc0a:94704
Vue._init @ vendor.js?id=32f887f09d9fd70ffc0a:96413
VueComponent @ vendor.js?id=32f887f09d9fd70ffc0a:96581
createComponentInstanceForVnode @ vendor.js?id=32f887f09d9fd70ffc0a:96093
init @ vendor.js?id=32f887f09d9fd70ffc0a:95914
createComponent @ vendor.js?id=32f887f09d9fd70ffc0a:97391
createElm @ vendor.js?id=32f887f09d9fd70ffc0a:97338
patch @ vendor.js?id=32f887f09d9fd70ffc0a:97913
Vue._update @ vendor.js?id=32f887f09d9fd70ffc0a:94453
updateComponent @ vendor.js?id=32f887f09d9fd70ffc0a:94571
get @ vendor.js?id=32f887f09d9fd70ffc0a:94925
run @ vendor.js?id=32f887f09d9fd70ffc0a:95002
flushSchedulerQueue @ vendor.js?id=32f887f09d9fd70ffc0a:94764
(anonymous) @ vendor.js?id=32f887f09d9fd70ffc0a:93620
flushCallbacks @ vendor.js?id=32f887f09d9fd70ffc0a:93541
twilio.min.js:55 Setting up VSP
twilio.min.js:55 WSTransport.open() called...
twilio.min.js:55 Attempting to connect...
twilio.min.js:55 Closing and cleaning up WebSocket...
twilio.min.js:55 No WebSocket to clean up.
twilio.min.js:55 WebSocket opened successfully.
twilio.min.js:55 [PStream] Setting token and publishing listen
twilio.min.js:55 Stream is ready
Twilio:822 Connected and ready
Twilio:801 Trying to make a call
twilio.min.js:55 [Twilio.PeerConnection] signalingState is "have-local-offer"
twilio.min.js:55 Received HANGUP from gateway
twilio.min.js:55 Disconnecting...
twilio.min.js:55 [Twilio.PeerConnection] iceConnectionState is "closed"
twilio.min.js:55 [Twilio.PeerConnection] signalingState is "closed"

Я использую CDN-версию Twilio JS-клиента https://media.twiliocdn.com/sdk/js/client/v1.6/twilio.min.js.

Я тестирую его локально по URL-адресу ngrok.

Я использую AccessTokens, и я не получаю сообщение об ошибке для токена доступа, поэтому я предполагаю, что токен совершенно действителен.

Код для генерации моего токена:

$token = new \Twilio\Jwt\AccessToken(
        $account_sid = "xxx",
        $api_key = "xxx",
        $api_secret = "xxx",
        $ttl = 3600,
        $identity = "example@example.com"
    );

    $voice = new \Twilio\Jwt\Grants\VoiceGrant();
    $voice->setOutgoingApplicationSid(
        $outgoing_sid = "xxx"
    );

    $token->addGrant($voice);

    return $token->toJWT();

и мой клиентский код выглядит так:

makeCall() {
            console.log("Trying to make a call");
            Twilio.Device.connect({
                From: '+442921673534',
                To: '+447580007865',
            });
        },
        init() {
            console.log("Called init");
            Nova.request().get('/nova-vendor/alexbowers/nova-twilio-field/token').then(function(response) {
                console.log("Received token and setting up device");
                Twilio.Device.setup(response.data, {debug: true});
            });

            Twilio.Device.disconnect((e) => {
                // console.log(e);
                this.handleClose();
            });

            Twilio.Device.ready(function() {
                console.log("Connected and ready");
            });

            Twilio.Device.error(function(e) {
                // console.log(e);
                console.log("Handling error");
            });
        },

Где makeCall вызывается при нажатии, а init вызывается при загрузке страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...