微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 CallResource.CreateAsync 将参数传递给 Twilio,以编程方式将机器人添加到电话会议

如何解决通过 CallResource.CreateAsync 将参数传递给 Twilio,以编程方式将机器人添加到电话会议

我正在尝试与主持人和几个参与者创建电话会议,其中一个是机器人。 机器人由主持人通过反向通道控制,因此它可以在电话会议中说事情等。

当主持人从 Web 客户端呼入时,我设置了电话会议,然后使用带有回调 URL 的 CallResource.CreateAsync 拨入其他参与者和机器人,以便我知道要将他们添加到哪个会议。 机器人需要获取一个参数,以便它知道听哪个主持人的指令。 但是,我似乎无法使用 CallResource.CreateAsync 从 C# API 将任何参数传递给机器人(目前正在通过另一个 TwiML 应用程序触发)。

将参与者添加到通话中(callbackUrl 将连接的通话添加到会议中)- 这很好用:

var to = new PhoneNumber(callData.PhoneNumber);
var from = new PhoneNumber(_twilioSettings.PhoneNumber);
var callbackUrl = GetConnectConferenceUrl(callData.CallToken);
var url = new Uri(callbackUrl);
var participantCallResource = await CallResource.CreateAsync(to,from,url: url);

添加调用的机器人(电话号码在 Twilio 中设置为 TwiML 应用程序,并带有返回我的服务器的网络钩子) - 如何将参数传递给 TwiML 应用程序?

var toBot = new PhoneNumber(botNumber);
var fromBot = new PhoneNumber(_twilioSettings.PhoneNumber);
var botCallbackUrl = GetConnectConferenceUrl(callData.CallToken,isBot: true);
var botUrl = new Uri(botCallbackUrl);
var botCallResource = await CallResource.CreateAsync(toBot,fromBot,url: botUrl)

如何将参数从 C# 传递到 TwiML bin 或 Webhook 或电话号码?

我是否需要以不同的方式将机器人添加到通话中?

解决方法

参数在 ToUrl 每个 https://www.twilio.com/docs/voice/how-share-information-between-your-applications 上传递

我相信您的用例会将其放在 Url 上。假设您有一个 moderatorId:

var botCallbackUrl = GetConnectConferenceUrl(callData.CallToken,isBot: true,moderatorId);
var botUrl = new Uri(botCallbackUrl);

其中 GetConnectConferenceUrl 添加您需要的参数。

我在客户端端点的 To 行上使用了它,看起来像

var toBot = $"{new PhoneNumber(botNumber)}?moderatorId={moderatorId}";

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。