您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Asterisk入门教程
Asterisk入门教程subscriber:加入某个group,从而遵从某一个callrestricionsubscribergroup:可以使用1种callrestriction。callrestriction:将numberingplan中各项取出,各自组成成不同的呼叫限制方案numberingplan:通用,是一个整体的计划,里面包括长途,本地,等各种形式的方案-------------------------------------------------------------以上,用于拨入号码的预处理,实际上是一种过滤,下面才是真正的呼叫处理。--------------------------------------------------------------route:一种策略,根据号码匹配的模式,选择走哪个trunk。trunk:实际上做通一个链路,供route选择。analog的,一个POTS就是一条analogtrunkanalog的数量由设备定,iptrunk没有限制数量,并且一个iptrunk连到对方IPPBX后,对方的subscriber数量是不确定的,由那个IPPBX决定。Asterisk,开始吧--------------------------------------------------------------什么是asterisk?开源电话平台Asterisk通过了电话的开源平台。基本上就是一个软件的PBX。最初是Digium公司的MarkSpencer编写的,这个公司就是他创立的,专门生产并销售Asterisk使用的硬件。Asterisk简直就是一场电话的革命。为什么使用Asterisk?现在电信行业的混乱,因为各种专利技术应用在各种层次的网络上,导致很大的混乱。Asterisk就是答案——给电信行业普遍的混乱环境带来秩序的革命。专利技术有什么错?没错,如果专利技术独立工作的话。就像你有剃须刀和剃须膏没错一样!但是让各种技术互相操作,专利技术就会除了要价过高、客户不满,以及缓慢的开发速度等问题之外的刻板和局限。我们要Asterisk做什么?根据情况而定。在一个小实验室,一个pc(x86),500MHz的奔三,合适的内存,合适的电源,还有Linux(其他os也可以支持)。此外还有Digium板卡插在系统中,以便连接本地PSTN。Asterisk支持什么技术?与VoIP,PSTN,ISDN,AIX,SIP有关的任何东西。比较好的Asterisk参考书?电话未来之路(找到,编译,安装,在第3,4章中,包含了到哪里去找那些文件之类的信息。还有编译时的需要注意的选项,需要配置的模块,和在运行时载入的模块。相关:gcc,glibc-kernheaders,cpp,binutils,glibc-headers,glibc-devel此外,安装bison和openssl大多数标准的distro都自带推荐distro:基于RedHat和RH的distro(版本没指定)组件:AsteriskZaptellibpriAsterisk:Asterisk程序文件,还有配置,监控的工具Zaptel:Zapata项目中硬件的核心模块和驱动,如果要与PSTN或者其他网络接口,需要它。libpri:与PrimaryRateInterfaceISDN的接口库。还有,如果基准时间参考,需要安装ztdummy模块(第3章中解释)有用的网页:PSTN:::::::重要链接:Putty:通道:重要信息:AsteriskmachineontheLAN:90.0.0.3Asterisk的目录结构:(更确切的说,是Asterisk使用的目录)/etc包含了zaptel.conf文件(只有一个)/usr/lib/asterisk/modules所有的asterisk可载入的模块都在这里,一般来说,所以的模块都是启动的时候载入的注意:要更改启动时载入的模块,或者是模块载入的方式,你可以修改/etc/asterisk/modules.conf文件/etc/asterisk包含了所有的asterisk配置文件/var/lib/asteriskagi-bin:agi脚本固件:兼容设备固件映像:在这个目录下寻找映像(如果通道支持)关键字:这个文件中有基于RSA一类的认证关键字mohmp3:当配置了持有音乐的时候,这个目录是放置mp3的(注意,mp3应该使用恒比特率编码,并且没有id标签。)sounds:所有的语音提示/var/spool/asteriskqcall:撤销了——包含了特殊呼叫方法的呼叫信息文件——不是打电话的好方法,因为这种方式太硬性了——不再使用。使用outgoing替代。Outgoing:现在打电话的法国闹事——呼叫信息目录普遍使用。Tmp:中间/临时数据Voicemail:语音和问候语。通过修改/etc/asterisk/voicemail.conf文件可以修改。/var/run处理系统中运行进程的id(包括asterisk)/var/log/asteriskAsterisk在这里生产日志,通过/etc/asterisk/logger.conf来配置。/var/log/asterisk/cdr-csv用来存储呼叫详细记录,逗号分割,例如csv(地址簿格式)重要:很多时间会使用cdr,ast附件包的代码可以在mysql数据库中存储cdr,用于记录呼叫详细记录外部交换借口/通道接口FXO:DigiumDev-Litekit上的红口:ForiegneXchangeOffice:这个通道(接口)的动作角色是fxo,利用fxs协议——就是说这个模块需要插入到pstn。FXS(Digium卡的绿口):ForiegneXchangeStation,它表现得像fxs,读的是fxo协议——所以要插入终端设备——注意,这里插pstn,会烧坏!配置ForiegneXchangeStation文件:让你对常见的通道接口进行管理/comm通道硬件,决定如何在连接的设备之间进行握手。注意:使用zapata.conf文件完成非常重要的通道配置——激活或者失效类似回形针、回声处理之类的功能。详细程度到pstn添加到那个端口,信令控制等——如果这里配置不正确,甭指望系统能工作正常。拨号计划:在extensions.conf中指定。Dialplan:拨号计划:在/etc/asterisk文件中拨号计划语法由以下组成部分:上下文(context):写在[]里面,定义上下文来创建独立的空间注意:最重要的一个上下文的应用就是提供安全性:要获得更多信息,看安装文件中SECURITY文件。例如:[incoming]statement1---statement2---[next-context]注意:当下一个定义的上下文开始的时候,现在这个上下文就结束了。分机:非常简单。与普通的PBX一样。分机号的意思是你在连接到系统之后拨打的号码以获得某个终端/服务-不仅是asterisk分机以如下格式定义:exten=分机的组成部分:exten=name,priority,application()例如exten=123,1,Answer()的意思是当另一端拨打123,调用asterisk/apps/Answer(),优先级别为1。优先级别通常从1开始。数字越小,级别越高。例如,级别1就比级别2要高。(现在,有一些称为非数字化的级别——非常好,继续读!)一个很好的例子:exten=123,1,Answer()exten=123,2,Hangup()会发生什么情况,无论什么人拨打123,系统都会首先执行answer(),然后当answer结束的时候,过渡到hungup()。你看,都是执行的顺序和优先级。还有一些特殊的分机,例如s,比如我们前面的例子中123的位置,后面再解释记住:所有的优先级别都是从1开始,其他的必须遵循这个顺序。Ast不会处理其他的,会认为是出错。分机可是任何,不仅是数字,例如名字。优先级:我想在前面讨论分机的时候已经讨论了优先级别。非数字的优先级:我们会在Answer()...Hangup()后使用n来代替实际的优先级别数字。exten=123,1,Answer()exten=123,n,Hangup()Asterisk会自动给优先级别+1,所以你就不用每次记着并输入这个数字了Also,inAsteriskv2,we'vegotawaytoputlabelstppriorities:exten=123,1,Answer()exten=123,n(Hangup),Hangup()Applications:应用程序:应用程序是真正执行你的拨号计划的程序。拨号计划定义了顺序——应用程序就按照它去做。工作内容可以是任何东西,从播放声音到接受当前通道上的按键输入。(了解asterisk通道,虽然听起来很好笑,但是我是对通道很迷惑)简而言之,应用程序是真正干活的,当有人拨打123的时候,参考以上示例。我们可以通过友好的邻居应用程序传递参数,把它们放在逗号或者竖线分割的列表中。例如:exten=123,1,DoSomething(Arg_1,Arg_2,Arg_3,..,Arg_n)或者exten=123,1,DoSomething(Arg_1|Arg_2|Arg_3|..|Arg_n)开源中,你随意!特别分机:‘s’是个特别的分机——它处理环境中任何的输入,没有特定目标。S意味着开始。例如[incoming]exten=s,1,application()exten=s,2,application()exten=s,3,application()现在,只要呼叫进入,就带有最高级别,进入s。当我们补充了应用程序之后,我们就是创建了自己的拨号计划填入应用程序名(分配正确的优先级别)exten=s,1,Answer()exten=s,2,Playback(hello-world)exten=s,3,Hangup()这就是asg拨号计划了这个拨号计划会:1.接电话(接听已经建立了通道的呼叫,这个呼叫就是从这个通道来的,在进行任何处理之前,先把电话接听.没有参数传递。2.播放语音,给出了语音文件的路径,通常在/var/lib/asterisk/sounds/,gsm格式,后缀名为.gsm。如果有多个文件都符合这个文件名,ast就播放那个cpu负载(翻译成本)最小的,翻译成本与不同的文件格式有关。在cli下面输入showtranslation可以看到,参数,语音文件名,还有路径,如果这个文件没有在标准路径下。3.挂掉活动通道,主叫方就是从这个通道进行呼叫的,很必要,确保主叫没有继续拨号计划。没有参数为拨号计划添加逻辑:Background()应用程序:它与playback()非常像,只是在播放语音的时候,如果用户拨打号码,语音中断,然后呼叫那个分机。例如,主叫拨打分机x,会以第一优先级转到分机x上面去。语法:Background(sound_file)例子:extend=
本文标题:Asterisk入门教程
链接地址:https://www.777doc.com/doc-2901945 .html