本文简单记录下volte相关知识与其注册流程
1.终端用户与网络都需要了解对方的volte能力,这个我们以前lte 附着时已经介绍过来,相关信息在attach req中。
2.建立IMS承载,在建立lte默认承载之后,需要建立IMS承载,apn为ims
3.向IMS域发起注册。
4.注册成功后,进行相关业务流程了。
这里贴出相关log介绍
建立默认承载(cmnet)
之后建立ims 专用承载
ims专用承载建立成功之后,既可以向ims域发起ims注册了。
ims域结构可以分为三层,应用,控制和接入层。这里主要说下控制层的网元,对后面学习sip协议有点作用。
ims控制层有三大网元组成,分别为P-CSCF,I-CSCF,S-CSCF,下面为各自作用。
名称 | 作用 |
---|---|
P-CSCF | volte与控制层接口 |
I-CSCF | 负责分配信令到不同的S-CSCF中 |
S-CSCF | 处理不同的信令业务 |
关于ims注册,使用的sip协议,也必须知道sip网络服务器,所谓sip协议有下面三个特点,类似于http。
1.消息组成为文本
2.|先有请求消息,再有响应。
3.C/S架构
这里有引出了sip 网络服务器(sip终端为 UA)
服务器名称 | 功能 |
---|---|
代理服务器 | 为主叫与被叫UA转发信令 |
定位服务器 | 取得UA信息 |
重定向服务器 | 定向到代理服务器 |
注册服务器 | UA在sip网络中的注册 |
这里UA 与网络服务器,网络服务器之间均使用sip协议进行通信
VOLTE业务中常见的请求消息
基本请求 | 名称 |
---|---|
INVITE | 启呼 |
REGISTER | 注册 |
OPTIONS | 选项 |
IACK | 确认 |
BYE | 挂机 |
CANCEL | 取消 |
响应消息
响应 | 功能 |
---|---|
1XX | 临时性响应 |
2XX | 成功响应 |
3XX | 重定向响应 |
4XX | 客户端失败响应 |
5XX | 服务器失败响应 |
6XX | 全局失败响应 |
volte中常见的sip响应列表
响应编号 | 名称 | 说明 |
---|---|---|
100 | Trying | 收到请求,处理中 |
180 | Ringing | 被叫振铃 |
183 | Session Progress | 呼叫进行中 |
200 | OK | 成功 |
401 | Unauthorized | 未授权,第一次注册ims域时遇到 |
404 | Not Found | 没找到 |
486 | Busy Here | 被叫正忙 |
sip消息结构=起始行+消息头+消息体
主要消息体不一定存在。
下面分别接受请求消息与相应消息已注册sip网络消息为例
请求消息
07:42:26.436 [0x156E] IMS SIP Message
Version = 1
Version 1 {
Direction = UE_TO_NETWORK
SDP Presence = 0
SIP Call ID Length = 62
SIP Message Length = 1606
SIP Message Logged Bytes = 1607
Message ID = IMS_SIP_REGISTER
Response Code = INFORMAL_RESPONSE (0)
CM Call ID = 255
SIP Call ID = 2401194090_2268498504@2409:8804:8015:3c90:609e:ae2c:9c42:1785
Sip Message = REGISTER sip:ims.mnc002.mcc460.3gppnetwork.org SIP/2.0 //起始行
//消息头
f: ;tag=2401194103 //呼叫发起方的IMPI(volte 用户唯一公开标识)
t: //呼叫被叫方的IMPI(volte 用户唯一公开标识)
CSeq: 253710442 REGISTER //消息序列号
//回话过程唯一标识 i
i: 2401194090_2268498504@2409:8804:8015:3c90:609e:ae2c:9c42:1785
//sip消息转发者的ip地址,传输消息的传输协议与端口 v
v: SIP/2.0/TCP [2409:8804:8015:3c90:609e:ae2c:9c42:1785]:5060;branch=z9hG4bK1716348436
Max-Forwards: 70
Authorization: Digest //鉴权响应
uri="sip:ims.mnc002.mcc460.3gppnetwork.org",username="[email protected]",response="",realm="ims.mnc002.mcc460.3gppnetwork.org",nonce=""
Expires: 600000
Require: sec-agree
Proxy-Require: sec-agree
k: path,sec-agree
Allow: INVITE,BYE,CANCEL,ACK,NOTIFY,UPDATE,PRACK,INFO,MESSAGE,OPTIONS
Security-Client: ipsec-3gpp; alg=hmac-md5-96; ealg=des-ede3-cbc; spi-c=3635426414; spi-s=2074953050; port-c=8003; port-s=8902,ipsec-3gpp; alg=hmac-md5-96; ealg=aes-cbc; spi-c=3635426414; spi-s=2074953050; port-c=8003; port-s=8902,ipsec-3gpp; alg=hmac-md5-96; ealg=null; spi-c=3635426414; spi-s=2074953050; port-c=8003; port-s=8902,ipsec-3gpp; alg=hmac-sha-1-96; ealg=des-ede3-cbc; spi-c=3635426414; spi-s=2074953050; port-c=8003; port-s=8902,ipsec-3gpp; alg=hmac-sha-1-96; ealg=aes-cbc; spi-c=3635426414; spi-s=2074953050; port-c=8003; port-s=8902,ipsec-3gpp; alg=hmac-sha-1-96; ealg=null; spi-c=3635426414; spi-s=2074953050; port-c=8003; port-s=8902
//回复消息的地址 m
m: ;+sip.instance="";+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";+g.3gpp.smsip;+g.3gpp.accesstype="cellular2"
l: 0 //消息体长度
}
响应消息
07:42:26.611 [0x156E] IMS SIP Message
Version = 1
Version 1 {
Direction = NETWORK_TO_UE
SDP Presence = 0
SIP Call ID Length = 62
SIP Message Length = 660
SIP Message Logged Bytes = 661
Message ID = IMS_SIP_REGISTER
Response Code = UNAUTHORIZED (401)
CM Call ID = 255
SIP Call ID = 2401194090_2268498504@2409:8804:8015:3c90:609e:ae2c:9c42:1785
Sip Message = SIP/2.0 401 Unauthorized //起始行
//消息头
Via: SIP/2.0/TCP [2409:8804:8015:3C90:609E:AE2C:9C42:1785]:5060;branch=z9hG4bK1716348436
Call-ID: 2401194090_2268498504@2409:8804:8015:3c90:609e:ae2c:9c42:1785
From: ;tag=2401194103
To: ;tag=wwv00evl
CSeq: 253710442 REGISTER
//鉴权参数
WWW-Authenticate: Digest realm="ims.mnc002.mcc460.3gppnetwork.org",nonce="GNESBD1C3pNj5kalYNrOp1pGUAUOxgAA43j2J3G4eKw=",algorithm=AKAv1-MD5
Security-Server: ipsec-3gpp;alg=hmac-md5-96;prot=esp;mod=trans;ealg=null;spi-c=3141603723;spi-s=3292598667;port-c=9950;port-s=9900
Content-Length: 0
}
消息体上面消息没有携带,不做介绍了,可根据Content-Length确认。
本文最后介绍下sip注册消息流程
1.发起注册请求
2.响应
首次注册均返回401,并携带WWW-Authenticate信息给UA,UA收到重新发起注册