Asterisk入门资料目录1. 概述 (3)2. 什么是asterisk?开源电话平 (3)3. 为什么使用Asterisk? (3)4. 专利技术有什么错? (3)5. 我们要Asterisk做什么? (4)6. Asterisk支持什么技术? (4)7. 比较好的Asterisk参考书? (4)8. 相关: (4)9. 组件: (4)10. 有用的网页: (5)11. 重要链接: (5)12. 重要信息: (5)13. 外部交换借口/通道接口 (6)14. 拨号计划: (6)14.1. 上下文(context) : (6)14.2. 分机以如下格式定义: (7)14.3. Applications: (7)14.4. 特别分机: (8)14.5. 这个拨号计划会: (8)14.6. 为拨号计划添加逻辑: (8)15. 载入Ubuntu: (9)16. 求助: (9)17. 本章的任务: (10)18. 备注: (20)1.概述subscriber:加入某个group,从而遵从某一个call restricionsubscriber group:可以使用1种call restriction。
call restriction:将numbering plan中各项取出,各自组成成不同的呼叫限制方案numbering plan:通用,是一个整体的计划,里面包括长途,本地,等各种形式的方案————————————————————-以上,用于拨入号码的预处理,实际上是一种过滤,下面才是真正的呼叫处理。
————————————————————–route:一种策略,根据号码匹配的模式,选择走哪个trunk。
trunk:实际上做通一个链路,供route选择。
analog的,一个POTS就是一条analog trunkanalog的数量由设备定,ip trunk没有限制数量,并且一个ip trunk连到对方IPPBX后,对方的subscriber 数量是不确定的,由那个IP PBX决定。
Asterisk,开始吧————————————————————–2.什么是asterisk?开源电话平Asterisk 通过了电话的开源平台。
基本上就是一个软件的PBX。
最初是Digium 公司的Mark Spencer 编写的,这个公司就是他创立的,专门生产并销售Asterisk使用的硬件。
Asterisk 简直就是一场电话的革命。
3.为什么使用Asterisk?现在电信行业的混乱,因为各种专利技术应用在各种层次的网络上,导致很大的混乱。
Asterisk 就是答案——给电信行业普遍的混乱环境带来秩序的革命。
4.专利技术有什么错?没错,如果专利技术独立工作的话。
就像你有剃须刀和剃须膏没错一样!但是让各种技术互相操作,专利技术就会除了要价过高、客户不满,以及缓慢的开发速度等问题之外的刻板和局限。
5.我们要Asterisk做什么?根据情况而定。
在一个小实验室,一个pc(x86),500MHz 的奔三,合适的内存,合适的电源,还有Linux (其他os也可以支持)。
此外还有Digium 板卡插在系统中,以便连接本地PSTN。
6.Asterisk支持什么技术?与 VoIP, PSTN, ISDN, AIX, SIP 有关的任何东西。
7.比较好的Asterisk参考书?<电话未来之路>(http://www.asterisk-docs.o…找到,编译,安装,在第3,4章中,包含了到哪里去找那些文件之类的信息。
还有编译时的需要注意的选项,需要配置的模块,和在运行时载入的模块。
8.相关:gcc, glibc-kernheaders, cpp, binutils, glibc-headers, glibc-devel此外, 安装bison 和open ssl大多数标准的distro都自带推荐distro:基于RedHat和RH的distro (版本没指定)9.组件:AsteriskZaptellibpriAsterisk:Asterisk 程序文件,还有配置,监控的工具Zaptel: Zapata 项目中硬件的核心模块和驱动,如果要与PSTN或者其他网络接口,需要它。
libpri: 与Primary Rate Interface ISDN的接口库。
还有,如果基准时间参考,需要安装ztdummy 模块(第3章中解释)10.有用的网页:PSTN: /wi…G.729: /wi…G.711: /CI…Digium: /wi…Asterisk: /wi…Free World Dial-up: /wi…Asterisk Architecture: http://www.asteriskdocs.or…11.重要链接:Putty:http://www.chiark.greenend…Asterisk 通道:/w…12.重要信息:Asterisk machine on the LAN: 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,用于记录呼叫详细记录13.外部交换借口/通道接口FXO :Digium Dev-Lite kit上的红口:Foriegn eXchange Office:这个通道(接口)的动作角色是fxo,利用fxs协议——就是说这个模块需要插入到pstn。
FXS(Digium卡的绿口):Foriegn eXchange Station,它表现得像fxs,读的是fxo协议——所以要插入终端设备——注意,这里插pstn,会烧坏!配置Foriegn eXchange Station文件:让你对常见的通道接口进行管理/comm 通道硬件,决定如何在连接的设备之间进行握手。
注意:使用zapata.conf文件完成非常重要的通道配置——激活或者失效类似回形针、回声处理之类的功能。
详细程度到pstn添加到那个端口,信令控制等——如果这里配置不正确,甭指望系统能工作正常。
14.拨号计划:在extensions.conf中指定。
Dialplan:拨号计划:在 /etc/asterisk 文件中拨号计划语法由以下组成部分:14.1.上下文(context) :写在[]里面, 定义上下文来创建独立的空间注意:最重要的一个上下文的应用就是提供安全性:要获得更多信息,看安装文件中SECURITY 文件。
例如:[incoming]statement 1—statement 2—[next-context]注意:当下一个定义的上下文开始的时候,现在这个上下文就结束了。
分机:非常简单。
与普通的PBX一样。
分机号的意思是你在连接到系统之后拨打的号码以获得某个终端/服务-不仅是asterisk14.2.分机以如下格式定义: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, in Asterisk v2, we’ve got a way to put labels tp priorities:exten => 123, 1, Answer()exten => 123, n(Hangup), Hangup()14.3.Applications:应用程序:应用程序是真正执行你的拨号计划的程序。
拨号计划定义了顺序——应用程序就按照它去做。
工作内容可以是任何东西,从播放声音到接受当前通道上的按键输入。
(/w…了解asterisk通道,虽然听起来很好笑,但是我是对通道很迷惑)简而言之,应用程序是真正干活的,当有人拨打123的时候,参考以上示例。