【问题标题】:stay connected with twilio call on page refresh在页面刷新时与 twilio 通话保持联系
【发布时间】:2012-09-24 05:29:23
【问题描述】:

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

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

【问题讨论】:

  • 我知道这是一年前的帖子,但你找到解决办法了吗?
  • @bipen 我不记得了,我离开了那家公司。尝试在会话中存储令牌。
  • 有什么解决办法吗?
  • @AshishDwivedi,对不起,伙计,我忘记了我用过的东西,因为它太旧了。但是根据目前的技术,我必须使用 ReactJs 并且将通过 Ajax 请求处理所有请求。

标签: php twilio


【解决方案1】:

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

$_SESSION['token']=$your_token; 

这样访问

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

【讨论】:

  • 但是如果你在js部分看到Twilio.Device.ready()这个功能让用户准备好了,只是令牌解决了问题吗?因为我已经通过 URL 传递令牌来使用它
  • 如果你传入了url,当页面重定向回调时它会不稳定。如果您存储在会话中,它也将在页面刷新后可用。
  • 如果可能的话,你能用给定的代码提供一些例子吗??
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    相关资源
    最近更新 更多