二、VOIP的设计与实现
1、 VOIP硬件组成
(1)IP电话系统的关键设备—一网关
设在各地的网关由一个独一的IP地址表示,它是架通两种通信传输方式的一座 桥梁,是Internet上的‘交换局”,以实现远程电话间的互联和通信,在一边,网关连接传统的电路交换网(Circuit-switched Network)如公共交换电话网(PSTN),可和外部的任意一部电话通信。在另一边,网关连接分组交换网(Packet-Switched Network)如Internet、Intranet等,可和接入网络的任 意一台计算机通信。在整个Internet Phone系统中,网关分布在世界各地,处理当 地的PSTN网与Internet的接入和转换理。 网关接收标准电话信号,经数字化与大幅度地压缩后,使用IP协议进行分组送到Internet,找出传输路由,通过Internet发往目的地。反之,接收Internet传输过来的数据分组,并转往电话网络系统。接入和转出电话网络系统可同时进行,实 现全双工(双向)通话。例如在北京拨打一个到旧金山的长途电话,在北京,一个普通的公共电话通过 PSTN接入本地网关,本地网关对数据进行特定的压缩算法处理,组织成包含主、被叫号码、时间、通话信息等数据的IP分组,并分析被叫号码,根据路由表,把它映射成为一个IP地址,通过路由选择,发往该IP地址(如旧金山)对应的远端网关。而在被叫方旧金山,远端网关接收北京本地网关传输过来的IP数据分组,进行相反过程的解压缩,再发往其本地端的PSTN网。这样,就实现了两地的实时通信。而其所包含的通信费用仅为北京本地普通电话费+Internet通信费+旧金山本地电话费。
由于Internet的通信费是较低的,所以长途电话费用大大下降。
(2)关守
关守是专门用于管理呼叫控制的设备。尽管H.323中,关守并不是必不可少的,但在大规模网络中,将控制功能集中于一处是很有裨益的。
关守主要包括如下功能:
(1)地址翻译在本地可以采用专用的编址方案(H.323中称为别名地址)比如:助记符、昵称或e-mail地址。关守可以将这些别名地址翻译为IP地址。
(2)接纳控制关守负责控制终端或网关之间的VoIP呼叫的建立。关守根据各种已知变量:呼叫权限、源与目地地址、时间等确定呼叫是被接纳还是拒绝。这样,关守保证了VoIP网络的安全性。
(3)带宽管理为了有效利用许多终端共享的带宽资源,关守能够在通话过程中调整终端或网关的呼叫参数。通过这种方式,关守可以协调带宽资源的分配。
(4)区域管理关守除了要实现上述功能外,还必须协调好上述功能。例如为了避免语音质量恶化,区域管理要求一条窄带链路上最多只允许25个呼叫。实现这种管理功能可以采用自动呼叫分配(ACD)或 集中式呼叫管理。
(5)呼叫信令关守作为终端或网关的呼叫信令代理,可以减轻它们的控制呼叫职责。它可以简化点对点链路的初始化,加速呼叫的建立和信令的传递。关守以及在其控制下的终端节点构成了H.323域--单一控制的逻辑设备群。如图5所示。
图5
除了上述的功能,关守为适应未来VoIP系统所需的扩充功能正在研发中。由于关守是可选设备,故H.225协议和H.245协议均定义了有无关守两种情况下信令的处理过程。没有关守时,将由终端自行控制呼叫信令。
关守为了管理与之相连的终端或网关,必须在数据库中记录这些终端或网关的各种参数,如:IP地址与别名地址、信道带宽等等。这些记录可以通过手动配置关守文件完成,也可通过关守检测登录过程自动实现。在检测关守期间,端节点通过广播IP地址:224.0.1.41向所有关守发送"关守请求"消息,目的是寻找可应答的关守。接到这一消息的关守或接纳或拒绝请求,也就是或允许或拒绝终端登录。然后,端节点从发出接纳消息的关守中选择自己愿意登录的一个。接着,端节点向选定的关守发出"登录请求"消息,开始正式的登录过程。得到关守确认后,端节点和关守开始交互有关信息,例如关守动态给端节点分配别名地址;关守限定端节点必须登录的有效时段。通过呼叫信令的集中控制与协调管理,关守简化了VoIP系统的控制与使用。在一定范围内,关守可看作所有设备的控制节点。
2、点到点实现方式
Voice over IP是在IP网络上传输语音流量(例如,电话和传真)的技术,主要是一种软件特性,但是,要在Cisco2600/3600系列路由器上实现这个功能,必须首先安装语音模块VNM(Voice Network Module),VNM可以装两个或四个语音接口卡(VIC),每个接口卡都对应于与语音接口相关的特定信号类型。
1. 单机实现IP语音电话
(1)在装有两个语音模块的3600路由器上实现IP语音电话(如下图所示)。
(2)基本配置
dial-peer voice 1 pots
destination-pattern 111
port 3/0/0
!
dial-peer voice 2 voip
destination-pattern 222
session target ipv4:192.16.12.1
!
dial-peer voice 4 pots
destination-pattern 222
port 3/1/0
!
dial-peer voice 3 voip
destination-pattern 111
session target ipv4:192.16.12.2
!
!
(3)配置概述
本实验是在Cisco3600 Router内部实现的,没有经过链路传输,所以不需要优化拨号点和网络接口的配置,只需配置拨号点:
● 要配置源和目标之间的所有连接,在voice port 3/0/0上输入下面命令:
dial-peer voice 1 pots
destination-pattern 111
port 3/0/0
!
dial-peer voice 2 voip
destination-pattern 222
session target ipv4:192.16.12.1
● 要完成在拨号点1和拨号点4之间的端对端呼叫,在voice port3/1/0上输入下面命令:
dial-peer voice 4 pots
destination-pattern 222
port 3/1/0
!
dial-peer voice 3 voip
destination-pattern 111
session target ipv4:192.16.12.2
2. 路由器间实现IP语音电话
(1) 站点A有一个Cisco3600路由器,站点B有一个Cisco2600路由器,它们通过
DCE/DTE V.35电缆背对背地连接起来。在每个路由器中安装了一个含有一个VIC-2FXS的NM-2V,提供两个模拟电话的连接。
(2)创建并实现拨号方案
(3)基本配置:
站点A的基本配置见清单1(站点B的基本配置略)。
清单1 站点A RouterA的配置
Current configuration:
!
version 12.0
service timestamps debug uptime //设定Debug跟踪日志显示其时间
service timestamps log uptime //设定看Log时显示其时间
no service password-encryption //口令不加密
!
hostname router_A
!
enable password cisco
!
username router_A password 0 cisco
!
ip subnet-zero
no ip domain-lookup
voice-port 3/0/0
echo-cancel coverage 16 //启动回声消除功能
!
voice-port 3/0/1
dial-peer voice 1 pots //定义拨号对等体到语音物理端口
destination-pattern 2222 //定义电话号码
port 3/0/0 //定义电话号码
!
dial-peer voice 2 voip //定义拨号对等体到语音
destination-pattern 1111 //为拨号对等体分配电话号码
req-qos controlled-load //在分配带宽时,RSVP确保即使带宽发生拥塞与过载时,数据流也能得到优先处理。
codec g711ulaw //拨号点的语音编码速率—64000bps
ip precedence 5 //IP优先级,5为关键
no vad //禁用语音活动检测
session target ipv4:192.168.100.1 //定义Voip路由,为对端的IP地址
!
!
interface Ethernet0/0
no ip address
no ip directed-broadcast
shutdown
!
interface Serial0/0
ip address 192.168.100.2 255.255.255.0 // S0/0的IP地址
no ip directed-broadcast
no ip mroute-cache
no fair-queue
clockrate 2000000
ip rtp header-compression //配置RTP头压缩器
ip rtp compression-connections 25
ip rsvp bandwidth 1000 320
!
interface Ethernet0/1
no ip address
no ip directed-broadcast
shutdown
!
ip classless
ip route 192.168.100.0 255.255.255.0 192.168.100.1
no ip http server
!
line con 0
transport input none
line aux 0
line vty 0 4
login
!
end
(4)配置概述
根据公共的功能,站点A的配置分为4个不同的部分。第1部分在清单2中描述,它为日志和调试命令启用时间标记,为路由器指定一个主机名称。
清单2 站点A的配置的第1部分
version 12.0
service timestamps debug uptime //设定Debug跟踪日志显示其时间
service timestamps log uptime //设定看Log时显示其时间
no service password-encryption //口令不加密
!
hostname router_A
!
enable password cisco
!
username router_A password 0 cisco
!
第2部分在清单4中描述,它提供语音连接的实质内容,语音端口简单地标识它们连接到的设备。拨号对等体1把电话号码分配给物理语音端口,拨号对等体2定义VoIP呼叫到站点B。在语音端口3/0/0上启动回声消除功能。IP优先级设置为5,设置资源预留协议RSVP为controlled-load,确保即使带宽发生拥塞与过载时,数据流也能得到优先处理。而且因为多余的带宽,语音活动检测被禁止了,并为拨号点配置了语音编码速率—64000bps。
清单4 站点A的配置的第2部分
voice-port 3/0/0
echo-cancel coverage 16
!
voice-port 3/0/1
!
!
dial-peer voice 1 pots
destination-pattern 2222
port 3/0/0
!
dial-peer voice 2 voip
destination-pattern 1111
req-qos controlled-load
codec g711ulaw
ip precedence 5
no vad
session target ipv4:192.168.100.1
!
第3部分在清单5中描述,它配置路由器上的网络端口。串口0/0连接到DCE V.35电缆,为串行接口增加clockrate接口配置命令。为语音配置RSVP保证在网络中获取特定的QoS。配置RTP头压缩连接的数量为25。
清单5 站点A的配置的第5部分
interface Ethernet0/0
no ip address
no ip directed-broadcast
shutdown
!
interface Serial0/0
ip address 192.168.100.2 255.255.255.0
no ip directed-broadcast
no ip mroute-cache
no fair-queue
clockrate 2000000
ip rtp header-compression
ip rtp compression-connections 25
ip rsvp bandwidth 1000 320
!
第4部分如清单6所示,完成整个配置,它分配一条静态路由到站点B的网络(192.168.100.0),在这个简单环境中,不要求IP路由协议。
清单6 站点A的配置的第4部分
ip classless
ip route 192.168.100.0 255.255.255.0 192.168.100.1
no ip http server
3、网守实现方式 (GATEKEEPER)
可以想像,采用点到点拨号方式,当电话终端数量很大时,各个网关上的配置将会变得非常麻烦。如果要在这个基础上增加一个电话终端或修改网关上的参数,其工作量都是指数倍的增长,这对网络的维护来说,简直是一个灾难。
采用GATEKEEPER的方式,就是让所有参数的增删修改都集中到一个或几个服务器,让服务器来管理整个网络。
首先,一个各地连通的网络需要架设起来。
网关采用2600系列路由器+VNM+VIC,电话接口为FXS
网守采用3640。
VOIP网关上的配置如下:
在全局配置模式下
dial-peer voice 1 pots
destination-pattern 2000
port 1/0/0
注:destination-pattern 2000用来设置IP电话号码
port 1/0/0用来指定该号码对应的语音端口
在全局配置模式下
dial-peer voice 3 voip
destination-pattern .…
session target ras
注:
destination-pattern…. 表示对端号码为任意的4位号码
session target ras 表示采用关守方式对所拨号码进行解析
配置路由器为voip gateway
在全局配置模式下
gateway
在以太网口下配置关守位置
interface Ethernet0/0
h323-gateway voip interface
h323-gateway voip id xxx@x.y.cn ipaddr x.x.x.x 1719
h323-gateway voip h323-id yyy@ x.y.cn
注:
h323-gateway voip interface表示该端口配置为VOIP中和关守进行通讯的接口
h323-gateway voip id xxx@x.y.cn ipaddr ipaddr x.x.x.x 1719把关守指向x.x.x.x
端口为1719,ID号 xxx@x.y.cn ipaddr
h323-gateway voip h323-id yyy@ x.y.cn 指定本地H323-ID
网守上的配置如下:
进入特权模式
#gatekeeper
config-gk)#zone local router-name xxx@x.y.cn x.x.x.x
router-name为路由器名
config-gk)# gw-type-prefix 2# gw ipaddr y.y.y.y 1720
y.y.y.y是指定x.x.x.x为关守的网关