分享

看LOG学5G(56)-VONR中的PRACK

 和老康一起学5G 2022-07-18 发布于陕西

一、IMS中SIP消息

在IMS系统中SIP提供两类响应消息(Response): 

  •       临时(Provisional)消息;

  •       最终(Final)消息。20220718kangguoying

                 图1.SIP消息中的FR和PR消息

    - 临时响应消息(Provisional Responses-PR)用于提供请求处理过程中的信息,PR的一个例子就是熟知的180 Ringing.20220718kangguoying

    - 最终响应消息(Final Responses-FR)用于传达请求(比如INVITE请求)处理的结果。FR发送过程是可靠的,也就是说FR发送出去后,要求收到确认结果(ACK),FR的一个例子是响应INVITE请求的200 OK消息。

二、PRACK消息20220718kangguoying

在SIP主体协议中对于一些临时响应来说其传输可靠性也很重要,比如180 Ringing对于决定呼叫状态(Call state)非常关键;特别是临时响应发出去后,需要收到确认结果(ACK);IETF专门针对这一点在RFC-3261外进行了扩展,设立了一个新协议RFC3262-Reliability of Provisional Responses。

PRACK(Provisional Response Acknowledgement)是对PR的ACK(确认收到)消息。用于PR的可靠传输,也就是发出的PR消息要求收到PRACK;否则PR消息将被重传。20220718kangguoying

这种发出响应消息(Response)要求ACK机制叫做可靠性机制(Reliability Mechanism);在RFC-3261中只要求对FR进行可靠传输,要求发送出去后接收ACK,而对PR不要求可靠传输。20220718kangguoying

                  图2.呼叫流程中的PRACK

三、VONR中PRACK消息解析

5G的VONR通话过程中终端(UE)在收到网络侧的会话接续中(183 Session Progress)之后,回复PRACK消息;而网络侧收到终端的消息后回复“PRACK:200 ok"。消息解析如下:20220718kangguoying

3.1 PRACK

