IETF定义了一整套基础协议包括SIP、SDP(会话描述协议)、RTP/RTCP(实时传送协议/实时控制协议)、SCTP(流控制传输协议)和XCAP(XML配置接入协议)等,作为IMS客户端的基本协议簇。SIP用于两个或者多个IP节点间会话的建立、维护和拆除,可以运行在可靠的传输层(如TCP和SCTP)上或者非可靠的传输层(如UDP)上。SIP的扩展很多,比如SIP消息类型的增加(如Update、Refer、Publish、Notify等)、Simple、SIP信令压缩、用于3GPP的私有包头扩展、认证和安全机制等。在实现IMS客户端时,这些SIP扩展的部分都应当有所考虑。SDP是一种应用层协议,用来描述媒体会话能力、媒体格式、媒体流地址和端口等信息。RTP是用于端到端传递实时数据的协议,RTCP用于实时数据的服务质量监控。XCAP允许用户上传信息到XCAP服务器,通过HTTP更改、增加和删除存储在服务器上的XML文档。XCAP复用了HTTP中的Get、Put和Delete方法来获取、更改/增加和删除XML文档。通过一套巧妙的方法,将XML文档的存储路径和文档中的条目、元素和属性映射到HTTP中的URL路径。目前,XCAP在IETF中仍处于草案阶段。
OMA主要定义移动服务规范,以确保运营商之间和终端之间端到端服务的互连性。OMA提出了一系列基于IMS的服务应用,每种应用都包含了客户端的功能列表、协议要求、与应用服务器之间的交互等。
通过对于IMS客户端相关规范的研究与分析,可以看出IETF提供了IMS客户端所需要的协议部分,包括详细的SIP信令消息交互,服务参数协商、媒体流的建立、XML文档的交互等。3GPP和OMA提供了IMS客户端所需要的服务引擎,与不同应用服务器之间的交互方式以及如何接入到IMS网络等。JCP提供了一整套IMS客户端上Java应用程序所需的标准Java应用编程接口。由此可以总结归纳出IMS客户端软件架构参考,具体参见图2。
通过研究可以发现,IMS客户端和一般的SIP客户端有许多不同之处,它相比一般的SIP客户端而言需要支持更多的功能,也更加复杂,对于IMS终端的要求也更高。其中关键的一点是IMS客户端必须符合IMS相关规范,才能够接入到IMS网络。为用户提供一系列的IMS服务。
前提条件下的QoS保证是指在会话建立过程中,必须在确保双方端到端的服务质量所需的媒体资源得以预留后,才能成功地建立起会话。比如在视频呼叫建立中,该机制用以验证会话中是否已经获得恰当的端到端服务质量。但是,这种机制比较复杂,延长了会话建立的时间。因此,仅在必要的时候,IMS客户端才会打开这种机制。
语音控制连续性(voice call continuity,VCC)是3GPP提出的解决CS域通话和IMS域会话之间的语音无缝切换的标准。支持VCC服务的IMS客户端和呼叫连续控制服务器配合,能保证用户进入和离开家庭或者办公室里的WLAN(无线局域网)时仍然能保持IMS域或CS域语音呼叫的连续性。但是这种服务要求IMS终端具备多种无线接入能力,如GSM/WLAN双模终端就具备这样的物理条件。
IMS客户端软件开发应当遵照相关标准组织的协议与规范进行,特别是协议层的一致性,需要严格按照IETF中的规定去解析和组织SIP包头。但是,如果还没有提出相关的标准或者标准还没有完全被定义好,一些私有的解决方案也是可行的,因为标准总会存在一定的滞后。对SIP包头和携带的文档一些域进行私有定义以及通过XCAP中交互的XML文档中一些字段的私有定义,可以实现一些IMS服务的创新。
由于手机上的CPU、内存、电池等资源都是有限的,IMS客户端软件中的关键部分应当注意实现性能上的优化,如对内存的分配机制、电源管理、XML文档解析器算法优化等。
目前,业界在IMS客户端的实际产品开发方面较之IMS网络要滞后一些,但仍然已取得许多成果,如爱立信已经推出了基于爱立信移动平台的IMS客户端,实现了weShare(语音和多媒体共享业务);美国Ecrio公司推出了手机IMS框架软件,集成多种IMS功能,并提供了IMS软件开发包。随着IMS网络测试和今后IMS网络部署的展开,可以预见,IMS客户端逐渐会成为开发和研究的热点。
随着IMS应用的增加和丰富,IMS客户端软件会变得越来越复杂,对IMS终端的要求也会更高。比如对多线程和多任务的需要,这要求IMS终端是一个智能终端,比较低端的手机可能不支持这样的特性。如果IMS客户端支持CSI,IMS终端就必须支持DTM模式或者具备MultiRAB能力。如果IMS客户端支持VCC或者一些固定移动网络融合服务,IMS终端必须是一个多模终端,包含多个无线空中接口。如果IMS客户端必须支持IPSec和包压缩,IMS终端可能需要更强的CPU/DSP和更多的内存来处理复杂运算,因此,来自芯片制造商对IMS终端中的某些特性的硬件支持将有助于IMS终端的性能增强。
IMS客户端中仍有大量的课题有待研究。在IMS客户端协议栈中SIP和XCAP都是基于文本的信令协议,需要大量的文本解析工作,SIP和XML解析器的性能和效率变得尤为重要,因此如何优化解析器算法就是一个需要解决的课题。IMS客户端的安全和认证机制也是比较复杂的,不同的接入方式有完全不同的安全和认证要求,同时上层各种IMS应用也有不同的服务级的安全要求,如何整合和实现这些功能也是需要解决的问题。IMS客户端的用户设备能力管理也是很重要的,这些能力包括设备能力、网络能力和用户服务属性等,这些能力可以是预设的,可以是存储在网络侧的,也可以是通过会话协商获得的。IMS客户端的复杂性和多样性决定了IMS客户端的一致性测试和互联性测试是今后要面临的重大课题,互联性没有很好地解决将会影响IMS技术和网络的发展。
随着IMS技术和应用的日渐成熟与推广,对IMS客户端相关技术以及软件的设计实现方式等课题的深入研究,将会对有关设备生产商及电信运营商等具有重要的参考借鉴意义。
中国联通网站