asterisk学习文档格式.docx

上传人:b****5 文档编号:17980343 上传时间:2022-12-12 格式:DOCX 页数:12 大小:23.83KB
下载 相关 举报
asterisk学习文档格式.docx_第1页
第1页 / 共12页
asterisk学习文档格式.docx_第2页
第2页 / 共12页
asterisk学习文档格式.docx_第3页
第3页 / 共12页
asterisk学习文档格式.docx_第4页
第4页 / 共12页
asterisk学习文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

asterisk学习文档格式.docx

《asterisk学习文档格式.docx》由会员分享,可在线阅读,更多相关《asterisk学习文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

asterisk学习文档格式.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1