Subject: [sipcore] Questions on RFC 3608 (Service Route)

From: "Christer Holmberg" <[email-masked]>
Date: Sun, 9 Aug 2009 13:18:26 +0200

Hi,

Section 4 of 3608 says:

 "4. The service route constructed by the registrar is the same for all
      contacts associated with a single address-of-record.  This
      mechanism does not provide for contact-specific service routes."

Q1: Where does this restriction come from in the first place?

Q2: If multiple devices, sharing the same AOR, registers, the register
requests may traverse different intermediates. If the registrar wants to
insert intermeidates into the service route it is then not sure that the
service route would not be the same for each device.

Q3: If a single devices, using outboung, register requests may also
traverse different intermedites. Again, if the registrar wants to insert
intermediates it is not sure that the service routes would be the same
for every outbound flow from that device.

Q4: Have I missunderstood the text? Does the text only says that the
service route field pointing to the registrar is the same?

Regards,

Christer

---

From: Paul Kyzivat <[email-masked]>
Date: Sun, 09 Aug 2009 20:54:05 -0400

> Q1: Where does this restriction come from in the first place?

I don't really know where it came from, but in some sense its an 
intrinsic limitation of the encoding. The service route is delivered in 
a response to a register request. That response is the same regardless 
of who sends the request, or what contacts are in the register request.

Nor is a register request with a contact necessarily sent by a UA that 
receives requests on that address.

If you wanted a service route per-contact, then I guess the service 
route would have to be encoded as a contact header parameter rather than 
  a header field in the response.

> for every outbound flow from that device.

Outbound changes things, but it post dates the 3608.

	Thanks,
	Paul

> ------------------------------------------------------------------------
> 
> _______________________________________________
> sipcore mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/sipcore

---

From: Dean Willis <[email-masked]>
Date: Sun, 09 Aug 2009 22:50:01 -0500

>From the fact that REGISTER stores contacts, not routes, and that I
could not convince anybody that this was a Bad Idea at the time. This
bit of intransigence has lead us to GRUU, Outbound, and all sorts of
other ugly hacks.

SIP would be better off if we stored route vectors rather than just the
terminal component (contact) for each registration.

> service route would not be the same for each device.

The inserted intermediaries MUST be the same for all contacts for the AOR.

> for every outbound flow from that device.

3608 predates "outbound". One could certainly envision combining the two
techniques; indeed, I proposed something similar at the time of 3608 but
was roundly shouted down. I couldn't even sell you people on symmetric
routing, which is why we have Service-Route and Path. We can't even
agree the double-recording of record-route-fix as either a BCP or a
revision of RFC 3261, so I don't expect a lot of progress here.

> service route field pointing to the registrar is the same?

Do keep in mind that the service route is unidirectional (complement to
Path) and that it's really only meant to include the components within
the registrar's realm of knowledge.

The real limitation here is driven by the perceived difficulty in
managing diverse route sets per AOR. We discussed at the time the
possibility of storing Service-Route and Path for each contact, using a
contact-indexed format in the response message to convey it, but this is
non-trivial and would further increase the size of the already grossly
inflated SIP response message, which as we know has UDP fragmentation
issues.

Insert here my usual diatribe that this is something any rational SDO
would fix by cleaning up completely and incrementing the SIP version
number. We could shed 300 pages of specs by just globally fixing
REGISTER. But no, that would be too easy, we have to do this the hard way!

--
dean

---

From: "Christer Holmberg" <[email-masked]>
Date: Mon, 10 Aug 2009 09:25:39 +0200

Hi, 

>>Section 4 of 3608 says:
>> 
>>"4. The service route constructed by the registrar is the 
>>same for all contacts associated with a single address-of-record.
This
>I don't really know where it came from, but in some sense its 
>an intrinsic limitation of the encoding. The service route is 
>delivered in a response to a register request. That response 
>is the same regardless of who sends the request, or what 
>contacts are in the register request.
>
>Nor is a register request with a contact necessarily sent by 
>a UA that receives requests on that address.

Sure, but I don't think that has anything to do with the limitation.
Such UA may not even care about the service route.

>If you wanted a service route per-contact, then I guess the service
route would have to be encoded as a contact header 
>parameter rather than a header field in the response.

Perhaps, but that is an encoding issue.

>>requests may traverse different intermediates. If the registrar wants 
>>to insert intermeidates into the service route it is then not sure 
>>that the service route would not be the same for each device.
>> 
>>traverse different intermedites. Again, if the registrar wants to 
>>insert intermediates it is not sure that the service routes would be 
>>the same for every outbound flow from that device.
> 

In that case the Outbound spec should indicate that the rule in 3608
does not apply when using Outbound.

Regards,

Christer

---

From: "Christer Holmberg" <[email-masked]>
Date: Mon, 10 Aug 2009 19:48:43 +0200

Hi,

Another potential (it needs to be more investigated) issue with identical service routes is that it may not always be possible to determine from which device (or, in the case of outbound, on which flow) an outgoing request is received.

Giving a dedicated service route value for each registered device/flow would allow the register, by looking at the Route header, to determine where the outgoing request comes from.

Regards,

Christer

> -----Original Message-----
> From: [email-masked]
> [mailto:[email-masked]] On Behalf Of Christer Holmberg
> Sent: 10. elokuuta 2009 10:26
> To: Paul Kyzivat
> Cc: SIPCORE
> Subject: Re: [sipcore] Questions on RFC 3608 (Service Route)
>
>
> Hi,
>
> >>Section 4 of 3608 says:
> >>
> same for all
> In that case the Outbound spec should indicate that the rule
> in 3608 does not apply when using Outbound.
>
> Regards,
>
> Christer
>