Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#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 alx, 5 years ago

Вот дамп неуспешного вызова. От 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
	

comment:2 by alx, 5 years ago

Судя по логу, сообщение INVITE не доходит до шлюза. Следовательно, ответ "403 Forbidden" дает прокси.

Провел эксперимент: в настройках окончания FO01 изменил значение параметра "Число звонков" на 1. В результате вызовы начали проходить успешно.

Еще один эксперимент: вернул параметр "Число звонков" в значение 2 и настроил замену Caller-ID на свой username (12). Вызовы также проходят успешно.

Вывод: прокси "не нравится", что в поле From указано username, отличное от имени пользователя в поле Proxy-Authorization.

comment:3 by alx, 5 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 alx, 5 years ago

Resolution: invalid
Status: newclosed

comment:5 by san, 5 years ago

Хм., интересная история, буду знать.

comment:6 by alx, 5 years ago

Насколько я понял из сообщений в интернет-форумах, аналогично repro ведет себя и asterisk. Так что не знаю, насколько такое поведение требуется стандартами (RFC), но оно достаточно распространено.

Думаю, стоит ускорить реализацию #11.

Note: See TracTickets for help on using tickets.