Hi Klaus,
If Kamailio founds out that the topmost Router header
is itself, then it will
remove it and use the nexxt Route header or the Request-URI.
Then, this case, the topmost Route: header is itself, then removes it
(no more Route: headers) and finally must decides to route the
request to the R-URI which is itself but at different port.
However, it is not using that port (7080), but 5060. Why?
In logs, after loose_route() is called, it writes:
ERROR: <script>: WITHINDLG: method BYE with sip:321456@<sip-router_ip>:7080 _
DEBUG: siputils [checks.c:107]: totag found_
DEBUG: rr [loose.c:85]: is_preloaded: No_
DEBUG: <core> [socket_info.c:502]: grep_sock_info - checking if host==us: 13==13
&& [<sip-router_ip>] == [<sip-router_ip>]_
DEBUG: <core> [socket_info.c:505]: grep_sock_info - checking if port 5060 matches
port 7080_
DEBUG: <core> [forward.c:448]: check_self: host != me_
DEBUG: rr [loose.c:594]: Next hop: 'sip:<sip-router_ip>;lr=on' is loose
router_
DEBUG: rr [loose.c:644]: The last route URI: 'sip:<sip-router_ip>;lr=on'_
ERROR: <script>: RELAY: method BYE with sip:<sip-router_ip>;lr=on _
ERROR: <script>: RELAY: calling t_relay() to sip:<sip-router_ip>;lr=on
Message buffer: BYE sip:321456@<sip-router_ip>:7080 SIP/2.0__Via: SIP/2.0/UDP
<remote_uac_ip>:5060;branch=z9hG4bKb111e6a26E0306F7__From:
<sip:445566@<sip-router_ip>:5060>;tag=4DB62C24-2C3E0621__To:
"321456" <sip:321456@<sip-router_ip>:7080>;tag=as369d9f82__Route:
<sip:<sip-router_ip>;lr=on>__CSeq: 1 BYE__Call-ID:
15cbe04c69ede18c2e1f5a9221eea388@<sip-router_ip>:7080__Contact:
<sip:445566@<remote_uac_ip>:5060>__User-Agent: UAc__Max-Forwards:
69__Content-Length: 0
loose.c finds it as "Next hop" and not as "Topmost route uri".
Claudio
If Kamailio fails to recognize that the Route header is itself, then it will
forward the request to the address in the Route header (loop).
(considering that you use the default config file with loose_route()).
thus, make sure that the URI in the Route header is recognized by Kamailio as
itself. (it should be if you use record_route() function).
Set debug=4 and grep for "myself" when the loose_route() function is called.
Then you will see if Kamailio matches the topmost Route URI.
regards
Klaus
On 24.10.2011 14:55, Claudio Furrer wrote:
Hello,
How does sip-router process this BYE?
BYE sip:321456@<sip-router_ip>:7080 SIP/2.0
Via: SIP/2.0/UDP<remote_uac_ip>:5060;branch=z9hG4bK7fb4c2325A0617FF
From:<sip:445566@mydomain.com:5060>;tag=19C8FD8-72B75A25
To: "321456"<sip:321456@<sip-router_ip>:7080>;tag=as28777464
Route:<sip:<sip-router_ip>;lr=on>
CSeq: 1 BYE
Call-ID: 2b9512ef7ea290f07c54db1808e32211@<asterisk_ip>:7080
Contact:<sip:445566@<remote_uac_ip>:5060>
User-Agent: UAc
Max-Forwards: 70
Content-Length: 0
Does it routes the BYE, reading first the RURI or the Route header field?
What if<sip-router_ip>:7080 is not itself (myself variable), because
currently
the proxy is listening at different port (5060)?
Note: proxy working in stateful mode.
Regards,
Claudio
pd: I've read section "16.4 Route Information Preprocessing" of rfc but
it's
not clear for me in this case.
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users