从answer_url在NCCO顶部播放呼出电话dtmfAnswer

时间:2019-03-04 21:13:06

标签: nexmo

嗨,我在尝试执行一些NCCO对象之前尝试控制拨打电话分机的拨出电话时遇到麻烦。基本上,用例如下...

  1. 使用提供的dtmfAnswer发起外拨呼叫。
  2. 用户接听电话并播放dtmf音调。
  3. 然后我们执行几个NCCO对象来说一些文本。
  4. 通话结束。

我看到的问题是我可以成功听到dtmf音调的声音,但似乎是与我的NCCO对象从answer_url返回时同时发生的。基本上,步骤2和步骤3同时发生。无论如何,我可以强制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"]
}]

2 个答案:

答案 0 :(得分:1)

感谢您提出这个问题。答案应该是:将播放dtmfAnswer,然后跟随您的answer_url的NCCO ...但是,我已经对其进行了测试,并且还体验了音调,但是没有NCCO。非常抱歉您遇到了这个问题-我们正站在我们这边看,我们会及时通知您。

如果您仍然需要在通话中播放DTMF音调,则无需执行NCCO操作,但是可以通过调用API并提供会话ID来以编程方式进行操作。 https://developer.nexmo.com/voice/voice-api/building-blocks/play-dtmf-into-a-call处有各种语言的示例,API文档在这里:https://developer.nexmo.com/api/voice#startDTMF

希望有帮助!

答案 1 :(得分:0)

我只是想更新此评论,因为我从与一些实施人员的交谈中得到了解决方法。似乎没有可以创建的直接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音调的长度准确地计算出放置在time属性中的持续时间。