我正在使用带有连接流 API 的自定义 UI 来使用 AWS Connect。简而言之,当我的代理正在与入站呼叫者通话时,我希望能够播放录音或将文本到语音注入到实时通话中。我们有一份确切的合规声明,我们不希望我们的客服人员阅读该声明,而是在正在录制的通话中播放该声明。
详细信息。 React 站点包括 aws-connect-streams js。代理登录我们的连接实例的位置。目前一切正常。
我的 UI 知道何时应该播放录音,因此我可以从客户端使用 connect-streams-api,或者我可以与我的 api 服务器通信并执行整个 AWS SDK 中的任何内容。我在 connect-streams 文档或 Connect 文档的 aws sdk 中找不到任何方法可以将音频或 text2speech 注入实时通话中。队列经过的流程太早了,据我了解,一旦代理连接,流程就结束了。
到目前为止我尝试过的: 我用播放提示的流程创建了一个新队列。
我申请了一个新的 DID 号码,并将其指向播放录音的 ^ 新队列。
在代理和呼叫者通话时使用流 api,我向他们的呼叫添加一个指向新队列电话号码的新连接,并立即与代理、呼叫者和播放提示的连接队列进行会议(然后终止呼叫)。
此功能在 50% 的时间内有效,呼叫始终会与座席和呼叫者建立连接和会议,但有时只有 10 秒的静默,就像队列正在播放录音,但电话会议中却没有接通(座席和主叫方)外部呼叫者无法在此处录音)。
静默 10 秒(录音的长度)后,电话会议会断开,这是设计使然,但录音音频并不总是听得见。附加到队列的播放提示流块中的音频文件或文本到语音会发生这种情况。
任何指导将不胜感激,这是我的最后一个障碍。
免责声明:我自己没有实现过这个,但我熟悉这个系统。如果您正在寻找明确的解决方案,请随意忽略这一点。只是想帮忙。
由于有一半的时间出现静音,我怀疑问题可能是由于延迟或同步问题造成的。
尝试添加一个缓冲区,您可以通过在提示符开头添加一个短的安静缓冲区来实现,然后开始播放提示符,然后连接到呼叫。
这样,您就可以在尝试播放音频之前给系统足够的时间来加载音频。在这个方向上可能会有一些更好的想法。
另一个更“干净”的选项是使用新的特定 IVR 队列,该队列仅播放您想要的提示。
当您希望将呼叫者和座席都转移到队列中时,让音频播放并且消息结束,系统将呼叫转回。
我可以想到两种方法:
第一个是触发一个单独的流程,该流程将等待呼叫开始(加上您想要的余量),然后将呼叫移至 IVR 队列。
第二种是通过 API 连接到呼叫,并使用 API 在您想要的时刻转接呼叫。
另一种选择是利用 lambda 函数,该函数将在某些条件下执行传输基础,但在我看来,在所有内容之上添加 lambda 将使系统比所需的复杂得多。