一、IMS中SIP消息 在IMS系统中SIP提供两类响应消息(Response):
图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 |
|