令牌在Twilio中到期

时间:2016-08-29 23:39:04

标签: twilio

我正在努力将软电话嵌入到将进入Odoo(基于网络的ERP系统)的网页中。它将允许员工的入站和出站呼叫。

令牌每小时到期。所以这意味着用户必须每小时刷新一次页面。我可以进行http刷新,但是如果用户在进行通话时进行刷新,则会将其从通话中解脱出来。

我们如何解决这个问题,以便我们可以构建一个功能齐全的拨号器?

3 个答案:

答案 0 :(得分:2)

Twilio传道者在这里。

我建议使用JavaScript执行异步HTTP请求,从服务器获取新令牌,然后用它更新客户端实例。

希望有所帮助。

答案 1 :(得分:1)

另一位Twilio福音传教士在这里!

您实际上可以收听offline event on the Twilio.Device object。来自documentation

  

.offline( handler(device) )

     

注册在离线事件发生时要调用的处理函数   被解雇。当与Twilio的连接掉线或者连接时,会触发此操作   设备的功能令牌无效/已过期。在其中任何一个   场景,设备无法接收传入的连接或制作   传出连接。如果令牌在活动连接期间到期   将调用脱机事件处理程序,但连接不会   被终止在这种情况下,你将不得不打电话   在尝试或之前使用有效令牌的Twilio.Device.setup()   接收下一个连接。

所以你想要这样的东西:

Twilio.Device.offline(function(device) {
  fetchTokenFromServer(function(token) {
    device.setup(token);
  });
});

其中fetchTokenFromServer发出Devin在答案中建议的HTTP请求。

如果有帮助,请告诉我。

答案 2 :(得分:0)

我刚遇到这个问题,希望我的解决方案可以帮助您和其他人。

我正在使用twilio.js v1.3并尝试实现我的offline回调,例如@philnash推荐,但不断收到错误device.setup is not a function。然后我尝试使用Twilio.Device.setup(newToken)并且能够刷新功能令牌,但最终还是收到了新错误:Cannot read property 'setToken' of undefined

我最终不得不使用twilio.js v1.4来使错误消失。我的工作解决方案如下:

Twilio.Device.offline(function(device) {
  $.ajax(urlToGetNewToken, type: 'get').done(function(newToken) {
    Twilio.Device.setup(newToken)
  })
})