用dtmf实现asterisk自动拨打分机
2013-01-07 13:23
169 查看
背景
系统结构图现存电话系统中用1026和1027分机,在1026和1027下面各有一个asterisk实现的电话系统。 A : 1027系统下的1011分机 B : 1026系统下的1012分机 现在通过A呼叫B,由于1026系统中实现了语言菜单,首先可以通过91026呼入1026系统(外线加拨9),然后根据提示音输入1012进行呼叫。 现存交换机不支持号码直接拨打(暂时没找到解决方案),即: 从A直接拨打910261012,不能完成对B的呼叫。
原理
双音多频 DTMF(Dual Tone Multi Frequency) 双音多频信号(DTMF),电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。 双音多频信号是贝尔实验室发明的,其目的是为了自动完成长途呼叫。 有效字符集为: "0123456789*#abcdABCD" 字符w可以进行等待,一个w代表0.5秒的等待时间,如果需要更长时间则需要多个w的组合来实现,比如: 123456wwww789配置extensions.conf实现
[macro-dtmf] exten => s,1,Wait(8) exten => s,n,SendDTMF(${ARG1}) [DLPN_testOut2] exten => _9XXXXXXXX,1,Dial(DAHDI/g1/${EXTEN:1},30,M(dtmf,${EXTEN:5})) [DLPN_DialPlan1] ;include = DLPN_testOut ;define in extension.lua include = DLPN_testOut2
配置extension.lua实现(lua实现)
extensions = { DLPN_testOut = { ["_9XXXXXXXX"] = function(context,extension) --app.dial("DAHDI/g1/" .."1026", "10","M(dtmf)tr") num1 = string.sub(extension,2,5) num2 = string.sub(extension,6) app.dial("DAHDI/g1/" ..num1, "30","D(wwwwwwwwwwwwwww"..num2..")") end; }; }
相关文章推荐
- 用dtmf实现asterisk自动拨打分机
- 两个asterisk服务器之间实现分机互相拨打
- 实现电话自动拨打、挂断
- 解决NEC SV8100 内线分机拨打总机和专用话机自动接听的故障
- 自动报工号功能在Asterisk中的实现
- 实现电话自动拨打、挂断
- 使用Asterisk manager API实现自动拨号
- 实现电话自动拨打、挂断
- 解决NEC SV8100 内线分机拨打总机和专用话机自动接听的故障
- 怎样把分机号码添加到通讯录,实现直接拨打分机?
- Android实战—实现自动读取通讯录和通话记录切换,ViewPage滑屏效果,可拨打电话
- Asterisk中的监听分机、强插、密语功能的实现
- Android 4.4 自动拨打分机流程分析
- asterisk 使用php脚本socket通过AMI端口实现自动打电话报警
- 实现电话自动拨打、挂断
- asterisk 中结合Freepbx 设置:禁止分机拨打长途电话或只能拨打内部分机(引自 voip88)
- 使用Asterisk manager API实现自动拨号
- 通过修改asterisk拨号规则,结合freepbx 设置,禁止某些分机拨打长途电话
- Shell小脚本:实现自动安装Asterisk和DAHDI
- asterisk 使用Queue 的模式实现分机hunting 模式