|
List Info
Thread: Comments on draft-ietf-sip-gruu-10
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-14 02:10:15 |
GENERAL COMMENTS
I found this document very hard to read. At root, the
concept
is extremely simple, but the document is 40 pages. IMO it
could stand to be put on a pretty serious diet. I realize
that this is an editorial comment, and I suppose it's not
necessarily a showstopper, but I think it presents a pretty
substantial obstacle to implementor understanding--at
least it would if I were doing the implementation.
In particular, pages 13-23 contain descriptions of the
behaviors
expected of various elements in the system. It's quite hard
to tell
from the text which behaviors are new to this specification
and which
are simply inherited from other specs and being described
here for
expository reasons. For instance, here's S 8.1.2:
There is no new behavior associated with sending a
request to a GRUU.
A GRUU is a URI like any other. When a UA receives a
request or
response, it knows that the remote target is a GRUU by
the presence
of the "gruu" URI parameter. The UA can take
the GRUU, send a
request to it, and then be sure that the request is
delivered to the
UA instance which sent the request or response.
If the GRUU contains the "opaque" URI
parameter, a UA can obtain the
AOR for the user by stripping the "opaque"
and "gruu" URI parameters.
The resulting URI is the AOR. If the GRUU does not have
the "opaque"
URI parameter, there is no mechanism defined for
determining the AOR
from the GRUU. Extraction of the AOR from the GRUU is
useful for
call logs and other accounting functions where it is
desirable to
know the user to whom the request was directed.
Because the instance ID is a callee capabilities
parameter, a UA
might be tempted to send a request to the AOR of a user,
and include
an Accept-Contact header field [19] that indicates a
preference for
routing the request to a UA with a specific instance ID.
Although
this would appear to have the same effect as sending a
request to the
GRUU, it does not. The caller preferences expressed in
the Accept-
Contact header field are just preferences. Its efficacy
depends on a
UA constructing an Accept-Contact header field that
interacts with
domain-processing logic for an AOR, to cause a request to
route to a
particular instance. Given the variability in routing
logic in a
domain (for example, time-based routing to only selected
contacts),
this doesn't work for many domain-routing policies.
However, this
specification does not forbid a client from attempting
such a
request, as there may be cases where the desired
operation truly is a
preferential routing request.
The only normative text here is the first sentence, which
tells us that
there's no new behavior. The rest is purely expository.
After reading
it, I'm not sure that it's necessary at all, but if it is
it should
be clearly separated from the normative text. I would advise
trying
to separate the new normative behavior into separate
sections.
I would advise intermixing examples with the main text and
then
having an extended example at the end. Just having a single
extended example that people have to refer back to makes it
very hard to get the idea of what's going on.
TECHNICAL COMMENTS
I'm a bit concerned about a lack of generality in this
design.
At some level, the idea here is that you have some URI X and
you'd like to be able to create subordinate URIs XY and XZ
such that they both correspond to X in (at least the
following
ways):
0. Either XY or XZ can speak for X.
1. A peer can address X and he will end up speaking to
XY or XZ.
2. A peer can directly address XY and XZ and will end up
at the right place.
This specification provides two mechanisms for doing this:
1. opaque=, which is switched at the proxy.
2. grid=, which is switched at the end-instance.
This seems like a not very general design. In particular, it
would be able to use the same mechanism (e.g., name
extension).
Second, it seems like there's a real possibility we might
want
to be able to perform this same trick in some other context,
in which case won't we need to invent some new
demultiplexing
indicator? It may be too late to redesign things to this
extent, but that doesn't mean this isn't a real issue.
Why is it necessary to have GRUUs which are (1) identifiable
as GRUUs to peers but (2) can't be translated back to the
AOR
by the peer?
EDITORIAL COMMENTS
Abstract:
Several applications of the Session Initiation Protocol
(SIP) require
a user agent (UA) to construct and distribute a URI that
can be used
by anyone on the Internet to route a call to that
specific UA
instance.
I would add after this "as opposed to the AOR, which
may map to
multiple UA instances"
S 1:
I don't find this section very clear at all. It manages to
hide
the key point about wanting to be able to address specific
UAs
rather than the AOR sort of implicitly in para 2.
I would take one such one of the examples in S 4 and glue
it in here to make clear what the issue is. I would remove
paras 3 and 4 entirely. I think they're not adding much
value.
S 2:
Isn't the key point for "contact" that it's
bound to a specific
UA?
S 3:
I'm not sure that this discussion of properties adds a lot
of
value. It's not really referred to much later in the spec
and just adds a lot of new concepts people need to absorb.
In particular, I don't think that the first five properties
(AOR through identity) are that relevant here.
S 4:
Having this many use cases doesn't add that much. I would
just delete this section after moving one use case (REFER?)
to the introduction.
S 5:
I didn't find this section that helpful. It seems to me
that the
key points to get across are:
1. You have one AOR but multiple GRUUs, each of which is
tied
to a specific UA
2. You can have multiple GRUUs tied to the same UA.
3. You can be addressed either by GRUU or AOR, with the
latter
going to some UA out of control of the addressor.
4. You (generally) get your GRUUs from your proxy.
5. There are two types of GRUUs, those which can be
mapped
back to the AOR (opaque=) and those which can't.
Getting these points across, with a picture would, it seems
to me,
get the job done better than this text. I didn't find
Figure 3
to be that clear, however. Maybe multiple figures?
S 6:
o When a GRUU is assigned to an instance ID/AOR pair,
both SIP and
SIPS GRUUs will be assigned. Only one will be
returned, but both
will exist. The SIPS URI may not always work,
particularly if the
proxy cannot establish a secure connection to the
client.
What does it mean to have a URI assigned that doesn't work?
However, forwarding services, such as call forwarding,
SHOULD NOT be
provided for requests sent to a GRUU. The intent of the
GRUU is to
target a specific UA instance, and this is incompatible
with
forwarding operations.
This seems to me to get into policy. Are you saying that I
can't
have my cell phone forward calls to some other phone just
cause
people call my cell number rather than my generic
"EKR" AOR?
S 8.1.1:
If the UA instance has obtained multiple GRUUs for
different AORs as
a result of a registration, it SHOULD use one
corresponding to the
AOR used to send or receive the request.
Isn't it a security condition for the peer that these
match?
S 12:
Is there any way you can notate the "changed"
headers so it's
easier to see what this specification affects?
Please show the INVITE in message 3 for completeness.
In the subscribe on page 30, you have:
location lookup on the Request-URI. It is translated
into the
contact for that instance, and then proxied to that
contact. Note
how the "grid" parameter is maintained, and
the "gruu" parameter is
no longer present.
This only applies to the URI in the request line, not to the
"To"
line.
The registrar notices that a different contact,
sip:callee 192.0.2.1,
is already associated with the same instance ID. It
registers the
new one too and returns both in the REGISTER response.
Both have the
same GRUU. However, only this new contact (the most
recently
registered one) will be used by the proxy for population
in the
target set. The registrar then generates the following
response:
Why is it a good idea to register both instead of replacing
the
old one? I appreciate this is in Outbound, but I don't much
like
it there either...
S A.2:
The algorithm described here treats encryption as a
black-box
in a way that is potentially severely cryptographically
weak.
In particular, you have:
In many cases, it will be desirable to construct the GRUU
in such a
way that it will not be possible, based on inspection of
the URI, to
determine the Contact URI that the GRUU translates to.
It may also
be desirable to construct it so that it will not be
possible to
determine the instance ID/AOR pair associated with the
GRUU. Whether
a GRUU should be constructed with this property is a
local policy
decision.
With these rules, it is possible to construct a GRUU
without
requiring the maintenance of any additional state. To do
that, the
URI would be constructed in the following fashion:
user-part = "GRUU" | BASE64(E(K, (salt |
" " | AOR | " " |
instance ID)))
Where E(K,X) represents a suitable encryption function
(such as AES
with 128-bit keys) with key K applied to data block X,
and the "|"
operator signifies concatenation. The single space
(" ") between
components is used as a delimiter, so that the components
can easily
be extracted after decryption. Salt represents a random
string that
prevents a client from obtaining pairs of known plaintext
and
ciphertext. A good choice would be at least 128 bits of
randomness
in the salt.
You're assuming that you have a cipher that propagates
differences,
but not all ciphers do. For instance, block ciphers in ECB
mode
and stream ciphers (or CTR mode ciphers) do not. It's
nowhere
near specific enough to say "a suitable encryption
function such
as AES with 128-bit keys" As a second note, it's not
safe to
use stream cipher with the same key repeatedly, which is
what's
implied by this text.
The correct procedure here isn't to use a *salt* but rather
an
IV. Yes, in the case of a block cipher this gets prepended
to the
data (at least notionally) but in the case of a CTR-mode
cipher
it's used as part of the counter block.
Encryption is needed to prevent attacks whereby
the server is sent requests with fake GRUUs, causing the
server to
direct requests to any named URI. Even with encryption,
the proxy
should validate the user part after decryption. In
particular, the
AOR should be managed by the proxy in that domain.
Encryption doesn't provide this service. If, for instance,
you
used a stream cipher or a block cipher in CTR mode, an
attacker
could still forge new GRUUs with chosen properties based on
a known initial URI/GRUU pair. This is potentially even
possible
in CBC mode depending on how things are laid out. What you
need
here is an integrity check.
Rather than trying to invent this token format, I would
suggest
you borrow one from an existing document, such as that in
RFC 4507.
Here's some text based on that:
With these rules, it is possible to construct a GRUU
without
requiring the maintenance of any additional state. The
proxy needs to store two randomly chosen secret keys:
K_e -- used for encryption
K_m -- used for integrity
For each new GRUU, the proxy generates a fresh
initialization
vector (IV) I. It then computes:
EA = E(K_e, AOR || " " || instance_ID)
using initialization vector I where || indicates
concatenation.
The encryption algorithm SHOULD be chosen so that it is
not
feasible for an attacker two distinguish identical
plaintexts when
they are encrypted with distinct IVs. The encryption
algorithm
SHOULD be chosen to provide at least 80 bits of security,
Suitable
algorithms would include AES in cipher-block-chaining
(CBC) mode
[1] or counter (CTR) modes [2]. Note that if CTR mode is
used,
extreme care MUST be taken to ensure that not only are
distinct
IVs chosen but that the same section of keystream is
never
reused.
Once EA has been computed, the proxy computes:
HM = MAC(K_m, EA)
Where HM is a suitable MAC function, such as HMAC-SHA1
[3].
The GRUU is then constructed as:
user-part = "GRUU" || BASE64(EA || HM)
This mechanism uses the user-part of the SIP URI to
convey the
encrypted AOR and instance ID. The user-part is used
instead of the
"opaque" URI parameter because it has the
desired anonymity
properties.
The benefit of this mechanism is that a server need not
store
additional information on mapping a GRUU to its
corresponding
contact. The user-part of the GRUU contains the instance
ID and
AOR. Assuming that the domain stores registrations in a
database
indexed by the AOR, the proxy processing the GRUU would
look up the
AOR, extract the currently registered contacts, and find
the one
that matches the instance ID encoded in the Request-URI.
The
contact whose instance ID is that instance ID is then
used as the
translated version of the GRUU. Message integrity is
needed to
prevent attacks whereby the server is sent requests with
fake
GRUUs, causing the server to direct requests to any named
URI.
While this approach has many benefits, it has the
drawback of
producing somewhat longer GRUUs because of expansion due
to
the padding and base64 encoding.
[1] National Institute of Standards and Technology,
Specification for the Advanced Encryption Standard
(AES)"
FIPS 197. November 26, 2001.
[2] Housley, R., "Using Advanced Encryption Standard
(AES) Counter
Mode With IPsec Encapsulating Security Payload
(ESP)", RFC 3686,
January 2004.
[3] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC:
Keyed-
Hashing for Message Authentication", RFC 2104,
February
1997.
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-15 21:53:45 |
Eric raised a lot of issues. I've been waiting to see
Jonathan's
response. Meanwhile I'll try to add my opinion about a
couple of them.
Paul
Eric Rescorla wrote:
> Why is it necessary to have GRUUs which are (1)
identifiable
> as GRUUs to peers but (2) can't be translated back to
the AOR
> by the peer?
A use case might help here:
- Bob has an "unlisted" AOR.
- Alice calls Bob. (She knows the AOR.)
- Alice does a transfer,
transferring Charlie to Bob, replacing Alice:Bob call
To do this, Alice sends a REFER to Charlie, with a Refer-To
containing
the contact URI from her dialog with Bob.
Bob doesn't want Charlie to be able to learn his AOR as a
result of
this. If Bob uses a gruu obtained from the registrar for his
AOR, he
doesn't want Charlie to be able to reconstruct the AOR from
it.
Note that the peer (Alice) that first receives this gruu
knows what AOR
it is associated with, because she called it. This
correlation is not
available when the request gets to another peer - Charlie.
> However, forwarding services, such as call
forwarding, SHOULD NOT be
> provided for requests sent to a GRUU. The intent of
the GRUU is to
> target a specific UA instance, and this is
incompatible with
> forwarding operations.
>
> This seems to me to get into policy. Are you saying
that I can't
> have my cell phone forward calls to some other phone
just cause
> people call my cell number rather than my generic
"EKR" AOR?
One intent of a gruu is to identify a specific UA instance.
A service
that ignores that intent will in general be counter
productive.
But this is a gray area, and so it is hard to state a
precise yet
general rule that can be used to decide whether a particular
service
should be applied to a request targeting a gruu. I think all
the draft
can do is sensitize developers to the issue, so that they
think
carefully about it regarding each service.
The target UA itself can also decide to forward if it wants.
But again
it ought to take the intent into account.
Thanks,
Paul
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-15 22:02:13 |
Hmm.. I beg to differ from the "local policy"
argument about forwarding
services and GRUUs.
If a GRUU is generally subject to the same type of routing
as a non-GRUU
URI, then what's the point of having a GRUU? So you can
guess as to what
the heck the proxy is going to do with it? Maybe it'll act
like a
GRUU.... Maybe it won't...
We already have a mechanism for SIP URIs that don't act
like a GRUU,
they're called AORs. If someone wants their requests to
route like an
AOR, then they should return an AOR, and not a GRUU.
Regards,
Brian
> -----Original Message-----
> From: Paul Kyzivat [mailto:pkyzivat cisco.com]
> Sent: Tuesday, August 15, 2006 4:54 PM
> To: Eric Rescorla
> Cc: sip ietf.org
> Subject: Re: [Sip] Comments on draft-ietf-sip-gruu-10
>
> Eric raised a lot of issues. I've been waiting to see
> Jonathan's response. Meanwhile I'll try to add my
opinion
> about a couple of them.
>
> Paul
>
> Eric Rescorla wrote:
>
> > Why is it necessary to have GRUUs which are (1)
> identifiable as GRUUs
> > to peers but (2) can't be translated back to the
AOR by the peer?
>
> A use case might help here:
>
> - Bob has an "unlisted" AOR.
> - Alice calls Bob. (She knows the AOR.)
> - Alice does a transfer,
> transferring Charlie to Bob, replacing Alice:Bob
call
>
> To do this, Alice sends a REFER to Charlie, with a
Refer-To
> containing the contact URI from her dialog with Bob.
>
> Bob doesn't want Charlie to be able to learn his AOR
as a
> result of this. If Bob uses a gruu obtained from the
> registrar for his AOR, he doesn't want Charlie to be
able to
> reconstruct the AOR from it.
>
> Note that the peer (Alice) that first receives this
gruu
> knows what AOR it is associated with, because she
called it.
> This correlation is not available when the request gets
to
> another peer - Charlie.
>
> > However, forwarding services, such as call
forwarding,
> SHOULD NOT be
> > provided for requests sent to a GRUU. The
intent of the
> GRUU is to
> > target a specific UA instance, and this is
incompatible with
> > forwarding operations.
> >
> > This seems to me to get into policy. Are you
saying that I
> can't have
> > my cell phone forward calls to some other phone
just cause
> people call
> > my cell number rather than my generic
"EKR" AOR?
>
> One intent of a gruu is to identify a specific UA
instance. A
> service that ignores that intent will in general be
counter
> productive.
>
> But this is a gray area, and so it is hard to state a
precise
> yet general rule that can be used to decide whether a
> particular service should be applied to a request
targeting a
> gruu. I think all the draft can do is sensitize
developers to
> the issue, so that they think carefully about it
regarding
> each service.
>
> The target UA itself can also decide to forward if it
wants.
> But again it ought to take the intent into account.
>
> Thanks,
> Paul
>
> _______________________________________________
> Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
> This list is for NEW development of the core SIP
Protocol Use
> sip-implementors cs.columbia.edu for questions on current
sip
> Use sipping ietf.org for new developments on the
application of sip
>
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-16 05:03:05 |
Paul Kyzivat wrote:
> Eric raised a lot of issues. I've been waiting to see
Jonathan's
> response. Meanwhile I'll try to add my opinion about a
couple of them.
>
> Paul
>
> Eric Rescorla wrote:
>
>> Why is it necessary to have GRUUs which are (1)
identifiable
>> as GRUUs to peers but (2) can't be translated back
to the AOR
>> by the peer?
>
> A use case might help here:
>
> - Bob has an "unlisted" AOR.
> - Alice calls Bob. (She knows the AOR.)
> - Alice does a transfer,
> transferring Charlie to Bob, replacing Alice:Bob call
>
> To do this, Alice sends a REFER to Charlie, with a
Refer-To containing
> the contact URI from her dialog with Bob.
>
> Bob doesn't want Charlie to be able to learn his AOR
as a result of
> this. If Bob uses a gruu obtained from the registrar
for his AOR, he
> doesn't want Charlie to be able to reconstruct the AOR
from it.
But why does Charlie need to be able to tell that the URI he
has for Bob
is a GRUU? I've been wondering about this since day one,
and nobody
could ever tell me, so I just stopped asking hoping it would
eventually
make sense. Of course, it could just be that I'm being
overly dense but
I still wonder why we need this property.
OTOH "knowing it is a GRUU" precludes some of
the security benefits.
I've always thought that GRUus should just be URIs that
can serve as
contact-specific aliases, but not be "obviously"
aliases.
It's like a few years back when the US congress tried to
make
privately-operated mail delivery boxes have special
"PMB" labels, so
that everybody would know the destination was a drop box and
not a
"real" destination. As a consequence, I
couldn't get package deliveries,
because none of the mail-order computer places would ship to
a "PMB"
(even though there was a paid attendant there to sign for
things, with
better security by far than my rented office-suite in the
office-hotel)
on the assumption that only criminals would try to hide
their "real"
addresses behind a PMB alias.
Will applications (or users) discriminate against GRUUs
since they are
"obviously less traceable than real AORs?" Will
people demand an
"anonymous REFER-target request rejection
service"?
>
> Note that the peer (Alice) that first receives this
gruu knows what AOR
> it is associated with, because she called it. This
correlation is not
> available when the request gets to another peer -
Charlie.
>
>> However, forwarding services, such as call
forwarding, SHOULD NOT be
>> provided for requests sent to a GRUU. The
intent of the GRUU is to
>> target a specific UA instance, and this is
incompatible with
>> forwarding operations.
>>
>> This seems to me to get into policy. Are you saying
that I can't
>> have my cell phone forward calls to some other
phone just cause
>> people call my cell number rather than my generic
"EKR" AOR?
>
> One intent of a gruu is to identify a specific UA
instance. A service
> that ignores that intent will in general be counter
productive.
>
> But this is a gray area, and so it is hard to state a
precise yet
> general rule that can be used to decide whether a
particular service
> should be applied to a request targeting a gruu. I
think all the draft
> can do is sensitize developers to the issue, so that
they think
> carefully about it regarding each service.
Again, I've long suspected we've built a house of cards.
here. Not
enough to justify not building it, but enough to make me
wonder why.
Although I do have real worries that we have more complexity
developing
here (and in the remainder of SIP-land) than we really need.
If a "GRUU" were an aliased URI, and the thing
that it aliases refers to
something that will be expanded by forking or redirection,
then any
service that will break with forking (or expansion by
redirection) will
break when used with that "GRUU". What more do
we need to say than
"Don't use forking or expansion by redirection on
something that really
needs to be a Contact-specific reference, dude!"
Sure, the thing to which a Contact-specific reference is
assigned needs
to know that the reference is Contact-specific. And the
thing assigning
the reference needs to know this too. But does everybody
else? And if
they do, do we need a syntactic way to say that some other
URI (which
might also happen to be an AOR) has the Contact-specific
property (aka
foreknowledge that it will not be forked or recursed) so
that things can
treat it like they would a GRUU?
Will proxy-forwarding on a GRUU work? Yes, it appears to
work in all
cases, provided that the forwarding is to a single
destination such as
another GRUU or any URI that just doesn't expand and
continues to reach
the same destination for as long as that URI is valid.
Will forking of a request that was targeted to a GRUU work?
Probably
not, or at least not without a high probability of a
surprising failure.
More specifically, it seems to me that the GRUU model mixes
up
AOR-specific aliases, contact-specific aliases, and
suppression of
contact forking and expansion in a rather convoluted
fashion. the
current documentation is an amazing piece of work, but it
shouldn't have
had to have been. This should have been much, much easier,
and the fact
that it isn't tells me we went wrong somewhere.
Could we boil things down to a simple ruleset that says
"Start
communications with any AOR.Continue them using a Contact or
Contact-specific alias. Remember that merging two
communications
together (as in a transfer) is a continuation of both
communications, so
use a Contact or Contact-specific aliases there too."
Of course, we also need a way to assign a Contact-specific
alias, which
would seem easy enough to do in a REGISTER response.
So why does this draft need to be 40 pages long?
--
Dean
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-16 05:46:43 |
Dean Willis <dean.willis softarmor.com> writes:
> Paul Kyzivat wrote:
>> Eric raised a lot of issues. I've been waiting to
see Jonathan's
>> response. Meanwhile I'll try to add my opinion
about a couple of
>> them.
>> Paul
>> Eric Rescorla wrote:
>>
>>> Why is it necessary to have GRUUs which are (1)
identifiable
>>> as GRUUs to peers but (2) can't be translated
back to the AOR
>>> by the peer?
>> A use case might help here:
>> - Bob has an "unlisted" AOR.
>> - Alice calls Bob. (She knows the AOR.)
>> - Alice does a transfer,
>> transferring Charlie to Bob, replacing Alice:Bob
call
>> To do this, Alice sends a REFER to Charlie, with a
Refer-To
>> containing the contact URI from her dialog with
Bob.
>> Bob doesn't want Charlie to be able to learn his
AOR as a result of
>> this. If Bob uses a gruu obtained from the
registrar for his AOR, he
>> doesn't want Charlie to be able to reconstruct the
AOR from it.
>
> But why does Charlie need to be able to tell that the
URI he has for
> Bob is a GRUU? I've been wondering about this since
day one, and
> nobody could ever tell me, so I just stopped asking
hoping it would
> eventually make sense. Of course, it could just be that
I'm being
> overly dense but I still wonder why we need this
property.
This is the question I meant to be asking as well...
-Ekr
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-16 12:59:13 |
Dean Willis wrote:
> Paul Kyzivat wrote:
>> Eric raised a lot of issues. I've been waiting to
see Jonathan's
>> response. Meanwhile I'll try to add my opinion
about a couple of them.
>>
>> Paul
>>
>> Eric Rescorla wrote:
>>
>>> Why is it necessary to have GRUUs which are (1)
identifiable
>>> as GRUUs to peers but (2) can't be translated
back to the AOR
>>> by the peer?
>>
>> A use case might help here:
>>
>> - Bob has an "unlisted" AOR.
>> - Alice calls Bob. (She knows the AOR.)
>> - Alice does a transfer,
>> transferring Charlie to Bob, replacing Alice:Bob
call
>>
>> To do this, Alice sends a REFER to Charlie, with a
Refer-To containing
>> the contact URI from her dialog with Bob.
>>
>> Bob doesn't want Charlie to be able to learn his
AOR as a result of
>> this. If Bob uses a gruu obtained from the
registrar for his AOR, he
>> doesn't want Charlie to be able to reconstruct the
AOR from it.
>
> But why does Charlie need to be able to tell that the
URI he has for Bob
> is a GRUU? I've been wondering about this since day
one, and nobody
> could ever tell me, so I just stopped asking hoping it
would eventually
> make sense. Of course, it could just be that I'm being
overly dense but
> I still wonder why we need this property.
In this particular scenario, it isn't Charlie that needs to
know the URI
is a gruu - its Alice that needs to know. Alice is trying to
figure out
how to do the transfer:
- if it is a gruu, then she will do the REFER with a
Refer-To
containing the gruu.
- if it isn't marked as a gruu, she will have to conclude
it might not
be reachable by Alice, and have to try plan B. A likely
thing to try
is to use the To-URI from here dialog with Bob in the
Refer-To.
This has some chance of working, but also many ways in
which it might
fail. For instance:
she might not be talking to Bob. When she called bob he
might
have been busy, and the call then might have been
forwarded to
Dave. But Bob may no longer be busy. In that case the
referred
call from Charlie won't reach Bob.
Paul
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-16 13:08:55 |
Brian Stucker wrote:
> Hmm.. I beg to differ from the "local
policy" argument about forwarding
> services and GRUUs.
>
> If a GRUU is generally subject to the same type of
routing as a non-GRUU
> URI, then what's the point of having a GRUU? So you
can guess as to what
> the heck the proxy is going to do with it? Maybe it'll
act like a
> GRUU.... Maybe it won't...
I would prefer not to leave it so vague. But I don't know
what else we
can do unless we go into the business of defining services.
Its not that we want gruus to be treated the same as AORs.
Its just that
when you start to look at real services you discover that
some of them
are applicable to gruus and some are not. When we aren't
defining the
services, we must leave it to those who are to decide for
each service
whether it applies to gruus or not.
The ones identified so far that seem applicable are the ones
that
perform authorization. It should still be possible to refuse
a caller
from reaching the target of the gruu.
Paul
> We already have a mechanism for SIP URIs that don't
act like a GRUU,
> they're called AORs. If someone wants their requests
to route like an
> AOR, then they should return an AOR, and not a GRUU.
>
> Regards,
> Brian
>
>> -----Original Message-----
>> From: Paul Kyzivat [mailto:pkyzivat cisco.com]
>> Sent: Tuesday, August 15, 2006 4:54 PM
>> To: Eric Rescorla
>> Cc: sip ietf.org
>> Subject: Re: [Sip] Comments on
draft-ietf-sip-gruu-10
>>
>> Eric raised a lot of issues. I've been waiting to
see
>> Jonathan's response. Meanwhile I'll try to add my
opinion
>> about a couple of them.
>>
>> Paul
>>
>> Eric Rescorla wrote:
>>
>>> Why is it necessary to have GRUUs which are (1)
>> identifiable as GRUUs
>>> to peers but (2) can't be translated back to
the AOR by the peer?
>> A use case might help here:
>>
>> - Bob has an "unlisted" AOR.
>> - Alice calls Bob. (She knows the AOR.)
>> - Alice does a transfer,
>> transferring Charlie to Bob, replacing Alice:Bob
call
>>
>> To do this, Alice sends a REFER to Charlie, with a
Refer-To
>> containing the contact URI from her dialog with
Bob.
>>
>> Bob doesn't want Charlie to be able to learn his
AOR as a
>> result of this. If Bob uses a gruu obtained from
the
>> registrar for his AOR, he doesn't want Charlie to
be able to
>> reconstruct the AOR from it.
>>
>> Note that the peer (Alice) that first receives this
gruu
>> knows what AOR it is associated with, because she
called it.
>> This correlation is not available when the request
gets to
>> another peer - Charlie.
>>
>>> However, forwarding services, such as call
forwarding,
>> SHOULD NOT be
>>> provided for requests sent to a GRUU. The
intent of the
>> GRUU is to
>>> target a specific UA instance, and this is
incompatible with
>>> forwarding operations.
>>>
>>> This seems to me to get into policy. Are you
saying that I
>> can't have
>>> my cell phone forward calls to some other phone
just cause
>> people call
>>> my cell number rather than my generic
"EKR" AOR?
>> One intent of a gruu is to identify a specific UA
instance. A
>> service that ignores that intent will in general be
counter
>> productive.
>>
>> But this is a gray area, and so it is hard to state
a precise
>> yet general rule that can be used to decide whether
a
>> particular service should be applied to a request
targeting a
>> gruu. I think all the draft can do is sensitize
developers to
>> the issue, so that they think carefully about it
regarding
>> each service.
>>
>> The target UA itself can also decide to forward if
it wants.
>> But again it ought to take the intent into account.
>>
>> Thanks,
>> Paul
>>
>> _______________________________________________
>> Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
>> This list is for NEW development of the core SIP
Protocol Use
>> sip-implementors cs.columbia.edu for
questions on current sip
>> Use sipping ietf.org for new developments on the
application of sip
>>
>
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-16 07:21:00 |
I'll reply to Eric's comments individually asap, but one
quick response
below:
Eric Rescorla wrote:
>>But why does Charlie need to be able to tell that
the URI he has for
>>Bob is a GRUU? I've been wondering about this since
day one, and
>>nobody could ever tell me, so I just stopped asking
hoping it would
>>eventually make sense. Of course, it could just be
that I'm being
>>overly dense but I still wonder why we need this
property.
>
>
> This is the question I meant to be asking as well...
The reason you need to be able to tell that the URI is a
gruu, is that
if its not a gruu, you may need to try something else to
reach that
instance. The specific use case that has come up is
transfer. So if A is
talking to B, and B provided a GRUU to A, then if A wants to
transfer C
to B, A can send a REFER to C with Refer-To being that GRUU.
But if the
Contact wasn't a gruu, it may have to play various tricks
people have
baked up, like using the AOR (possibly the To of the
original INVITE
from A to B) along with caller preferences.
-Jonathan R.
--
Jonathan D. Rosenberg, Ph.D. 600 Lanidex
Plaza
Cisco Fellow Parsippany,
NJ 07054-2711
Cisco Systems
jdrosen cisco.com FAX: (973)
952-5050
http://www.jdrosen.net
PHONE: (973) 952-5000
http://www.cisco.com
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-18 22:01:08 |
I don't view it as being in the business of defining
services, but the
business of defining interoperability. I believe that is in
scope of the
IETF.
What I'm concerned about is that a proxy is going to take
license with
the operation of the protocol. If there's a legitimate case
for having a
GRUU route to an alternate destination (which I think there
likely is,
ie. voicemail) and there needs to be a way of preventing
that so an
application can tell the proxy that it should strictly route
to the GRUU
address and nowhere else (which I think there likely is a
need) then we
should specify the mechanism by which this can be done, and
not the
application.
It would be a shame to wind up with
"loose-routing" GRUUs after the
fact.
Regards,
Brian
> -----Original Message-----
> From: Paul Kyzivat [mailto:pkyzivat cisco.com]
> Sent: Wednesday, August 16, 2006 8:09 AM
> To: Stucker, Brian (RICH1:B620)
> Cc: Eric Rescorla; sip ietf.org
> Subject: Re: [Sip] Comments on draft-ietf-sip-gruu-10
>
>
>
> Brian Stucker wrote:
> > Hmm.. I beg to differ from the "local
policy" argument about
> > forwarding services and GRUUs.
> >
> > If a GRUU is generally subject to the same type of
routing as a
> > non-GRUU URI, then what's the point of having a
GRUU? So
> you can guess
> > as to what the heck the proxy is going to do with
it? Maybe
> it'll act
> > like a GRUU.... Maybe it won't...
>
> I would prefer not to leave it so vague. But I don't
know
> what else we can do unless we go into the business of
> defining services.
>
> Its not that we want gruus to be treated the same as
AORs.
> Its just that when you start to look at real services
you
> discover that some of them are applicable to gruus and
some
> are not. When we aren't defining the services, we must
leave
> it to those who are to decide for each service whether
it
> applies to gruus or not.
>
> The ones identified so far that seem applicable are the
ones
> that perform authorization. It should still be possible
to
> refuse a caller from reaching the target of the gruu.
>
> Paul
>
> > We already have a mechanism for SIP URIs that
don't act
> like a GRUU,
> > they're called AORs. If someone wants their
requests to
> route like an
> > AOR, then they should return an AOR, and not a
GRUU.
> >
> > Regards,
> > Brian
> >
> >> -----Original Message-----
> >> From: Paul Kyzivat [mailto:pkyzivat cisco.com]
> >> Sent: Tuesday, August 15, 2006 4:54 PM
> >> To: Eric Rescorla
> >> Cc: sip ietf.org
> >> Subject: Re: [Sip] Comments on
draft-ietf-sip-gruu-10
> >>
> >> Eric raised a lot of issues. I've been
waiting to see Jonathan's
> >> response. Meanwhile I'll try to add my
opinion about a couple of
> >> them.
> >>
> >> Paul
> >>
> >> Eric Rescorla wrote:
> >>
> >>> Why is it necessary to have GRUUs which
are (1)
> >> identifiable as GRUUs
> >>> to peers but (2) can't be translated back
to the AOR by the peer?
> >> A use case might help here:
> >>
> >> - Bob has an "unlisted" AOR.
> >> - Alice calls Bob. (She knows the AOR.)
> >> - Alice does a transfer,
> >> transferring Charlie to Bob, replacing
Alice:Bob call
> >>
> >> To do this, Alice sends a REFER to Charlie,
with a Refer-To
> >> containing the contact URI from her dialog
with Bob.
> >>
> >> Bob doesn't want Charlie to be able to learn
his AOR as a
> result of
> >> this. If Bob uses a gruu obtained from the
registrar for
> his AOR, he
> >> doesn't want Charlie to be able to
reconstruct the AOR from it.
> >>
> >> Note that the peer (Alice) that first receives
this gruu
> knows what
> >> AOR it is associated with, because she called
it.
> >> This correlation is not available when the
request gets to another
> >> peer - Charlie.
> >>
> >>> However, forwarding services, such as
call forwarding,
> >> SHOULD NOT be
> >>> provided for requests sent to a GRUU.
The intent of the
> >> GRUU is to
> >>> target a specific UA instance, and this
is incompatible with
> >>> forwarding operations.
> >>>
> >>> This seems to me to get into policy. Are
you saying that I
> >> can't have
> >>> my cell phone forward calls to some other
phone just cause
> >> people call
> >>> my cell number rather than my generic
"EKR" AOR?
> >> One intent of a gruu is to identify a specific
UA
> instance. A service
> >> that ignores that intent will in general be
counter productive.
> >>
> >> But this is a gray area, and so it is hard to
state a precise yet
> >> general rule that can be used to decide
whether a
> particular service
> >> should be applied to a request targeting a
gruu. I think all the
> >> draft can do is sensitize developers to the
issue, so that
> they think
> >> carefully about it regarding each service.
> >>
> >> The target UA itself can also decide to
forward if it wants.
> >> But again it ought to take the intent into
account.
> >>
> >> Thanks,
> >> Paul
> >>
> >>
_______________________________________________
> >> Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
> >> This list is for NEW development of the core
SIP Protocol Use
> >> sip-implementors cs.columbia.edu for
questions on current sip Use
> >> sipping ietf.org for new developments on the
application of sip
> >>
> >
>
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
| Comments on draft-ietf-sip-gruu-10 |

