c# - 通过 CallResource.CreateAsync 将参数传递给 Twilio,以编程方式将机器人添加到电话会议
问题描述
我正在尝试与主持人和几个参与者一起创建电话会议,其中一个是机器人。该机器人由主持人通过反向通道控制,因此它可以对电话会议说些什么等。
当主持人从 Web 客户端呼叫时,我设置了电话会议,然后使用CallResource.CreateAsync
回调 url 拨入其他参与者和机器人,以便我知道要将他们添加到哪个会议。机器人需要获取一个参数,以便它知道要听取哪个主持人的指令。但是,我似乎无法从 C# API 使用CallResource.CreateAsync
.
将参与者添加到呼叫(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 中设置为带有 webhook 的 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 或 phonenumber?
我是否需要以不同的方式将机器人添加到通话中?
解决方案
参数在 https://www.twilio.com/docs/voice/how-share-information-between-your-applications 上或To
上传递Url
我相信您的用例会将其放在Url
. 假设你有一个moderatorId
:
var botCallbackUrl = GetConnectConferenceUrl(callData.CallToken, isBot: true, moderatorId);
var botUrl = new Uri(botCallbackUrl);
在哪里GetConnectConferenceUrl
添加您需要的参数。
我已经To
在线上将它用于客户端端点,所以看起来像
var toBot = $"{new PhoneNumber(botNumber)}?moderatorId={moderatorId}";
推荐阅读
- android - 将Base64转为Image然后显示
- java - 在 java ContentValues 中转义 sqlite 列名
- python-3.x - np.linalg.norm 不适用于 CSR 矩阵
- java - SpringBoot 应用程序无法启动嵌入式容器
- ruby-on-rails - Rails:collection_select 带有多个嵌套关联的集合
- javascript - 如何从我们的服务器提供 React 应用程序?
- jsrender - JS Render 将属性名称中的连字符解释为减号
- javascript - 使用ng-change时如何修改Angular js中的dom属性?
- javascript - 使用递归循环遍历数组数组
- docker - 无法访问 Docker Swarm 中服务的 HTTP 端点