SIP协议学习总结
1、IMS网络架构
2、SIP介绍
SIP(Session Initiation Protocol) 会话初始协议,“是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast) 、网状单播(unicast)或两者的混合体进行通信。”
3、SIP成员
https://www.sharetechnote.com/html/IMS_SIP_Components.html
4、SIP协议消息
SIP 消息采用文本方式编码,分为两类:请求消息和响应消息。
请求消息:用于客户端为了激活按特定操作而发给服务器的SIP 消息。
响应消息:用于对请求消息进行响应,指示呼叫的成功或失败状态。
请求消息类型包括:
INVITE,ACK,OPTIONS,BYE,CANCEL 和 REGISTER 消息等
INVITE:用于邀请用户加入一个呼叫。
ACK:用于对请求消息的响应消息进行确认。
OPTIONS:用于请求能力信息。
BYE:用于释放已建立的呼叫。
CANCEL:用于释放尚未建立的呼叫。
REGISTER:用于向SIP网络服务器登记用户位置信息
响应消息
响应消息由状态码来区分,状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明,包括:1xx,2xx,3xx,4xx,5xx,6xx
1xx:临时响应,表示已经接收到请求消息,正在对其进行处理;
2xx:成功响应,表示请求已经被接收、处理并被成功接受
3xx:重定向响应,表示为完成请求消息需要采取进一步的行动
4xx:客户机错误,表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理。
5xx:服务器错误,表示SIP服务器故障不能完成对正确消息的处理
6xx:全局故障,表示请求不能在任何SIP服务器上实现
SIP消息格式
请求消息和响应消息的格式,一般由起始行,若干个消息头和消息体构成。
SIP一般消息 = 起始行
*消息头
CRLF(空行)
[消息体]
起始行 = 请求行/状态行 ( SIP请求消息起始行是请求行(Request-Line),响应消息起始行是状态行(Status-Line))。
请求消息头至少包括From、To、CSeq、Call-ID、Max-Forwards、Via 六个头字段,它们是构建SIP消息基本单元
其中消息体是可选项,消息体一般采用SDP(Session Description Protocol)协议,会话描述。协议SDP的正式规范是RFC 4566和3GPP 24.229。
5、IMS/VoLTE基本流程
5.1、注册
5.2、去注册
5.3、MO通话
5.4、MT通话
5.5、通话释放流程
6、SIP参数
6.1、SIP Parameter : Call-ID
呼叫ID是表示特定呼叫会话(更具体地说是对话)的标识。Call ID标头字段是用于跟踪特定SIP会话的标识符。
6.2、SIP Parameter : P-Called-Party-ID
此参数旨在补偿目标地址(“to”参数)的任何可能的不确定性。由于“to”参数是由UA填充的,而不是由代理填充的,因此它可能缺少一些详细信息。为了处理这种情况,代理服务器可以添加P-Called Pary-ID来明确目标地址。
此参数最常用于INVITE、MESSAGE请求。
6.3、SIP Parameter : P-Asserted-Identity
参考rfc3325 Private Extensions to the Session Initiation Protocol (SIP) for
Asserted Identity within Trusted Networks
1、可信网络:PAI被认为是一个可信的报头,这意味着它只应该在安全、封闭的网络中使用和信任,在这些网络中,代理和其他元素由服务提供商管理。它不应该在开放的互联网上或不同的服务提供商之间使用,因为它可能会受到欺骗。
2、隐私考虑:由于PAI可能包含有关用户身份的敏感信息,因此其使用通常由网络内的隐私服务控制,以确保其不会暴露给未经授权的实体。
3、格式:标头通常包括表示用户身份的SIP URI或tel URI。
例如:P-Asserted-Identity: <sip:user@example.com>
或者 P-Asserted-Identity: <tel:+1234567890>
4、PAI用于各种目的,包括:
终端网络中的呼叫者ID显示。
访问控制和授权。
需要准确用户身份的会计和计费目的。
基于用户身份的通信策略的执行。
5、安全性:由于PAI可用于断言主叫方的身份,因此必须使用SIP over TLS等机制保护其免受篡改,并且只能由受信任的网络元素插入或修改。
其中P-Asserted-Identity为网络有信任的网络元素添加和修改
6.4、SIP Parameter : P-Preferred-Identity
用户控制:与由网络设置的P-Asserted-Identity不同,P-Preferred-Identity标头由用户或其用户代理设置。它表示用户对正在建立的会话应使用哪个身份的偏好。
多个身份:用户可以拥有多个与其帐户关联的身份(如多个电话号码或SIP URI)。PPI报头允许用户指示他们希望被叫方看到哪个身份。这在呼叫者ID等服务中特别有用。
隐私考虑:PPI对隐私问题很敏感。虽然用户可以表明他们的首选身份,但网络通常会强制执行隐私服务,这些服务可能会根据用户设置、服务协议或监管要求限制此信息的可见性。
验证和信任:PPI不具有与P-Asserted-Identity相同的网络验证信任级别。网络通常会使用PPI作为建议,但可能会根据其政策推翻它
法律和监管合规性:服务提供商必须按照当地法律法规,特别是有关用户隐私和数据保护的法律法规来处理P-Preferred-Identity。
参考文档
3GPP文档
TS 23.002 Network Architecture
TS 23.228 IP Multimedia Subsystem (IMS); Stage 2
Version Numbering Scheme
Directory Listing /ftp/Specs/archive
RFC SIP协议文档下载
https://www.rfc-editor.org/retrieve/
IMS Share Technote
IMS | ShareTechnote