问题标签 [twilio-programmable-voice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
262 浏览

twilio - 使用 twilio 进行实时通话转录

在更高的层次上,我试图复制 Kris 在他的演示中展示的内容:https ://youtu.be/Am74WU1zENA?t=717 。这是我想要达到的呼叫流程:

  1. 一位顾客打来电话。
  2. 客户会自动连接到可用的代理
  3. 有一个 webhook 可以显示客户和座席之间通话的实时转录(最好带有说话者识别)

在浏览了 twilio API 文档和其他 stackoverflow 线程(这里的示例)之后,看起来要采取的方法是在代理和客户之间创建一个电话会议以及一个静音的“主管”,然后使用 Gather 动词作为主管听对话。我感到困惑的几件事是:

  1. 如何在有新呼叫时自动将主管添加到电话会议中。我现在可以使用 Client.create 方法手动将所有 3 个参与者添加到会议室,但想知道是否有更好的方法这个。
  2. 如何在不识别说话者的情况下进行说话者识别。是否有类似双通道选项的记录,用于收集。

任何指针表示赞赏!谢谢你。

0 投票
1 回答
640 浏览

javascript - Twilio Client JS-SDK Websocket 不断重新连接

我在客户端 js 中初始化 Twilio.Device 时遇到问题,我无法追踪涉及设备的 websocket 在设置设备时不断断开连接。

我已经将我的代码剥离到它的准系统,只需获取一个访问令牌并在单击按钮时创建设备。我已经排除了浏览器问题和网络问题,并且无法在我自己的代码中查明问题所在。我已经尝试了多个版本的 twilio.js 到 1.4,所有版本中都出现了相同的问题。我目前正在使用来自 twilio CDN 的 1.7。我目前无法使用 npm。

我在仍然遇到此问题时减少到的 javascript 代码是:

获取令牌的python烧瓶代码是:

单击 html 中的就绪键时,一切都按预期调用,在 jwt 调试器中测试了令牌,它看起来是正确的

但是,在所有浏览器中,当我在我得到的选项中将调试设置为 true 时:

这种情况无限期地继续下去。

我试图在 twilio js 中调试它但没有成功,因为当我在套接字中有一个断点时突然在 Firefox 上保持连接,并且 chrome/edge 继续遇到同样的问题。我添加了多个console.logs,以及一些睡眠语句,以确保它不仅仅是一个异步计时问题,没有成功。

我在具有静态 IP 地址的 Azure 虚拟机上使用带有自签名证书的 https。

这是我在断开连接之前的流对象

和 _closeSocket 中的 websocket

_closeSocket 中的堆栈跟踪(IP_Address 省略)

所有对象在断点之前和之后都是相同的,但是由于某种原因,在断点在 Firefox 上命中后,websocket 仍保持连接。

任何帮助将不胜感激,因为我觉得我现在已经碰到了砖墙

-------编辑-------
我现在通过创建一个绝对基本的静态 html 页面来排除 Flask 问题,该页面运行一个测试 js 脚本。唯一的其他库是 twilio.js 和 jquery.js 我正在使用静态令牌进行测试而不是生成,我给出了 24 小时的 ttl(省略)

-----编辑-----
决定这与我的代码无关,因此打开了 Twilio 的问题。

0 投票
1 回答
27 浏览

twilio - 在房间里从拨号盘收集数字

我们使用可编程语音允许用户拨入我们的可编程视频房间。电话用户连接到房间后是否可以响应拨号盘输入?我们的一个用例是允许用户自己取消静音。

0 投票
1 回答
562 浏览

php - Twilio:在浏览器中同时接收同一 Twilio 号码的多个来电

我已经使用 PHP/Laravel 和 Twilio Client JS SDK 为浏览器内调用实现了 Twilio Client。实现工作正常,我可以从浏览器拨打电话,甚至可以在浏览器中接听电话。

现在,我想显示来电,同时我正在与浏览器中的其他客户通话,然后我可以处理他们是否要接听电话如果我接听电话,那么输入- progress 客户应该暂停,我可以与另一个客户交谈,就像我们在手机上做的一样。

场景是这样的,我正在与在线的某个客户通话,现在同时另一个客户正在拨打同一个 Twilio 号码,所以,现在我应该得到通知/弹出窗口来接听该电话,拒绝, 并保持等。

因此,如果有人可以帮助我提供正确的代码/示例,我们将不胜感激。

PS:我在 Twilio 中经历了 Enqueue 的概念,但不明白如何实现它。

提前致谢。

0 投票
1 回答
81 浏览

twilio - 识别 Twilio 视频室中的电话呼叫者

我正在使用 Twilio 可编程语音通过 Room 动词将呼叫者连接到可编程视频室。如何在视频端获取呼叫者的 ParticipantIdentity?

我在视频端看到来电者的身份是他们的电话号码破折号一些数字。或者,如何在语音端获取呼叫者的号码/身份。

基本上,我正在寻找视频端的电话呼叫者是谁。

0 投票
1 回答
429 浏览

twilio - 如何在 Twilio 视频室中检测按键音 (DTMF)

遵循本文档后,我可以成功地将 PSTN 呼叫者添加到视频房间(小房间类型)。我无法做的是检测来电者的 DTMF 音调。

我尝试了两种不同的方法,都失败了

1) 我之前与不同的提供商一起使用过但没有与 Twilio 一起工作过的那个是让房间里的其他用户之一(不是 PSTN 呼叫者,而是一个 javascript 客户端)检测 DTMF 客户端。这不适用于 twilio,因为在我看来 twilio 正在操纵音频流以在 DTMF 到达房间中的其他用户之前删除它们(当 PSTN 呼叫者按下数字时,您只会听到短暂的“点击”另一边)

