Twilio Device.destroy()不释放设备和事件处理程序

时间:2016-04-13 15:02:41

标签: twilio twilio-php

我们在语音通信应用中使用Twilio。

进行语音通话时,我们正在设置如下的Twilio设备。 如果呼叫不成功,我们将再次尝试再次呼叫以下功能。

我的问题是不破坏函数删除事件处理程序也是如此?为什么我在日志中看到“[设备]找到现有设备;使用新令牌但忽略选项”当我在调用destroy后调用setup时?

function setupTwilio(token) {
    if (angular.isFunction(Twilio.Device.destroy)) {
        console.log('Destroying Twilio device');
        Twilio.Device.destroy(); // Destroy before setup incase we have already run this
    }

    startEventHandlers(); // add event handlers for Twilio events e.g. connect, disconnect

    trySetup = function () {
        var params = { debug: ( DEBUG ? true : false ) };
        if (DEBUG) {
            console.log('trying the twilio setup at ' + new Date());
            console.log(Twilio.Device.instance);
        }
        // Twilio will not hit the handlers specified in startEventHandlers until a successful setup has been created, so run try catch here
        try {
            Twilio.Device.setup(token, params);
        } catch (e) {
            if (DEBUG) {
                console.log('TwilioSetup uncaught error: ' + e);
            }
        }
    };

    if (angular.isDefined(token)) {
        trySetup();
    }
}

1 个答案:

答案 0 :(得分:1)

Destroy将触发离线事件处理程序。在离线事件处理程序中尝试setting up the device

Twilio.Device.offline(function() {
        Twilio.Device.setup(token, params);
    });