Skip to main content

Module gruu

Module gruu 

Source
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_uri was sent to gruu (§4.5).
gr_value
The value of the gr parameter, when it has one.
is_gruu
Whether this URI is a GRUU (§4.5).