会话初始化协议(SIP)
字数 2249 2025-12-06 09:21:06

会话初始化协议(SIP)

  1. 基础概念与定位
    SIP是一种应用层控制(信令)协议,用于创建、修改和终止包含一个或多个参与者的多媒体会话。这些会话可以是互联网电话(VoIP)呼叫、视频会议、即时消息、游戏或虚拟现实等多种交互式通信。需要明确的是,SIP本身不传输语音或视频数据,它只负责“建立和管理”会话,类似于电话系统中的拨号和响铃。媒体数据的实际传输通常由其他协议(如RTP,实时传输协议)在会话建立后完成。SIP基于文本,设计上借鉴了HTTP和SMTP,采用请求-响应模式和易读的报文格式。

  2. 核心网络组件
    SIP网络由逻辑功能实体构成,一个物理设备可能包含多个实体。

    • 用户代理(UA):会话的终点,代表通信的发起者或接收者。分为:
      • 用户代理客户端(UAC):发起SIP请求的实体(如发起呼叫的软电话)。
      • 用户代理服务器(UAS):接收请求并代表用户返回响应的实体(如接听呼叫的电话)。
    • 代理服务器:接收SIP请求,并将其转发到“下一个跳”服务器(可能是另一个代理或UAS)。它解释并可能重写请求中的部分信息,以实现路由、策略执行和负载均衡。
    • 重定向服务器:接收请求后,不转发,而是返回一个响应(如302 Moved Temporarily),告诉客户端联系另一个或多个地址。这有助于实现呼叫转发和负载分布。
    • 注册服务器:接收用户代理的REGISTER请求,记录其当前网络位置(IP地址、端口等)到一个位置服务数据库(通常称为注册器)。这使得用户移动时,他人仍能通过其固定地址(SIP URI)找到他。
    • 位置服务:一个数据库,存储了地址(SIP URI)到其可能物理位置的映射,由注册服务器更新,供代理或重定向服务器查询。
  3. SIP地址与消息结构

    • SIP URI:用户的唯一标识符,格式类似于电子邮件地址,例如 sip:alice@example.comsips:bob@company.orgsips表示安全SIP)。它可以包含电话号码格式。
    • 消息类型
      • 请求:由UAC发起。核心方法包括:
        • INVITE:发起会话(呼叫)。
        • ACK:确认最终响应,用于INVITE
        • BYE:终止会话。
        • CANCEL:取消一个尚未完成的请求(如正在振铃的呼叫)。
        • REGISTER:向注册服务器注册位置信息。
        • OPTIONS:查询服务器能力。
      • 响应:由UAS或服务器返回,包含状态码。主要类别:
        • 1xx(临时响应):表示请求已收到,正在处理(如100 Trying, 180 Ringing)。
        • 2xx(成功):请求已成功处理(如200 OK)。
        • 3xx(重定向):需要进一步动作以完成请求。
        • 4xx(客户端错误):请求包含语法错误或无法在此服务器完成。
        • 5xx(服务器错误):服务器未能处理一个合法的请求。
        • 6xx(全局故障):请求在任何服务器都无法完成。
    • 消息体:SIP消息可以携带一个称为“SDP”(会话描述协议)的正文,用于描述会话的媒体特性,如媒体类型(音频/视频)、编码格式、接收端口等,供双方协商。
  4. 典型呼叫流程(UA到UA,通过代理)
    以一个最简单的两方语音通话为例,假设双方都已注册:

    1. 呼叫发起:Alice的UAC向她的代理服务器发送一个INVITE请求,请求体包含SDP,描述Alice支持的媒体格式和监听端口。
    2. 路由与定位:代理服务器查询位置服务,找到Bob当前注册的地址,并将INVITE请求转发给Bob的UAS(可能通过多个代理)。
    3. 振铃:Bob的UAS收到INVITE后,先回送100 Trying(临时响应)表明已收到,然后启动振铃,并发送180 Ringing响应,该响应沿原路径回传至Alice。
    4. 应答:Bob接听,其UAS发送200 OK最终响应,响应体包含Bob的SDP(他选择的媒体格式和端口)。
    5. 确认与媒体建立:Alice的UAC收到200 OK后,发送ACK请求进行确认。至此,SIP信令交互完成。双方根据交换的SDP信息,开始使用RTP协议在协商好的端口上直接传输语音数据包。
    6. 通话结束:任何一方挂机,其UA发送BYE请求,对方回复200 OK,会话终止。
  5. 关键特性与扩展

    • 状态管理:SIP可以是有状态(代理服务器跟踪事务状态)或无状态的。
    • 移动性与发现:通过REGISTER机制,用户可以在网络中任意位置登录,实现“个人移动性”。网络通过DNS(NAPTR/SRV记录)和位置服务来发现用户和服务器。
    • 安全性:SIP支持使用TLS进行传输加密(SIPS URI),以及使用S/MIME或IPsec进行消息体加密和身份验证。
    • 会话协商与更改:通过INVITE/re-INVITEUPDATE方法,可以在会话中修改媒体参数(如增加视频、静音、保持)。
    • 与PSTN互通:通过SIP中继SIP网关,SIP网络可以与传统的公共交换电话网络(PSTN)互联,实现互联网电话与普通电话的互通。
  6. 应用与重要性
    SIP是VoIP和统一通信(UC)的核心协议,广泛应用于企业电话系统(IP-PBX)、4G/5G网络的IMS(IP多媒体子系统)、以及大多数软电话和视频会议解决方案(如Microsoft Teams、Zoom的部分信令基础)。其开放、可扩展和与Web协议相似的特点,使其成为构建下一代融合通信服务的基础。

