twilio - 使用 Twilio 的客户端到客户端 VoIP 语音 SDK 呼叫
问题描述
我正在尝试使用 Twilio 的语音 SDK 进行 VoIP 客户端到客户端的呼叫。到目前为止,我可以让我的 iPhone 拨打我的 Android 手机,反之亦然,但只能听到自动语音说出“to”客户的身份,而不是两部手机只能相互交谈。我在这里错过了什么吗?
对于这两个平台,我只是使用 Twilio 提供的示例存储库。对于服务器,我使用的是 Twilio 的示例 NodeJS 无服务器代码。
// /place-call
...
var url = 'https://' + context.DOMAIN_NAME + '/incoming';
const client = context.getTwilioClient();
client.calls.create({
url: url,
to: 'client:' + to,
from: event.From,
}, function(err, result) {
// End our function
if (err) {
callback(err, null);
} else {
callback(null, "<Response/>");
}
});
...
// /incoming
...
const toClient = (event.To).replace('client:', '');
const twiml = new Twilio.twiml.VoiceResponse();
const dial = twiml.dial();
const client = dial.client();
client.identity(toClient);
callback(null, twiml.toString());
...
当我查看日志时,我看到“/incoming”端点返回:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Client>
<Identity>android_user</Identity>
</Client>
</Dial>
</Response>
解决方案
Twilio 开发人员布道者在这里。
问题是您将 TwiML 作为字符串返回,然后 Twilio Functions 将响应视为 Content-Type text/plain
。然后 Twilio 读取内容,就好像它是一个<Say>
.
不过,这很容易解决。改变:
callback(null, twiml.toString());
到
callback(null, twiml);
Twilio Functions 将识别twiml
变量的类型VoiceResponse
并将 Content-Type 设置为text/xml
,您的应用程序将按预期工作。
推荐阅读
- php - 如何连接到 freewebhostingarea 上的数据库?
- javascript - 在不同的 .js 文件之间传递变量;在同一个html文件中
- mysql - 多态关系中子选择的意外结果
- c# - 如何在 UWP 应用的紧凑覆盖模式下设置最小窗口大小
- c# - 如何替换字符串中的多个字符以进行密码解密
- php - PSR-12 if 语句
- ssas - SSAS-DAX 函数查找值-该列不存在或与任何表都没有关系
- react-leaflet - 无法为 react-leaflet v3 配置示例事件来播放
- python - Pandas - 如何根据其他列值移动列
- cypress - 赛普拉斯 - 类型错误:无法读取未定义的属性“键盘事件”(赛普拉斯版本 - 5.5.0)