Voicebot:使用虚拟代理的集成从 Dialogflow 向 Twilio 添加欢迎消息

Voicebot: Add welcome message to Twilio from Dialogflow using the integration of the virtual agent

我有一个 Twilio phone 号码,我已使用后者的集成部分连接到 Dialogflow(ES)。与代理的连接是完美的,除了一个问题:没有欢迎信息。我知道要触发欢迎消息,我需要为其指定一个事件,但是,我无法在 Twilio 文档中找到如何指定此事件(没有摆脱虚拟代理集成并创建我的一个自己的)。从 Dialogflow 方面来看,它似乎没有 TWILIO_WELCOME 事件,它确实有其他集成(例如 facebook)的欢迎事件。

这是 Twilio-Dialogfow 集成的限制还是我遗漏了什么?有没有办法使用此配置设置来自 dialogflow 的欢迎消息?

在此先感谢您的帮助。

此处为 Twilio 开发人员布道师。

我不知道为什么 Twilio 语音通话没有欢迎活动。但是,您可以 trigger a welcome message using TwiML before connecting to the VirtualAgent.

您可以通过在连接到 VirtualAgent 之前添加 <Say> 元素来实现。例如:

<Response>
  <Say>Hello! You will be now be connected to a virtual agent.</Say>
  <Connect action="https://myactionurl.com/virtualagent_ended">
    <VirtualAgent connectorName="project" statusCallback="https://mycallbackurl.com"/>
  </Connect>
</Response>

所以看来没有办法,使用Dialogflow ES一键集成twilio,让Dialogflow Agent说出欢迎信息。

如果您希望 Dialogflow 代理说出欢迎消息,您可能希望取消 Twilio 一键式集成并自行处理双向流。

Twilio 有一个非常 helpful repository 的地方,他们就是这样做的。

dialogflow-utils.js就是你要关注的。

在那里您可以看到,当首次创建检测流时,一个“欢迎”事件被发送到 Dialogflow,因此它会以 Welcome Intent 进行响应。

    function createDetectStream(isFirst, sessionId, sessionPath, sessionClient) {
  let queryInput = intentQueryAudioInput;
  // Here we can see the welcome event
  if (isFirst) {
    queryInput = {
      event: {
        name: process.env.DIALOGFLOW_STARTING_EVENT_NAME,
        languageCode: "en-US",
      },
    };
  }
  const initialStreamRequest = {
    queryInput,
    session: sessionPath,
    queryParams: {
      session: sessionClient.sessionPath(projectId, sessionId),
    },
    outputAudioConfig: {
      audioEncoding: "OUTPUT_AUDIO_ENCODING_LINEAR_16",
    },
  };

  const detectStream = sessionClient.streamingDetectIntent();
  detectStream.write(initialStreamRequest);
  return detectStream;
}

我上次检查时,该存储库仅适用于 Dialogflow ES,但您可以调整代码,使其也适用于 Dialogflow CX。