最近在做我们标准SIP的SRTP功能,开启华为SIP硬终端的加密功能,使用华为SIP硬终端呼叫我们的SIP平台,发现华为终端web上提示你拨打的号码或用户不存在,实际该号码是存在,报个这个错误感觉挺纳闷,通过分析抓包,回复给华为终端INVITE 200OK的报文没什么问题,具体交互的部分报文如下:
INVITE sip:63691016566@10.35.11.124 SIP/2.0
Record-Route: <sip:10.35.11.124;r2=on;lr>
Record-Route: <sip:10.35.11.124:5061;transport=tls;r2=on;lr>
Via: SIP/2.0/UDP 10.35.11.124;branch=z9hG4bKd693.1dd9a4bd86b1c720e12f2795d92f15a5.0;i=2
Via: SIP/2.0/TLS 10.35.32.23:5161;branch=z9hG4bKqhegfl5lggj4ga0fpcdcaaaaa
Call-ID: jcqqgfcp4eedlhhdggd4b0jgbeej0jjq@10.35.32.23
From: "site"<sip:4786703818@10.35.11.124;transport=tls>;tag=55bcjgqj;epid=5252525252523f
To: <sip:63691016566@10.35.11.124;transport=tls>
CSeq: 1 INVITE
Contact: "site"<sip:4786703818@10.35.32.23:5161;transport=tls>
Authorization: Digest username="4786703818@10.35.11.124",realm="10.35.11.124",nonce="X4WSxV+FkZngjXlgr6KebYSIwkl3d+nm",uri="sip:10.35.11.124",response="93e7624ca321c8f0e48139c27a94c1f3",algorithm=MD5,cnonce="ec23f8202c58ce2456ce722730cc6ea3",qop=auth,nc=0000007e
Max-Forwards: 69
User-Agent: HUAWEI TEx0
Allow: INVITE,ACK,BYE,CANCEL,UPDATE,OPTIONS,INFO,NOTIFY,PRACK,REFER
Content-Length: 2738
Content-Type: application/sdp
SrcAddr: 10.35.32.23-5161
v=0
o=huawei 1 0 IN IP4 10.35.32.23
s=-
c=IN IP4 10.35.32.23
b=CT:1920
t=0 0
m=audio 10002 RTP/AVP 8 9 0 97
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:NjJmVkFkRzlGRUJYVzFUYU1JeHdUY0Z1TUdNeXdP|2^31
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:VmRNb243Vk9tOU5INVVvbUZrM0Q1dElWUEt2dEJx|2^31
a=crypto-param:UNAUTHENTICATED_SRTP
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:97 telephone-event/8000
a=fmtp:97 0-15
a=sendrecv
m=video 10004 RTP/AVP 107 108 34 105
b=AS:1920
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:bWFOOEJNeGd1bU5FMEF5QWVYaVJMTDNITTlVYUdN|2^31
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:dFBlcW5Db012TjVzVmRQS2t5dnppYUg2T1hrbkFo|2^31
a=crypto-param:UNAUTHENTICATED_SRTP
a=rtpmap:107 H264/90000
a=fmtp:107 profile-level-id=42001F;max-br=1920;max-mbps=115000;max-fs=3840
a=rtpmap:108 H264/90000
a=fmtp:108 profile-level-id=42001F;max-br=1920;max-mbps=115000;max-fs=3840;packetization-mode=1
a=rtpmap:34 H263/90000
a=fmtp:34 CIF4=1 CIF=1 XMAX=704 YMAX=480 MPI=1 XMAX=352 YMAX=240 MPI=1 XMAX=640 YMAX=480 MPI=6 XMAX=800 YMAX=600 MPI=6 XMAX=1024 YMAX=768 MPI=6
a=rtpmap:105 H264/90000
a=fmtp:105 profile-level-id=64001F;max-br=1920;max-mbps=115000;max-fs=3840;packetization-mode=1
a=rtcp-fb:* ccm fir
a=rtcp-fb:* ccm tmmbr
a=sendrecv
a=content:main
a=label:11
m=application 5071 UDP/BFCP *
a=confid:2
a=userid:12256
a=floorid:2 mstrm:12
a=floorctrl:c-s
a=setup:actpass
a=connection:new
m=application 7700 RTP/AVP 100
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:MklXeWQ3R1lnTlNVSUYyVWdxUkNpczhxMmhLelNJ|2^31
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:SGFQZ2FQYnpsWEU0dXBRcmtuc1lBaUJweVhTZ2hX|2^31
a=crypto-param:UNAUTHENTICATED_SRTP
a=rtpmap:100 H224/4800
a=sendrecv
m=video 10006 RTP/AVP 107 108 96 34 105
b=AS:512
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:eXd3UHhreVp3Ukt1b2FLdXJ0OHJOQWFlMnNwTnBC|2^31
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:dFkxM1hkNDFoMkF2emVsTlBvdmM5VkRha1VVZ0FF|2^31
a=crypto-param:UNAUTHENTICATED_SRTP
a=rtpmap:107 H264/90000
a=fmtp:107 profile-level-id=42001F;max-br=512;max-mbps=115000;max-fs=3840
a=rtpmap:108 H264/90000
a=fmtp:108 profile-level-id=42001F;max-br=512;max-mbps=115000;max-fs=3840;packetization-mode=1
a=rtpmap:96 H263-1998/90000
a=fmtp:96 CIF4=1;CIF=1;CUSTOM=704,480,1;CUSTOM=352,240,1;CUSTOM=640,480,6;CUSTOM=800,600,6;CUSTOM=1024,768,6
a=rtpmap:34 H263/90000
a=fmtp:34 CIF4=1 CIF=1 XMAX=704 YMAX=480 MPI=1 XMAX=352 YMAX=240 MPI=1 XMAX=640 YMAX=480 MPI=6 XMAX=800 YMAX=600 MPI=6 XMAX=1024 YMAX=768 MPI=6
a=rtpmap:105 H264/90000
a=fmtp:105 profile-level-id=64001F;max-br=512;max-mbps=115000;max-fs=3840;packetization-mode=1
a=rtcp-fb:* ccm fir
a=rtcp-fb:* ccm tmmbr
a=sendrecv
a=content:slides
a=label:12
我们回复的200 OK报文:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.35.11.124;branch=z9hG4bK96b8.c66de0d7a8067e65e06fd65e7feb21d4.0;i=4
Via: SIP/2.0/TLS 10.35.32.23:5161;branch=z9hG4bKccp0qdalegbqdp4b2jcp4epbj
Record-Route: <sip:10.35.11.124;r2=on;lr>
Record-Route: <sip:10.35.11.124:5061;transport=tls;r2=on;lr>
From: "site" <sip:4786703818@10.35.11.124;transport=tls>;tag=ejha4lfp;epid=5252525252523f
To: "MCU" <sip:63691016566@10.35.11.124;transport=tls>;tag=94103459
Call-ID: g5c24hb4l005f4gdjp0gbah0gg5ljheb@10.35.32.23
CSeq: 1 INVITE
Contact: <sip:63691016566@10.35.11.189:5060>;video;audio
User-Agent: DHActec
Supported: timer,path,replaces
Content-Type: application/sdp
Content-Length: 1389
v=0
o=DHActec0 1 IN IP4 10.35.11.189
s=-
c=IN IP4 10.35.11.189
b=AS:1920
t=0 0
m=audio 37626 RTP/AVP 8 101
c=IN IP4 10.35.11.189
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:ZTA4MGQyNWNhODExZWIxMTk5ZTcwMDFlNjdmOTJh|2^31
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
m=video 37622 RTP/AVP 110 112
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:ZTQ5MGQyNWNhODExZWIxMTk5ZTcwMDFlNjdmOTJh|2^31
c=IN IP4 10.35.11.189
b=TIAS:1920000
a=rtpmap:110 H264/90000
a=fmtp:110 profile-level-id=42001f;max-mbps=108000;max-fs=3600
a=rtpmap:112 H264/90000
a=fmtp:112 profile-level-id=42001f;max-mbps=108000;max-fs=3600;packetization-mode=1
a=content:main
a=label:2
a=rtcp-fb:* nack
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=sendrecv
m=video 37638 RTP/AVP 115 117
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:YjA5MmQyNWNhODExZWIxMTk5ZTcwMDFlNjdmOTJh|2^31
c=IN IP4 10.35.11.189
b=TIAS:512000
a=rtpmap:115 H264/90000
a=fmtp:115 profile-level-id=42001f;max-mbps=108000;max-fs=3600
a=rtpmap:117 H264/90000
a=fmtp:117 profile-level-id=42001f;max-mbps=108000;max-fs=3600;packetization-mode=1
a=content:slides
a=label:3
a=rtcp-fb:* nack
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=sendrecv
m=application 23101 UDP/BFCP *
c=IN IP4 10.35.11.189
a=setup:passive
a=confid:3
a=userid:10
a=floorid:3 m-stream:3
a=floorctrl:s-only
a=connection:new
后来调整了SDP中部分字段的顺序,华为终端m行部分的报文,必须是c字段和b字段在前面,a字段在后面,否则华为解析不了,导致呼叫失败,字段调整后,问题呼叫成功,我们回复的INVITE 的200 OK中的SDP报文如下:
v=0
o=DHActec0 1 IN IP4 10.35.11.189
s=-
c=IN IP4 10.35.11.189
b=AS:1920
t=0 0
m=audio 38992 RTP/AVP 8 101
c=IN IP4 10.35.11.189
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:MDJkZTY3MWVhYTExZWIxMTg5NmQwMDFlNjdmOTJh|2^31
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
m=video 39002 RTP/AVP 110 112
c=IN IP4 10.35.11.189
b=TIAS:1920000
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:MzJlZjY3MWVhYTExZWIxMTg5NmQwMDFlNjdmOTJh|2^31
a=rtpmap:110 H264/90000
a=fmtp:110 profile-level-id=42001f;max-mbps=108000;max-fs=3600
a=rtpmap:112 H264/90000
a=fmtp:112 profile-level-id=42001f;max-mbps=108000;max-fs=3600;packetization-mode=1
a=content:main
a=label:2
a=rtcp-fb:* nack
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=sendrecv
m=video 39000 RTP/AVP 115 117
c=IN IP4 10.35.11.189
b=TIAS:512000
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:ZmVmMDY3MWVhYTExZWIxMTg5NmQwMDFlNjdmOTJh|2^31
a=rtpmap:115 H264/90000
a=fmtp:115 profile-level-id=42001f;max-mbps=108000;max-fs=3600
a=rtpmap:117 H264/90000
a=fmtp:117 profile-level-id=42001f;max-mbps=108000;max-fs=3600;packetization-mode=1
a=content:slides
a=label:3
a=rtcp-fb:* nack
a=rtcp-fb:* nack pli
a=rtcp-fb:* ccm fir
a=sendrecv
m=application 23101 UDP/BFCP *
c=IN IP4 10.35.11.189
a=setup:passive
a=confid:3
a=userid:10
a=floorid:3 m-stream:3
a=floorctrl:s-only
a=connection:new
如果觉得《与华为SIP硬终端(TE40)对接注意事项》对你有帮助,请点赞、收藏,并留下你的观点哦!