会话初始化协议(SIP) 基础概念与定位 SIP是一种应用层控制(信令)协议,用于创建、修改和终止包含一个或多个参与者的多媒体会话。这些会话可以是互联网电话(VoIP)呼叫、视频会议、即时消息、游戏或虚拟现实等多种交互式通信。需要明确的是,SIP本身不传输语音或视频数据,它只负责“建立和管理”会话,类似于电话系统中的拨号和响铃。媒体数据的实际传输通常由其他协议(如RTP,实时传输协议)在会话建立后完成。SIP基于文本,设计上借鉴了HTTP和SMTP,采用请求-响应模式和易读的报文格式。 核心网络组件 SIP网络由逻辑功能实体构成,一个物理设备可能包含多个实体。 用户代理(UA) :会话的终点,代表通信的发起者或接收者。分为: 用户代理客户端(UAC) :发起SIP请求的实体(如发起呼叫的软电话)。 用户代理服务器(UAS) :接收请求并代表用户返回响应的实体(如接听呼叫的电话)。 代理服务器 :接收SIP请求,并将其转发到“下一个跳”服务器(可能是另一个代理或UAS)。它解释并可能重写请求中的部分信息,以实现路由、策略执行和负载均衡。 重定向服务器 :接收请求后,不转发,而是返回一个响应(如302 Moved Temporarily),告诉客户端联系另一个或多个地址。这有助于实现呼叫转发和负载分布。 注册服务器 :接收用户代理的 REGISTER 请求,记录其当前网络位置(IP地址、端口等)到一个位置服务数据库(通常称为注册器)。这使得用户移动时,他人仍能通过其固定地址(SIP URI)找到他。 位置服务 :一个数据库,存储了地址(SIP URI)到其可能物理位置的映射,由注册服务器更新,供代理或重定向服务器查询。 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(全局故障):请求在任何服务器都无法完成。 消息体 :SIP消息可以携带一个称为“SDP”(会话描述协议)的正文,用于描述会话的媒体特性,如媒体类型(音频/视频)、编码格式、接收端口等,供双方协商。 典型呼叫流程(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 ,会话终止。 关键特性与扩展 状态管理 :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协议相似的特点,使其成为构建下一代融合通信服务的基础。