Home > 电话会议新闻动态 > 技术文档 > 基于SIP的IP电话终端软件设计

基于SIP的IP电话终端软件设计

2014/04/25 meeteasy

一、引言

自上世纪九十年代SIP协议产生并发布以来,它以其开放、灵活、易于扩展的特点,越来越受到人们的重视和喜爱。 SIP能够连接使用任何IP设备(电话、PC、PDA、移动手 持设备)的用户,为日渐拥塞的网络开辟了另一片天地。基于SIP的应用,如VOIP,多媒体会议、定位服务、及时通信、在线消息等,数不胜数。SIP它能够将这些功能组合起来,形成各种更大规模的无缝通信服务。SIP正在成为自HTTP和SMTP以来最为重要的协议之一。

现在,越来越多的运营商都在提供基于SIP的服务,如市话和长途电话技术、IP Centrex/Hosted PBX、语音短信、网络电话等等。而软件供应商在开发相应的基于SIP的应用程序和软件。市场上有众多的IP电话、用户代理、网络代理服务器、VOIP网关、媒体服务器和应用服务器都在使用SIP。

IP电话是基于网络的一种应用,泛指通过IP网络进行语音通话的系统。由于其成本远低于PSTN,而话音质量与固定电话不相上下,同时还能扩展包括视频通信等各种多媒体业务,正日益受到人们的青睐。传统IP电话大多采用H.323 协议,具有复杂、成本高、时延大等缺陷。而采用SIP协 议的IP电话终端具有简单、时廷小、可扩展性强等特点,正不断受到重视。

二、SIP协议

SIP(Session Initiation Protocol,会话初始协议)是应用层的控制协议,可以建立、修改和结束多媒体会话, 它独立于TCP或者UDP,使用自己应用层协议保证消息的可靠传输。与HTTP协议一样,SIP采用基于文本格式的c/s工作方式,是一个请求/应答协议。以客户、服务器方式建立会话、灵活的寻址方式,SIP没有媒体协商功能,往往需要集成SDP协议。

SIP中有客户机和服务器之分。客户机是指为了向服务器发送请求而与服务器建立连接的应用程序。用户代理和代理服务器中含有客户机。服务器是用于向客户机发出的请求提供服务并回送应答的应用程序,共有4类基本服务器:用户代理服务器、代理服务器、重定向服务器、注册服务器。 一个简单的SIP电话系统包括终端和服务器。如图1所示。

典型SlP电话系统
User Agent(用户代理):用户代理是SIP网络的终端, 具体的分为User Agent Client和User Agent Server。UAC是客户端,表示主叫;UAS是服务端,表示被叫。因UA彼此之间只拥有对方的SIP Address,但不知道实际的位置, 所以信息的传送必须通过代理服务器。

Redirect Server(霞定向服务器):接受SIP的请求,映射请求的原地址成零个或多个IP地址,并且返回给客户端。由客户端重新发起请求。重定向服务器主要的功能是映射会话者到不同的网络地址。而与代理服务器最大的不同点为重定向服务器本身并不参与该信息的任何处理。

Registrar Server(注册服务器):注册服务器是负责SIP注册请求,将用户的地址信息写入数据库,并返回注册状态。通常注册服务器会搭配代理服务器与重定向服务器, 一起达成会话者移动性的功能。

Location Server(定位服务器):定位服务器管理若干个数据库,接受由重定向服务器或者代理服务器的路由查询。

Proxy Server(代理服务器):完成SIP消息的转接和转发功能,可以修改SIP消息内容。具体功能有:呼叫认证、 状态管理、路由选择、失败和重传。

三、lP电话终端软件设计

IP电话是在IP网络上,通过TCP/IP协议实时传送语音信息的一种应用。IP电话终端,首先通过语音压缩算法对语音数据进行压缩编码处理,经过加密后把这些语音数据按IP相关协议进行打包,例如RTP/RTCP协议,经过IP网络把数据包传输到接收方,再把这些语音数据包组合起立,经过解密、解码解压压缩处理后,恢复成原来的语音信号,从而达到由IP网络传送语音的目的。

1.软件架构

IP电话终端选用嵌入式Linux操作系统。嵌入式Linux操作系统是一种实时性强,运行可靠的实时多任务操作系统,采用多任务运行、实时的任务间通信、快速多任务换、抢占式任务调度机制,能有效地处理各种并发事件,以满足应用系统的实时要求。并且有良好的优化能力,可根据应用系统的要求合理配置操作系统组件,减少系统的存储空间,保证系统以较高的效率运行。在操作系统和SIP协议栈、SDP协议栈、RTP/TRCP协议栈以及TCP/IP协议栈的支撑下,通过系统控制程序来调度和实现语音处理、呼叫控制、对外通信、数据管理和用户界面等功能(如图2所示)

IP电话终端软件架构
2、软件组成

IP电话终端软件划分为呼叫控制、数据管理、语音信号处理、语音通信、用户界面运行等五大模块,其中呼叫控制模块划分注册、呼叫和响应三个子模块;数据管理划分为RAM数据管理、ROM数据管理两个子模块;语音信号处理划分协议处理和传输两个子模块;用户界面模块划分为呼叫操作见面和设备管理界面两个字模块(如图3所示)

IP终端软件模块划分
3、软件工作流程

IP电话终端的软件工作流程如图4所示

IP电话终端的软件工作流程

其中通过SIP来完成链路的建立,过程如下:
(1)客户端向服务器发送INVITE请求;
(2)服务器对方的请求做出应答,并获得对方的SDP消息及自己的端口号;
(3)客户端发送ACK确定,并获得对方SDP消息及对方的端口号并打开,并启动媒体传输程序,核实对方IP地址及端口号的正确性;
(4)服务器收到对方的ACK后,启动RTP接收程序,并提供自身的媒体传输端口号作为校验码,进行语音信息的接收;
(5)客户端传输语音信息;至此,两个用户终端开始语音通信,直至其中一方发起BYE请求,并收到2000K响应后,会话结束。

四、结束语

本文详细介绍了SIP协议并提出了一种基于SIP协议的IP电话终端的软件设计。SIP协议逐渐在多媒体通信应用中占据越来越重要的位置,可以预测在NGN(Next Generation Network,下一代网络)和未来其他的应用中,SIP协议将会发挥更加不可替代的作用

IP电话, SIP, 会话初始协议

如没特殊注明,文章均为好会通科技原创,转载请注明来自 http://www.meeteasy.com.cn/archives/2621.htm.

copyright 2004-2013     粤ICP备12061155号-1

Sitemap|XML|RSS|隐私政策|EN|