2

我需要帮助才能在通话过程中与通话保持联系。我使用了 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.

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

4

2 回答 2

0

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

$_SESSION['token']=$your_token; 

像这样访问

<?php echo $_SESSION['token'];?>
于 2012-09-24T05:48:30.727 回答
0

您可以采取几种不同的选择。

  • 当呼叫连接时,通过对您的服务器的 POST 请求将呼叫状态存储在服务器上。然后当客户端刷新页面时,将传入(现有)调用推送到客户端。
  • 使用 HTML5 localStorage 或类似方法将调用状态存储在客户端。当页面加载时,您的 JS 应该检查 localStorage 中是否存在调用。如果此数据库中存在调用,则连接到与以前相同的端点。
于 2012-09-24T20:43:15.497 回答