Opened 2 days ago
Closed 39 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 )
Версия 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)
Change History (10)
by , 2 days ago
Attachment: | unsuccess_from.log added |
---|
by , 2 days ago
Attachment: | success_from.log added |
---|
comment:1 by , 2 days ago
Description: | modified (diff) |
---|
by , 2 days ago
Attachment: | config-Брикета-22-05-2025.xml added |
---|
by , 2 days ago
by , 2 days ago
Attachment: | pri_test.xml added |
---|
comment:3 by , 46 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().
comment:4 by , 45 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
Проблема воспроизводится на тестовом блоке. На плате VE-01 создаем 2 окончания типа PRI и коммутируем их между собой в матрице TDM. С помощью утилиты sipp подаем тестовый SIP трафик на плату VE-01. Файл сценария.
Если в сценарии в поле From к имени DisplayName добавить символ ")", то вызов не проходит лог1