在页面刷新时保持与twilio呼叫的连接

时间:2012-09-24 05:29:24

标签: php twilio

我需要帮助才能在通话期间与通话保持联系。我使用了twilio Doc。

上给出的以下代码

PHP部分在这里

$token = new Services_Twilio_Capability(TW_ID, TW_TOKEN);
$token->allowClientIncoming($_SESSION['emp_id']);

JS部分:

Twilio.Device.setup("<?php echo $token->generateToken();?>");


$("#call").click(function() {  
  params = { "tocall" : $('#tocall').val()};
  connection = Twilio.Device.connect(params);
});

$("#hangup").click(function() {  
  Twilio.Device.disconnectAll();
});

Twilio.Device.ready(function (device) {
        $('#status').text('Ready');
        console.log(Twilio.Device.status());
});

Twilio.Device.incoming(function (conn) {                        
        startCall(conn);
});
页面上的

加载Twilio.Device.ready()功能使用户登录接收呼叫,但用户刷新呼叫断开的页面,或者用户是否尝试更新客户端的信息通话断开连接的对话。希望你能理解。

但现在不知道如何摆脱这个问题。一个选项我必须使用url上的哈希值,如#status

请帮我提供任何替代解决方案或修改此代码..

2 个答案:

答案 0 :(得分:0)

您可以使用此会话... 将令牌值存储在会话中。

$_SESSION['token']=$your_token; 

像这样访问

<?php echo $_SESSION['token'];?>

答案 1 :(得分:0)

您可以选择几种不同的选项。

  • 在呼叫连接时,通过POST请求将呼叫状态存储在服务器上。然后,当客户端刷新页面时,将传入(现有)呼叫推送到客户端。
  • 使用HTML5 localStorage或类似方法在客户端上存储呼叫状态。当页面加载时,你的JS应检查localStorage中是否存在调用。如果此DB中存在调用,则连接到与以前相同的端点。