嗨,我在尝试执行一些NCCO对象之前尝试控制拨打电话分机的拨出电话时遇到麻烦。基本上,用例如下...
我看到的问题是我可以成功听到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"]
}]
答案 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属性中的持续时间。