#324 closed баг (invalid)
Неуспешный вызов от зарегистрированного FXO
| Reported by: | alx | Owned by: | alx |
|---|---|---|---|
| Priority: | средний | Milestone: | 1 очередь |
| Component: | any | Keywords: | |
| Cc: |
Description
Исходные данные:
В блоке MC04-DSL-VIP есть порт FXO.
Канальное окончание FO01 нигде не регистрируется (имеет домен своей платы).
В поле "Вызывать URI" прописан URI абонента другой платы (окончания FXS VE-01, также нигде не регистрирующегося).
Эксперимент 1:
В порт FXO блока VIP поступает вызов.
Вызов отправляется в плату VE-01, вызываемый телефон звенит, после снятия трубки состоялся разговор.
Эксперимент 2:
Те же условия, но канальное окончание FO01 зарегистрировано на плате VE-01, абонента которой оно и вызывает.
В порт FXO блока VIP поступает вызов.
После заданного числа звонков окончание FO01 переходит в состояние DropLine, затем в Idle. Телефон вызываемого не звенит.
Предполагается, что на отправленный INVITE окончание FO01 получает неуспешный ответ.
Change History (6)
comment:1 by , 6 years ago
comment:2 by , 6 years ago
Судя по логу, сообщение INVITE не доходит до шлюза. Следовательно, ответ "403 Forbidden" дает прокси.
Провел эксперимент: в настройках окончания FO01 изменил значение параметра "Число звонков" на 1. В результате вызовы начали проходить успешно.
Еще один эксперимент: вернул параметр "Число звонков" в значение 2 и настроил замену Caller-ID на свой username (12). Вызовы также проходят успешно.
Вывод: прокси "не нравится", что в поле From указано username, отличное от имени пользователя в поле Proxy-Authorization.
comment:3 by , 6 years ago
Все подтвердилось: в проверяющем аутентификацию коде есть проверка на то, что аутентификация выполнена именно для того пользователя, который указан в поле From. В исходном эксперименте эта проверка неуспешна, так как окончание FO01 поместило в поле From номер Caller-ID вызывающего абонента. В результате прокси вывел в лог (после соответствующего разрешения в repro.config) такую строчку:
Sep 16 06:01:52 comcerto daemon.info repro[560]: REPRO:APP | 31757 | monkeys/DigestAuthenticator.cxx:281 | User: 12 at realm: 192.168.1.67 trying to forge request from: sip:121@192.168.1.67
и отбил вызов ответом 403.
comment:4 by , 6 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
comment:6 by , 6 years ago
Насколько я понял из сообщений в интернет-форумах, аналогично repro ведет себя и asterisk. Так что не знаю, насколько такое поведение требуется стандартами (RFC), но оно достаточно распространено.
Думаю, стоит ускорить реализацию #11.

