出站呼叫 dtmfAnswer 在来自 answer_url 的 NCCO 之上播放

Outbound Call dtmfAnswer Plays on top of NCCO from answer_url

您好,我在尝试控制在执行一些 NCCO 对象之前拨分机的去电时遇到问题。基本上用例如下...

  1. 使用提供的 dtmfAnswer 发起出站呼叫。
  2. 用户回答 phone 并播放 dtmf 音。
  3. 然后我们执行几个 NCCO 对象来说一些文本。
  4. 通话结束。

我看到的问题是我可以成功听到 dtmf 音调播放,但它似乎与我从 answer_url 返回的 NCCO 对象同时发生。基本上step2和step3是同时发生的。无论如何我可以强制播放 dtmfAnswer 然后播放我配置的内容 answer_url?

谢谢!

正在创建出站呼叫

body = {
    "to": [{"type":"phone", "number": "xxx", "dtmfAnswer": "ppp123ppp"}],
    "from": {"type":"phone", "number": "xxx"},
    "answer_url": ["testing-123-ngrok.io/answer"],
    "answer_method": "POST",
    "event_url": ["testing-123-ngrok.io/event"],
    "event_method": "POST"
}

从 answer_url

返回的示例 NCCO
NCCO = [{
    "action": "talk",
    "text": "Welcome to a Voice API I V R.",
    "voiceName": "Amy",
    "bargeIn": False,
},
{
    "action": "talk",
    "text": "Press 1, for maybe, and 2, for not sure, followed by the hash key.",
    "voiceName": "Amy",
    "bargeIn": True,
},
{
    "action": "input",
    "submitOnHash": True,
    "eventUrl": [const.PUBLIC_HOST + "/answerbla"]
}]

感谢您提出这个问题。答案 应该 将播放 dtmfAnswer 然后来自 answer_url 的 NCCO 将跟随......但是我已经测试过它并且我也体验过音调但没有 NCCO。非常抱歉您 运行 参与其中 - 我们正在关注它,我会及时通知您。

如果您仍然需要能够在通话中播放 DTMF 音调,则没有为此执行的 NCCO 操作,但您可以通过调用 API 并提供对话 ID 以编程方式执行此操作。这里有一些不同语言的示例 https://developer.nexmo.com/voice/voice-api/building-blocks/play-dtmf-into-a-call and the API docs are here: https://developer.nexmo.com/api/voice#startDTMF

希望对您有所帮助!

我只是想更新此评论,因为我通过与一些实施人员交谈获得了解决方法。看起来没有您可以创建的直接 NCCO 来延迟 answer_url 内容的开始。但是,由于 Nexmo 支持 SSML,因此您可以将 SSML 元素添加到您的主要演讲 NCCO 中。

NCCOS = [
    {
        "action": "talk",
        "text": "<speak><lang xml:lang='es-ES'><break time='10s'/>Hola</lang></speak>"
    },
]

这将等待 10 秒,然后 Nexmo TTS 开始说 "Hola"。您在时间属性中输入的持续时间可以通过 DTMF 音调的长度非常准确地计算出来。