|
2006-08-21 12:55:26 |
Brian Stucker wrote:
> I don't view it as being in the business of defining
services, but the
> business of defining interoperability. I believe that
is in scope of the
> IETF.
>
> What I'm concerned about is that a proxy is going to
take license with
> the operation of the protocol. If there's a legitimate
case for having a
> GRUU route to an alternate destination (which I think
there likely is,
> ie. voicemail)
This already highlights the issue. IMO voicemail is *not* a
legitimate
case for having a gruu route to an alternate destination. At
least not
unless it was routed all the way to the UA, and then the UA
chose to
redirect it to VM.
The cases I consider legit are when the caller is not going
to be
permitted access to the target at all. In that case I think
it
preferable to simply return an error. But I wouldn't fight
too hard if
somebody decided to forward to an announcement server in
that case.
> and there needs to be a way of preventing that so an
> application can tell the proxy that it should strictly
route to the GRUU
> address and nowhere else
I think the use of a gruu is already saying this as strongly
as it makes
sense to say anything. It is stating the caller's desires.
> (which I think there likely is a need) then we
> should specify the mechanism by which this can be done,
and not the
> application.
I guess the callerprefs Request-Disposition header could be
used to
further say this. But there is still nothing to prevent a
proxy for
ignoring that as well. The fact is that callee policy will
always trump
caller policy in this regard.
Paul
> It would be a shame to wind up with
"loose-routing" GRUUs after the
> fact.
>
> Regards,
> Brian
>
>
>> -----Original Message-----
>> From: Paul Kyzivat [mailto:pkyzivat cisco.com]
>> Sent: Wednesday, August 16, 2006 8:09 AM
>> To: Stucker, Brian (RICH1:B620)
>> Cc: Eric Rescorla; sip ietf.org
>> Subject: Re: [Sip] Comments on
draft-ietf-sip-gruu-10
>>
>>
>>
>> Brian Stucker wrote:
>>> Hmm.. I beg to differ from the "local
policy" argument about
>>> forwarding services and GRUUs.
>>>
>>> If a GRUU is generally subject to the same type
of routing as a
>>> non-GRUU URI, then what's the point of having
a GRUU? So
>> you can guess
>>> as to what the heck the proxy is going to do
with it? Maybe
>> it'll act
>>> like a GRUU.... Maybe it won't...
>> I would prefer not to leave it so vague. But I
don't know
>> what else we can do unless we go into the business
of
>> defining services.
>>
>> Its not that we want gruus to be treated the same
as AORs.
>> Its just that when you start to look at real
services you
>> discover that some of them are applicable to gruus
and some
>> are not. When we aren't defining the services, we
must leave
>> it to those who are to decide for each service
whether it
>> applies to gruus or not.
>>
>> The ones identified so far that seem applicable are
the ones
>> that perform authorization. It should still be
possible to
>> refuse a caller from reaching the target of the
gruu.
>>
>> Paul
>>
>>> We already have a mechanism for SIP URIs that
don't act
>> like a GRUU,
>>> they're called AORs. If someone wants their
requests to
>> route like an
>>> AOR, then they should return an AOR, and not a
GRUU.
>>>
>>> Regards,
>>> Brian
>>>
>>>> -----Original Message-----
>>>> From: Paul Kyzivat [mailto:pkyzivat cisco.com]
>>>> Sent: Tuesday, August 15, 2006 4:54 PM
>>>> To: Eric Rescorla
>>>> Cc: sip ietf.org
>>>> Subject: Re: [Sip] Comments on
draft-ietf-sip-gruu-10
>>>>
>>>> Eric raised a lot of issues. I've been
waiting to see Jonathan's
>>>> response. Meanwhile I'll try to add my
opinion about a couple of
>>>> them.
>>>>
>>>> Paul
>>>>
>>>> Eric Rescorla wrote:
>>>>
>>>>> Why is it necessary to have GRUUs which
are (1)
>>>> identifiable as GRUUs
>>>>> to peers but (2) can't be translated
back to the AOR by the peer?
>>>> A use case might help here:
>>>>
>>>> - Bob has an "unlisted" AOR.
>>>> - Alice calls Bob. (She knows the AOR.)
>>>> - Alice does a transfer,
>>>> transferring Charlie to Bob, replacing
Alice:Bob call
>>>>
>>>> To do this, Alice sends a REFER to Charlie,
with a Refer-To
>>>> containing the contact URI from her dialog
with Bob.
>>>>
>>>> Bob doesn't want Charlie to be able to
learn his AOR as a
>> result of
>>>> this. If Bob uses a gruu obtained from the
registrar for
>> his AOR, he
>>>> doesn't want Charlie to be able to
reconstruct the AOR from it.
>>>>
>>>> Note that the peer (Alice) that first
receives this gruu
>> knows what
>>>> AOR it is associated with, because she
called it.
>>>> This correlation is not available when the
request gets to another
>>>> peer - Charlie.
>>>>
>>>>> However, forwarding services, such
as call forwarding,
>>>> SHOULD NOT be
>>>>> provided for requests sent to a
GRUU. The intent of the
>>>> GRUU is to
>>>>> target a specific UA instance, and
this is incompatible with
>>>>> forwarding operations.
>>>>>
>>>>> This seems to me to get into policy.
Are you saying that I
>>>> can't have
>>>>> my cell phone forward calls to some
other phone just cause
>>>> people call
>>>>> my cell number rather than my generic
"EKR" AOR?
>>>> One intent of a gruu is to identify a
specific UA
>> instance. A service
>>>> that ignores that intent will in general be
counter productive.
>>>>
>>>> But this is a gray area, and so it is hard
to state a precise yet
>>>> general rule that can be used to decide
whether a
>> particular service
>>>> should be applied to a request targeting a
gruu. I think all the
>>>> draft can do is sensitize developers to the
issue, so that
>> they think
>>>> carefully about it regarding each service.
>>>>
>>>> The target UA itself can also decide to
forward if it wants.
>>>> But again it ought to take the intent into
account.
>>>>
>>>> Thanks,
>>>> Paul
>>>>
>>>>
_______________________________________________
>>>> Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
>>>> This list is for NEW development of the
core SIP Protocol Use
>>>> sip-implementors cs.columbia.edu for
questions on current sip Use
>>>> sipping ietf.org for new
developments on the application of sip
>>>>
>
_______________________________________________
Sip mailing list https://ww
w1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors cs.columbia.edu for questions on current
sip
Use sipping ietf.org for new developments on the application of
sip
|
|
[1-10]
|
|