2)受这个答案的启发,我尝试用 TWIML 回复

这并不理想,因为它在房间里时不会检测到 DTMF;您将不得不离开房间,但我还是尝试了它,看看我是否可以想出一种方法来终止呼叫以继续使用gather链接答案中的动词。房间结束后,呼叫似乎没有移动到聚集部分(我尝试完成房间,PSTN 呼叫立即结束)

有没有其他人为此使用过的方法?对我来说最简单的方法是告诉 twilio 不要从音频流中删除 DTMF,这样我的解决方案 #1 就可以了,但我对其他想法持开放态度,可能会利用 twilio 的gather

0 投票
1 回答
241 浏览

twilio - 如何在不丢失原始参与者的情况下将现有呼叫升级到会议?

我需要让我的用户能够动态地将第三人添加到他们的通话中。我知道如何找到要转移的呼叫的 parentSid 和 childSid,但是一旦我将其中一个 sid 更新为包含会议的 twiml,另一个 sid 被标记为已完成并且不能再更新。这意味着我可以让第一个和第三个或第二个和第三个用户加入会议,但我也会放弃一个原始参与者。

我在这里尝试了解决方案:Twilio - How to move an existing call to a meeting,但它似乎迫使我在拨打第一个参与者时立即进入会议。

我没有从会议开始的选项,而且似乎无法更新原始通话的两端。我错过了什么?谢谢!

0 投票
1 回答
104 浏览

twilio - 拨出电话号码并听取回复

我想从 twilio 向 nexmo 等服务提供的号码发起拨出电话,并能够收听响应。根据接收者返回的语音消息,我想确定我的回应

我已经阅读了文档,据我所知,拨出的呼叫并没有让我访问传入的流。Call 对象允许我控制呼叫,但不是基于语音响应

呼叫对象没有为我提供访问对话音频的方法。

总的来说,我希望发起呼叫,并且我的呼叫者程序可以访问它可以解析的响应语音消息,然后确定下一个响应。

我是否应该在这种情况下考虑 SIP,因为目标号码也将具有 SIP 端点?

0 投票
1 回答
66 浏览

android - 如何在 Twilio 可编程语音中查找“发件人”电话号码和“收件人”电话号码

我在我的 Android 和 iOS 应用程序中集成了 Twilio 可编程语音,在我的应用程序中,用户将像 Skype 一样单独调用。如果有人通过我的应用程序呼叫用户,另一个用户将通过我的应用程序接受呼叫。

如何呼叫特定用户,因为我不知道该用户 twilio 电话号码以及如何知道哪个用户正在呼叫......?

0 投票
1 回答
720 浏览

twilio - 在主视图中显示主导说话者

如何在 Android 快速入门应用程序的主视图中显示主讲人。

https://github.com/twilio/video-quickstart-android/tree/master/quickstart

感谢和问候西伦德拉

编辑

添加代码: