2011/9/2 Iñaki Baz Castillo <ibc(a)aliax.net>et>:
Hi, sip-router Via parser is not RFC compliant as it
does not accept
any token in the transport (even if this does NOT occur in the top
Via). A real example: kamailio receives a REGISTER like this (removing
other headers):
REGISTER sip:domain,org SIP/2.0
Via: SIP/2.0/UDP 1.2.3.4:9090;branch=z9hG4bK3afb3d8e9ea4c4259f9d;rport
Via: SIP/2.0/WS 1.2.3.4:36638;branch=z9hG4bK5089;received=9.9.9.9;rport=36638
And it fails parsing so also processing the request:
ERROR: <core> [parser/parse_via.c:1677]: ERROR: parse_via: bad char
<W> on state 122
ERROR: <core> [parser/parse_via.c:2366]: ERROR: parse_via on:
<SIP/2.0/UDP 1.2.3.4:9090;branch=z9hG4bK3afb3d8e9ea4c4259f9d;rport
[...]>
ERROR: <core> [parser/parse_via.c:2370]: ERROR: parse_via parse error,
parsed so far:<SIP/2.0/>
ERROR: <core> [parser/msg_parser.c:139]: ERROR: get_hdr_field: bad via
INFO: <core> [parser/msg_parser.c:353]: ERROR: bad header field [Via:
SIP/2.0/WS 1.2.]
Please, make it possible for the Via transport to contain an unknown
token, at least when it does NOT occur in the top Via header. Why
should Kamailio care about the second Via transport field?
Hi, any comment about this report please? I've tryed to figure how to
change the Via transport parser in order to allow any token (as
RFC3261 states) but I've got lost within the hyper-optimized parser :)
--
Iñaki Baz Castillo
<ibc(a)aliax.net>