[SR-Users] parse_from_header(): bad From header

Donat Zenichev donat.zenichev at gmail.com
Mon Nov 13 16:05:36 CET 2017


Hi community.
We experience the problem with malformed messages.

First of all, I want to say, that most of time kamailio works well and
nothing happens that can drop sessions.
But from time-to-time something changes (may be in the network) and
kamailio receives requests with malformed headers (To or From hfs).

The schema:
uplinks -> kamailio <-> routing server (asterisk)

Malformed messages were received only from asterisk server.
Sip debug on asterisk showed that messages were transmitted correctly and
headers were nice.
But kamailio obtains changed (broken) packets or perhaps can't read them
properly.

How does it look like:
Nov 10 12:37:06 kamailio-name kamailio[965]: INFO: <script>: Going to
NATMANAGE for BYE from sip:useragent7122 at kamailio_address:5068
(IP=wss:client_address:62881) - R=sip:dialed_did_service at asterisk_address:50600
ID=1b0044070de406153bf0e4b84d6bb793 at asterisk_address:50600
Nov 10 12:37:06 kamailio-name kamailio[965]: NOTICE: <script>: Relaying
request to <null> - R=sip:dialed_did_service at asterisk_address:50600
ID=1b0044070de406153bf0e4b84d6bb793 at asterisk_address:50600
Nov 10 12:37:06 kamailio-name kamailio[965]: ERROR: <core>
[parser/parse_addr_spec.c:719]: parse_addr_spec(): unexpected char [<] in
status 6: [<sip:useragent6] .
Nov 10 12:37:06 kamailio-name kamailio[965]: ERROR: <core>
[parser/parse_from.c:75]: parse_from_header(): bad From header
[<sip:useragent6<+.w>;tag=jja7l45gd1]
Nov 10 12:37:06 kamailio-name kamailio[965]: ERROR: dialog [dlg_cseq.c:89]:
dlg_cseq_prepare_msg(): cannot parse FROM header
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_addr_spec.c:719]: parse_addr_spec(): unexpected char [<] in
status 6: [<sip:useragent6] .
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_from.c:75]: parse_from_header(): bad From header
[<sip:useragent6<+.w>;tag=jja7l45gd1]
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: dialog [dlg_cseq.c:89]:
dlg_cseq_prepare_msg(): cannot parse FROM header
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_addr_spec.c:719]: parse_addr_spec(): unexpected char [<] in
status 6: [<sip:useragent6] .
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_from.c:75]: parse_from_header(): bad From header
[<sip:useragent6<+.w>;tag=jja7l45gd1]
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: uac [replace.c:783]:
restore_uris_reply(): failed to find/parse FROM hdr
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_addr_spec.c:719]: parse_addr_spec(): unexpected char [<] in
status 6: [<sip:useragent6] .
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_from.c:75]: parse_from_header(): bad From header
[<sip:useragent6<+.w>;tag=jja7l45gd1]
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: pv [pv_core.c:465]:
pv_get_from_attr(): cannot parse From header
Nov 10 12:37:06 kamailio-name kamailio[937]: INFO: <script>: Skip manage
DEVICE_STATE for BYE from <null> (IP=udp:asterisk_address:50600) with (200
- OK) - R=<null> ID=1b0044070de406153bf0e4b84d6bb793 at asterisk_address:50600
Nov 10 12:37:06 kamailio-name kamailio[937]: INFO: <script>:
------------------------------------MANAGE BYE by DEVICE_STATE_BYE_MANAGE
route - 200 - OK M=BYE IP=udp:asterisk_address:50600
ID=1b0044070de406153bf0e4b84d6bb793 at asterisk_address:50600
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_addr_spec.c:719]: parse_addr_spec(): unexpected char [<] in
status 6: [<sip:useragent6] .
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_from.c:75]: parse_from_header(): bad From header
[<sip:useragent6<+.w>;tag=jja7l45gd1]
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: pv [pv_core.c:465]:
pv_get_from_attr(): cannot parse From header
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_addr_spec.c:719]: parse_addr_spec(): unexpected char [<] in
status 6: [<sip:useragent6] .
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_from.c:75]: parse_from_header(): bad From header
[<sip:useragent6<+.w>;tag=jja7l45gd1]
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: rtpengine
[rtpengine_funcs.c:331]: get_from_tag(): failed to parse From header
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: rtpengine
[rtpengine.c:2252]: rtpp_function_call(): can't get From tag
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_addr_spec.c:719]: parse_addr_spec(): unexpected char [<] in
status 6: [<sip:useragent6] .
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_from.c:75]: parse_from_header(): bad From header
[<sip:useragent6<+.w>;tag=jja7l45gd1]
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: pv [pv_core.c:465]:
pv_get_from_attr(): cannot parse From header
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_addr_spec.c:719]: parse_addr_spec(): unexpected char [<] in
status 6: [<sip:useragent6] .
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: <core>
[parser/parse_from.c:75]: parse_from_header(): bad From header
[<sip:useragent6<+.w>;tag=jja7l45gd1]
Nov 10 12:37:06 kamailio-name kamailio[937]: ERROR: pv [pv_core.c:465]:
pv_get_from_attr(): cannot parse From header

