出站呼叫 dtmfAnswer 在来自 answer_url 的 NCCO 之上播放
Outbound Call dtmfAnswer Plays on top of NCCO from answer_url
您好,我在尝试控制在执行一些 NCCO 对象之前拨分机的去电时遇到问题。基本上用例如下...
- 使用提供的 dtmfAnswer 发起出站呼叫。
- 用户回答 phone 并播放 dtmf 音。
- 然后我们执行几个 NCCO 对象来说一些文本。
- 通话结束。
我看到的问题是我可以成功听到 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 音调的长度非常准确地计算出来。
您好,我在尝试控制在执行一些 NCCO 对象之前拨分机的去电时遇到问题。基本上用例如下...
- 使用提供的 dtmfAnswer 发起出站呼叫。
- 用户回答 phone 并播放 dtmf 音。
- 然后我们执行几个 NCCO 对象来说一些文本。
- 通话结束。
我看到的问题是我可以成功听到 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
返回的示例 NCCONCCO = [{
"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 音调的长度非常准确地计算出来。