Asterisk,未来电话之路阅读笔记
开放源代码,集中于一点的电话平台,主要使用于linux系统。对这种标准的适应性很强。此文档主要介绍的是绝大部分Asterisk基本的组成部件。
革命
VOIP,连接传统电话和网络电话的桥梁
Zapata电话工程
Asterisk WiKi :www.voip-info.org
Asterisk文件工程:www.asteriskdocs.org
Asterisk的系统准备
服务器硬件选型
性能问题:
考虑
-
系统能够支持的同时连接的最大数目,每个连接都会增加系统的负载。
-
至强处理器能够处理的压缩数据编码(G729和GSM)流量的能力。Asterisk用软件完成DSP工作。
-
是否提供会议的功能;提供什么级别的功能;是否系统负载较大。
回声消除
拨号方案逻辑脚本
编码及转换:编码(编码/解码压缩/解压)
中央处理单元:CPU的一个部分浮点运算单元,CPU的性能主要取决于它。
系统上并行运行的其他进程。
内核优化。
中断请求延迟(IRQ):外围设备卡(如电话接口卡)向CPU发请求,停止目前工作到作出相应并准备处理相应任务这段时间的延迟。
内核版本:Asterisk官方支持LinuxV2.6
选择处理器
浮点元算单元越强大,处理器越可以处理越多的并行的连接数。
三种级别的Asterisk系统:小型,中型,大型。
小型:<10,建议>500MHZ
中性:(10,50),一个或者两个服务器
大型:>50 分布式
主机板的选择
高性能稳定性
运行环境:
电话硬件
如果准备把Asterisk系统连接到任何传统电信设备上去,需要有合适的硬件,所需硬件由希望达到的目标来决定。
连接到PSTN:
Asterisk允许电路交换的电信网络设备和包交换的数据网络设备。最流行和最经济的连接PSTN的方法是使用接口卡。
模拟接口卡:PSTN接口卡会由一个或者多个模拟电路组成,每个电路需要一个FXO接口。(FXS和FXO指的是模拟电路相对的两端,根据要连接到的对象来确定需要的是FXS还是FXO)
数字接口卡:如果需要的电路>10条,或者需要数字连接,需要T1或者E1。
信道复用器:
允许一个数字电路被解服用到多个模拟电路(或者相反)。一个信道复用器让你通过T1/E1线路连接模拟电话和线路到一个系统。
图表2-1:信道复用器
他类型的 PSTN 接口:通过BRIISDN电路。(BRI是一个数字电信标准,它指定两个信道来承载144kbps的流量。欧洲特别流行,北美及其他国家很少使用。)
专线连接到包交换的电话网络
NIC(不连接到PSTN,Asterisk需要的硬件设备)
ztdummy:linux内核模块(如果准备提供音乐保持或者会议,并且没有物理时钟源,需要这个)
电话类型:
物理电话
一个物理设备,最主要的作用是在两个点之间终结语音通信电路。至少,需要一个手柄和一个拨号盘
模拟电话:
传输模拟信号,声音波形是直接由人的发声产生的。
专用的数字电话:
不兼容
ISDN电话:
先于VOIP,基于标准的数字电话是ISDN-BRI终端。两种ISDN类型:PRI和BRI。PRI一般用作PBX和PSTN之间的中继,并被广泛使用。BRI在北美并不流行,但是在欧洲很成功。
ISDN实施的高额代价,在主流玩家中缺乏配合,所以没有发扬光大。
BRI倾向于服务终端设备和小端点(一个BRI环路提供两路数字电路)。ADSL,cable猫和VOIP(速度更快,价格更便宜)取代之。
BRI在会议电视设备中仍被广泛使用,因为提供固定带宽的链接。同时没有服务质量的类型,因为BRI是基于电路交换的。
BRI有时被用来在模拟电路中提供中继。
IP电话
革命性:各种增值应用的大爆炸。一种新的类型的线缆连接到话机上。给你任何通话能力。
软电话:
任何运行在个人电脑上,外观和感觉是一个电话,具有提供通过E。164寻址接受全双工音频通信的能力。
电话适配器(ATA或者模拟终端适配器)
一个终端用户设备,通过电话适配器从一个协议到另外一个协议转换通信电路。常用来转换数字信号到模拟信号。
安装Asterisk
需要什么包?
Asterisk主要使用三个包:Asterisk主程序(Asterisk),Zapata电话驱动(zaptel)和PRI库(libpri)。
如果打算搭建一个纯VOIP网路,那么只需要Asterisk包;如果使用ztdummy驱动作为时钟接口,libpri库是可选择的技术(除非你正在使用ISDNPRI接口)。
Asterisk-sounds包。
必须的包:
编译Asterisk,必须安装GCC编译器(3.X版本或者更高)及其附属包。
bison,一个取代yacc的解析其,和一个CLI。
Cryptographic库在Asterisk中需要OpenSSL和它的开发包。
如果实时使用ztdummy,或者任何一个由Zaptel提供的硬件驱动,需要安装zaptel包。
Libpri的安装要在Asterisk之前。
获取源代码:
FTP或者CVS得到。
Asterisk有两种样式:稳定型和引导型。稳定型是一种基于Asterisk分支,常用于生产系统;引导型分支则是研发员用于测试新特性和调试错误的。
注意:
通过CVS得到的源代码可能有很多的错误(比如根本不是很稳定),从ftp上下载的才是真正稳定的。
得到最新的稳定版本源代码,可以输入下面的命令行:
#cd /usr/src/
#wget --passive-ftp ftp.digium.com/pub/asterisk/asterisk-1.*.tar.gz
#wget --passive-ftpftp.digium.com/pub/asterisk/asterisk-sounds-*.tar.gz
#wget --passive-ftp ftp.digium.com/pub/zaptel/zaptel-*.tar.gz
#wget --passive-ftpftp.digium.com/pub/libpri/libpri-*.tar.gz
解压源代码:
#cd /usr/src/
#tar zxvf zaptel-*.tar.gz
#tar zxvf libpri-*.tar.gz
#tar zxvf asterisk-*.tar.gz
#tar zxvf asterisk-sound