Opened 14 months ago
Closed 14 months ago
#410 closed баг (invalid)
странный ответ SDP
Reported by: | alx | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 2 очередь |
Component: | any | Keywords: | |
Cc: |
Description
Случайно ко мне попал дамп обмена SIP сообщениями при попытке вызова платы VE-02. Помимо прочих ошибок чужого оборудования, когда плата VE-02 отвечает "200 OK", в сообщении содержится ответ SDP, который выглядит как предложение - содержит все разрешенные PT, хотя должен был быть выбран один...
Вот их обмен:
12:11:52.941301 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 821) 192.168.0.233.5060 > 192.168.0.76.5060: SIP, length: 793 INVITE sip:1@192.168.0.76:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 To: <sip:1@192.168.0.76:5060> Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, UPDATE Contact: <sip:1@192.168.0.233:5060> Max-Forwards: 70 Supported: 100rel, timer User-Agent: DMR AIS R1.4[APP R3.42.087](Feb 24 2022) Ais-Reach: group Ais-Options: slot=1 Content-Type: Application/SDP Content-Length: 254 v=0 o=KirisunAIS 5 5 IN IP4 192.168.0.233 s=DMRAISCall c=IN IP4 192.168.0.233 t=0 0 m=audio 11018 RTP/AVP 100 0 8 101 a=rtpmap:100 DMR-AIS/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=floor 12:11:53.014902 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 678) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 650 SIP/2.0 180 Ringing Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Require: 100rel Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference RSeq: 100 P-Asserted-Identity: <sip:1@192.168.0.76> Content-Length: 0 12:11:53.518803 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 678) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 650 SIP/2.0 180 Ringing Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Require: 100rel Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference RSeq: 100 P-Asserted-Identity: <sip:1@192.168.0.76> Content-Length: 0 12:11:54.518727 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 678) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 650 SIP/2.0 180 Ringing Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Require: 100rel Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference RSeq: 100 P-Asserted-Identity: <sip:1@192.168.0.76> Content-Length: 0 12:11:56.518698 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 678) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 650 SIP/2.0 180 Ringing Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Require: 100rel Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference RSeq: 100 P-Asserted-Identity: <sip:1@192.168.0.76> Content-Length: 0 12:11:57.735086 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 1175) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 1147 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Content-Type: application/sdp Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference P-Asserted-Identity: <sip:1@192.168.0.76> X-Endpoint-Type: FS01 Content-Length: 474 v=0 o=gateway 0 3 IN IP4 192.168.0.76 s=conversation c=IN IP4 192.168.0.76 t=0 0 m=audio 10508 RTP/AVP 8 0 4 9 18 100 96 99 97 101 13 98 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:4 G723/8000 a=rtpmap:9 G722/8000 a=rtpmap:18 G729/8000 a=rtpmap:100 G726-40/8000 a=rtpmap:96 G726-32/8000 a=rtpmap:99 G726-24/8000 a=rtpmap:97 G726-16/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=rtpmap:13 CN/8000 a=rtpmap:98 PCMA/8000 a=gpmd:98 vbd=yes 12:11:57.738373 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 436) 192.168.0.233.5060 > 192.168.0.76.5060: SIP, length: 408 ACK sip:1@192.168.0.76:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026859139091345285060;rport From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 To: <sip:1@192.168.0.76:5060>;tag=285897759 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 ACK Contact: <sip:1@192.168.0.233:5060> Max-Forwards: 70 User-Agent: DMR AIS R1.4[APP R3.42.087](Feb 24 2022) Content-Length: 0 12:11:59.884934 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 1175) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 1147 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Content-Type: application/sdp Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference P-Asserted-Identity: <sip:1@192.168.0.76> X-Endpoint-Type: FS01 Content-Length: 474 v=0 o=gateway 0 3 IN IP4 192.168.0.76 s=conversation c=IN IP4 192.168.0.76 t=0 0 m=audio 10508 RTP/AVP 8 0 4 9 18 100 96 99 97 101 13 98 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:4 G723/8000 a=rtpmap:9 G722/8000 a=rtpmap:18 G729/8000 a=rtpmap:100 G726-40/8000 a=rtpmap:96 G726-32/8000 a=rtpmap:99 G726-24/8000 a=rtpmap:97 G726-16/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=rtpmap:13 CN/8000 a=rtpmap:98 PCMA/8000 a=gpmd:98 vbd=yes 12:12:01.883676 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 1175) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 1147 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Content-Type: application/sdp Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference P-Asserted-Identity: <sip:1@192.168.0.76> X-Endpoint-Type: FS01 Content-Length: 474 v=0 o=gateway 0 3 IN IP4 192.168.0.76 s=conversation c=IN IP4 192.168.0.76 t=0 0 m=audio 10508 RTP/AVP 8 0 4 9 18 100 96 99 97 101 13 98 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:4 G723/8000 a=rtpmap:9 G722/8000 a=rtpmap:18 G729/8000 a=rtpmap:100 G726-40/8000 a=rtpmap:96 G726-32/8000 a=rtpmap:99 G726-24/8000 a=rtpmap:97 G726-16/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=rtpmap:13 CN/8000 a=rtpmap:98 PCMA/8000 a=gpmd:98 vbd=yes 12:12:04.883405 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 1175) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 1147 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Content-Type: application/sdp Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference P-Asserted-Identity: <sip:1@192.168.0.76> X-Endpoint-Type: FS01 Content-Length: 474 v=0 o=gateway 0 3 IN IP4 192.168.0.76 s=conversation c=IN IP4 192.168.0.76 t=0 0 m=audio 10508 RTP/AVP 8 0 4 9 18 100 96 99 97 101 13 98 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:4 G723/8000 a=rtpmap:9 G722/8000 a=rtpmap:18 G729/8000 a=rtpmap:100 G726-40/8000 a=rtpmap:96 G726-32/8000 a=rtpmap:99 G726-24/8000 a=rtpmap:97 G726-16/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=rtpmap:13 CN/8000 a=rtpmap:98 PCMA/8000 a=gpmd:98 vbd=yes 12:12:09.883694 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 1175) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 1147 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000026419139091345285060;rport=5060 Record-Route: <sip:192.168.0.76:5060;transport=udp;lr> Contact: <sip:1@127.0.0.1:6060> To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Content-Type: application/sdp Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference P-Asserted-Identity: <sip:1@192.168.0.76> X-Endpoint-Type: FS01 Content-Length: 474 v=0 o=gateway 0 3 IN IP4 192.168.0.76 s=conversation c=IN IP4 192.168.0.76 t=0 0 m=audio 10508 RTP/AVP 8 0 4 9 18 100 96 99 97 101 13 98 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:4 G723/8000 a=rtpmap:9 G722/8000 a=rtpmap:18 G729/8000 a=rtpmap:100 G726-40/8000 a=rtpmap:96 G726-32/8000 a=rtpmap:99 G726-24/8000 a=rtpmap:97 G726-16/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=rtpmap:13 CN/8000 a=rtpmap:98 PCMA/8000 a=gpmd:98 vbd=yes 12:12:09.912533 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 434) 192.168.0.233.5060 > 192.168.0.76.5060: SIP, length: 406 BYE sip:192.168.0.76:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000028201239091345285060;rport From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 To: <sip:1@192.168.0.76:5060>;tag=285897759 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 4 BYE Contact: <sip:1@192.168.0.233:5060> Max-Forwards: 70 User-Agent: DMR AIS R1.4[APP R3.42.087](Feb 24 2022) Content-Length: 0 12:12:09.957063 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 359) 192.168.0.76.5060 > 192.168.0.233.5060: SIP, length: 331 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.233:5060;branch=z9hG4bK5000028201239091345285060;rport=5060 To: <sip:1@192.168.0.76:5060>;tag=285897759 From: <sip:1@192.168.0.233:5060>;tag=1E900A8C0C4135000000 Call-ID: 50000377793@192.168.0.233:5060 CSeq: 4 BYE Server: repro 1.12.0 User-Agent: eXosip/5.2.1 Content-Length: 0
Change History (9)
comment:1 by , 14 months ago
comment:2 by , 14 months ago
Вот что в логе платы VE-02:
Sep 15 06:53:45 comcerto daemon.info sip_ua[523]: repro.cpp:644: doSessionAccounting(): Session Created 'branch=z9hG4bK1000039121639091345285060' Sep 15 06:53:45 comcerto daemon.info dnsmasq[375]: reading /tmp/resolv.conf.auto Sep 15 06:53:45 comcerto daemon.info dnsmasq[375]: using local addresses only for domain lan Sep 15 06:53:45 comcerto daemon.info dnsmasq[375]: using nameserver 8.8.8.8#53 Sep 15 06:53:45 comcerto daemon.info dnsmasq[375]: using nameserver 192.168.0.13#53 Sep 15 06:53:45 comcerto daemon.info dnsmasq[375]: using nameserver 212.33.224.133#53 Sep 15 06:53:45 comcerto daemon.info sip_ua[478]: user_agent.cpp:2322: INVITE received: sip:1@127.0.0.1:6060;transport=udp (Call-ID: 10000373988@192.168.0.233:5060) Sep 15 06:53:45 comcerto daemon.info sip_ua[454]: fxs.cpp:441: ---> ts=254, state=Idle: Incoming call, ts=-1, flags=0001, data=14 Sep 15 06:53:45 comcerto daemon.warn sip_ua[454]: user_agent.cpp:4055: no remote SDP body found for call! Sep 15 06:53:45 comcerto daemon.warn sip_ua[454]: user_agent.cpp:4055: no remote SDP body found for call! Sep 15 06:53:45 comcerto daemon.info sip_ua[454]: fxs.cpp:1034: channel 254: ringing Sep 15 06:53:45 comcerto daemon.info sip_ua[454]: user_agent.cpp:4379: Call 14 routed to TS 254 Sep 15 06:53:47 comcerto daemon.info sip_ua[454]: fxs.cpp:441: ---> ts=254, state=Ringing: Caller ID sending complete, ts=254, flags=0000, data=0 Sep 15 06:53:50 comcerto daemon.info sip_ua[454]: fxs.cpp:441: ---> ts=254, state=Ringing: CAS event, ts=254, flags=0000, data=7 Sep 15 06:53:50 comcerto daemon.info sip_ua[454]: user_agent.cpp:1133: no remote SDP body found for call! Sending SDP offer. Sep 15 06:53:50 comcerto daemon.info sip_ua[454]: comcerto.cpp:6383: channel 254: answer Sep 15 06:53:50 comcerto daemon.info sip_ua[523]: repro.cpp:868: doSessionAccounting(): Session Established 'branch=z9hG4bK1000039121639091345285060' Sep 15 06:54:00 comcerto daemon.info sip_ua[454]: fxs.cpp:441: ---> ts=254, state=Connected: CAS event, ts=254, flags=0000, data=15 Sep 15 06:54:00 comcerto daemon.info sip_ua[454]: fxs.cpp:441: ---> ts=254, state=Idle: Call disconnected, ts=254, flags=0000, data=14 Sep 15 06:54:00 comcerto daemon.info sip_ua[523]: repro.cpp:778: doSessionAccounting(): Session Ended 'branch=z9hG4bK916142501' Sep 15 06:54:00 comcerto daemon.info sip_ua[523]: repro.cpp:796: --> duration=10, []sip:1@192.168.0.233:5060 ---> [FS01]sip:1@192.168.0.76:5060 Sep 15 06:54:00 comcerto daemon.info sip_ua[523]: repro.cpp:1057: --> CDR: {"answer":1694760830,"duration":10,"hangup":1694760840,"org-host":"192.168.0.233","org-port":"5060","org-scheme":"sip","org-user":"1","to-host":"192.168.0.76","to-port":"5060","to-scheme":"sip","to
Судя по сообщению no remote SDP body found for call! Sending SDP offer
, предложение SDP в запросе INVITE почему-то не было найдено...
comment:3 by , 14 months ago
Аналогичное сообщение no remote SDP body found for call!
было выведено при выполнении ua_checkSupportedCodec()
...
comment:4 by , 14 months ago
"Синтетический" эксперимент с платой VE-01 проблемы не воспроизвел:
192.168.0.75.5060 > 192.168.1.67.5060: SIP, length: 780 INVITE sip:111@192.168.1.67:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.75:5060;branch=z9hG4bK-159371-1-0;rport From: <sip:1@192.168.0.75:5060>;tag=1E900A8C0C4135000000 To: <sip:111@192.168.1.67:5060> Call-ID: 1-159371@192.168.0.75 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, UPDATE Contact: <sip:1@192.168.0.75:5060> Max-Forwards: 70 Supported: 100rel, timer User-Agent: DMR AIS R1.4(APP R3.42.087)(Feb 24 2022) Ais-Reach: group Ais-Options: slot=1 Content-Type: Application/SDP Content-Length: 261 v=0 o=FreeSWITCH 1466121506 1466121507 IN IP4 192.168.0.75 s=FreeSWITCH c=IN IP4 192.168.0.75 t=0 0 m=audio 27424 RTP/AVP 0 8 18 9 3 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=rtpmap:9 G722/8000 a=rtpmap:3 GSM/8000 a=ptime:20 ....... skipped ......... 192.168.1.67.5060 > 192.168.0.75.5060: SIP, length: 798 SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.0.75:5060;branch=z9hG4bK-159371-1-0;rport=5060 Record-Route: <sip:192.168.1.67:5060;transport=udp;lr> Contact: <sip:111@127.0.0.1:6060> To: <sip:111@192.168.1.67:5060>;tag=349501213 From: <sip:1@192.168.0.75:5060>;tag=1E900A8C0C4135000000 Call-ID: 1-159371@192.168.0.75 CSeq: 3 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK, SUBSCRIBE Content-Type: application/sdp Server: repro 1.12.0 Supported: replaces, timer, 100rel User-Agent: eXosip/5.2.1 Allow-Events: conference P-Asserted-Identity: "John West" <sip:111@192.168.1.67> X-Endpoint-Type: FXS Content-Length: 133 v=0 o=gateway 0 0 IN IP4 192.168.1.67 s=conversation c=IN IP4 192.168.1.67 t=0 0 m=audio 10254 RTP/AVP 0 a=rtpmap:0 PCMU/8000
Это странно, INVITE почти полностью аналогичен исходному...
comment:6 by , 14 months ago
Заметил, что в плате VE-02 192.168.0.76 прошивка ревизии 42. Прошил в свою плату VE-02 прошивку ревизии 42, но все равно не воспроизвелось...
comment:7 by , 14 months ago
Resolution: | → не воспроизводится |
---|---|
Status: | new → closed |
На этот раз отправил в точности то же сообщение, что было в исходном вызове, заменив только IP адреса. Проблема не воспроизвелась.
Думаю, я исчерпал все возможности воспроизвести проблему.
comment:8 by , 14 months ago
Resolution: | не воспроизводится |
---|---|
Status: | closed → reopened |
Переоткрываю в связи со вновь открывшимися обстоятельствами.
comment:9 by , 14 months ago
Resolution: | → invalid |
---|---|
Status: | reopened → closed |
Если в описании тикета внимательно посмотреть на сообщение SDP в исходном INVITE и сравнить его с сообщением SDP в ответе "200 OK" (временная отметка 12:11:57.735086), можно заметить, что после последней записи последнего (a=gpmd:98 vbd=yes) в приведенном дампе есть пустая строка, а после последней записи (a=floor) первоначального сообщения пустой строки нет. Это навело меня на интересную мысль. :) Я подсчитал, сколько байт должно занимать правильно сформированное сообщение SDP с текстом, приведенном в дампе. У меня получилось 256 байт. Однако в заголовке исходного сообщения INVITE написано: Content-Length: 254
! Это подтвердило возникшую ранее мысль.
Сообщение SDP в исходном INVITE не является валидным - у него "отрезан хвост" (два последних символа CRLF). Следствием этого является ошибка в процессе парсинга этого сообщения библиотекой libosip2, что в конечном итоге приводит к тому, что шлюз VE-02 ведет себя так, как будто никакого сообщения SDP в принятом INVITE нет.
Было подозрение на верхний регистр в строке
Content-Type: Application/SDP
, но в libeXosip2 при поиске SDP MIME тип и подтип сравниваются регистронезависимо, как этого и требует RFC...