具有多个数字的 Bot Framework Twilio

Bot Framework Twilio With Multiple Numbers

我在 Azure 机器人服务上 运行 构建了一个机器人,带有 Twilio 通道。我正在通过我的 Twilio 频道发送主动活动。一切正常。我刚收到客户想要拥有自己的 phone 号码的请求。我只想拥有 1 个机器人服务 运行,但有多个 Twilio phone 号码。

我的想法是,我可以设置一个 API 服务,然后它将是来自 Twilio 的传入消息回调/webhook,然后使用 Directline API 到 Bot Framework。它基本上只是取代 https://sms.botframework.com/api/sms 服务。问题是我不确定我是否仍然可以使用主动消息 - 似乎 Directline 3.0 API 仅在首先使用它开始对话时才起作用。

有没有人对此有任何想法,如果这可行或有任何其他想法?

谢谢

是的,您上面提到的方法是理想的。每个 Web App Bot/Bot 频道注册只能与一个 Twilio 号码相关联。我将详细说明您上面提到的步骤:

  • 创建服务器 运行 Twilio SMS API 代码,通过 DirectLine API 将消息转发给机器人。用户向此服务器发送消息。
  • 对于发送给机器人的每个 activity,请确保包含号码:Activity.ChannelData = new { fromNumber: <123-456-7890> }。服务器将消息转发给机器人。
  • 您需要将 fromNumber 重新附加到机器人的传出 activity 以便您的 Twilio API 服务器知道将传出消息发送到哪里。机器人将回复发送到服务器。
  • Twilio API 服务器向用户发送 Activity.Text。服务器将消息从 bot 转发给用户。

对于proactive messages部分,你可以在地址参数中添加一个对话属性,并将id设置为用户的phone号码。

示例:

bot.beginDialog(
  {
    user: { id: '+1234567890' },
    bot: { id: '+9876543210' },
    conversation: { id: '+1234567890' },
    channelId: 'sms',
    serviceUrl: 'https://sms.botframework.com'
  },
);

希望对您有所帮助。