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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nfc reader智能解码程序_更关注健康的高性价比智能手表 华米Amazfit Pop体验

现如今市面上有着种类繁多的智能手表产品,在软硬件各方面的体验上,华米的智能手表绝对是走在前列的,近期华米又发布了全新的智能手表:Amazfit Pop,双十一售价299元,这是一款专为爱运动,追求实用…

poj 3009 Curling 2.0 (dfs的应用)

http://poj.org/problem?id3009 (1)这是一个用球撞石头的游戏,撞到石头,石碎球停。在规定的10次抛球机会下,若求移动到终点就赢,否则算输了(出界直接算输)。 (2&#xf…

Asterisk学习进阶-3

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

移动app测试的多样性_快速搞定APP移动端自动化测试

1. 何为数据驱动什么是参数化?什么又是数据驱动?经常有人会搞不明白他们的关系,浅谈一下个人的理解,先来看两个测试中最常见的场景:登录:不同的用户名,不同的密码,不同的组合都需要做…

ui自动化测试框架_浅谈前端(UI)自动化测试

作为一名测试开发从业者,自动化测试好像是绕不开的话题...。结合最近接触到的一些测开应聘同学聊到关于前端自动化测试及自己的理解,分享一下自己对UI自动化测试的认识,大概如下。测试分层的自动化测试思想自动化测试分层思想所倡导的是对系统…

【转发】响应式Web设计?怎样进行?

什么是响应式Web设计?怎样进行?眼下,几乎每个新客户都希望他们的网站可以有专门的移动设备版本。最完美的情况呐,就是为iPhone、iPad、黑莓、Kindle…各自打造一款——页面分辨率还必须兼容任何设备。谁知道未来5年内我们还需要为…

cad坐标归零lisp_批量除一个数的lisp,请高手改成保留成设置小数位置。

我有一个在cad里批量除以一个数的LISP。其中《(setq newr (rtos (/ (atof old0) s0) 2 1))》的1就是决定小数点后保留1位的。请高手改一下,能否增加语句,能在cad里选择。现在,我是修改以后再加载,比较麻烦。lisp见下文。(加载命令…

基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能

说明: 本文档探讨基于Asterisk如何实现VoIP的一些基本功能,包括基本呼叫功能的方案选取、主叫号码透传、如何编写AsteriskAGI程序、Radius认证计费模块等。 本文档VoIP软终端使用X-Lite,其它终端均可以接入测试。 文章内容仅供参考,转载请注…

excel查重_发票查重工具,不止查重这么简单,你还可以体验这些新玩法

电子发票报销是目前所有行业的会计都要面对的一项重要工作,而目前电子发票报销的普遍方式都是打印报销,这样一来,会计就不得不面对企业员工将电子发票重复打印报销和篡改报销的风险,而其中,尤其以重复打印报销是会计不…

Android培训翻译_使你的程序感知位置

Dependencies and prerequisites Android 1.0 or higher (2.3 for the sample app)You should also read Location and Maps 位置和地图Try it out 下载示例代码(LocationAware.zip) Users bring their mobile devices with them almost everywhere. One of the unique feature…

python导出dxf图_在PDMS中使用python直接生成管口方位图(开源分享第三集)

在PDMS中使用python直接生成管口方位图(开源分享第三集)距离上一次发推送已有5个月之久,上周立了冬,这二季我为五斗米折了腰,最近才缓过气来。令我没想到的是,大家竟然对这个主题这么有兴趣,有关注者几次在私信询问我什…

基于Asterisk的VoIP开发指南(2)——Asterisk AGI程序编写指南

5. Asterisk AGI程序编写指南 5.1概述 很多时候,我们需要在拨号方案中做某些业务逻辑的判断或者外部数据库的查询,根据具体地需要,有几种做法: 1.使用Asterisk的通道变量、Goto函数、Gotoif函数等实现某些简单跳转…

win7关闭休眠_【科普】笔记本电脑,待机/睡眠/休眠有啥区别?(ACPI SPM S0-S5)...

本文聊聊笔记本电脑话题下,经常有人问到的内容——关机 睡眠 休眠 这三个选项有什么区别?电脑可以不关机只合上盖子吗?花了俩小时,求个赞,希望有专栏能收这篇内容~先说答案:快速唤醒:开盖/操作鼠…

k8s dashboard_【大强哥-k8s从入门到放弃02】Kubernetes1.17部署Dashboard2.0

号外号外,后面所有提升视频都会更新到知乎和B站上去,不会直接发群里了,哈哈,能看懂这句话的我都认识,大家可以先关注一下,我知乎上的所有文档也会录成视频更多视频详见 杨哥天云:https://space.…

asterisk 扩展应用(3)——IVR 实现

1 IVR 实现1.1 简单IVR配置 1:进入System Recordings,上传wav语音文件。语音文件必须是音频采样为16位。音频采样级别8kHz。使用PCM编码。 2:进入freepbx IVR模块,建立菜单 3:对入特殊设置可以加入custo…

Andoid 采用ListView三种显示数据列表

Android系统中列表形式的显示方式应该是我们最熟悉不过的界面了,例如通讯录、通话记录、信息列表等等,例如下面的形式: 我们在开发项目需要用到这种形式显示信息时除了调用系统给我们提供的ListView控件以外我们还可以自定义该控件&#xff0…

url采集器_Linux「第三节」-centos7.5部署数据采集器Telegraf

Telegraf采集器采集数据后,会存储到influxdb数据库,然后grafana从influxdb读取数据,在grafana面板上展示,整体的流程就是这样。下面就演示下Telegraf、influxdb、grafana相互间的配置与衔接下载Telegrafwget https://dl.influxdat…

css宋体代码_html布局中统一设置文字字体样式

html组织中对立设置装备摆设笔墨字体名堂后,结构部份时候须要变幻从新设置装备摆设一种字体若何完成呢?贪图门径:结构时先一般会抗衡设置装备摆设整个网页字体,预防差距浏览器显露不同默认字体,而设置装备摆设字体css属…

Asterisk队列(Queue)振铃方式(ring strategy)

队列振铃方式有:ringall,roundrobin,leastrecent,fewestcalls,random,rrmemory。 ringall是呼叫所有可到达的分机直到有接听的。 roundrobin是轮流呼叫每一个可以达到的分机。 leastrecent是呼叫最近被这…

简述用UCenter整合第三方应用程序

UCenter除了对实现用户通行,各个应用通用信息的存储和处理之外,还有一个重要的功能就是开放的接口协议,其他第三方应用程序通过简单修改,即可很容易将程序纳入UCenter体系中来,和其他应用共享用户以及其他数据 &#x…