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相关推荐

  1. Asterisk学习进阶

    Asterisk学习进阶 介绍篇 抛开所有概念,首先从单词学起.估计很多人和我一样没有明白这个词是什么意思,或许猜测他还可能是一个组合词.其实它就是"*",作为搞程序的我们看到这个 ...

  2. Asterisk学习进阶-3

    配置就先说那么一些,其他也都是类似的配置,只是熟练程度问题了,原理相通,接下来就不在赘述功能配置,我们得花些精力来分析功能模块以及他们之间的相互配合问题,因为自己这些东西看的时间也不久,同时纯粹靠蒙, ...

  3. asp.net的Ajax学习进阶

    asp.net的Ajax学习进阶 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.6.3  1.什么是Ajax? 2006年忽如 ...

  4. B站上线!DeepMind加UCL强强联手推出深度学习与强化学习进阶课程(附视频)

      新智元报道   编辑:元子 [新智元导读]DeepMind和伦敦大学学院(University College London,UCL)合作,推出了一个系列的深度学习与强化学习精品进阶课程.该课程内 ...

  5. 曝!BAT大厂NLP学习进阶之法~

    "语言理解是人工智能领域皇冠上的明珠." --比尔盖茨 自然语言处理是一门综合性的学问,它远远不止机器学习算法.相比图像或语音,文本的变化更加复杂,例如从预处理来看,NLP 就要求 ...

  6. 阿里巴巴虾米的机器学习与深度学习进阶记

    20世纪70年代初,一名名叫Geoffrey Hinton的英国研究生开始制作简单的数学模型,来描述人脑中的神经元是如何直观地理解世界的.被称为人工神经网络的技术几十年来一直被认为是不切实际的.但是在 ...

  7. Emit学习-进阶篇-定义事件

    Emit学习-进阶篇-定义事件 之前在研究如何用Emit为动态类添加事件,本来以为会非常简单,但是却碰到了许多的问题,有些问题在之前的答疑篇中已经提到了,并予以了解决,虽然有些地方自己也不是很明白,但 ...

  8. Linux学习进阶!!

    Linux学习进阶!! YUM安装之(一) http://gongzi.blog.51cto.com/1073326/269459 DHCP简单配置及中继(二) http://gongzi.blog. ...

  9. java入门学习_Java入门学习进阶知识点

    Java入门学习进阶知识点 入门阶段,主要是培养Java语言的编程思想.了解Java语言的语法,书写规范等,掌握Eclipse.MyEclipse等开发工具,编写Java代码的能力.学完这个阶段你应该 ...

最新文章

  1. 电脑组装与维护教程_小白不会装机?教你如何自己组装一台电脑。装机图文教程...
  2. 用nodejs xml2js读取xml文件
  3. leetcode 387 C++数组做法
  4. java oop阶段小测试2 机试题答案_Java OOP阶段小测试2_机试题
  5. sublime php code sniffer,mac下sublime text3的php错误提示插件php code sniffer安装后,无法显示php错误...
  6. Swift 2.0 自定义cell和不同风格的cell
  7. 中级职称计算机应用考哪些,中级职称计算机考试大纲
  8. oracle64位 32位plsql,64位oracle 安装32位plsql develop
  9. protues 快捷键和元件
  10. win10默认头像路径
  11. linux普通用户密码到期修改为原密码方法
  12. 关于ViewPager.PageTransformer的一些理解
  13. Mbps 和MB/s 之间的区别
  14. 初学者-CSS思维导图(下)
  15. PowerPoint 录制屏幕+解决找不到免费录制屏幕软件
  16. IEEE 754标准
  17. 如何给房子定一个合理的售价
  18. 计算机主机平时怎么保养,怎样保养电脑(不得不看的四个好习惯)
  19. 亚马逊定价策略_冷酷的策略使亚马逊保持领先
  20. 驱动文件中只有cat/inf/dll文件,怎么安装

热门文章

  1. HTML元素参考手册 HTML Elements Reference
  2. 对Linux课程内容的建议,Linux课程笔记 Day01 课程内容总结(示例代码)
  3. spingboot 集成swagger2
  4. oracle工作流错误,工作流错误处理 - Oracle® ZFS Storage Appliance 客户服务手册
  5. php 添加样式,添加样式到php html电子邮件
  6. 程控电源测试微安电流模式_无缝隙源和负载的切换:双向程控电源的一大门槛...
  7. vue双向数据绑定v-model绑定单选框,复选框,下拉框
  8. 【软件开发底层知识修炼】十七 快速学习GDB调试四 使用GDB进行函数调用栈的查看
  9. 关于mysql无法添加中文数据的问题以及解决方案
  10. display:table的用法