会话初始化协议(SIP)
字数 2249 2025-12-06 09:21:06
会话初始化协议(SIP)
-
基础概念与定位
SIP是一种应用层控制(信令)协议,用于创建、修改和终止包含一个或多个参与者的多媒体会话。这些会话可以是互联网电话(VoIP)呼叫、视频会议、即时消息、游戏或虚拟现实等多种交互式通信。需要明确的是,SIP本身不传输语音或视频数据,它只负责“建立和管理”会话,类似于电话系统中的拨号和响铃。媒体数据的实际传输通常由其他协议(如RTP,实时传输协议)在会话建立后完成。SIP基于文本,设计上借鉴了HTTP和SMTP,采用请求-响应模式和易读的报文格式。 -
核心网络组件
SIP网络由逻辑功能实体构成,一个物理设备可能包含多个实体。- 用户代理(UA):会话的终点,代表通信的发起者或接收者。分为:
- 用户代理客户端(UAC):发起SIP请求的实体(如发起呼叫的软电话)。
- 用户代理服务器(UAS):接收请求并代表用户返回响应的实体(如接听呼叫的电话)。
- 代理服务器:接收SIP请求,并将其转发到“下一个跳”服务器(可能是另一个代理或UAS)。它解释并可能重写请求中的部分信息,以实现路由、策略执行和负载均衡。
- 重定向服务器:接收请求后,不转发,而是返回一个响应(如302 Moved Temporarily),告诉客户端联系另一个或多个地址。这有助于实现呼叫转发和负载分布。
- 注册服务器:接收用户代理的
REGISTER请求,记录其当前网络位置(IP地址、端口等)到一个位置服务数据库(通常称为注册器)。这使得用户移动时,他人仍能通过其固定地址(SIP URI)找到他。 - 位置服务:一个数据库,存储了地址(SIP URI)到其可能物理位置的映射,由注册服务器更新,供代理或重定向服务器查询。
- 用户代理(UA):会话的终点,代表通信的发起者或接收者。分为:
-
SIP地址与消息结构
- SIP URI:用户的唯一标识符,格式类似于电子邮件地址,例如
sip:alice@example.com或sips:bob@company.org(sips表示安全SIP)。它可以包含电话号码格式。 - 消息类型:
- 请求:由UAC发起。核心方法包括:
INVITE:发起会话(呼叫)。ACK:确认最终响应,用于INVITE。BYE:终止会话。CANCEL:取消一个尚未完成的请求(如正在振铃的呼叫)。REGISTER:向注册服务器注册位置信息。OPTIONS:查询服务器能力。
- 响应:由UAS或服务器返回,包含状态码。主要类别:
- 1xx(临时响应):表示请求已收到,正在处理(如100 Trying, 180 Ringing)。
- 2xx(成功):请求已成功处理(如200 OK)。
- 3xx(重定向):需要进一步动作以完成请求。
- 4xx(客户端错误):请求包含语法错误或无法在此服务器完成。
- 5xx(服务器错误):服务器未能处理一个合法的请求。
- 6xx(全局故障):请求在任何服务器都无法完成。
- 请求:由UAC发起。核心方法包括:
- 消息体:SIP消息可以携带一个称为“SDP”(会话描述协议)的正文,用于描述会话的媒体特性,如媒体类型(音频/视频)、编码格式、接收端口等,供双方协商。
- SIP URI:用户的唯一标识符,格式类似于电子邮件地址,例如
-
典型呼叫流程(UA到UA,通过代理)
以一个最简单的两方语音通话为例,假设双方都已注册:- 呼叫发起:Alice的UAC向她的代理服务器发送一个
INVITE请求,请求体包含SDP,描述Alice支持的媒体格式和监听端口。 - 路由与定位:代理服务器查询位置服务,找到Bob当前注册的地址,并将
INVITE请求转发给Bob的UAS(可能通过多个代理)。 - 振铃:Bob的UAS收到
INVITE后,先回送100 Trying(临时响应)表明已收到,然后启动振铃,并发送180 Ringing响应,该响应沿原路径回传至Alice。 - 应答:Bob接听,其UAS发送
200 OK最终响应,响应体包含Bob的SDP(他选择的媒体格式和端口)。 - 确认与媒体建立:Alice的UAC收到
200 OK后,发送ACK请求进行确认。至此,SIP信令交互完成。双方根据交换的SDP信息,开始使用RTP协议在协商好的端口上直接传输语音数据包。 - 通话结束:任何一方挂机,其UA发送
BYE请求,对方回复200 OK,会话终止。
- 呼叫发起:Alice的UAC向她的代理服务器发送一个
-
关键特性与扩展
- 状态管理:SIP可以是有状态(代理服务器跟踪事务状态)或无状态的。
- 移动性与发现:通过
REGISTER机制,用户可以在网络中任意位置登录,实现“个人移动性”。网络通过DNS(NAPTR/SRV记录)和位置服务来发现用户和服务器。 - 安全性:SIP支持使用TLS进行传输加密(SIPS URI),以及使用S/MIME或IPsec进行消息体加密和身份验证。
- 会话协商与更改:通过
INVITE/re-INVITE和UPDATE方法,可以在会话中修改媒体参数(如增加视频、静音、保持)。 - 与PSTN互通:通过SIP中继和SIP网关,SIP网络可以与传统的公共交换电话网络(PSTN)互联,实现互联网电话与普通电话的互通。
-
应用与重要性
SIP是VoIP和统一通信(UC)的核心协议,广泛应用于企业电话系统(IP-PBX)、4G/5G网络的IMS(IP多媒体子系统)、以及大多数软电话和视频会议解决方案(如Microsoft Teams、Zoom的部分信令基础)。其开放、可扩展和与Web协议相似的特点,使其成为构建下一代融合通信服务的基础。