资源预览内容
第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
第9页 / 共41页
第10页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于 Asterisk的 VoIP开发指南(1)实现基本呼叫功能2008/06/12说明:1. 本文档探讨基于 Asterisk如何实现 VoIP的一些基本功能,包括基本呼叫功能的方案选取、主叫号码透传、如何编写 Asterisk AGI程序、Radius 认证计费模块等。2. 本文档 VoIP软终端使用 X-Lite,其它终端均可以接入测试。3. 文章内容仅供参考,转载请注明出处。1 VoIP系统相关协议和标准由于 I P电话技术标准的开发涉及多个领域,因此,VOIP 系统要想实现这些IP电话之间的通信,则必须提供支持这些协议的实现。目前主要涉及的协议如图1-1所示,其中除了 HTTP是与 WWW相关的协议外,其它的都是 VOIP相关协议。图 1-1 所有基于 IP协议的协议族由图 1 -1可以看出,与 VOIP相关的协议共分五层,每一层又由许多协议组成。目前有关 IP电话制定的标准体现在应用层。而应用层又可分为信令控制协议、网关控制协议、媒体编码和传输协议和 QOS协议等。1. 信令控制协议,目前被广泛接受的 IP电话控制信令体系主要有 ITU-T的H.323系列和 IETF的会话初始化协议(SIP)。2. 网关控制协议,网关控制协议主要有媒体网关控制协议(MGCP)。该协议是为了解决目前 IP电话负担过重,不能满足未来容量和业务扩展的要求而设计的。3. 媒体编码,媒体编码主要有两类视频编码和音频编码。视频编码主要有 H.261和 H.263。音频编码主要有 G. 7xx系列。4. 实时传输协,实时传输协议有包括了实时传输协议(RTP)、实时传输控制协议(RTCP)、实时流协议(RTSP)和资源预留协议(RSVP)。相关的协议标准可以参考相应的网上资料,在这不细述。2 Asterisk简介Asterisk 是一个开源的软件包,它可以运行 PBX的所有功能,通常运行在Linux操作系统平台上。它不仅包含了 PBX的功能,同时还有其它一些附加特性。Asterisk可以用三种协议来实现 VoIP,同时可以与目前电话使用的标准硬件进行交互通信。Asterisk 提供了附加的语音邮件服务、电话会议、交互语音应答、呼叫排队等基本电话服务。它还提供了多方呼叫、显示呼叫者 ID(显示主叫号码)等服务Asterisk 在实现 VoIP时,不需要任何附加硬件,DDD 软交换所采用的也是这种使用方式。但是,如果企业没有与 VoIP语音网关运营商建立合作关系,想要自己构建这样的一个平台,那么要和数字电话设备与模拟电话设备进行交互通信,Asterisk需要一个 PCI硬件的支持,这个硬件生产商中最著名的是 Digium平台提供的。Asterisk 的结构基本上是十分简单,但是它不同于大多数的电话产品。基本上,Asterisk 担任的是一个中间件的功能,它连接了底层的电话技术和上层的电话应用。Asterisk 为布局混合的电话环境提供了一致性。Asterisk 是开源 PBX (Private Branch eXchange)和 IVR (Interactive Voice Response)系统。使用兼容的 PCI硬件,Asterisk 支持传统的电话线路,包括:TDM(Time Division Multiplexing), TI/El PRI/PRA&RBS (Robbed Bit Signal)模式、模拟电话线/模拟电话(POTS),ISDN(Integrated Services Digital Network)和 BRI(Basic Rate)与 PRI(Primary Rate)。Asterisk 可以透明的桥接 VoIP之间的一些协议,包括:会话初始协议(SIP-Session Initiation Protocol), H.323(国际电信工业会的一种标准)、IAX(Inter-Asterisk eXchange)媒体网关控制协(MGCP-Media Gateway Control Protocol)等其它一些协议。Asterisk 具有很大的柔韧性,特殊的 API接口都围绕着 PBX核心系统。这个核心处理着 PBX内部之间的相互联系。每一部分都是清晰来自于协议、编码或内部电话使用的硬件接口的抽象。这些抽象的接口使 Asterisk可以与任何的硬件和技术以及将来的硬件和软件技术完美的结合。从图 2-5可以看出,Asterisk 由内部核心和外围动态可加载模块组成。内部核心由以下六个部分组成:PBX 交换核心模块(PBX Switching Core)、调度和 I/O管理模块(Scheduler and I/O Manager)、应用调用模块(Application Launcher)、编解码转换模块(Codec Translator)、动态模块加载器模块(Dynamic Module Loader)和 CDR生成模块(CDR Core)。图 3-1 VOIP通信系统功能模块图Asterisk 提供了很多的基本拨号语法及应用的拨号函数,它共有 40多个配置文件,通过 Asterisk特有的语法修改特有的配置文件,才能实现通话的基本功能,同时可以实现针对不同的用户实现不同的通信功能。它的配置文件的源文件采用的是 C语言编写。但是基于 Asterisk的 Application API编程接口,如 AGI,对外部的应用程序可以使用 PHP,Python,Perl,Java 等语言编写。Asterisk 运行操作系统平台的 Linux内核要求大于等于 2. 4. x的版本。 3 VoIP通信系统基本功能概述如果是基于纯软件的实现方案,Asterisk 是构建 VoIP项目的核心,系统中所有与用户呼叫有关的功能和管理都通过它来实现,包括 VoIP各种协议的互通和配置,以及各种呼叫设备的配置文件。本文档所讨论的 VoIP通信系统基本功能如图 3-2所示,一般的 Asterisk的任务包括了两方面,一是与呼叫有关的,包括基本呼叫处理、主叫号码透传、呼叫纪录和日志生成等,二是与呼叫控制有关,即终端用户的认证计费功能。 图 3-1 VOIP通信系统功能模块图4 基于 Asterisk实现 VOIP通信系统基本功能PBX 是专用交换机,俗话叫集团电话。广泛地运用在企业办公机构中,极大地提高了企业的办事效率。但传统的 PBX存在缺点有:1. 它对新兴的 CTI(计算机与电话集成)和 VoIP支持不够。2. 传统的 PBX都采用的是专用技术,缺乏开放性和标准性,并且价格昂贵。解决它的缺点的措施是 IP PBX技术。4.1 VoIP通信系统方案选择 方案 1:模拟电话+语音网关+网守+PBX+模拟电话 语音网关型的应用是将 VoIP语音网关的 FXO/FXS接口同总部或分支机构的PBX(小交换机或集团电话)直接相连,当需要打长途电话时,将话音转到 VoIP网关上,通过因特网传输。用户在使用时只需在分机上先拨 IP电话特服号(如可设为8),便可直接拨打 IP电话。在这个方案中,若要像普通电话那样的数字号码拨号,就得经过网守的路由管理,但对于中小企业这种设备太昂贵。网守处于高层,提供对端点的呼叫管理功能,是 IP电话网络系统中的重要管理实体。网守的主要功能有:地址解析、接入控制、带宽管理、区域管理等四项基本功能;此外,还能提供呼叫控制信令、呼叫管理等其他功能。要构建一个稳定可靠的、实用的 VoIP网,离不开 GK的管理。基于 VoIP语音网关的复杂性与成本昂贵,本文档不使用这种方案。方案 2:VoIP 电话/IP 电话+商业 IP-PBX设备+PBX+模拟电话IP-PBX 是一种基于 IP的电话交换系统,它具有传统 PBX交换机的所有功能,它的目标是取代企业内部原先的 PBX。这个系统可以完全将话音通信集成到公司的数据网络中,从而建立能够连接分布在全球各地办公地点和员工的统一话音数据网络。IP-PBX 最显著的特征是一个集成通信系统,因此,通过互联网,仅需要单一设备即可为用户提供语音、传真、数据和视频等多种通信方式,建立中、小型的呼叫中心。由于 VoIP技术是将语音以数据包的形式在 IP网络中进行传送,因此采用VoIP技术构建的通信平台,用户具有可移动的特性,形象的说就是同一个用户在A地用的是 011的号码,到了 B地还是 011的号码,号码随着人走,VoIP 还支持语音信箱、多方会议、视频会议等传统 PBX没有的功能。有助于移动办公和异地协同办公。虽然说商业的 VoIP设备或者软件,如华为 SoftCo 5816 IP语音交换机、贝尔阿尔卡特 A5020,他们能够更容易、方便提供丰富的 IP-PBX业务类型,也提供了数字中继接口与 PSTN网络方便连接,并且只需要手动配置参数就可以投入到使用,不需要大量地编程,但是这种方案需要的成本跟方案 1差不多,比较昂贵,并且灵活性不够,所以不使用。方案 3:IP 电话/模拟电话+asterisk_Linux PC 机+开源 IP-PBX+媒体网关+PBX+模拟电话基于 PC服务器+ Asterisk 呼叫管理软件的 IP-PBX系统,Asterisk 作为 IP电话网络的控制中心(PC 型 PBX),该控制中心以软件方式工作,安装在一台服务器内。数字中继网关与原有传统 PBX的 E1中继接口相联(在这里媒体网关特指单独的VoIP落地网关运营商的语音网关设备,本文档让 Asterisk与之对接实现 IP与PSTN的完美转换),VoIP 媒体网关提供的多路数字设置为中继模式,一端连接PSTN专网,一端对接 Asterisk软交换 IP侧。在控制中心的服务器上对 IP电话号码进行分配。通过适当调整控制中心软件的参数以及添加、修改某些模块代码,即可完成本文档最终完成的 IP电话系统的建设。如果使用专用、商业的 IP-PBX系统,可能会花费不菲,所以本文档使用方案 3。本节的目标就是基于开源 IP-PBX Asterisk设计 VoIP电话系统的基本呼叫功能模块、认证计费功能模块、AGI 功能模块等。4.2 VOIP系统的基本组件一般 VOIP系统基本组件组成如图 4-1所示。图 4-1 VOIP 系统的基本组成IP- PBX 主要功能组件如图 4-1所示,下面讨论这些基本功能组件。1. 呼叫控制器IP 电话系统的智能部分,它负责提供一切传统 PBX系统的中心-PBX 交换机所能提供的服务。负责控制所有的呼叫建立和呼叫管理,能轻易提供大部分基本服务(如呼叫保持、呼叫转移、呼叫等待等),以及配置电话的分机号码(Extension Number)、功能按钮、通话管理和路由决策功能。此外,它还控制所有的 PC虚拟电话功能,如语音邮件、统一消息、自动话务员、交互式语音响应(IVR)和自动呼叫分配等。2. 媒体网关在 IP-PBX系统中,媒体网关用来实现 IP网络和传统电路交换网的通信,负责把呼叫转接到 PSTN网,完成异种网络的电话呼入和呼出。它除了具有接通被叫的功能外,还可以把来自 PSTN的呼叫连接到 IP电话系统。媒体网关在整个 VoIP系统中起着非常关键的作用。它不仅使 VoIP系统能够连接 PSTN用户,而且能够增加整个系统的可靠性,使系统具有处理紧急呼叫的能力。媒体网关还需要完成语音编码转换,通信协议转换以及 LAN/WAN-PSTN之间的呼叫建立拆除等功能。3. 局域网接入模块 提供 IP-PBX系统各组件之间的连接。在局域网的环境中,该模块可以使用局域网交换机来代替。4. 控制中心包括资源管理系统、计费系统、网管系统、语音信箱等。5. 信令网关提供和其它信令网络的互通功能,可以支持 H.323,IAX,SIP,MGCP 等的全部或者部分功能。6. 应用服务器为 IP-PBX系统提供增值应用。7. I P话机终端包括终端部分软件 PC Phone,I P-Phone 等。8. 模拟终端普通电话,传真机等传统模拟设备。本文档 IP
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号