--Asterisk - AGI程序编写指南 - 图文 联系客服

发布时间 : 星期一 文章--Asterisk - AGI程序编写指南 - 图文更新完毕开始阅读6a4b5f3777232f60ddcca18c

基于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+模拟电话