asterisk学习文档格式.docx
《asterisk学习文档格式.docx》由会员分享,可在线阅读,更多相关《asterisk学习文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
PBX就够了。
安装篇
使用之前请购买这个陋习可以更改一下啦,因为我们已经进入GNU主义,getwhatyouwant。
下载通道为
而且看到手册上面要下载一堆的东西,例如zaptel*,libpri*等等,这些对于我们目前都是不需要的,因为我们想构建的是一个纯粹的IPTEL,其他和老式电话的接口暂时都由我们的网关路由器完成,例如E1/T1,ISDNBRI/PRI,FXO,FXS等等,我们通过asterisk想完成的只是IPTEL,例如sip,h323等等。
我们需要下载的只是asterisk,后续操作步骤如下:
cd/usr/src
tarzxvfasterisk-*.tar.gz
通过上述命令,文件就被解压出来,接下来肯定就是编译了,略过不表,步骤如下:
#cd/usr/src
#cdasterisk-*
#./configure
#make
#makeinstall
#makesamples
安装默认的配置文件
#makewebvmail安装语音信箱图形界面
#makeconfig
如果对于上面的命令以及作用有疑惑的话,建议多花时间看看linux的基本操作维护命令,然后再回头继续往下。
这儿需要提及的最后一点,增加了一个makesamples,正如其名,他的作用就是生成默认的配置文件。
众多的编译选项我也不介绍了,详细参见手册。
常见问题解决方案:
1.如出现找不到PTLIB库,则找到在LOG输出上找到有...ptlib.h----YES的那一条,找到对应目录把文件改名,就不会再出错了,一般目录为:
/usr/lib/ptlib.h。
2.如果出现func_rurl.c:
106常量无定义之类的错误,则直接在MAKEFILE中取消此文件的编译,因为Makefile中是定义func_*.c参与编译,所以修改此文件为其它名字即可,如__func_rurl.c。
这儿我们就假设编译很成功,没有遇到任何编译问题,当然不可能100%都不遇到的,一部分问题在手册里面给了指点,另外的问题则需要你个人多动手,多动脑,而且baidu,google也不会拒绝你使用他的。
使用篇
经过前面的步骤,代码已经编译完了,可执行文件安装完毕同时默认的配置文件也安装了,那么我们就从使用上首先简单的做个介绍,给大家带来一个直观的认识。
下文所举例子都会以sip为例,其他h323,iax,mgcp等等类似,不再赘述。
使用之前大致说明一下安装后的asterisk文件分布情况以及作用。
/etc/asterisk Asterisk主目录,包含其它关于Asterisk的配置文件;
*zaptel.conf这个配置文件放在/etc,因为其它软件也可以使用Zaptel这个硬件及其驱动,所以不是放在/etc/asterisk里.
/usr/lib/asterisk/modules 这个目录包含所有可以加载Asterisk模块(应用程序\编辑器\格式和有用通道),在Asterisk启运时会加载这些模块(可以编辑modules.conf).
/var/lib/asterisk
比较重要的是astdb文件与agi-bin目录;
astdb包含Asterisk
当地数据库信息.
sounds/
所有声音提示的文件在里面,包括Asterisk原代码中的sounds.txt文件
mohmp3/
如果配置了音乐保持,应用程序会在这个目录下查找mp3(用CBR
从文件中去除身份标签).
keys/
使用公钥和私钥系统认证与一个由RSA数字签名形成的一对等连接.公钥和私钥的扩展名分别为.pub和.key
firmware/
这个目录含了很多Asterisk相兼容的设备固件,它只有iax/这个子目录,其中有Digium的IAXy的二进制固件镜像.
images/
只有在较多的支持并且利用图解式的图像设备被发布,这个目录将会与相应的目录有更大的关联.
/var/lib/asterisk/agi-bin agi-bin包含所有脚本,可以通过许多已经建立的AGI应用程序与Asterisk连接.
/var/spool/asterisk
outgoing/
现在打电话的通道——呼叫信息目录普遍使用。
gcall/
撤销了——包含了特殊呼叫方法的呼叫信息文件——不是打电话的好方法,因为这种方式太硬性了——不再使用。
使用outgoing替代
tmp/
中间/临时数据
voicemail/
语音和问候语。
运行调试asterisk
1.运行调试常用命令
./asterisk&
在后台启动asterisk
./asterisk–vvvc启动asterisk并尽量多的在控制台显示调试信息
./asterisk–r连接asterisk控制台
setverbose9999设置打印详细信息
2.asterisk控制台下常用命令
sipreload重新加载sip配置信息
sipsetdebug
设置显示更多的sip信息
sipsetdebugoff关闭显示更多的sip信息
sipshowchannels显示所有活动的SIP通道
sipshowpeers显示所有已定义的SIPpeer
dialplanshow显示拨号方案
dialplanreload重新加载拨打方案
stopgracefully优雅地停止asterisk
stopnow立即停止运行asterisk
moduleshow显示所有已加载模块
moduleloadcdr_radius.so
加载模块cdr_radius.so
modulereloadcdr_radius.so重新加载模块cdr_radius.so
moduleunloadcdr_radius.so卸载模块cdr_radius.so
coreshowapplications显示所有的应用,比如Dial,Radius,Hangup,Answer等
coreshowchannels显示所有的通话频道
coreshowcodecs显示所有支持的编解码器
coreshowfunctions显示所有的功能函数
在asterisk源码目录下运行makemenuselect可以进入模块选择页面,在里面可以选择和去除一些模块。
看完这些目录之后,对其大体的功能也可能会有点认识,还是从启动服务器还是聊起。
启动服务器方法很多,我们按照手册中的描述选取一种
Asterisk–cvvvv
具体参数含义请参考手册
也可以通过运行/usr/sbin/safe_asterisk来运行。
我们下文的描述就会基于这个简单的拓扑展开讨论,这儿的tel都是sip电话,我们假定tel1号码为808,tel2号码为830,现在的简单需求就是我808能够打通830,实现双向通话。
开始配置前,先了解主要配置文件的作用。
/etc/asterisk/asterisk.conf 主要配置文件,
/etc/zaptel.conf 硬件接口的基本层. 修改这个配置文件要用modprobe装载LinuxKernel使用模块.
/etc/asterisk/zapata.conf 为硬件配置Asterisk的接口.
/etc/asterisk/extensions.conf 拨号方案.
/etc/asterisk/sip.conf SIP协议配置文件
/etc/asterisk/iax.conf 呼入和呼出IAX通道
/etc/asterisk/extensions.conf 拨号方案配置文件
/etc/asterisk/moduprobe.conf 加载模块配置文件
后续的工作主要就在这两份文件中开展,如果多了h323,则需要编辑h323.conf,其他通道协议类似。
我们要做的就是定义两个用户,添加到sip.conf里面,目前只做基于文件的用户管理,后续可以扩充到数据库之类的。
这儿拨号规则细节就不在赘述,欲知详情,参见手册。
这儿只是把添加的用户配置列出来。
[830]
type=friend
;
Friendsplacecallsandreceivecalls
context=830
Contextforincomingcallsfromthisuser
;
secret=blahpoly
host=dynamic
Thispeerregisterwithus
dtmfmode=rfc2833
Choicesareinband,rfc2833,orinfo
username=830
UsernametouseinINVITEuntilpeerregisters
NormallyyoudoNOTneedtosetthisparameter
disallow=all
allow=ulaw
dtmfmode=inbandonlyworkswithulaworalaw!
progressinband=no
Polycomphonesdon'
tworkproperlywith"
never"
[808]
context=808
username=808
主要是定义了一个用户,号码分别为808,830。
他们所处的拨号规则段分别为808,830。
接着添加拨号规则的段。
如下:
exten=>
s,1,Wait
(1)
Waitasecond,justforfun
s,n,Answer
Answertheline
s,n,Set(TIMEOUT(digit)=5)
SetDigitTimeoutto5seconds
s,n,Set(TIMEOUT(response)=10);
SetResponseTimeoutto10seconds
s,n(restart),BackGround(demo-congrats)
Playacongratulatorymessage
s,n(instruct),BackGround(demo-instruct)
Playsomeinstructions
s,n,WaitExten
Waitforanextensiontobedialed.
2,1,BackGround(demo-moreinfo)
Givesomemoreinformation.
2,n,Goto(s,instruct)
3,1,Set(LANGUAGE()=fr)
Setlanguagetofrench
3,n,Goto(s,restart)
Startwiththecongratulations
1000,1,Goto(default,s,1)
808,1,Goto(default,s,1)
500,1,VoicemailMain()
600,1,MeetMe(600,i,123456)
830,1,Voicemail(830@default)
830,1,Dial(SIP/830,3)
_[58]30,2,SayDigits(${EXTERN})
830,102,Playback(priv-recordintro)
830,103,Playback(spy-h323)
830,104,Hangup()
为什么拨号规则段加了那么多东西,后面再慢慢解释。
其实对于我们简单的通话而言,根本不需要那么多,向下面这样就足够了。
830,n,Dial(SIP/830,3)
830,n,Hangup()
只看这些就简洁多了吧,而且基本工作正常,解释一下,客户端(例如800)在sip里面进行了配置,其属于808这个context,故他的所有拨号动作都在808里面进行了定义。
当用户呼叫830的时候,他就跳到830这个扩展段,进行拨号。
看dial这个函数很清晰,但是他的功能确实强大无比,例如现在我们拨的是sip用户,万一我们需要拨打h323用户怎么办?
那就变成dial(h323/**,),.依此类推,所有的通道都可以采用同样的格式进行定义。
这儿当然也可以制定的复杂一些,例如遇忙时候转语音什么的,在我们的实现中,遇忙跳转到N+101扩展,我们则定义一个忙转的扩展,如下
s,2,Answer
830,3,Dial(SIP/830,3)
830,4,Hangup()
830,104,Voicemail(830@default)
这样遇忙的时候,则会转移到语音邮件留言,有了上面的基础,你就可以随心所欲进行扩充了,还可以组建会议电话,呼叫等待,更多的功能就留给你进行挖掘了。
下面简单介绍一下语音信箱的配置,语音信箱的配置关键两个文件voicemail.conf和拨号规则文件extensions.conf.
Voicemail.conf中要增加用于存放语音的邮箱,在asterisk中有专门的语法格式来申明:
Mailbox=>
password,name,email.
这只是一个最简单的格式,还有很多选项没有列出,如果感兴趣可以参阅相关文档,这里只是给出一个概念。
Mailbox是邮箱的编号,通常符合关联设置的扩展号码。
后面的password,name和email的意义就比较清晰了。
例如我们在voicemail的defaultcontext申明一个101=>
123456,jone,jone@asteriskdocs.org.然后在相对应的extensions.conf中当用户忙时或者相应超时调用这个邮箱:
Exten=>
101,1,dial(${JONE},10,r)
101,2,voicemail(u101@default)
101,102,voicemail(b101@default)
接下来就是接收语音邮件了,同样在extensions.conf中加入一条语句:
500,1,voicemailmain(),让用户通过拨打500来收听语音邮件。
配置就先说那么一些,其他也都是类似的配置,只是熟练程度问题了,原理相通,接下来就不在赘述功能配置,我们得花些精力来分析功能模块以及他们之间的相互配合问题,因为自己这些东西看的时间也不久,同时纯粹靠蒙,肯定很多地方考虑不周到的或者直接理解就是错误的,恳请各位不吝指导。
都说他功能强大,那么我们就要看看他到底有哪些功能,为什么强大,体现在哪儿。
我就按照功能大致进行功能分类先。
Asterisk大致可以按照应用,编码,文件,接入等功能模块进行粗略的分解。
首先是应用:
目前我们支持语音邮件,个性铃声,电话会议,交互应答,电话座席,三方通话,呼叫ID,通话录音等等(后续补充)。
http:
//www.voip-info.org/wiki/view/Asterisk+PBX+functions
//www.voip-info.org/wiki/view/PBX+features(列出有点多,请自行查看)
asterisk相关的权威网址有两个,www.asterisk.org和www.voip-info.org,需要资料请优先考虑这两个地方。
编码格式:
G.7