[Users] strict to loose - Route Header not removed

Walter Schober walter.schober at neotel.at
Wed May 10 17:40:13 CEST 2006


Hi Bogdan!

1) OpenSER forwards the INVITE correctly including the ;lr parameter. It's
the PSTN GW sending a "strict" ACK. They will fix it. Currently I just take
this GW to reproduce the issue. Yes, 111.222.333.132 is the OS proxy.

2) I do also believe that it recognizes itself, although grep_sock_info()
returns false. This runs on a test system with that single call only and
yes, this is all the log.
Another issue I see here:
If openser is started with the -l parameter, there is no listener configured
on the IP (address - just the aliases via /etc/hosts). It seems to look into
the hosts file, resolves reverse via hosts file and uses the first hostname
in the hostfile in the grep_sock_info(). So it always compares the incoming
IP with the first hostname in /etc/hosts correlated to that IP.
This doesn't happen, if I specify the listen=udp:111.222.333.132:5060 in the
script and omit the -l option.
Nevertheless I guess, that's not the problem for the strict routing.

3) It would be great, if you could provide me with that patch to either the
latest CVS snapshot or the 1.0.0 official source.
It's just to verify if it solves my problem, otherwise I will look into it.

Br
Walter

-----Original Message-----
From: Bogdan-Andrei Iancu [mailto:bogdan at voice-system.ro] 
Sent: Wednesday, May 10, 2006 12:37 PM
To: Walter Schober
Cc: users at openser.org
Subject: Re: [Users] strict to loose - Route Header not removed

HI Walter,

I see here three problems:

1) as I guess your proxy IP is 111.222.333.132, I find rather strange 
why the ACK RURI does not contain the "lr" parameter - OpenSER does only 
loose routing and inserts the RR hdr with "lr" and "ftag" params all the 
time. Can you check this in the INVITE and 200 OK? It might be a bug in 
the phone also.

2) even if the proxy does recognize the 111.222.333.132 IP as its own 
(as it follows the "after_strict" processing), not sure why you get this 
"check_self: host != me". Is the output log continuous?

3) indeed there was a bug in RR "after_strict" processing. I fixed it, 
but I cannot commit it since thanks no SF none of the repository is 
online (CVS or SVN) :(.

If yo need it fast, I can generate a patch for you to be able to test.

Thanks and regards,
Bogdan




Walter Schober wrote:

> 0(30621) parse_headers: flags=200
> 0(30621) is_preloaded: No
> 0(30621) grep_sock_info - checking if host==us: 13==3 &&
[111.222.333.132]
>== [os0]
> 0(30621) grep_sock_info - checking if port 5060 matches port 5060
> 0(30621) grep_sock_info - checking if host==us: 13==3 &&
[111.222.333.130]
>== [os0]
> 0(30621) grep_sock_info - checking if port 5060 matches port 5084
> 0(30621) grep_sock_info - checking if host==us: 13==3 &&
[111.222.333.130]
>== [os0]
> 0(30621) grep_sock_info - checking if port 5060 matches port 5084
>
>Is this the problem? 
> 0(30621) check_self: host != me
> 0(30621) after_strict: Next hop: 'sip:111.222.333.130:5084;lr' is loose
>router
> 0(30621) parse_headers: flags=ffffffffffffffff
> 0(30621) rewrite_uri: Rewriting Request-URI with
>'sip:0720123456 at 111.222.333.129:5060;x-orig=111.222.444.61:5064;x-orig-nat=
1
>92.168.40.4:5064'
> 0(30621) after_strict: The last route URI:
>'sip:0720123456 at 111.222.333.129:5060;x-orig=111.222.444.61:5064;x-orig-nat=
1
>92.168.40.4:5064'
> 0(30621) xl_printf: final buffer length 18
>
>Openser 1.0.0.
>
>Br
>Walter
>
>-----Original Message-----
>From: users-bounces at openser.org [mailto:users-bounces at openser.org] On
Behalf
>Of Walter Schober
>Sent: Wednesday, May 10, 2006 8:25 AM
>To: users at openser.org
>Subject: [Users] strict to loose - Route Header not removed
>
>Hello!
> 
>Acc to 3261, 16.4:
>the proxy MUST replace the Request-URI in the request with the last
>value from the Route header field, and remove that value from the
>Route header field.  The proxy MUST then proceed as if it received
>this modified request. 
> 
>The loose_route() function does only the half on my
>if (looose_route()) {
>  ..
>  t_relay()
>  ..
>}
>script. It replaces the RURI with the value of the last Route header,
>but then doesn't remove it, causing problems on the last hop.
>
>The strict.txt contains a ACK with comes in strict and leaves loose - 
>with the Route header.
>
>Aliases are configured with ip.ip.ip.ip and ip.ip.ip.ip:5060.
>
>Why is the Route header not stripped?
>
>Walter
>
>
>
>_______________________________________________
>Users mailing list
>Users at openser.org
>http://openser.org/cgi-bin/mailman/listinfo/users
>
>  
>







More information about the Users mailing list