PRACK sip:***86@[****:****:****:**::7:1]:5062;transport=udp;zte-did=10-8-20**1-14**2-12-605-0;Hpt=8ed8_16;CxtId=3;TRC=ffffffff-ffffffff SIP/2.0(消息名称:主体,传输(UDP)

From: <sip:***14*******05@nm.ims.mnc000.mcc***.3gppnetwork.org>;tag=coecbah

           (消息发送体20220718kangguoying

To: "10**6"<tel:10**6;phone-context=ims.mnc007.mcc***.3gppnetwork.org>;tag=ztesipzPav5fJe*10-8-20**1*ebbj.10

           (消息接收对象20220718kangguoying

Route: <sip:***G_28_0_***********34@[****:****:****:**::7:1]:5062;lr>(proxy路由列表

Call-ID: *******mE@*****:****:***:****:16fb:c069:87e7:393b](通话ID)

CSeq: 2 PRACK(消息顺序20220718kangguoying

Max-Forwards: 70(最大跳转次数:70)

Supported: 100rel,histinfo,join,norefersub,precondition,replaces,timer(支持消息明细

P-Access-Network-Info: 3GPP-NR-TDD;utran-cell-id-3gpp=************61*****5(接入网络信息)

Via: SIP/2.0/UDP20220718kangguoying *****:****:***:****:16fb:c069:87e7:393b]:31**8;branch=z9hG4bKqqecbahmEWbw78faaWfw;rport         (消息历史路径)

RAck: 19*******7 1 INVITE(PR消息:INVITE)

User-Agent: IM-client/OMA1.0 HW-Rto/V1.0(用户代理

Content-Length: 0(报文长度20220718kangguoying

3.2 SIP/2.0 200 OK

SIP/2.0 200 OK20220718kangguoying

Via: SIP/2.0/UDP *****:****:***:****:16fb:c069:87e7:393b]:31**8;rport=31**3;branch=z9hG4bKqqecbahmEWbw78faaWfw (消息历史路径)20220718kangguoying

To: "10**6"<tel:10**6;phone-context=ims.mnc007.mcc***.3gppnetwork.org>;tag=ztesipzPav5fJe*10-8-20**1*ebbj.10(消息对象

From: <sip:***14*******05@nm.ims.mnc000.mcc***.3gppnetwork.org>;tag=coecbah消息发送

Call-ID: *******mE@*****:****:***:****:16fb:c069:87e7:393b]通话ID)

CSeq: 2 PRACK(消息顺序20220718kangguoying

Supported: replaces,precondition,100rel支持消息明细

User-Agent: fusionsbc(用户代理20220718kangguoying

Allow: REGISTER,INVITE,ACK,CANCEL,BYE,OPTIONS,UPDATE,PRACK,REFER,INFO,NOTIFY,MESSAGE(允许消息明细)20220718kangguoying

Content-Length: 0

3.3.UPDATE

UPDATE sip:***86@[****:****:****:**::7:1]:5062;transport=udp;zte-did=10-8-20**1-14**2-12-605-0;Hpt=8ed8_16;CxtId=3;TRC=ffffffff-ffffffff SIP/2.0(更新消息20220718kangguoying

From: <sip:***14*******05@nm.ims.mnc000.mcc***.3gppnetwork.org>;tag=coecbah(消息发出

To: "10**6"<tel:10**6;phone-context=ims.mnc007.mcc***.3gppnetwork.org>;tag=ztesipzPav5fJe*10-8-20**1*ebbj.10(消息对象)

Contact: <sip:***14*******05@*****:****:***:****:16fb:c069:87e7:393b]:31**8>;+sip.instance="<urn:gsma:imei:86*****5-94***8-0>";+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";audio;video;+g.3gpp.mid-call;+g.3gpp.srvcc-alerting;+g.3gpp.ps2cs-srvcc-orig-pre-alerting20220718kangguoying

P-Access-Network-Info: 3GPP-NR-TDD;utran-cell-id-3gpp=************61*****5

Supported: 100rel,histinfo,join,norefersub,precondition,replaces,timer,sec-agree

Require: precondition,sec-agree(接入网络消息20220718kangguoying

Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,PRACK,NOTIFY,INFO,UPDATE,MESSAGE,REFER

Proxy-Require: sec-agree(代理要求)20220718kangguoying

Security-Verify: ipsec-3gpp;alg=hmac-sha-1-96;prot=esp;mod=trans;ealg=null;spi-c=28*******3;spi-s=28*******4;port-c=5063;port-s=5062(加密算法

Route: <sip:***G_28_0_***********34@[****:****:****:**::7:1]:5062;lr>

Call-ID: *******mE@*****:****:***:****:16fb:c069:87e7:393b](通话ID)

CSeq: 3 UPDATE(序列号=3 更新

Max-Forwards: 70(最大跳数20220718kangguoying

Via: SIP/2.0/UDP *****:****:***:****:16fb:c069:87e7:393b]:31**8;branch=z9hG4bKrrecbahmEWbw78faaa2w;rport

User-Agent: IM-client/OMA1.0 HW-Rto/V1.0(用户代理

Content-Type: application/sdp(报文类型:应用/SDP)

Content-Length: 528

v=0语音支持信息

o=rue 3200 3201 IN IP6*****:****:***:****:16fb:c069:87e7:393b(IP V6路径)

s=-

c=IN IP6*****:****:***:****:16fb:c069:87e7:393b

b=AS:49

b=RR:1837

b=RS:612

t=0 0

m=audio 31**0 RTP/AVP 107 101(语音支持RTP类型

b=AS:49

b=RR:1837

b=RS:612

a=rtpmap:107 AMR-WB/16**0/1

a=fmtp:107 mode-set=8;mode-change-capability=2;max-red=0

a=rtpmap:101 telephone-event/16**0

a=fmtp:101 0-15

a=ptime:20

a=maxptime:240

a=sendrecv

a=curr:qos local sendrecv

a=curr:qos remote sendrecv

a=des:qos mandatory local sendrecv

a=des:qos mandatory remote sendrecv

4.UPDATE 200 OK

SIP/2.0 200 OK

Via: SIP/2.0/UDP *****:****:***:****:16fb:c069:87e7:393b]:31**8;rport=31**3;branch=z9hG4bKrrecbahmEWbw78faaa2w

To: "10**6"<tel:10**6;phone-context=ims.mnc007.mcc***.3gppnetwork.org>;tag=ztesipzPav5fJe*10-8-20**1*ebbj.10

From: <sip:***14*******05@nm.ims.mnc000.mcc***.3gppnetwork.org>;tag=coecbah

Call-ID: *******mE@*****:****:***:****:16fb:c069:87e7:393b]

CSeq: 3 UPDATE

Contact: <sip:***86@[****:****:****:**::7:1]:5062;transport=UDP;zte-did=10-8-20**1-14**2-12-605-0;Hpt=8ed8_16;CxtId=3;TRC=ffffffff-ffffffff>;audio;video;+g.3gpp.mid-call;+g.3gpp.srvcc-alerting;+g.3gpp.ps2cs-srvcc-orig-pre-alerting;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel"

Supported: replaces,precondition,100rel

User-Agent: fusionsbc

Accept: application/sdp

Allow: REGISTER,INVITE,ACK,CANCEL,BYE,OPTIONS,UPDATE,PRACK,REFER,INFO,NOTIFY,MESSAGE

Content-Type: application/sdp

Content-Disposition: session

Content-Length: 452

v=0(语音支持信息

o=- 16*******0 18*******8 IN IP6 ****:****:****:**::7:3

s=SBC call

c=IN IP6 ****:****:****:**::7:3

t=0 0

m=audio 29**4 RTP/AVP 107 101

a=rtpmap:107 AMR-WB/16**0

a=fmtp:107 mode-set=8;octet-align=0

a=rtpmap:101 telephone-event/16**0

a=fmtp:101 0-15

a=ptime:20

a=curr:qos local sendrecv

a=curr:qos remote sendrecv

a=des:qos mandatory local sendrecv

a=des:qos mandatory remote sendrecv

a=conf:qos remote sendrecv

a=content:g.3gpp.cat

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多