Opened 42 hours ago

Closed 34 hours ago

#459 closed баг (готово)

PRI: OSIP_SYNTAXERROR

Reported by: mixyil1.1 Owned by: alx
Priority: средний Milestone: 2 очередь
Component: VE-01 Keywords:
Cc:

Description (last modified by mixyil1.1)

Версия SW 2417
Версия VE-01 88
Направление вызова PRI -> SIP

Со стороны АТС на плату VE-01 передается имя вызывающего абонента Display. Если это имя оканчивается на символ ")", например "Shapel)", то вызов в сторону SIP не происходит. Ошибка на этапе формирования сообщения INVITE. лог вызова

May 22 09:35:59 sip_ua[391]: user_agent.cpp:3892: --> ua_dial_out() Shapel) <sip:42188@10.8.0.34> -> <sip:666@10.8.0.34>...
May 22 09:35:59 sip_ua[391]: user_agent.cpp:3915: eXosip_call_build_initial_invite(): error -5
May 22 09:35:59 sip_ua[391]: pri.cpp:279: ua_dial_out() error

Attachments (5)

unsuccess_from.log (7.0 KB ) - added by mixyil1.1 42 hours ago.
success_from.log (7.1 KB ) - added by mixyil1.1 42 hours ago.
config-Брикета-22-05-2025.xml (49.6 KB ) - added by mixyil1.1 41 hours ago.
test1.log (6.6 KB ) - added by mixyil1.1 41 hours ago.
pri_test.xml (1.3 KB ) - added by mixyil1.1 41 hours ago.

Download all attachments as: .zip

Change History (10)

by mixyil1.1, 42 hours ago

Attachment: unsuccess_from.log added

by mixyil1.1, 42 hours ago

Attachment: success_from.log added

comment:1 by mixyil1.1, 42 hours ago

Description: modified (diff)

by mixyil1.1, 41 hours ago

comment:2 by mixyil1.1, 41 hours ago

Версия SW 2410 192.168.15.11
Версия VE-01 91 192.168.15.12
Конфигурация config
Направление вызова SIPP -> PRI -> PRI -> SIP

Проблема воспроизводится на тестовом блоке. На плате VE-01 создаем 2 окончания типа PRI и коммутируем их между собой в матрице TDM. С помощью утилиты sipp подаем тестовый SIP трафик на плату VE-01. Файл сценария.

sipp 192.168.15.12 -sf pri_test.xml -r 1 -s 44555 -l 1 -m 1

Если в сценарии в поле From к имени DisplayName добавить символ ")", то вызов не проходит лог1

INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port]
From: "Shapel)" <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>
Call-ID: [call_id]
May 22 22:20:41 sip_ua[391]: user_agent.cpp:3892: --> ua_dial_out() Shapel) <sip:sipp@192.168.15.8> -> <sip:44555@192.168.15.8>...
May 22 22:20:41 sip_ua[391]: user_agent.cpp:3915: eXosip_call_build_initial_invite(): error -5
May 22 22:20:41 sip_ua[391]: pri.cpp:279: ua_dial_out() error
Last edited 40 hours ago by mixyil1.1 (previous) (diff)

by mixyil1.1, 41 hours ago

Attachment: test1.log added

by mixyil1.1, 41 hours ago

Attachment: pri_test.xml added

comment:3 by mixyil1.1, 41 hours ago

Мне кажеться, что ошибка возникает в коде библеотеки osip2 файл osipparser2/osip_from.c функция osip_from_parse при парсинге From.

Если Displayname не заключен в кавычки, то при поиске имени проверяются символы a-zA-Z0-9 и [-.!%*_+`'~]

osip_from.c

 /* 1*(alphanum / "-" / "." / "!" / "%" / "*" / "_" / "+" / "`" / "'" / "~" ) */

На символе ')' прекращается поиск Displayname.

Для проверки на тестовом блоке пробовали к DisplayName From добавлять разные символы не из набора [-.!%*_+`'~], например '&' '(' '?' - получали ту же ошибку.

May 22 22:39:14 sip_ua[391]: user_agent.cpp:3892: --> ua_dial_out() Shapel? <sip:sipp@192.168.15.8> -> <sip:44555@192.168.15.8>...
May 22 22:39:14 sip_ua[391]: user_agent.cpp:3915: eXosip_call_build_initial_invite(): error -5
May 22 22:39:14 sip_ua[391]: pri.cpp:279: ua_dial_out() error

Возможно, для исправления ошибки, будет достаточно заключать строку Displayname From в кавычки "" перед вызовом функции ua_dial_out().

Last edited 40 hours ago by mixyil1.1 (previous) (diff)

comment:4 by mixyil1.1, 40 hours ago

Проверка с Freeswitch показала, что он тоже считает Displayname Sahpel) не валидным значением.

INVITE sip:44555@192.168.15.8:5060 SIP/2.0
Via: SIP/2.0/UDP 10.8.0.3:5060
From: Shapel) <sip:sipp@10.8.0.3:5060>;tag=1
To: sut <sip:44555@192.168.15.8:5060>
Call-ID: 1-5096@10.8.0.3
Cseq: 1 INVITE
Contact: sip:sipp@10.8.0.3:5060
Content-Type: application/sdp
Content-Length:   127


SIP/2.0 400 Bad From Header
Via: SIP/2.0/UDP 10.8.0.3:5060
To: sut <sip:44555@192.168.15.8:5060>;tag=yDcKF00FvNZSc
Call-ID: 1-5096@10.8.0.3
CSeq: 1 INVITE
Content-Length: 0

В тоже время как Displayname "Shapel)" воспринимается нормально

INVITE sip:44555@192.168.15.8:5060 SIP/2.0
Via: SIP/2.0/UDP 10.8.0.3:5060
From: "Shapel)" <sip:sipp@10.8.0.3:5060>;tag=1
To: sut <sip:44555@192.168.15.8:5060>
Call-ID: 1-5093@10.8.0.3
Cseq: 1 INVITE
Contact: sip:sipp@10.8.0.3:5060
Content-Type: application/sdp
Content-Length:   127

SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP 10.8.0.3:5060
From: "Shapel)" <sip:sipp@10.8.0.3:5060>;tag=1
To: sut <sip:44555@192.168.15.8:5060>;tag=X4jtD5FcZc96g
Call-ID: 1-5093@10.8.0.3
CSeq: 1 INVITE
User-Agent: FreeSWITCH-mod_sofia/1.10.3-release+git~20200511T105455Z~129de34d84~32bit
Accept: application/sdp

comment:5 by alx, 34 hours ago

Resolution: готово
Status: newclosed

Исправлено в r2520

Note: See TracTickets for help on using tickets.