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。
我有一个 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。