基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能

说明:

       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语言编写。但是基于AsteriskApplication API编程接口,如AGI,对外部的应用程序可以使用PHPPythonPerlJava等语言编写。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语音网关的复杂性与成本昂贵,本文档不使用这种方案。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值