基于SIP协议的IP电话系统设计与实现

ZDNET网络频道时间2007-09-03作者:中国IT实验室 |
本文关键词:TCP/IP TCP/IP协议 TCP/IP设置 网络协议 IPv6

网络IP电话不仅具有成本低廉、网络资源利用率高等诸多优点,而且还可以进一步集成多媒体信息(包括语音、图像、数据等),以实现交互式的实时通信等,具有很大的发展潜力,且有逐渐取代传统PSTN电话的趋势,成为NGN(Next General Network)中语音信息传输的主要形式。

目前构建IP电话系统结构的信令协议主要有H.323协议和SIP协议,二者完全平行,互不兼容。H.323协议是为多媒体会议系统而提出的。该协议采用传统电信网络繁琐的信令概念,非常庞大,无论从实现技术手段,还是使用和管理方法上都十分复杂。而SIP协议则是以现有的Internet协议为基础来构架IP电话业务网的应用层协议。它将网络设备的复杂性推向网络边缘,支持单播、多播通信、名称映射和重定向业务,还支持类似呼叫转发、呼叫拒绝等电信业务的实现以及支持用户移动性。与H.323相比,SIP更适用于智能用户终端,使用更加灵活,掌握更加容易。鉴于此,本文提出了一种客户机-服务器模式的符合SIP协议规范的IP电话系统设计实现方案。

该系统具有以下特点:

(1)它采用IP-IP通信模式;

(2)电话终端设备直接与用户机USB接口相连,可方便地实现与被叫者的文本、语音等数据的可靠传输;

(3)系统包含完整的用户数据管理系统和网络通话管理控制系统;

(4)提供较高的QoS。

该系统充分利用SIP协议,提供了诸多增值服务,使得系统除具备普通电话的功能和业务外,还可以提供自主设置留言、来电过滤、跟踪呼叫等多种功能,适用于大中型企业集团或单位内部使用。

1、 SIP协议概述

总体来说,SIP协议支持多媒体通信中以下几个方面的功能:

(1)用户定位:确定通信中终端的位置;

(2)用户可用性:确定被叫方是否愿意参与通信;

(3)性能协商:确定通信中所用媒体及媒体参数;

(4)会话建立:呼叫双方会话参数的建立;

(5)会话管理:包括会话转移和中止、会话参数变更、调用新业务等内容。

SIP协议是一个客户服务器协议,用于发起和管理用户间的会话。SIP终端系统称为用户代理,即UA(User Agent),含用户代理客户机UAC(User Agent C1ient)和用户代理服务器UAS(User Agent sever)两部分。中间单元称为代理服务器。它的消息分为两大类:从客户端到服务器的请求(Request)和从服务器到客户端的响应(Response)。无论请求消息还是响应消息都是由起始行(Start-Line)、消息头部(Message—Header)和可选的消息体(Message—Body)构成。

请求消息按请求行(起始行)可分为:

(1)Register:用于登记联系信息;

(2)Invite:用于邀请用户加入会话;

(3)ACK:用于对请求成功后作出的确认;

(4)Cancel:用于取消未完成的请求;

(5)Bye:会话结束;

(6)0pions:用于询问服务器的性能。

响应消息按状态行(起始行)中的状态码(3位),可分为:

(1)1XX:暂时响应;

(2)2XX:成功响应;

(3)3XX:重定向响应;

(4)4XX:客户端出错;

(5)5XX:服务器出错;

(6)6XX:全局故障。

SIP协议支持3种呼叫方式:用户代理客户机(UAC)向对方用户代理服务器(UAS)直接呼叫;由代理服务器代表用户代理向客户服务器发起代理呼叫(图1);由用户代理客户机在重定向服务器的辅助下进行重定向呼叫(图2)。呼叫方式2需要代理服务器转发用户的呼叫信令,因而加大了信息处理量。为了有效地将网络设备的压力推向网络边缘,呼叫信令3只指明目的地的方向,不保留每一呼叫状态,从而为组建大规模的IP网奠定基础。

2、 系统设计方案

本文给出的符合SIP协议规范的IP电话系统设计方案,采用客户机-服务器模式,主要由基于USB接口的IP电话终端设备、计算机网络终端(内含SIP用户代理)、局域网(或Internet网络)、SIP网络服务器等组成。其系统结构示意图见图3。整个系统布局分为若干域,每个子公司或部门为一个域,每个域内有多个终端用户,并由一服务器管理控制。

2.1系统基本工作流程

(1)用户注册

用户开机上线后,通过用户代理客户机自动向其所在域的服务器端发送注册信息;该服务器的SIP注册服务模块接收注册信息后,要先对客户端进行身份验证,确认其合法后再对该用户的状态信息、IP地址信息等进行更新。

(2)会话建立

在本系统设计方案中采用代理呼叫和重定向呼叫相结合的方式进行会话建立。即同一域内客户之间采用代理呼叫方式,域之间采用重定向呼叫方式。

假设1域的用户A准备要与用户B建立一次通话时,A首先通过其用户代理客户机将呼叫请求传至其所在域的代理服务器1,服务器1首先判断B是否也属于该服务器所管理的域。

如果B和A同属1域,则通过该域服务器进一步查找B的有关信息,进行精确定位,服务器1判定B是否为可接通状态,如可以则将A的呼叫请求直接转发给B,否则向A返回拒绝信息。

如果B不在1域,而在其它域(如2域),则代理服务器1将请求信息转发至2域的重定向服务器2,重定向服务器2对B进行精确定位,并判定B是否为可接通状态,如可接通则将B的精确地址信息传送给代理服务器1,代理服务器1将A的呼叫请求传送给B;否则向代理服务器1返回不可接通信息,代理服务器1再向A返回拒绝信息。

用户评论
用户名
评论内容
发表时间
- 发表评论 -
匿名
注册用户

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134