【问题标题】:Twilio - Recognising a user has ended a callTwilio - 识别用户已结束通话
【发布时间】:2016-08-10 17:50:52
【问题描述】:

我是一名初级开发人员,目前正在使用 Twilio 创建我们自己的电话系统。在我从客户发起呼叫并且客户在他们结束时接听它的那一刻,它一切正常,直到用户挂断。在我从浏览器结束通话之前,通话仍保持连接状态。 如何识别用户已经结束通话?

【问题讨论】:

标签: twilio


【解决方案1】:

Twilio API 中似乎有一个名为 "completed" 的回调

电话已接听并正常结束

Source

【讨论】:

  • 我已经添加了一个状态回调 url,但这只是在我从浏览器结束通话时触发,而不是在用户从另一端挂断通话时触发
【解决方案2】:

丹尼尔,你好!我是来自 Twilio 的梅根。

听起来你的场景与making outgoing calls from the browser有关。

您是否按照hang up calls in the browser 的步骤进行操作?具体来说:

使用.disconnect()

/* Log a message when a call disconnects. */
Twilio.Device.disconnect(function (conn) {
    $("#log").text("Call ended");
});

后跟一个使用.disconnectAll()hangup() 函数:

/* A function to end a connection to Twilio. */
function hangup() {
    Twilio.Device.disconnectAll();
}

考虑tracking status from the client connection。当它是closed 时,您可以调用上述函数。

另外,如果您通过以下方式在客户端中打开调试可能会有所帮助:

Twilio.Device.setup(token, {debug: true});

Javascript 控制台将显示收到的所有低级事件。

如果这有帮助,请告诉我。

【讨论】:

  • 嗨梅根,感谢您的帮助,客户端中的调试非常有用!以上仍然没有解决问题。我可以挂断浏览器的通话,一切正常。当另一端的人挂断电话时,呼叫仍然保持连接状态,并且没有任何事件被触发。似乎只有当我从浏览器拨打电话时才能从我这边结束通话再次浏览器中的按钮以确保已断开连接。
  • 嘿,Danielle,Phil 的意思是你试过`.disconnect(handler(connection)) 吗?有了它,您可以跟踪我上面提到的连接状态(即如果 conn.status = “关闭”)并切换它以断开设备。在文档中挂断专门与 js 中的按钮相关联。你需要在你想要的事件上调用 hangup。
【解决方案3】:

为此,我最终通过在断开连接时将集线器连接设置回 null 来解决它。

this.connection.disconnect(() => {
                    this.connection = null;
                });

【讨论】:

  • 嘿@Daniellesmith31,我有同样的问题,你能分享你的代码来解决这个问题吗?尚不清楚this 指的是什么
  • 您好@Daniellesmith31,我遇到了同样的问题,您能否澄清一下您在哪里编写代码以及您如何识别客户已结束通话?
  • 嗨@karan-patokar,如果你解决了这个问题,你能分享你的代码吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多