Destroy twilio.device之后仍然存在连接

时间:2017-06-27 07:05:27

标签: javascript twilio odoo-10

拨打按钮设置 twilio设备并为拨打电话创建有效连接,设备将销毁,通话挂机。 当twilio 设备销毁时,我想销毁所有活动连接。 一次只能有一个活动连接。

代码类似。

Dail : function(){
    Twilio.Device.setup(result);
        Twilio.Device.ready(function(device) {
            $("#log").text("Ready");

            Twilio.Device.connect();
            Twilio.Device.disconnect(function(conn) {
                Twilio.Device.destroy();
            })
}

hang_up : function(){
    Twilio.Device.disconnectAll();
}

如果我在没有刷新标签的情况下创建多个电话,则会显示错误。

错误: 连接当前处于活动状态。使用device.error()捕获错误。

Twilio.Device.error(function(error) {
    console.log(error.message);  
});

2 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

当您拨打Twilio.Device.disconnect(function(conn) { ... });但未断开呼叫时。相反,它会在呼叫断开时设置事件处理程序。

您需要做的是使用Twilio.Device.disconnectAll();断开呼叫。您还可以为disconnect事件设置处理程序,以便在此时销毁设备。您的代码可能看起来像这样:

Dial : function(){
    Twilio.Device.setup(token);
    Twilio.Device.ready(function(device) {
        Twilio.Device.connect();
        Twilio.Device.disconnect(function(conn) {
            Twilio.Device.destroy();
        })
    });
}
hang_up : function(){
    Twilio.Device.disconnectAll();
}

如果有帮助,请告诉我。

答案 1 :(得分:0)

Twilio Dev,

Device.setup()只需要调用一次,Device.destroy()只应在清理过程中调用。以下是如何设置多个拨出电话的示例:

var activeConnection = null;
Twilio.Device.setup(token);

// Connect handler
Twilio.Device.connect(function(conn) {
  activeConnection = conn;

  // Disconnect handler
  conn.disconnect(function() {
    activeConnection = null;
  });
});

// When user hits dial button
function dial() {
  if (activeConnection) {
    // If we're already in a call, do nothing.
    return;
  }

  Twilio.Device.connect();
}

// When user hits hang up button
function hangUp() {
  if (activeConnection) {
    activeConnection.disconnect();
  }
}