Expand description
GRUUs — Globally Routable User Agent URIs (RFC 5627), at the URI level.
A GRUU is an ordinary SIP URI with one extra URI parameter. §4.5: “A GRUU is identified by the presence of the ‘gr’ URI parameter, and this URI parameter might or might not have a value.” Nothing here takes one apart beyond that, because §4.2 requires a UA to treat the user and host parts as it received them.
What is here is a comparison, and it exists because RFC 3261’s is the wrong one for this
job. §5.4 states it plainly: “A public GRUU will always be equivalent to the AOR based on
URI equality rules”, the reason being that §19.1.4 ignores a URI parameter that appears in
only one of the two URIs. So a UA deciding “was this request sent to my GRUU?” with
Uri::equivalent alone would say yes to a request addressed at the plain address of
record — and the address of record names every device the user has registered, which is
exactly the set a GRUU exists to narrow down to one.
Obtaining and using GRUUs is a registration concern and lives in sipx-ua; minting them is
a registrar’s job (§5), and sipx is not a registrar.
Constants§
- GR_
PARAM - The URI parameter that makes a URI a GRUU.
Functions§
- addressed_
to - Whether a request whose Request-URI is
request_uriwas sent togruu(§4.5). - gr_
value - The value of the
grparameter, when it has one. - is_gruu
- Whether this URI is a GRUU (§4.5).