而传统电信网是为电话业务所设计的,那种拨一个号码并交谈的模式已经远远不能满足这种多媒体应用的需求,需要设计新的网络结构来支持。第三代网络的出现就是为用户提供包括语音业务和互联网数字业务在内的各种多媒体服务,SIP 协议作为第三代网络中重要的软交换协议发挥了重要的作用。本文将首先简单介绍 SIP 协议的概念,体系组成结构以及协议组成部分。并结合 Android Framework API 中新增加的 SIP 协议栈的支持,编写一个简单的基于 SIP 协议的 Android 应用。
随着移动">通信技术的迅猛发展,将我们带入丰富多彩的 3G 多媒体信息时代。特别是互联网的飞速发展,越来越多的用户能够使用更快、更便宜的因特网联接,这使得像聊天应用、视频语音、在线游戏等需持续在线的应用实现成为可能。而传统电信网是为电话业务所设计的,那种拨一个号码并交谈的模式已经远远不能满足这种多媒体应用的需求,需要设计新的网络结构来支持。3G 网络作为下一代网络(Next Generation Network,NGN)其主要目标就是为用户提供包括语音业务和互联网数字业务在内的各种多媒体服务,其主要特征是将有线网络、互联网和无线网络进行无缝的融合。在这种条件下,软交换概念孕育而生。其作为下一代网络最受关注的焦点之一是把呼叫控制功能从媒体网关中分离出来,通过发送软件包的方式实现基本呼叫控制。这样将业务与呼叫控制分离,呼叫控制与数据承载相分离的 NGN 网络体系,使得网络各层之间的低耦合性能够有效的满足用户多样的、不断变化的需求。
图 1. 下一代网络分层体系结构
在软交换设备众多的通信协议中,会话初始化协议(SIP)凭借其简单、易实现等多方面的优点成为下一代网络和 IP 多媒体子系统(IMS)的重要协议。SIP 协议是 IETF(因特网工程任务组)推出的一种信令协议,主要目的是在 IP 网络中建立、修改和终止多媒体会话的应用层协议。其主要的应用包括但不局限于语音、消息、视频、呼叫控制等。SIP 最初是用来发布多媒体内容,由于其简单和易扩展性于 1999 年称为 IETF 标准 [RFC2543]。随着 SIP 协议在互操作性和新特性的增强,于 2002 年形成新标准 [RFC3261]。
SIP 协议是基于超文本传输协议(HTTP)和简单邮件传送协议(SMTP)的信令协议,下图描述了 SIP 协议在协议栈中的位置:
图 2. 协议栈结构
SIP 协议虽然属于应用层协议,然而 SIP 本身并不提供任何服务。但是 SIP 是通信的基础,在 SIP 这个通信的基础上可以用来构建不同的服务。SIP 协议在建立和维持多媒体会话中,主要支持如下 5 个功能:
检查终端用户的位置。无论被叫方在
哪里均能确保呼叫达到被叫方,进行任何描述信息到定位信息的转换; 检查用户参与会话的意愿程度。参与者在呼叫中能够引入其他用户加入或者取消其他用户的连接; 检查媒体和媒体参数,允许与呼叫有关的组在支持特性上保持一致; 在呼叫与被叫双方建立会话; 发送和终止会话,修改会话参数,激活服务等会话管理操作;