首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在拨号方案中获取DTMF值

如何在拨号方案中获取DTMF值
EN

Stack Overflow用户
提问于 2012-09-08 14:02:56
回答 4查看 3K关注 0票数 4

我有一个dialplan,其中我想要的是,如果用户按任何键,然后再次播放文件,但我不能理解如何在拨号计划中获得DTMF值。这是我的拨号方案:

代码语言:javascript
复制
[callme]  
exten => s,1,Answer 
exten => s,n,Playback(demo/${FILENAME1})

首先,如何获得DTMF值,还有,如果用户按任何键,那么播放应该执行2 times.but,我想用dialplan管理所有这些事情。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-10 14:00:28

感谢回复我的解决方案,但我得到了这个解决方案,它为我工作......

代码语言:javascript
复制
[callme]
exten => s,1,Answer
exten => s,n,DumpChan()
exten => s,n,Playback(sclbrd/welcome)
exten => s,n,Wait(2)
exten => s,n,Set(i=1)
exten => s,n,While($[${i} != 3])
exten => s,n,Playback(sclbrd/${FILENAME1})
exten => s,n,Read(digit|sclbrd/press|1)
exten => s,n,Wait(1)
exten => s,n,GotoIf($["${digit}x" = "x"]?done:again)
exten => s,n(again),Wait(1)
exten => s,n,Set(i=$[${i} + 1])
exten => s,n,EndWhile()
exten => h,n(done),Wait(1)
票数 1
EN

Stack Overflow用户

发布于 2012-09-08 21:40:09

您可以使用WaitExten 1来完成此操作

代码语言:javascript
复制
[callme]  
exten => s,1,Answer 
exten => s,n,Playback(demo/${FILENAME1})
exten => s,n,WaitExten(3)
exten => s,n,Goto(s,1)
exten => 1,1,Noop(user pressed 1)
exten => 1,n,Goto(however-shall-go-to-when-pressed-1)
exten => 2,1,Noop(user pressed 2)
exten => 2,n,Goto(however-shall-go-to-when-pressed-2)

使用扩展模式2

代码语言:javascript
复制
[callme]  
exten => s,1,Answer 
exten => s,n,Playback(demo/${FILENAME1})
exten => s,n,WaitExten(3)
exten => s,n,Goto(s,1)
exten => X,1,Noop(user pressed ${EXTEN})
exten => X,n,Goto(however-shall-go-to-when-pressed-${EXTEN})

这就是你所要求的:

代码语言:javascript
复制
[callme]  
exten => s,1,Answer 
exten => s,n,Playback(demo/${FILENAME1})
exten => s,n,WaitExten(3) 
exten => s,n,NoOp(going on - no dtmf detectd)
exten => X,1,Noop(user pressed ${EXTEN})
exten => X,n,Goto(s,1)

还可以看看背景星号应用程序3。

参考文献:

1

2

3

票数 2
EN

Stack Overflow用户

发布于 2012-09-09 04:37:27

您还可以使用应用程序读取。它确实会提出比一次更多请求,从而大大简化了复杂的拨号方案

代码语言:javascript
复制
[test]
;Read(variable[,filename[&filename2[&...]][,maxdigits[,options[,attempts[,timeout]]]]])
exten => s,1,Read(response,file_to_play,3,,4,10)
;will read into response variable,upto 3 digits and ask upto 4 times, timeout 10 sec

exten => s,2,GotoIf($[ "${response}" == "123"]?pin_ok,s,1)

Full info about Read on voip-info.org

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12328460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档