[Users] loose_route() (misbehaviour?)

samuel samu60 at gmail.com
Wed Jan 25 13:28:56 CET 2006


Hi all,

Might be related to the mail I just sent about the username in the
record-route or to another problem but the thing is that I can not
close the session from the callee side...i'll try to explain:

There are two users registered to two different openser instances. In
the session initiation, the record route headers contain the usernames
of both users and are therefore stored in the end points.
When the caller sends the BYE, the callee's openser receives the BYE
and rewrites the URI with the record-route (shouldn't it consider the
request for itself and check the Req-URI instead??).

NExt is the diagram and some more info...

	Alice	oser1	oser2	 Bob
	 |	  |	  |	  |
	 |--F1---> |--F2--->|--F3-->|
	 |	  |	  |	  |
	 |	  |	  |	  |
	 |	  |	  |	  |
	 |--F4-->  |--F5-->|--F6--> |
	 |	  |	  |	  |
	 |	  |	  |	  |
	 |	  |	  |	  |
	 |	  |<--F8---|<--F9--|

F1: INVITE Bob at oser2

F2: INVITE Bob at oser2
    Record-Route:<sip:Bob at oser1;nat=yes;lr=on>

F3: INVITE Bob at bob_contact_ip
    Record-Route:<sip:Bob at oser2;nat=yes;lr=on>
    Record-Route:<sip:Bob at oser1;nat=yes;lr=on>


OK,ACK not shown..

F4: BYE Bob at nat_fixed_ip
    Route:<sip:Bob at oser1;nat=yes;lr=on>,<sip:Bob at oser2;nat=yes;lr=on>

F5: BYE Bob at nat_fixed_ip
    Route:<sip:Bob at oser1;nat=yes;lr=on>

F6: BYE Bob at bob_fixed_ip
Everything ok, session closed.

But, and here comes the problem:
F7: BYE Alice at alice_fixed_ip
    Route:<sip:Bob at oser2;nat=yes;lr=on>,<sip:Bob at oser1;nat=yes;lr=on>
When this message arrives to ser1, it sees the route header and, make
a strict routing process and rewrites the header in the Req-URI to
Bob at ser1.
oser1 resends itself the message, and when it receives it again looks
for use Bob in the local bindings which obviously does not exists (Bob
is in oser2).
Log:

Jan 25 13:17:07 localhost openser[25501]: is_preloaded: No
Jan 25 13:17:07 localhost openser[25501]: grep_sock_info - checking if
host==us: 13==13 &&  [ip_oser1]== [ip_oser1]
Jan 25 13:17:07 localhost openser[25501]: grep_sock_info - checking if
port 5060 matches port 5060
Jan 25 13:17:07 localhost openser[25501]: after_strict: Next hop:
'sip:Bob at oser1_ip;nat=yes;lr=on' is loose router
Jan 25 13:17:07 localhost openser[25501]: parse_headers: flags=ffffffffffffffff
Jan 25 13:17:07 localhost openser[25501]: DEBUG: get_hdr_body : content_length=0
Jan 25 13:17:07 localhost openser[25501]: found end of header
Jan 25 13:17:07 localhost openser[25501]: rewrite_uri: Rewriting
Request-URI with 'sip:Bob at oser1_ip:5060;nat=yes;lr=o
n'
Jan 25 13:17:07 localhost openser[25501]: after_strict: The last route
URI: 'sip:Bob at oser1_ip:5060;nat=yes;lr=on'
Jan 25 13:17:07 localhost openser[25501]: DEBUG: has_totag: totag found
Jan 25 13:17:07 localhost openser[25501]: DEBUG: t_newtran: msg id=12
, global msg id=11 , T on entrance=0xffffffff
Jan 25 13:17:07 localhost openser[25501]: parse_headers: flags=ffffffffffffffff
Jan 25 13:17:07 localhost openser[25501]: parse_headers: flags=78
Jan 25 13:17:07 localhost openser[25501]: t_lookup_request: start
searching: hash=3891, isACK=0
Jan 25 13:17:07 localhost openser[25501]: DEBUG: RFC3261 transaction
matching failed
Jan 25 13:17:07 localhost openser[25501]: DEBUG: t_lookup_request: no
transaction found


Thanks a lot!!!

Sam.




More information about the sr-users mailing list