How the packet looks like:
ACK sip:tt7etmau at bb0pd5t63b26.invalid;alias=client_address~57573~6;transport=ws
SIP/2.0
Via: SIP/2.0/UDP asterisk_address:50600;branch=z9hG4bK117106ca;rport
Route: <sip:kam2.domain.com:5068
;nat=yes;transport=udp;r2=on;ftag=as06869a5d;lr=on;vsf=AAAAAEZZSVVDVV1VRBlUUkUpFQxdVUZYXiRCHU1RQl1HRVNaXhhAQ3RuLnR3aWxpby5jb20-;vst=AAAAAAAAAAAAAAAAAAAAAAAfBwQRQE8NBR9BChIFAwddCgADFEVDQlYudHdpbGlvLmNvbQ--;did=b0c.7331>,<sip:kam2.callision.com:5068
;nat=yes;transport=ws;r2=on;ftag=as06869a5d;lr=on;vsf=AAAAAEZZSVVDVV1VRBlUUkUpFQxdVUZYXiRCHU1RQl1HRVNaXhhAQ3RuLnR3aWxpby5jb20-;vst=AAAAAAAAAAAAAAAAAAAAAAAfBwQRQE8NBR9BChIFAwddCgADFEVDQlYudHdpbGlvLmNvbQ--;did=b0c.7331>
Max-Forwards: 70
From: "19172423539" <sip:19172423539 at asterisk_address:50600>;tag=as06869a5d
To: <sip:useragent7122 at 10.0.1.18:5068>;tag=nmv7kmpau3
Contact: <sip:19172423539 at asterisk_address:50600>
Call-ID: 629d5a132c194c536b5f5c1a2a3c6e32 at asterisk_address:50600
CSeq: 102 ACK
User-Agent: asterisk PBX
Content-Length: 0


The transport is used to send messages between asterisk and kamailio is TCP.
TCP configurations:
tcp_connection_lifetime=3604
tcp_accept_no_cl=yes
tcp_connect_timeout=5
tcp_send_timeout=5
tcp_rd_buf_size=16384
tcp_keepalive=yes
tcp_crlf_ping=yes
tcp_keepcnt=3
tcp_keepidle=30
tcp_keepintvl=15
tcp_max_connections=4096

I found the idea, that we need to change following parameters:
modparam("uac","restore_mode","auto")
modparam("uac","restore_dlg",1)

to:
modparam("uac","restore_mode","none")
modparam("uac","restore_dlg",0)

I did that, now it looks like all is fine, but I think it can get back.
Thanks in advance.



-- 
-- 
BR, Donat Zenichev
Wnet VoIP team
Tel Ukraine:  +380(44) 5-900-800
Tel USA: +164(67) 8-174-17
https://w-net.us/ <http://wnet.ua>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20171113/5802fdac/attachment.html>


More information about the sr-users mailing list