Hello,
it would be useful to know also the version of kamailio that is run
there. The latest release series should have a safety check in order to
prevent setting an invalid restored From/To URI.
On the other hand, if the UA doesn't preserve the From/To, then it
doesn't require to be unchanged, so the update (without auto restore) of
the From/To can be done only for initial INVITE, when UA takes the
caller/callee ids. For requests within the dialog, these headers can be
left unchanged or changed to something like anonymous(a)anonymous.invalid
The last option here, which is the safest, is to use dialog module
together with uac, so uac module stores the From/To values inside the
dialog and restores them from there, instead of relying on
record-routing and the masking algorithm for values.
Cheers,
Daniel
On 14.11.17 08:04, Julia Boudniatsky wrote:
Hello,
It looks like headers "From" in initial INVITE and received message
are different.
For example:
in INVITE : <sip:useragent7122@kamailio_address:5068>
in received message : <sip:useragent7122@kamailio_address>
When you use header "From" transformation (I see Route with vsf),
restore may be correct only for exactly the same header "From".
Check may be port number is missing/added in received message header
"From".
Best regards,
Julia
On Mon, Nov 13, 2017 at 5:05 PM, Donat Zenichev
<donat.zenichev(a)gmail.com <mailto:donat.zenichev@gmail.com>> wrote:
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@kamailio_address:5068
(IP=wss:client_address:62881) -
R=sip:dialed_did_service@asterisk_address:50600
ID=1b0044070de406153bf0e4b84d6bb793@asterisk_address:50600
Nov 10 12:37:06 kamailio-name kamailio[965]: NOTICE: <script>:
Relaying request to <null> -
R=sip:dialed_did_service@asterisk_address:50600
ID=1b0044070de406153bf0e4b84d6bb793@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@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@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@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
<http://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 <tel:%28917%29%20242-3539>" <sip:19172423539
<tel:%28917%29%20242-3539>@asterisk_address:50600>;tag=as06869a5d
To: <sip:useragent7122@10.0.1.18:5068
<http://sip:useragent7122@10.0.1.18:5068>>;tag=nmv7kmpau3
Contact: <sip:19172423539
<tel:%28917%29%20242-3539>@asterisk_address:50600>
Call-ID: 629d5a132c194c536b5f5c1a2a3c6e32@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>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla
www.twitter.com/miconda --
www.linkedin.com/in/miconda
Kamailio Advanced Training, Nov 13-15, 2017, in Berlin -
www.asipto.com
Kamailio World Conference -
www.kamailioworld.com