使用 Twilio 的客户端到客户端 VoIP 语音 SDK 调用
Client-to-Client VoIP Voice SDK Call with Twilio
我正在尝试使用 Twilio 的语音 SDK 进行 VoIP 客户端到客户端呼叫。到目前为止,我可以让我的 iPhone 拨我的 Android phone,反之亦然,但只能听到自动语音说“to”客户的身份,而不是 phone 能够彼此交谈。我在这里遗漏了什么吗?
对于这两个平台,我只使用 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
,您的应用程序将按预期工作。
我正在尝试使用 Twilio 的语音 SDK 进行 VoIP 客户端到客户端呼叫。到目前为止,我可以让我的 iPhone 拨我的 Android phone,反之亦然,但只能听到自动语音说“to”客户的身份,而不是 phone 能够彼此交谈。我在这里遗漏了什么吗?
对于这两个平台,我只使用 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
,您的应用程序将按预期工作。