响应消息的起始行为状态行(Status-Line),状态行由协议版本,状态码和与状态码相关的文本描述组成,各个部分之间用一个空格字符分隔。状态行的格式如下所示:
Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF Status-Code:状态码是一个3位的十进制整数,取值范围为100---699,用于表示请求消息的响应结果。状态码的第1位数字表示响应类型,后两位数字表示具体的响应。100---199是临时响应,200---699是最终响应。通常情况下,一个请求只能收到一个响应,即为最终响应,而INVITE请求可以收到多个临时响应和一个最终响应 响应码反馈如下
? 1XX:临时响应,请求消息正在被处理。
? 2XX:成功响应,请求已被成功接收,完全理解并接受。 ? 3XX:重定向响应,请求需要重新发送到其他的目的地址。 ? 4XX:客户机错误,请求包含语法错误或服务器无法完成该请求。 ? 5XX:服务器错误,服务器无法完成合法请求。 ? 6XX:全局故障,任何服务器无法完成该请求。
常用的响应码如下: 响应码 100 180 181 182 183 200 400 401 403 404 407 480 内容 Trying Ringing Call Queued Session Progress OK Bad Request Unauthorized Forbidden Not Found Proxy Authentication Required Temporarily Unavailable Is Being Forwarded 含义 表明下一跳服务器已经收到INVITE请求。客户端收到该响应停止重发INVITE请求。 被叫振铃。 呼叫被前转 呼叫等待 表示呼叫正在处理,通常用来传递呼叫处理的信息 请求成功 请求消息有语法错误 表示请求消息需要用户鉴权 表示请求被禁止,用户没有权限。 表示找不到被叫 表示请求消息需要用户鉴权 表示被叫临时不可用 486 487 500 503 Busy Here Server Internal Error Service Unavailable 表示被叫忙 表示服务器端内部错误 表示服务器过载或正在维护导致暂时不能处理该请求 Request Terminated 表示请求被CANCEL或BYE终止 4.1.3. SIP信令的消息头
头字段格式:头字段由字段名和字段值组成,字段名和字段值之间用冒号分隔。 常用头字段:
? To:表示请求消息的目的接收者,SIP URI或TEL URI格式。在请求消息中,
除了REGISTER请求外,通常To和Request-Line相同。 ? From:表示请求消息的发起方,SIP URI或TEL URI格式。
? Call-ID:用来消息分组的标识,在一个会话中,一个用户发送的所有请求
和响应消息都必须有相同的Call-ID。
? Contact:消息发送方的联系地址,SIP URI格式。
? CSeq:消息的顺序编号。这在一次对话或一个Call-ID中是惟一的。这用于
区别新的消息和“重试消息”。当一条初始消息没有及时OK时,重试就会进行,并会定时发送。
? Content-Type:消息内payload的MIME类型。
? Content-Length:payload的大小,以字节为单位。信封和payload之间由一
空行隔开。
4.1.4. SIP信令的消息体
消息体的类型由Content-Type头字段定义,最常用的是application/sdp,也就是会话描述协议(Session Description Protocol)。消息体的长度由Content-Length头字段定义。
下表为常见SDP协议中的字段含义。其中a=,b=会同时存在多个。*为非必选参数,可根据需要在IMS域中选择开启,从现网来看,i,c,a,b存在。VoLTE专属,表明其在VoLTE网络中存在,在一般的IMS域的固话呼叫中,会没有。
类别 字段 v = o = s = i = u = e = 会话描述 p = c = b = z = k = a = 时间描述 t = r = m = i = c = b = k = a = VoLTE专属 中文含义 协议版本 所有者/创建者和会话标识符 *会话名称 * 会话信息 * URI 描述 * Email 地址 * 电话号码 * 连接信息 ― 如果包含在所有媒体中,则不需要该字段 * 带宽信息 * 时间区域调整 * 加密密钥 * 0 个或多个会话属性行 会话活动时间 * 0或多次重复次数 媒体名称和传输地址 * 媒体标题 * 连接信息 — 如果包含在会话层则该字段可选 * 带宽信息 * 加密密钥 * 0 个或多个会话属性行 媒体描述 P-Access-Network-Info 无线承载信息 Security-Verify 安全信息 Proxy-Require Require P-Preferred-Identity P-Preferred-Service P-Early-Media Allow Route 代理请求 代理请求 主叫信息 首选服务器 提早呼叫信息 允许的事件 路由
4.2.
EPC附着与IMS注册
要进行VoLTE通话就必须首先在IMS域上进行注册,其发挥的作用和GSM通话中要先在MSC上注册是相似的。终端首先会进行EPC网络的附着,之后进行IMS域的注册和鉴权。一般来说,和普通数据业务不同,IMS业务会使用不同APN,IMS会使用独立APN来进行专用承载的建立。
? 开机附着与数据默认承载建立:VoLTE终端开机后发起LTE附着过程后,将根据签约首先建立数据默认承载(APN=CMNET,QCI=9) ? IMS默认承载建立:VoLTE终端LTE附着完成后,根据网络能力发起IMS连接建立请求,为VoLTE信令建立IMS默认承载( APN=IMS,QCI=5 ),SAE-GW根据SBC动态选择策略向UE返回SBC/P-CSCF地址(即IMS域入口地址)
? IMS注册过程:IMS默认承载建立后,VoLTE终端通过P-CSCF向IMS核心网发起注册与鉴权过程,以实现IMS域对后续呼叫控制和业务能力的支持;S-CSCF发起第三方注册,向VolTE AS更新STN-SR,之后VOlTE AS通过HSS向MME下发STN-SR,实现后续SRVCC操作相关信息的传递。