介绍
SIP是一个基于文本的应用层控制协议,用于创建、修改和释放多媒体会话。
SIP支持在5方面建立和释放多媒体通信:
用户定位:确定参加通信的终端用户的位置
用户可用性:确定被叫是否愿意加入某个通信
用户能力:确定通信的媒体类型和参数
会话建立:向被叫“振铃”,建立主被叫之间的会话参数
会话管理:包括会话呼叫转移、终止、修改会话参数和调用服务
SIP功能概述
SIP不是垂直整合的通信系统(理解不是端到端的)。SIP是可以和其他IETF协议结合的组件,从而建立一个复杂多媒体架构。通常这样的架构会包含RTP(RFC1889)、RTSP(RFC2326)、MEGACO(RFC3015)、SDP(RFC2327)
SIP不提供服务。相对的,SIP提供了一些原型(primitive)用于实现不同服务。比如讲定位和发送功能用于传输会话描述,就可以协商对端会话参数。
SIP可作用于IPV4和IPV6
协议结构
SIP的逻辑分层从低到高如下:
语法和编码层:
编码使用BNF,说明在section25
传输层:
规定了客户端如何发请求收响应,服务端如何收请求发响应。描述在section 18
事务层:
事务是SIP协议的基本组成部分。事务是一个客户端事务层发出的请求,到服务器事务层返回的所有响应。事务层处理应用层重传、匹配对应响应给请求和应用层超时。事务的具体描述在section 17
事务用户(TU):
除了stateless proxy,每个SIP实体都是一个TU
SIP要素有UAC,UAS,无状态和有状态proxy,和registrar。都包含一个核心(core)来区分,除了无状态代理外其余的核心都是TU。可以理解为比如一个SIP实体的UA的UAC的UAC core就是一个TU。
对话(dialogue),是两个ua间持续一段时间的端对端的sip关系
通用用户代理行为
一个用户代理代表一个端系统。包含uac和uas。
Uac发送的请求经过几个代理服务器(proxy),将请求转给uas,当uas生成响应,再回给uac。
UAC和UAS的流程(procedure)依赖于两个因素。一个是请求或响应是否在对话内或对话外。另一个因素是请求方法。
Reference
[1].RFC 3261 SIP: Session Initiation Protocol