Asterisk 学习进阶 2
Asterisk 学习进阶-2
这儿只是把添加的用户配置列出来。
[830]
type=friend ; Friends place calls and receive calls
context=830 ; Context for incoming calls from this user
;secret=blahpoly
host=dynamic ; This peer register with us
;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info
username=830 ; Username to use in INVITE until peer registers
; Normally you do NOT need to set this parameter
;disallow=all
;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw!
;progressinband=no ; Polycom phones don't work properly with "never"
[808]
type=friend ; Friends place calls and receive calls
context=808 ; Context for incoming calls from this user
;secret=blahpoly
host=dynamic ; This peer register with us
;dtmfmode=rfc2833 ; Choices are inband, rfc2833, or info
username=808 ; Username to use in INVITE until peer registers
; Normally you do NOT need to set this parameter
;disallow=all
;allow=ulaw ; dtmfmode=inband only works with ulaw or alaw!
;progressinband=no ; Polycom phones don't work properly with "never"
主要是定义了一个用户,号码分别为808,830。他们所处的拨号规则段分别为808,830。接着添加拨号规则的段。如下:
[830]
exten => s,1,Wait(1) ; Wait a second, just for fun
exten => s,n,Answer ; Answer the line
exten => s,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
exten => s,n(restart),BackGround(demo-congrats) ; Play a congratulatory message
exten => s,n(instruct),BackGround(demo-instruct) ; Play some instructions
exten => s,n,WaitExten ; Wait for an extension to be dialed.
exten => 2,1,BackGround(demo-moreinfo) ; Give some more information.
exten => 2,n,Goto(s,instruct)
exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french
exten => 3,n,Goto(s,restart) ; Start with the congratulations
exten => 1000,1,Goto(default,s,1)
exten => 808,1,Goto(default,s,1)
exten => 500,1,VoicemailMain()
[808]
exten => s,1,Wait(1) ; Wait a second, just for fun
exten => s,n,Answer ; Answer the line
exten => s,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
exten => s,n(restart),BackGround(demo-congrats) ; Play a congratulatory message
exten => s,n(instruct),BackGround(demo-instruct) ; Play some instructions
exten => s,n,WaitExten ; Wait for an extension to be dialed.
exten => 2,1,BackGround(demo-moreinfo) ; Give some more information.
exten => 2,n,Goto(s,instruct)
exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french
exten => 3,n,Goto(s,restart) ; Start with the congratulations
exten => 1000,1,Goto(default,s,1)
exten => 600,1,MeetMe(600,i,123456)
exten => 830,1,Voicemail(830@default)
;exten => 830,1,Dial(SIP/830,3)
exten => _[58]30,2,SayDigits(${EXTERN})
exten => 830,102,Playback(priv-recordintro)
exten => 830,103,Playback(spy-h323)
exten => 830,104,Hangup()
为什么拨号规则段加了那么多东西,后面再慢慢解释。其实对于我们简单的通话而言,根本不需要那么多,向下面这样就足够了。
[808]
exten => s,1,Wait(1) ; Wait a second, just for fun
exten => s,n,Answer ; Answer the line
exten => 830,n,Dial(SIP/830,3)
exten => 830,n,Hangup()
只看这些就简洁多了吧,而且基本工作正常,解释一下,客户端(例如800)在sip里面进行了配置,其属于808这个context,故他的所有拨号动作都在808里面进行了定义。当用户呼叫830的时候,他就跳到830这个扩展段,进行拨号。看dial这个函数很清晰,但是他的功能确实强大无比,例如现在我们拨的是sip用户,万一我们需要拨打h323用户怎么办?那就变成dial(h323/**,),.依此类推,所有的通道都可以采用同样的格式进行定义。
这儿当然也可以制定的复杂一些,例如遇忙时候转语音什么的,在我们的实现中,遇忙跳转到N+101扩展,我们则定义一个忙转的扩展,如下
[808]
exten => s,1,Wait(1) ; Wait a second, just for fun
exten => s,2,Answer ; Answer the line
exten => 830,3,Dial(SIP/830,3)
exten => 830,4,Hangup()
exten => 830,104,Voicemail(830@default)
这样遇忙的时候,则会转移到语音邮件留言,有了上面的基础,你就可以随心所欲进行扩充了,还可以组建会议电话,呼叫等待,更多的功能就留给你进行挖掘了。
下面简单介绍一下语音信箱的配置,语音信箱的配置关键两个文件voicemail.conf和拨号规则文件extensions.conf.
Voicemail.conf 中要增加用于存放语音的邮箱,在asterisk中有专门的语法格式来申明:
Mailbox => password, name, email.
这只是一个最简单的格式,还有很多选项没有列出,如果感兴趣可以参阅相关文档,这里只是给出一个概念。Mailbox是邮箱的编号,通常符合关联设置的扩展号码。后面的password,name和email的意义就比较清晰了。
例如我们在voicemail的default context申明一个 101 => 123456, jone, . 然后在相对应的extensions.conf中当用户忙时或者相应超时调用这个邮箱:
Exten => 101,1,dial(${JONE},10,r)
Exten => 101,2,voicemail(u101@default)
Exten => 101,102,voicemail(b101@default)
接下来就是接收语音邮件了,同样在extensions.conf中加入一条语句:
Exten => 500,1,voicemailmain(),让用户通过拨打500来收听语音邮件。
原文地址http://hi.baidu.com/zengshengwen/item/d25b274c22c13eed1f19bc19
Asterisk 学习进阶 2相关推荐
- Asterisk学习进阶
Asterisk学习进阶 介绍篇 抛开所有概念,首先从单词学起.估计很多人和我一样没有明白这个词是什么意思,或许猜测他还可能是一个组合词.其实它就是"*",作为搞程序的我们看到这个 ...
- Asterisk学习进阶-3
配置就先说那么一些,其他也都是类似的配置,只是熟练程度问题了,原理相通,接下来就不在赘述功能配置,我们得花些精力来分析功能模块以及他们之间的相互配合问题,因为自己这些东西看的时间也不久,同时纯粹靠蒙, ...
- asp.net的Ajax学习进阶
asp.net的Ajax学习进阶 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.3 1.什么是Ajax? 2006年忽如 ...
- B站上线!DeepMind加UCL强强联手推出深度学习与强化学习进阶课程(附视频)
新智元报道 编辑:元子 [新智元导读]DeepMind和伦敦大学学院(University College London,UCL)合作,推出了一个系列的深度学习与强化学习精品进阶课程.该课程内 ...
- 曝!BAT大厂NLP学习进阶之法~
"语言理解是人工智能领域皇冠上的明珠." --比尔盖茨 自然语言处理是一门综合性的学问,它远远不止机器学习算法.相比图像或语音,文本的变化更加复杂,例如从预处理来看,NLP 就要求 ...
- 阿里巴巴虾米的机器学习与深度学习进阶记
20世纪70年代初,一名名叫Geoffrey Hinton的英国研究生开始制作简单的数学模型,来描述人脑中的神经元是如何直观地理解世界的.被称为人工神经网络的技术几十年来一直被认为是不切实际的.但是在 ...
- Emit学习-进阶篇-定义事件
Emit学习-进阶篇-定义事件 之前在研究如何用Emit为动态类添加事件,本来以为会非常简单,但是却碰到了许多的问题,有些问题在之前的答疑篇中已经提到了,并予以了解决,虽然有些地方自己也不是很明白,但 ...
- Linux学习进阶!!
Linux学习进阶!! YUM安装之(一) http://gongzi.blog.51cto.com/1073326/269459 DHCP简单配置及中继(二) http://gongzi.blog. ...
- java入门学习_Java入门学习进阶知识点
Java入门学习进阶知识点 入门阶段,主要是培养Java语言的编程思想.了解Java语言的语法,书写规范等,掌握Eclipse.MyEclipse等开发工具,编写Java代码的能力.学完这个阶段你应该 ...
最新文章
- 电脑组装与维护教程_小白不会装机?教你如何自己组装一台电脑。装机图文教程...
- 用nodejs xml2js读取xml文件
- leetcode 387 C++数组做法
- java oop阶段小测试2 机试题答案_Java OOP阶段小测试2_机试题
- sublime php code sniffer,mac下sublime text3的php错误提示插件php code sniffer安装后,无法显示php错误...
- Swift 2.0 自定义cell和不同风格的cell
- 中级职称计算机应用考哪些,中级职称计算机考试大纲
- oracle64位 32位plsql,64位oracle 安装32位plsql develop
- protues 快捷键和元件
- win10默认头像路径
- linux普通用户密码到期修改为原密码方法
- 关于ViewPager.PageTransformer的一些理解
- Mbps 和MB/s 之间的区别
- 初学者-CSS思维导图(下)
- PowerPoint 录制屏幕+解决找不到免费录制屏幕软件
- IEEE 754标准
- 如何给房子定一个合理的售价
- 计算机主机平时怎么保养,怎样保养电脑(不得不看的四个好习惯)
- 亚马逊定价策略_冷酷的策略使亚马逊保持领先
- 驱动文件中只有cat/inf/dll文件,怎么安装
热门文章
- HTML元素参考手册 HTML Elements Reference
- 对Linux课程内容的建议,Linux课程笔记 Day01 课程内容总结(示例代码)
- spingboot 集成swagger2
- oracle工作流错误,工作流错误处理 - 
Oracle® ZFS Storage Appliance 客户服务手册
- php 添加样式,添加样式到php html电子邮件
- 程控电源测试微安电流模式_无缝隙源和负载的切换:双向程控电源的一大门槛...
- vue双向数据绑定v-model绑定单选框,复选框,下拉框
- 【软件开发底层知识修炼】十七 快速学习GDB调试四 使用GDB进行函数调用栈的查看
- 关于mysql无法添加中文数据的问题以及解决方案
- display:table的用法