Subject: RE: [SIP] Proxy Routing Logic

From: "Fairlie-Cuninghame, Robert" <[email-masked]>
Date: Wed, 20 Dec 2000 00:29:28 -0800

> 
>   If so, let's revisit the idea of copying the Request-URI into the
> Route and adding an maddr.
> 
>   Consider an outbound proxy which adds a record-route.  An initial
> request arrives for [email-masked].  The proxy uses 
> an RR URI:
> 
>     sip:[email-masked];maddr=outbound.proxy.com
> 
>   So, when it sees new requests with this as the request-URI, we have
> different behavior dependant on if there is a Route.  This makes me
> worried.
> 
Hi Billy, 

I beleive under the new Record-Route suggestions the proxy would be
recommended to add RR of <sip:[email-masked];blah> so that request
is always routed to the outbound proxy (to remove ambiguity).

[Of course there will be always be different routing behaviour depending on
whether the request has a Route or not. If a Route exists it would be
followed. If the Route doesn't exist you want to recreate the original
routing action (for subsequent requests). This needs to be accomplished by
either storing route state local or embedding the imformation in the
Record-Route.]

I don't see your maddr concerns as a problem - in fact it is darn useful. If
a Contact or Record-Route has an maddr it should be acted upon by a UAC -
even if the UAC has an outbound proxy configured (I believe).

If the outbound proxy wants to have ALL sip requests sent to it (not just
the first INVITE) then it should record-route itself!!

If a UAC with an outbound proxy configured _wasn't_ to act on the maddr,
then a redirect server would be rendered useless (if it was configured as
the outbound proxy).

Eg: 
UAC send INVITE sip:[email-masked];user=phone SIP/2.0 to outbound
proxy (which is redirect server).

Server returns 302 with 
Contact: <sip:[email-masked];user=phone;maddr=gateway.com>

If the UAC ignores the maddr then it would simply send the INVITE to the
same outbound proxy again.

Cheers,

Robert.

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip

---

From: Billy Biggs <[email-masked]>
Date: Wed, 20 Dec 2000 11:00:25 -0600

Fairlie-Cuninghame, Robert ([email-masked]):

> [Of course there will be always be different routing behaviour
> depending on whether the request has a Route or not. If a Route exists
> it would be followed. If the Route doesn't exist you want to recreate
> the original routing action (for subsequent requests). This needs to
> be accomplished by either storing route state local or embedding the
> imformation in the Record-Route.]

  Right, but this decision should only occur after you've decided if the
request is for you.  It's very important that proxies don't just assume
the request is meant for them if it happens to appear on one of their
listening sockets.  I just wanted to bring up the issue to raise
awareness.

> I don't see your maddr concerns as a problem - in fact it is darn
> useful. If a Contact or Record-Route has an maddr it should be acted
> upon by a UAC - even if the UAC has an outbound proxy configured (I
> believe).

  No.  An outbound proxy receives all outgoing requests, regardless of
the request-URI (even if it has an maddr).  Otherwise, firewall proxies
wouldn't work.

> If a UAC with an outbound proxy configured _wasn't_ to act on the
> maddr, then a redirect server would be rendered useless (if it was
> configured as the outbound proxy).
> 
> Eg: 

  So, the outbound proxy is authoritative for company.com, right?

> If the UAC ignores the maddr then it would simply send the INVITE to
> the same outbound proxy again.

  No, the INVITE should go to the outbound proxy, who then decides if
the request was destined for it.  In this case, the proxy proxies to
gateway.com.

  For interoperability reasons we should be clear on this definition.

-- 
Billy Biggs, 3Com               Email: [email-masked]
http://www.div8.net/billy/      Phone: [email-masked]

---

From: "Jo Hornsby" <[email-masked]>
Date: Wed, 20 Dec 2000 17:25:23 -0000

> listening sockets.  I just wanted to bring up the issue to raise

Maybe I'm not following properly, since I'm jumping in mid-stream,
as it were, but if I get a request, I'm going to do my best to
honour it.  Maybe I won't know anything about the domain in the
Request-URI, but I'll SRV and A, and hopefully everything will
still be okay.

I would see this as highly desirable behaviour.

> the request-URI (even if it has an maddr).  Otherwise, firewall proxies

We discussed the definition of an "outbound proxy" a while ago,
and while I don't think there was unanimousity (schyeah), I
think the general feeling was that an outbound proxy is only
used for the initial request; if it wants to stay in the loop,
it Record-Route s.  Or am I just imagining things again?

 - Jo.

---

From: Billy Biggs <[email-masked]>
Date: Wed, 20 Dec 2000 11:53:33 -0600

Jo Hornsby ([email-masked]):

>>> depending on whether the request has a Route or not. [...]
>> 
>>   Right, but this decision should only occur after you've decided if
>> the request is for you.  It's very important that proxies don't just
>> assume the request is meant for them if it happens to appear on one
>> of their listening sockets. [...]
> 
> Maybe I'm not following properly, since I'm jumping in mid-stream, as
> it were, but if I get a request, I'm going to do my best to honour it.
> Maybe I won't know anything about the domain in the Request-URI, but
> I'll SRV and A, and hopefully everything will still be okay.

  By "honour it" you mean proxy it to the destination indicated by the
Request-URI (and maybe add a Record-Route), right?

  I just want to make sure proxies don't replace the request-URI blindly
with the next Route unless the request is destined for them.

>>   No.  An outbound proxy receives all outgoing requests, regardless
>> of the request-URI (even if it has an maddr).  Otherwise, firewall
>> proxies wouldn't work.
> 
> We discussed the definition of an "outbound proxy" a while ago, and
> while I don't think there was unanimousity (schyeah), I think the
> general feeling was that an outbound proxy is only used for the
> initial request; if it wants to stay in the loop, it Record-Route s.
> Or am I just imagining things again?

  What would be the benefit?  I like the algorithm "all outgoing
requests are sent to the outbound proxy".  It's simple and it works.

  Of course, responses should instead just go to the received address.