LTE語音業務-VOLTE(一)、
本文簡單記錄下volte相關知識與其註冊流程
一.volte 處理流程
1.終端用戶與網絡都需要了解對方的volte能力,這個我們以前lte 附着時已經介紹過來,相關信息在attach req中。
2.建立IMS承載,在建立lte默認承載之後,需要建立IMS承載,apn爲ims
3.向IMS域發起註冊。
4.註冊成功後,進行相關業務流程了。
這裏貼出相關log介紹
建立默認承載(cmnet)
之後建立ims 專用承載
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協議進行通信
三. 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: <sip:[email protected]>;tag=2401194103 //呼叫發起方的IMPI(volte 用戶唯一公開標識)
t: <sip:[email protected]> //呼叫被叫方的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:[2409:8804:8015:3c90:609e:ae2c:9c42:1785]:5060>;+sip.instance="<urn:gsma:imei:86443001-000109-0>";+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: <sip:[email protected]>;tag=2401194103
To: <sip:[email protected]>;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收到重新發起註冊
3.重新註冊,Authorization中增加了上條返回的鑑權信息有關內容
4.註冊成功,獲取到IMPU