Title: GRUU Mechanism
1GRUU Mechanism
2Status
- Draft-rosenberg-sipping-gruu-reqs-01 defines the
problem - Draft-rosenberg-sip-gruu submitted with proposed
solution - Needed for
- App interaction
- Consultative transfer
- Presence
3Mechanism Summary
- Obtaining a GRUU
- REGISTER request has Supported gruu
- Each Contact in the response has a gruu parameter
with GRUU - Using a GRUU
- Place into Contact URI of INVITE/200
- Include Supported gruu
Registrar
REGISTER Supported gruu
200 OK Contact Sipa_at_b gruuc_at_d
4Open Issues
- GRUU lifecycle definition
- Dialog reuse
- Locally generated GRUU
5GRUU Lifecycle Management
- Can GRUU change during a registration? N
- What happens if gruu parameter is placed in REG
request? ignored - What happens if registrar changes gruu in
response? not allowed - Implication registrar has to remember gruu for
lifetime of registration - Can be different across different registrations
of the same contact - GRUU is not randomized across transactions
privacy implications?
6Dialog Reuse
- GRUU can allow us to eliminate dialog reuse
- Many problems with it
- Underspecified in RFC3261
- Bad idea
- Do we have GRUU spec say that you should not do
dialog reuse if your peer supports GRUU? - Will need to fix REFER for that to work or except
REFER - Or do we live with the mistake?
7Locally Generated GRUU
- Putting a GRUU in the Contact will end direct
signaling - A UA can try to generate its own local GRUU and
use that - But how does it know that it is reachable at that
GRUU? - Proposed solution ICE
8ICE Approach
Proxy
INVITE Contact sipa_at_domain altsipa_at_ip-addr
Callee
Caller
9ICE Approach
Proxy Doesnt RR
Proxy
INVITE Contact sipa_at_domain altsipa_at_ip-addr
Callee
Caller
10ICE Approach
Proxy
200 OK Contact sipb_at_domain altsipb_at_ip-addr2
Callee
Caller
11ICE Approach
Proxy
200 OK Contact sipb_at_domain altsipb_at_ip-addr2
Callee
Caller
12ICE Approach
Proxy
Callee
Caller
OPTIONS b_at_ip-addr2
13ICE Approach
Proxy
B knows that A was able to Reach him
_at_ip-addr2 So he can now Re-invite to update
Contact
Callee
Caller
200 OK
14ICE Approach
Proxy
INVITE Contact sipb_at_ipaddr2
Callee
Caller
15ICE Approach
Proxy
INVITE Contact sipb_at_ipaddr2
Callee
Caller
16ICE Approach
Proxy
200 OK Contact sipa_at_domain sipa_at_ip-addr
Callee
Caller
17ICE Approach
Proxy
200 OK Contact sipa_at_domain sipa_at_ip-addr
Callee
Caller
18ICE Approach
Proxy
Callee
Caller
OPTIONS a_at_ip-addr
19ICE Approach
Proxy
Callee
Caller
200 OK
20Caveats
- A and B both have to OPTIONS separately
- Connectivity must be tested in each direction
- OPTIONS is not on the same dialog as INVITE
- Need to have randomization on OPTIONS to avoid
glare - Doesnt work if a proxy record-routed INVITE
- Connectivity check would need to be from
outermost proxy to UA no easy way to do this - Source routing would reuse dialog route headers
not allowed
21Proposal
- Add this as an optional mechanism to the draft
- Recommend that this is the ONLY way you can use
locally generated GRUU