当前位置: 首页 > news >正文

asterisk dialplan(extension)学习笔记

列举一些用过的dialplan,记录备忘

exten => 1004,1,Answer();第1步,监听到外部呼入1004这个号码,接听,对方就会看到电话已经接通

exten => 1004,n,Dial(SIP/1004,20,tr);第2步,通过SIP通道,拨打1004这个号码,间隔20

exten => 1004,n,Hangup;挂断

exten => 5,1,Answer()

exten => 5,n,Playback(my_welcome);播放my_welcom这个音频文件,文件后缀可以是wav,mp3等,需要安装对应格式的音频插件

exten => 5,n,Wait(1);wait for 1s

exten => 5,n,Playback(my_dial_inbond);播放my_dial_inbond这个音频文件,作用是提醒对方拨号的规则,例如加拨*,结尾要加#等

exten => 5,n,WaitExten(8); 等待对方操作,超时时间是8秒

exten => 5,n,VoiceMail(home@myvm); 超时后,拨打语言信箱,具体参考voicemail.conf文件中的myvm语言信箱,及对应的账号home中的处理,总之此处已经被voicemail模块接管

exten => 5,n,Hangup

exten => _0XXXXXXXXXXX,1,Dial(SIP/1001,20,D(${EXTEN:0}))

;如果拨号的号码是0打头的12位号码,那么通过SIP通道的1001用户呼出,把去掉0之后的11位号码,以DTMF的方式传递给1001

;这种方式,一般情况下1001是接一个语音网关,网关后面接一个PSTN固话线路,以DTMF方式接收待拨号的号码,并实现外呼

exten => _X.,1,Dial(Mobile/red/${EXTEN},45)

_X.  表示一个号码匹配规则,Mobile/red/${EXTEN} 表示调用chan_mobile通道,red是chan_mobile.conf中配置的具体蓝牙设备,${EXTEN}是实际用户拨号的号码,45是超时时间。

上述dialplan代表一条路由规则,表示所有的号码都路由给red设备处理,类似于路由器中把所有流量转发给某个设备,实际应该不会这么写dialplan,应该是做规则,例如上述0打头的号码才转发。

[mobile-imcoming]

exten => 1001,n,Dial(SIP/1001,20,tr)

exten => 1001,n,Hangup

;上述两个拨号计划与普通的拨号没有差异,唯一区别是加了个名称为[mobile-imcoming]的plan,或者说context,可以把具体场景和context结合,例如可以把来自于webrtc的请求关联到[mobile-imcoming]上,进而转发给1001这个SIP分机;也可以把来自于chan_mobile插件的某个蓝牙手机上的来电,转发到1001这个分机上

相关文章:

  • 嵌入式软件基础知识——1
  • 【SpringBoot篇】阿里云OSS—存储文件的利器
  • 【Java 进阶篇】Jedis 操作 String:Redis中的基础数据类型
  • PyQt6运行QTDesigner生成的ui文件程序
  • Linux C++网络编程-王健伟
  • Qt文件读写详解
  • JMeter+Python 实现异步接口测试
  • Windows环境搭建
  • Jenkins与Docker的自动化CI/CD流水线实践
  • 硬盘上不小心删除了重要文档?试试这6个成功率高的数据恢复工具!
  • billet-doux
  • Centos 7、Debian、Ubuntu中tree指令的检查与下载
  • sql 动态语句
  • Tower for Mac:强大的Git客户端,轻松管理代码版本,提升开发效率
  • [BJDCTF 2020]easy_md5
  • 收藏网友的 源程序下载网
  • $translatePartialLoader加载失败及解决方式
  • 4. 路由到控制器 - Laravel从零开始教程
  • 4个实用的微服务测试策略
  • Android交互
  • canvas 五子棋游戏
  • egg(89)--egg之redis的发布和订阅
  • IOS评论框不贴底(ios12新bug)
  • mysql innodb 索引使用指南
  • Mysql5.6主从复制
  • Python - 闭包Closure
  • 爱情 北京女病人
  • 从tcpdump抓包看TCP/IP协议
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 基于 Babel 的 npm 包最小化设置
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 移动端唤起键盘时取消position:fixed定位
  • 鱼骨图 - 如何绘制?
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • UI设计初学者应该如何入门?
  • 阿里云重庆大学大数据训练营落地分享
  • ​卜东波研究员:高观点下的少儿计算思维
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #13 yum、编译安装与sed命令的使用
  • #图像处理
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET多线程执行函数
  • 。Net下Windows服务程序开发疑惑
  • @SpringBootApplication 包含的三个注解及其含义
  • [2016.7 test.5] T1
  • [BJDCTF 2020]easy_md5
  • [C++核心编程](四):类和对象——封装
  • [Codeforces] probabilities (R1600) Part.1