Using 1.3.2 notls
I found that when an Ekiga softphone is configured with an outgoing proxy, it will include a Route header in an initial INVITE. The Route header contains a single URI pointing to the outgoing proxy. This allowed according to RFC 3261 section 8.1.1.1
"When a provider wishes to configure a UA with an outbound proxy, it is RECOMMENDED that this be done by providing it with a pre-existing route set with a single URI, that of the outbound proxy. "
Since the first route in a Route header over rides a request URI, this Route URI must be removed prior to routing or the request will loop. Openser will loop when Ekiga is configured with Openser as the outgoing proxy.
Of course the header could be removed using the openser.cfg but the operation should be built in.
Robert Dyck writes:
Since the first route in a Route header over rides a request URI, this Route URI must be removed prior to routing or the request will loop. Openser will loop when Ekiga is configured with Openser as the outgoing proxy.
Of course the header could be removed using the openser.cfg but the operation should be built in.
i don't see a problem with calling loose_route() on the initial request in the script.
-- juha
On Tuesday 10 June 2008, Juha Heinanen wrote:
Robert Dyck writes:
Since the first route in a Route header over rides a request URI, this Route URI must be removed prior to routing or the request will loop. Openser will loop when Ekiga is configured with Openser as the outgoing proxy.
Of course the header could be removed using the openser.cfg but the operation should be built in.
i don't see a problem with calling loose_route() on the initial request in the script.
-- juha
Are there any situations where we would not remove the first route URI if it matches the proxy? The RFC suggests to me that it is unconditional.
16.12 Summary of Proxy Route Processing 2. The proxy will inspect the URI in the topmost Route header field value. If it indicates this proxy, the proxy removes it from the Route header field (this route node has been reached).
Robert Dyck writes:
Are there any situations where we would not remove the first route URI if it matches the proxy? The RFC suggests to me that it is unconditional.
yes, i want to remove first route uri if is matches the proxy itself. if it doesn't, i want to do something else. if proxy removes automatically the first uri for itself, how do i know that it was removed?
-- juha
On Wednesday 11 June 2008, Juha Heinanen wrote:
Robert Dyck writes:
Are there any situations where we would not remove the first route URI if it matches the proxy? The RFC suggests to me that it is unconditional.
yes, i want to remove first route uri if is matches the proxy itself. if it doesn't, i want to do something else. if proxy removes automatically the first uri for itself, how do i know that it was removed?
Do I have this right? Loose_route return FALSE if there is no Route header or if the Route header was a preloaded route, otherwise it returns 1. If it returns 1 we know the request contained a Route header and any remaining first route will not match the proxy. We do not know if whether the first route was removed or it did not match. If it returns FALSE we do not know if it ever had a Route header.
Robert Dyck writes:
Do I have this right? Loose_route return FALSE if there is no Route header or if the Route header was a preloaded route, otherwise it returns 1.
check rr module's README. what is important to me is that loose_route() returns true if there is one or more route headers and the topmost one is not for the proxy itself.
-- juha
On Wednesday 11 June 2008, Juha Heinanen wrote:
Robert Dyck writes:
Do I have this right? Loose_route return FALSE if there is no Route header or if the Route header was a preloaded route, otherwise it returns 1.
check rr module's README. what is important to me is that loose_route() returns true if there is one or more route headers and the topmost one is not for the proxy itself.
-- juha
You asked the question "if proxy removes automatically the first uri for itself, how do i know that it was removed?". Loose_route will not tell us this. After loose_route the topmost URI will never match the proxy but we do not know if loose_route removed an original topmost URI. Loose_route could be enhanced to give four return codes -- no route header present, pre-loaded URI removed ( no To tag ), in-dialogue URI removed, route header was present but topmost URI did not match.
Anyway, I do not want to turn this into a religous argument. I can certainly put an extra loose_route into the script to catch the pre-loaded case.
The example scripts could be changed to catch this case as well so that an Openser noobie does not have a mysterious looping problem.
Robert Dyck writes:
On Wednesday 11 June 2008, Juha Heinanen wrote:
Robert Dyck writes:
Do I have this right? Loose_route return FALSE if there is no Route header or if the Route header was a preloaded route, otherwise it returns 1.
check rr module's README. what is important to me is that loose_route() returns true if there is one or more route headers and the topmost one is not for the proxy itself.
-- juha
You asked the question "if proxy removes automatically the first uri for itself, how do i know that it was removed?". Loose_route will not tell us this. After loose_route the topmost URI will never match the proxy but we do not know if loose_route removed an original topmost URI.
after loose_route, the topmost URI may still match the local proxy, because loose_route call removes only the topmost route header.
the important thing to me is that i can allow preloaded route set that only contains route header of the local proxy.
-- juha
Hi Robert,
That is called "preloaded route" and as Juha said, you need to call loose_route() for this initial INVITE to handle it. Read http://www.openser.org/docs/modules/1.3.x/rr.html#LOOSE-ROUTE-ID ad it provides useful info on the topic.
Regards, Bogdan
Robert Dyck wrote:
Using 1.3.2 notls
I found that when an Ekiga softphone is configured with an outgoing proxy, it will include a Route header in an initial INVITE. The Route header contains a single URI pointing to the outgoing proxy. This allowed according to RFC 3261 section 8.1.1.1
"When a provider wishes to configure a UA with an outbound proxy, it is RECOMMENDED that this be done by providing it with a pre-existing route set with a single URI, that of the outbound proxy. "
Since the first route in a Route header over rides a request URI, this Route URI must be removed prior to routing or the request will loop. Openser will loop when Ekiga is configured with Openser as the outgoing proxy.
Of course the header could be removed using the openser.cfg but the operation should be built in.
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users