32章--VoIP服务器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第32章VoIP服务器——Asterisk可以自己用软件实现电话交换机?是的,这就是本章我们要讨论的话题。如何在Linux下实现免费的电话交换机功能。32.1用Linux实现免费电话大餐在架设自己的电话系统之前,我们先看看传统的电话网络是如何工作的。传统的电话网络,叫做PublicSwitchedTelephoneNetwork,公共交换电话网络,简称PSTN,是一种全球联网的语音通信电路交换网络,通过中继和交换设备进行通讯。不难看出,我们现在使用的IP计算机网络和PSTN颇有几分相似之处,在PSTN中呼叫一个电话号码相当于通过IP网络到达一个IP地址,在骨干PSTN网络中,也和IP协议一样使用复用机制来传递数据。对于私有电话系统来说,也和IP计算机网络有着类似的原理。公司的电话交换机直接对外(相当于IP网络中的公网地址),外部人员只能访问到电话交换机总机,由总机控制应该将这个连接转到哪个分机上(类似于IP中的NAT),内部的分机不是合法的电话号码(192.168.x.x?),只有通过公司的电话交换机才能与外界正常通讯。在这里,公司的电话交换机,也就是通常所说的程控交换机,也叫PBX,PrivateBranch(telephone)eXchange的缩写,意思是私有/专有电话交换系统,传统的PBX使用PSTN网络连接并提供语音通话服务。随着技术的发展,出现了基于IP网络的语音传输业务,即VoiceoverIP,简称VoIP,人们可以通过计算机网络(通常是指Internet或Intranet)进行语音通话,而后,又出现了基于IP网络的PBX,简称IPPBX,IPPBX不需要专用的网络,可以通过Internet和VoIP实现类似于传统电话系统的功能,而且,使用IPPBX进行通信,对内没有任何费用,只有网络建设成本,对外只需要支付接入到Internet的费用,没有任何额外的通话或漫游、长途费用,IPPBX的优势不言而喻,而通过一些硬件设备(比如调制解调器),IPPBX也可以和现有的传统PSTN网络互通。也就是说,在所有使用IPPBX的用户之间,我们的通话都是通过Internet而非电话局的专有网络进行,都是免费的,而且不受任何电信运营商的控制,这对传统电话业务造成了很大的冲击,也使得IPPBX开始迅速发展。随着计算机硬件处理能力的加强、计算机骨干网络传输能力的提升和VoIP软件技术的进一步发展,纯软件的IPPBX开始出现,相当于无需增加任何设备,一台PC就可以作为一个IPPBX使用,提供电话系统的功能,这大大节省了公司的成本和日常费用,同时,随着Linux的兴起,基于Linux的开源IPPBX软件出现了,也就是说,我们可以完全免费并且是合法的构建起自己的VoIP电话系统。而这些开源IPPBX软件中的佼佼者,就是Asterisk。32.2用Asterisk提供免费的VoIP服务1999年,LinuxSupportService公司的MarkSpencer出于工作需要和资金的压力,开始捣鼓基于Linux的免费电话系统,因为当时PBX都是专有厂商而且价格昂贵(现在也是),他开始尝试自己开发纯软件的PBX系统,这就是Asterisk的起源。随后,依靠全世界电信和程序爱好者的共同努力,Asterisk开始迅速发展,并成为开源软件IPPBX领域的明星,2001年,随着Asterisk的发展,LinuxSupportService改名为Digium公司,开始专门提供Asterisk服务及相关语音板卡硬件的销售业务。之所以选择Asterisk这么古怪的名字(Asterisk是*号的意思),只是因为创始人MarkSpencer选择了一个既存在于传统电话按键中,又存在于Linux中而且代表通配符的这样一个符号,我认为这也从侧面反应了他想让Asterisk成为基于Linux的电话系统标准的想法。Asterisk支持几乎所有Linux、Unix类操作系统,甚至可以支持Windows操作系统(目前最新版本的AsteriskforWindows是0.6版,构建于标准Asterisk1.2.13),除了提供最基本的VoIP语音通话功能,Asterisk还支持传真、语音信箱、彩铃(RBT,RingBackTone)、电话会议(多方通话)、IVR(InteractiveVoiceResponse,互动式语音应答)等高级功能,Asterisk的这些功能,和当前的任何硬件或商业软件PBX,也可以说是丝毫不逊色,甚至在灵活性和可配置性方面比硬件PBX更加出色,相信接触过传统PBX系统的朋友一定感同身受,各式各样的古怪命令可不是那么好玩:-)。这些以往需要昂贵的硬件、软件和人员成本来构建的高级专业系统,才能完成的任务和功能,Asterisk都可以完成,而Asterisk的座右铭是:这不过是软件!(It’sonlysoftware!)我们不禁会想,会不会有一天,硬件PBX完全消失,这个世界的电信系统是Asterisk的天下?Asterisk并不是一个特定的电话系统,它实际上是一个支持各种扩展的应用网关,我们可以在网关上开发出各种逻辑和流程,提供各式各样的服务。例如,可以开发出基于H.323、SIP、RTP等协议的语音通话服务,可以支持alaw/ulaw,GSM,ILBC,G.729a等多种数据压缩格式,这样,就能以Internet为平台提供优质的语音服务。虽然语音通讯是Asterisk的核心,但并不是Asterisk的全部,例如,可以围绕Asterisk方便的扩展出传真、语音邮件等功能,甚至可能通过Asterisk的平台,用电话对系统进行管理。Asterisk如此强大的原因,是因为Asterisk具备完善的程序逻辑,这也可以说是Asterisk最耀眼的功能。例如,我们可以通过用户的按键操作,选择是为他接通某个分机还是给某人发邮件,或者把它加入到正在进行的某个会议中。我们可以控制当被呼叫的用户无法接通时,自动转到他的留言信箱,并把留言作为附件发送到用户指定的邮箱,总之,只要是可推断的操作,都能为之提供一定的功能作为响应。我们也可以很容易就建立起企业自动电话服务系统,为客户提供已录制好的常见问题解答或企业服务介绍,依据用户的按键,选择播放不同的内容,当用户无法得到想要的解答时,还能及时把他们转到人工座席。更重要的是,这一切,都是建立在免费的、纯软件的基础之上的。用户几乎不需要任何投入,只要有一台586PC,就能为企业提供完全免费的VoIP电话服务(当然,如果需要同时接入到传统电话网络,还是需要一点点投入的)。如果能为企业构建起这样一套电话系统,是不是很让人心动?还等什么呢?赶快投入到Asterisk系统中来吧!32.3获取Asterisk及其相关软件前面说过,我们只需要一台PC就能构建出完善的商业级电话系统,但这个系统是基于纯粹的InternetVoIP的,如果要和传统电话互联,则需要投入一点费用用于申请电话号码和购买一块转接卡,用于将传统电话网络跟我们的VoIP电话网络进行互联,对于小型办公场所而言,我们涉及的传统电话都将是模拟信号,因此这块板卡通常都是模拟转换卡,也就是市面上常见的Zapata公司的X100P卡或兼容卡,它有专门的管理和驱动,这些驱动和管理工具软件被统称为zaptel,用户可以通过Asterisk公司Digium网站获取。如果我们使用一些ISDN设备比如数字方式的PSTN中继接入卡,那么还需要另一个库libpri,它是PrimaryRateISDN的缩写,可以用于ISDN设备的管理和驱动,如果我们没有用到这种设备,那么就不需要它。另外,Asterisk默认只支持通过ODBC连接到外部数据源,因此,如果想使用MySQL来配置和管理Asterisk,那么你需要安装Asterisk-addons这个包,它支持asterisk直接连接到MySQL数据库。除此以外,还有Asterisk-sounds包,这个包主要是额外的语音文件,由于目前还没有中文语音,因此我认为对于我们中文用户来说意义不大。上述软件都可以通过Asterisk网站找到。最后,我们可能涉及的软件是FreePBX(freepbx.org),它提供了一个管理Asterisk的Web界面,用户可以通过这个见面直观的对Asterisk进行管理,但FreePBX是基于MySQL的,它会覆盖掉所有现有的配置文件,而且它使用自己的配置数据结构,也就是说,对于已经存在的系统,你可能需要全部重新配置。这是我不喜欢FreePBX的原因。而且最新的FreePBX版本是2.2.1,它只能支持Asterisk1.2.x,如果用来管理1.4版本的Asterisk,可能会存在未知的问题。通过集成CentOS、Asterisk和FreePBX,Fonality公司提供了一个完全傻瓜式的Asterisk系统(或者叫产品系统),从安装操作系统到配置、管理路由和分机,都可以实现高度自动化,这个系统,被称为Trixbox(),之前叫做Asterisk@Home(简称AAH),目前最新版本是2.0。这是个非常流行的Asterisk系统,因为它有着迅速、方便的安装和管理能力,看上去更像一个成熟的产品而非黑客的玩具,它最适合于新买来的计算机,用户不需要什么前期准备,甚至不需要格式化硬盘,直接把光盘插入新买的计算机中,就能完成所有的安装和配置。最近开发Asterisk的公司Digium现在也开始推出自己的类似产品——AsteriskNOW(),它也是一个具备和Trixbox相似扩展功能的,集成了操作系统和Web管理界面的产品级别的Asterisk系统,不过目前版本还是BETA4,使用的人还不多,今后究竟哪个系统更加符合用户需求,应用更加广泛,还需要我们拭目以待。32.4Asterisk及其相关软件的安装首先,确保系统的编译环境是完好的,包括gcc、clibary、make和内核源文件kernel-source等软件都已经被安装了,虽然对于大多数系统来说,这些都是默认安装的,但对于少数系统来说,出于安全考虑,会清除掉软件编译的环境,或者没有安装kernelsource,那么在安装Asterisk及相关软件时很可能出现错误,对这类系统,就需要首先安装好上面提及的这几个软件包。比如,在Debian系统中,可以使用下列命令安装上面的包:Debian:apt-getupdate;apt-getinstallgccmakelibc6-devlinux-source然后,我们将所有需要的软件包下载下来,包括asterisk、asterisk-addons、zaptel、libpri等,需要的软件具体说明如下:软件名关联性下载地址Asterisk必须,核心接入PSTN时必须使用数字接口接入PSTN时必须使用MySQL做数据源时必须更多的IVR语音使用ODBC方式连接到数据库时必须使用ODBC方式连接到MySQL数据库时必须需要Asterisk收发传真时必须

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功