Вот дамп неуспешного вызова. От VE-01 приходит "403 Forbidden".
13:17:12.420049 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto UDP (17), length 1263) 192.168.0.108.5060 > 192.168.1.67.5060: SIP, length: 1235 INVITE sip:113@192.168.1.67 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.108:5060;branch=z9hG4bK-524287-1---1399e85a109f027f;rport Via: SIP/2.0/UDP 192.168.0.108:6060;rport=6060;branch=z9hG4bK1144030185;received=127.0.0.1 Max-Forwards: 69 Record-Route: <sip:192.168.0.108:5060;transport=udp;lr> Contact: <sip:123@127.0.0.1:6060> To: <sip:113@192.168.1.67> From: "Alex Mogilnikov"<sip:123@192.168.1.67>;tag=2052294653 Call-ID: 1090563826 CSeq: 20 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK Content-Type: application/sdp Supported: replaces, timer, 100rel User-Agent: eXosip/4.1.0 X-Endpoint-Type: FO01 Content-Length: 565 v=0 o=gateway 0 4 IN IP4 192.168.0.108 s=conversation c=IN IP4 192.168.0.108 t=0 0 m=audio 10510 RTP/AVP 8 0 4 9 18 100 96 99 97 101 13 98 a=altc:1 IP6 2a01:540:2f0a:ac00:ad:c5ff:fe00:5f 10510 a=altc:2 IP4 192.168.0.108 10510 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 13:17:12.433111 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 573) 192.168.1.67.5060 > 192.168.0.108.5060: SIP, length: 545 SIP/2.0 407 Proxy Authentication Required Via: SIP/2.0/UDP 192.168.0.108:5060;branch=z9hG4bK-524287-1---1399e85a109f027f;rport=5060 Via: SIP/2.0/UDP 192.168.0.108:6060;rport=6060;branch=z9hG4bK1144030185;received=127.0.0.1 Proxy-Authenticate: Digest nonce="1568380632:75c51792c3ba6a7899acef608c23d490",algorithm=MD5,realm="192.168.1.67",qop="auth,auth-int" To: <sip:113@192.168.1.67>;tag=17d9921a From: "Alex Mogilnikov"<sip:123@192.168.1.67>;tag=2052294653 Call-ID: 1090563826 CSeq: 20 INVITE Server: repro 1.10.2 Content-Length: 0 13:17:12.459033 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto UDP (17), length 325) 192.168.0.108.5060 > 192.168.1.67.5060: SIP, length: 297 ACK sip:113@192.168.1.67 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.108:5060;branch=z9hG4bK-524287-1---1399e85a109f027f;rport Max-Forwards: 70 To: <sip:113@192.168.1.67>;tag=17d9921a From: "Alex Mogilnikov"<sip:123@192.168.1.67>;tag=2052294653 Call-ID: 1090563826 CSeq: 20 ACK Content-Length: 0 13:17:12.500051 IP (tos 0x0, ttl 63, id 22510, offset 0, flags [+], proto UDP (17), length 1500) 192.168.0.108.5060 > 192.168.1.67.5060: SIP, length: 1472 INVITE sip:113@192.168.1.67 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.108:5060;branch=z9hG4bK-524287-1---1e8f9176cc8a7c75;rport Via: SIP/2.0/UDP 192.168.0.108:6060;rport=6060;branch=z9hG4bK1589189211;received=127.0.0.1 Max-Forwards: 69 Record-Route: <sip:192.168.0.108:5060;transport=udp;lr> Contact: <sip:123@127.0.0.1:6060> To: <sip:113@192.168.1.67> From: "Alex Mogilnikov"<sip:123@192.168.1.67>;tag=2052294653 Call-ID: 1090563826 CSeq: 21 INVITE Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, NOTIFY, INFO, UPDATE, PRACK Content-Type: application/sdp Proxy-Authorization: Digest username="12",realm="192.168.1.67",nonce="1568380632:75c51792c3ba6a7899acef608c23d490",uri="sip:113@192.168.1.67",response="fdda8a18e3cdb1c7b2bf89d929473576",algorithm=MD5,cnonce="0a4f113b",qop=auth,nc=00000001 Supported: replaces, timer, 100rel User-Agent: eXosip/4.1.0 X-Endpoint-Type: FO01 Content-Length: 565 v=0 o=gateway 0 4 IN IP4 192.168.0.108 s=conversation c=IN IP4 192.168.0.108 t=0 0 m=audio 10510 RTP/AVP 8 0 4 9 18 100 96 99 97 101 13 98 a=altc:1 IP6 2a01:540:2f0a:ac00:ad:c5ff:fe00:5f 10510 a=altc:2 IP4 192.168.0.108 10510 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=ye 13:17:12.515726 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 418) 192.168.1.67.5060 > 192.168.0.108.5060: SIP, length: 390 SIP/2.0 403 Forbidden Via: SIP/2.0/UDP 192.168.0.108:5060;branch=z9hG4bK-524287-1---1e8f9176cc8a7c75;rport=5060 Via: SIP/2.0/UDP 192.168.0.108:6060;rport=6060;branch=z9hG4bK1589189211;received=127.0.0.1 To: <sip:113@192.168.1.67>;tag=1a3d6030 From: "Alex Mogilnikov"<sip:123@192.168.1.67>;tag=2052294653 Call-ID: 1090563826 CSeq: 21 INVITE Server: repro 1.10.2 Content-Length: 0 13:17:12.549041 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto UDP (17), length 325) 192.168.0.108.5060 > 192.168.1.67.5060: SIP, length: 297 ACK sip:113@192.168.1.67 SIP/2.0 Via: SIP/2.0/UDP 192.168.0.108:5060;branch=z9hG4bK-524287-1---1e8f9176cc8a7c75;rport Max-Forwards: 70 To: <sip:113@192.168.1.67>;tag=1a3d6030 From: "Alex Mogilnikov"<sip:123@192.168.1.67>;tag=2052294653 Call-ID: 1090563826 CSeq: 21 ACK Content-Length: 0