Expand description
GRUUs: obtaining them from a registrar, and choosing which one to use (RFC 5627).
A registration says “this user is reachable here”. A GRUU says “this device is reachable here”, which is a different claim and the one a transfer, a conference invitation or a callback needs: an address of record resolves to every phone the user has registered, and a request routed to all of them is not a request routed back to the one that was talking.
sipx obtains and uses GRUUs. Minting them is §5’s registrar behaviour and is not here — sipx is not a registrar, and the two halves share nothing but the wire format.
Three things are worth knowing before reading on:
- The instance ID is the same one Outbound registers with. §4.1 identifies the instance
with the
+sip.instancemedia feature tag that RFC 5626 §4.1 also defines. Two mechanisms, one identity —Registrationholds it in a single field so that they cannot come to hold two, which is a fault that only appears under a registrar that correlates them. - The two GRUUs are not interchangeable. See
Kind. Substituting one for the other silently is the failure this module goes out of its way not to have. - Recognising one needs more than URI equality. §5.4: “A public GRUU will always be
equivalent to the AOR based on URI equality rules.” The comparison that does not make that
mistake is [
sipx_sip::gruu::addressed_to].
Structs§
- Gruus
- The GRUUs a registrar issued for one instance’s binding (§4.2, §5.2).
Enums§
- Kind
- Which of the two GRUUs a UA puts in a
Contact(§4.4).
Constants§
- OPTION_
TAG - The option tag a UA offers to ask for a GRUU.