我正在努力将软电话嵌入到将进入Odoo(基于网络的ERP系统)的网页中。它将允许员工的入站和出站呼叫。
令牌每小时到期。所以这意味着用户必须每小时刷新一次页面。我可以进行http刷新,但是如果用户在进行通话时进行刷新,则会将其从通话中解脱出来。
我们如何解决这个问题,以便我们可以构建一个功能齐全的拨号器?
答案 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)
})
})