IMS/SIP中流程中我們經(jīng)常看到訂閱(SUSCRIBE)和通知(NOTIFY)消息,它們的定義、用途及示例分別如下:
1.消息定義
訂閱(SUSCRIBE)在無線協(xié)議中類似“測量控制”或“信息請求”,要求對方對特定事件或狀態(tài)進(jìn)行報(bào)告;
通知(NOTIFY)在無線協(xié)議中類似“測量報(bào)告”或“信息反饋”,其是對訂閱(SUSCRIBE)事件的信息反饋(具體見RFC3265中SIP事件定義節(jié));
2.訂閱(SUSCRIBE)支持的事件
訂閱是經(jīng)常見的事件就是注冊“reg”(注冊狀態(tài)檢查),另有很多其他的事件;詳見下表:
Event | Description | Reference |
reg | Request for IMS/SIP Registration Status | RFC 3680 |
presence | Request for presence information (commonly used in RCS) | RFC 3856 |
winfo | Request for Watcher information (commonly used in RCS) | RFC 3857 |
xcap-diff | Request for Xcap-Diff information (commonly used in RCS) | RFC 3875 |
3.通知(NOTIFY)支持的事件
通知(通常是CSCF)有錯誤出現(xiàn)(如481,400,500);除在消息正文之外提供的詳細(xì)(除已訂閱)信息,還會發(fā)送帶有特定訂閱狀態(tài)信息的通知消息(具體參閱RFC3265 3.2.4);
Subscription-State | Description |
active(激活) | It means the subscription is accepted (in most case, authorized as well) |
pending (暫緩) | It means the subscription has been received by the notifier, but there is insufficient policy information to grant or deny the subscription yet |
terminated (結(jié)束) | It means the subscription is terminated and this can specify as a reason code as follows |
| deactivated (去激活) | This mean that the subscription ended (terminated) but the subscriber (UE) SHOULD retry with a new subscription immediately. |
| probation (稍后再試) | This mean that the subscription ended (terminated) but the client SHOULD retry at some time later. |
| rejected (拒絕) | This mean that the subscription ended (terminated) due to change in authorization policy. The client SHOULD NOT retry. |
| timeout (超時(shí)) | This mean that the subscription ended (terminated) because it is not refreshed before it expired. The client MAY retry immediately. |
| giveup (放棄) | This mean that the subscription ended (terminated) because the notifier could not obtain authorization in time |
| noresource (無資源) | This mean that the subscription ended (terminated) because the resource being monitored is no longer available. |
4.訂閱和通知流程
訂閱(SUSCRIBE)一般由終端(UA)發(fā)起,服務(wù)器應(yīng)答 通知(NOTIFY),其流程簡化如下:
5.訂閱和通知消息內(nèi)容
以注冊“reg”(注冊狀態(tài)檢查)為例的“訂閱”( SUBSCRIBE)和“通知”(NOTIFY )消息內(nèi)容如下:
Step 1 : SUBSCRIBE -----------------------------------
SUBSCRIBE sip:+11234567890@test.3gpp.com SIP/2.0
Via: SIP/2.0/UDP 10.133.202.46:50997;branch=z9hG4bK2968d27245f17c7bcae38c31991bfdaa
Max-Forwards: 70
Contact: <sip:+11234567890@10.133.202.46:50997>;+sip.instance="<urn:gsma:imei:00440113-904785-0>"
To: <sip:+11234567890@test.3gpp.com>
From: <sip:+11234567890@test.3gpp.com>;tag=210a54
Call-ID: d57a0b04-785ba328-13a4d876@10.133.202.46
CSeq: 14534 SUBSCRIBE
Expires: 600000
User-Agent: IM-client/OMA1.0 DUT-IMS
Event: reg
Accept: application/reginfo+xml
P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp="0010100010000000"
P-Preferred-Identity: <sip:+11234567890@test.3gpp.com>
Content-Length: 0
Step 2 : 200 OK -----------------------------------
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.133.202.46:50997;branch=z9hG4bK2968d27245f17c7bcae38c31991bfdaa
From: <sip:+11234567890@test.3gpp.com>;tag=210a54
To: <sip:+11234567890@test.3gpp.com>;tag=987654321
Call-ID: d57a0b04-785ba328-13a4d876@10.133.202.46
CSeq: 14534 SUBSCRIBE
Expires: 600000
Contact: <sip:10.133.202.47:5060>
Record-Route: <sip:10.133.202.47;lr>
Content-Length: 0
Step 3 : NOTIFY -----------------------------------
NOTIFY sip:+11234567890@test.3gpp.com SIP/2.0
Via: SIP/2.0/UDP 10.133.202.47:5060;branch=z9hG4bK-d1e4c4961ca9d523ae76b67e088589cd
Call-ID: d57a0b04-785ba328-13a4d876@10.133.202.46
From: <sip:+11234567890@test.3gpp.com>;tag=987654321
To: <sip:+11234567890@test.3gpp.com>;tag=210a54
Subscription-State: active;expires=600000
Event: reg
CSeq: 14534 NOTIFY
Contact: <sip:10.133.202.47:5060>
Max-Forwards: 70
Content-Type: application/reginfo+xml
Content-Length: 340
<?xml version="1.0" encoding="UTF-8"?>
<reginfo xmlns="urn:ietf:params:xml:ns:reginfo" version="0" state="full">
<registration aor="sip:+11234567890@test.3gpp.com" id="12345" state="active">
<contact id="100" state="active" event="registered" expires="600000">
<uri>sip:+11234567890@10.133.202.46:50997</uri>
</contact>
</registration>
</reginfo>
Step 4 : 200 OK -----------------------------------
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.133.202.47:5060;branch=z9hG4bK-d1e4c4961ca9d523ae76b67e088589cd
Max-Forwards: 70
Contact: <sip:+11234567890@10.133.202.46:50997>;+sip.instance="<urn:gsma:imei:00440113-904785-0>"
To: <sip:+11234567890@test.3gpp.com>;tag=210a54
From: <sip:+11234567890@test.3gpp.com>;tag=987654321
Call-ID: d57a0b04-785ba328-13a4d876@10.133.202.46
CSeq: 14534 NOTIFY
Allow: NOTIFY,SUBSCRIBE
Content-Length: 0
原文來自:http://www.sharetechnote.com
整理:kangguoying20201023
“5G終端接入網(wǎng)絡(luò)第一把密鑰---RA-RNTI計(jì)算 ”已在微信公眾號"跟著老康學(xué)5G"中推出,敬請關(guān)注!