基于SIP协议嵌入式电话的研究
一、引言
随着Intemet在全世界的发展,Internet在各个国家的普及率已经与日俱增,几乎每个家庭都可以通过包月的不限流量的方式来接入Internet,因此对于Internet的费用是很低的,人们都希望能够利用这个费用低廉的网络进行一些传统的服务,比如电话,传真,电邮等。尤其是那些费用较高的传统服务。1995年2月以色列UocalTec公司研制了可以通过Intemet打长途电话的软件产品。用户在接入Internet的PC上运行这个软件,就可以和其他接入Internet并且安装有这个软件的PC进行通话,这就是最早的IP电话。随着技术的进步,人们已经不满足于通过电脑这个多媒体的机器来实现通话这个简单的功能,人们想把Ip电话的功能分立出来研制一个单独的设备,这就是本文要进行的研究。
二、IP电话的原理及涉及的技术
通过Internet进行语音传送是一个复杂的系统工程,它用到的最根本的技术是VoIP技术,其原理是:利用语音压缩算法对语音信号进行压缩编码处理,然后把这样压缩的语音数据按所应用的协议进行打包,经过Intrenet,按照IP地址传输接收地,再根据协议将这些数据解析出来,按照顺序连接,解压缩,解码,最后恢复出原来的语音信号,这样我们就达到了由Intrenet按照IP地址传输语音的目的。(图1)在这个传输的工程中,可以分为以下几个阶段:语音信号的模拟数字转换;数据的压缩;数据的打包封装;传送;数据包的解析;数据的解压缩;数据的数字到模拟信号的转换。
三、IP电话采用的信令
信令技术是用以创建,修改,结束一个或者多个参与者参加会话的进程,目的是实现一个完整的呼叫过程,其中包含:呼叫请求,呼叫等待,同意通话,结束通话,暂停通话,改变呼叫对象等控制信号。
(一)SIP信令的概念。会话初始化协议,或称SIP(SesmonInitiation Protocol),是一个应用层的通讯协议,可以使用UDP或TCP作为其传输协议,它使用户的通讯系统更为开放、更好地连接、更方便使用、更多选择和更为个性化。它是正在由互联网协议和HTTP背后的全球非赢利机构—— 国际互联网标准制定组织IETF进行升级的标准。IETF对SIP进行标准化,以支持多传送的应用。因为SIP使用简便,功能强大,分布广泛,它在整个IETF内的使用者中迅速得到了认同。SIP是文本格式的客户——服务器协议,客户机发起请求,服务器进行响应,它非常类似于SMTP和HTTP协议。近年来,SIP协议的发展势头越来越强劲,也获得了越来越多的支持。Microsoft已公开宣布将在Windows系统中支持SIP信令协议。SIP主要提供了与会话建立和终结相关的五个方面功能,它们是:①用户定位:用于通信的终端系统的决定;②用户可用性:被呼叫方参与通信的意愿的决定;③用户能力:使用的媒体和媒体参数的决定;④会话建立:“振铃”,呼叫和被呼叫方会话参数的建立;⑤会话管理:包括转移和终结会话,修改会话参数,以及调用业务等。
(二)SIP协议的特征。SIP作为一个广义的电话信令协议,具有以下几个主要特征:
1、SIP可以发起会话,也可以邀请用户加入以其他方式(如SAP、LDAP等)发布或建立的会话;通过SDP协议,SIP可以在呼叫发起和呼叫进行过程对会话参数进行协商,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。SIP可以提供呼叫控制功能,如呼叫保持、呼叫路由、呼叫转移、媒体转换等。
2、SIP也可以支持多播会话,,也可以支持多播会话。
3、SIP与网络协议独立,即与底层协议无关。SIP可以在不同的传输层协议上工作,如TCP或UDP。当使用UDP的时候,SIP可以更好的支持多播会话;当使用TCP的时候,SIP可以更容易的穿透防火墙。
4、SIP支持很多其他协议,如RSVP、RTP和RTCP、RTSP、SAP、SDP等,但SIP的功能和操作不取决于以上任何协议。
5、SIP是基于文本的协议,简单灵活,可扩展性好;SIP采用Client/Serve的体系结构,在很大程度上继承了HTTP和SMTP协议的特征。
6、SIP协议是无状态的,服务器可以保持也可以不保持呼叫状态。
7、SIP透明支持名字映射和重定向服务,可以实现ISDN和IN电话用户服务;通过网关,SIP可以实现PSTN电话之间的呼叫。
8、SIP支持用户的移动性和移动业务。
(三)SIP信令的呼叫方式。
SIP协议支持三种呼叫方式:
1、由用户代理服务机(UAC)向用户代理服务器(UAS)直接呼叫。
2、由代理服务器代表UAC向被叫发起呼叫。
3、由UAC在重定向服务器的辅助下进行重定向呼叫。
四、嵌入式IP电话的初步设计
1、嵌入式IP电话的硬件系统设计。在初步方案中我们使用的是S3C4510B开发板和Clinux的操作系统,由于声音的处理需要耗费较大的资源,为了使整个系统能够更加稳定的运行,不影响这个系统的实时性,我们采用一个专用的DSP来专门处理声音流。DSP是数据密集处理型芯片,由于其特殊的结构、专门的硬件乘法器和特殊的指令,使其能快速地实现各种数字信号处理及满足各种高实时性要求。基于上述分析,设计上采用了基于AMR和DSP芯片的双核嵌入式系统。不仅充分利用了ARM和DSP的各自特点,使ARM和DSP芯片进行协同工作,而且尽可能地保证ARM对信令的及时反应和对媒体流的及时发送和接收,对媒体流数据编码解码的及时处理。在价格方面也相当具有优势,可以说是一种理想的IP电话实现方案。
2、嵌入式IP电话软件的设计。IP电话的应用程序结构如图2所示,SIPUA是整个程序的总逻辑,它的逻辑就是IP电话的控制逻辑,控制着信令的接收和发送,控制着SDP协商参数,控制着媒体流的建立,同时也控制着液晶,键盘,振铃,开关等外围设备。OSIP是SIP协议的功能函数,类似于API函数,通过被SIPUA逻辑调用可以形成SIP信令,解析SIP信令,解析SIP状态机等功能,是构成SIP信令的核心代码软件。oSIP协议调用底层TCP/IP协议\栈完成信令的发送和接收。uClinux操作系统屏蔽了底层硬件,给TCP/IP协议栈和上层应用作支撑。SIPUA在信令协商成功之后,就要调用ORTP协议程序来建立媒体流通话程序。建立媒体流的时候需要知道的参数有以下几个方面:被叫的用户名字,网络类型,对方机器的IP地址,媒体的类型,端口号,净荷类型以及媒体编码方式等等信息。这些信息经过信令协商成功之后,被SIPUA逻辑保存,在建立媒体流的时候,这些参数构成了媒体流的特征。RTP调用的时候,使用了保证传输质量,避免延时抖动的进程调度控制,调度控制初始化RTP协议进行语音的发送或者接收。RTP协议同样需TCP~P和uClinux操作系统的支撑。同时RTP进行语音的采集和播放功能,编解码功能也是在DSP上完成的,因为DSP上对数字信号处理的速度相对比较快一些。SIPUA是在Josua基础上经过修改形成的适合于嵌入式的用户逻辑,jos.a是一个开源的调用oSIP协议栈的用户逻辑软件,用于发送和接收信令,它调用oSIP来实现SIP信令的相关功能。
五、结束语
本文描述了一个基于SIP协议的IP电话的设计方法。结果表明。本文设计实现的IP软电话完成了设计所要求的功能。本软电话的设计,对于在Linux下开发支持SIP的软件是一个良好的借鉴,具有比较实际的意义。