php - Twilio:在浏览器中同时接收同一 Twilio 号码的多个来电
问题描述
我已经使用 PHP/Laravel 和 Twilio Client JS SDK 为浏览器内调用实现了 Twilio Client。实现工作正常,我可以从浏览器拨打电话,甚至可以在浏览器中接听电话。
现在,我想显示来电,同时我正在与浏览器中的其他客户通话,然后我可以处理他们是否要接听电话如果我接听电话,那么输入- progress 客户应该暂停,我可以与另一个客户交谈,就像我们在手机上做的一样。
场景是这样的,我正在与在线的某个客户通话,现在同时另一个客户正在拨打同一个 Twilio 号码,所以,现在我应该得到通知/弹出窗口来接听该电话,拒绝, 并保持等。
因此,如果有人可以帮助我提供正确的代码/示例,我们将不胜感激。
PS:我在 Twilio 中经历了 Enqueue 的概念,但不明白如何实现它。
提前致谢。
解决方案
从官方文档Twilio.Device.incoming收到来电时获取呼叫,作为回调,您将获得一个connection
, callconn.accept()
方法以启动音频流,添加一个全局变量以检查是否已经在进行呼叫
var isOngoing = false; // Global variable
Twilio.Device.incoming(function(conn) {
console.log('Incoming connection from ' + conn.parameters.From);
// accept the incoming connection only if you are not on another call.
if(!isOngoing) {
isOngoing = true;
conn.accept();
} else {
// Add you other implementation for displaying your popup or a message box.
conn.reject();
}
});
/* Callback for when a call ends */
Twilio.Device.disconnect(function(connection) {
isOngoing = false
});
- 现在在终止呼叫时,您需要将
isOngoing
变量重置为,false
以便您可以接听另一个呼叫。
推荐阅读
- laravel - 如何选择图像干预应该存储的图像?
- python - 尝试使用 SQLite 数据库和 Python 按顺序为每个项目创建记录
- sql - SQL-自动插入自定义记录
- reactjs - React 和 core-js 不能为 IE10 填充
- python - 试图通过运行函数来找到列表中一对数字的概率?
- mysql - MySQL 分页检索数据,避免竞争条件
- reactjs - 反应如何渲染单个元素,该元素在表格行中具有不同的多个子元素
- javascript - 如何评估在 Web Worker 中使用外部模块的函数
- node.js - 我在 npm run dev 它没有抱怨时遇到错误
- sql - XML中的SSRS无效字符