35
Jonathan Rosenberg dynamicsoft

Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Embed Size (px)

Citation preview

Page 1: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Jonathan Rosenberg

dynamicsoft

Page 2: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Problem Statement

• We still don’t have a good answer for NAT traversal in SIP!!

• That is clear from nat-scenarios– Tons of cases– Best solution in each case depends on network

topology, business issues, etc.

• Lots of components– STUN, TURN, MIDCOM, RSIP, etc.

• How can we expect interop or reliability?

Page 3: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Solution: Interactive Connectivity Establishment (ICE)

• ICE is a methodology for NAT traversal– Makes use of STUN, TURN, RSIP, MIDCOM– Entirely resident within the clients

• ICE explains how to use the other protocols for NAT traversal• ICE Properties

– Always will find a means for communicating if one physically exists– Always finds the lowest latency communications path– Always finds the communication path cheapest for the service

provider– Does not require any knowledge of topology, NAT types, or anything

Page 4: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Basic ICE Algorithm

• Client obtains addresses– Local interfaces– UNSAF protocols– VPNs

• Client lists all of them in an offer• Answerer tests connectivity to each of those

– Connectivity test uses peer-to-peer STUN

• Connectivity test may yield more addresses• Answer provides all its addresses (local interfaces, UNSAF, VPNs +

STUN derived addresses)• Offer performs the same connectivity check• Highest priority address is used• May require several iterations

Page 5: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Example Hard Case

• A calls B

• STUN address won’t work

• TURN address works– But uses a relay

• ICE would send media directly from A to B– Uses an address obtained

from the STUN server running in B

NAT

NAT

STUN TURN

PrivateNet 1

PrivateNet 2

Internet

A

B

Page 6: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

ICE Drawbacks

• Requires both sides to support it– If not, falls back to what we have now

• MAY require an extra RTT in call setup– Port restricted NATs on both sides

• Requires muxing STUN and media on same port– Ugly but works

• Requires definition of SDP attributes– “Alternate” semantics for a c line– STUN attributes

Page 7: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Proposed Plan

• Deprecate current nat-scenarios• Replace with the procedures defined in ICE• Specify needed SDP attributes in mmusic• Specify preconditions in SIP

– Phone doesn’t ring unless both sides can hear each other

• Benefit:– A single mechanism that handles all NAT cases

cheaply

Page 8: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Caller Preferences Use Cases

Jonathan Rosenberg

dynamicsoft

Page 9: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Problem Statement

• Not clear what problems caller preferences is trying to solve

• Not clear how to properly use caller preferences

• Not clear how to properly implement algorithms in a proxy

• Not clear what services are enabled by caller preferences

Page 10: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Solution: Use Cases

• Defines a set of use cases for caller prefs– Formatted in problem/solution pattern

• Examples:– How to route a call to voicemail directly– How to reach a videophone first, voice-only phone second– How to force a call to reach a person, not a machine

• Will also provide explanation on how to implement proxy algorithms

• Will provide explanation on how to set various attributes

Page 11: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Scope

• Use cases are driving requirements into caller preferences mechanism

• Limit scope to things that can be done with caller preferences today

Page 12: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Proposal

• SIPPING should adopt caller preferences use cases as a work item for Informational RFC– Perhaps BCP?

Page 13: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

URI Leasing

Jonathan Rosenberg

dynamicsoft

Page 14: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Problem Statement

• Many uses of SIP require a call to be routed to a specific UA instance– Attended call transfer

– Ad-hoc conferences

– Presence

• Would also like an alternative to dialog sharing!– Has many problems

– Rather have a separate request which can route to the same UA instance

Page 15: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Globally Routable UA URI (GRUU)

• Routable from anywhere

• Routes to a specific UA instance

• May be temporally scoped

Page 16: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Alternatives for getting a GRUU• Use user AOR

– Clearly doesn’t work

• Use device IP address as URI– Not reachable from everywhere – firewalls, NATs, policy, etc.

• Caller Preferences– A-C:*;uri-domain=<IP of device>– Doesn’t always work – call centers

• Embedded Route Headers– Not allowed in Contact URI– Long term loose routes have reliability problems– Route may only work from certain places

Page 17: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Proposal: URI Leasing

• Provide a mechanism for a UA to obtain an infinite supply of URIs– Each URI routes to the same device instance

– URI is constructed by the owner of the domain

– URI is “leased” – URIs become invalid if not refreshed

• Important Characteristics– Owner of domain constructs URI as they wish!

– Infinite supply means that UA need not obtain a new lease for each call

Page 18: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Constructing a URI

• Approach I: Stateful– Domain provider pushes state into proxies for each URI

• Approach II: Embedded info– User part of URI contains embedded info:

• Sip:E[username,device-IP,HMAC]@example.com

– Much like embedded Route headers, BUT has none of the problems

• Other approaches are possible

Page 19: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Leasing Mechanism Requirements

• Be possible to obtain a GRUU

• Can specify time of lease

• Domain provider can negotiate lease time

• Domain provider can specify format of URI

• When URI expires response is 404

• Must not incur provisioning overhead

• Can be done statelessly• Can provide anonymity

– Call centers

• Features can be associated with a GRUU like any other AOR

• Can obtain infinite number of URIs without protocol operations

• Authentication, integrity

Page 20: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Proposal

• Work on a URI leasing mechanism to meet the needs of– Transfer– Presence– Replacement for dialog sharing

Page 21: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Session Policy Requirements

Jonathan Rosenberg

dynamicsoft

Page 22: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

History

• Initially, proxies do routing and signaling services, no say on the sessions and their parameters

• However, experience shows that there is increasing need for proxies to impact sessions:– NAT/FW traversal

– Codec grooming

• Principal technique for this to date is SDP modification

Page 23: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Problems with SDP Modification

• Fails in the presence of e2e encryption• May cause integrity checks to fail when used with e2e

authentication• Requires proxies to have knowledge of session

descriptions• Proxies have to pay attention to Require• Proxy complexity significantly increases – scale

concerns• Introduces new points of failure• CONSENT

Page 24: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Consent

• IMPORTANT: Robust networks are based on a contract between the client and network– Network does what its asked, no more, no less

• Contract violations means that applications will eventually fail– Example: NATs– Example: SDP rewriting– Example: OPES

• These failures will be nearly impossible to trace

Page 25: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Better Solution: 488

• Client sends INVITE w. SDP• Network rejects with 488 and provides allowed codecs

and media types• Benefits:

– User explicitly knows what has happened

• Drawbacks:– Increases call setup time, significant for multi-hops– Only useful for codec and media stream grooming– Client still doesn’t know that it’s the NETWORK that has the

constraints– Still doesn’t work with e2e encryption (authentication OK)

Page 26: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Requirements for Ideal Solution

• Works w. e2e authentication and encryption• Allows RFC3261 compliant proxies (I.e., no spec

violations)• Small processing load• Session Description Format agnostic (SDP, SDPng)• Minimal to zero increase in call setup delays• Minimal protocol overhead (wireless!)• Support new policy types• Works inter-domain

Page 27: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Requirements for Ideal Solution• Each proxy can assert an independent policy• Policies can be per-media stream and in each direction• Allows insertion of media intermediaries• Allows specification of source routing (probably useless for

RTP)• Intermediaries through FQDN or IP• Can bar media streams by type (no video)• Can bar specific codecs• Can ask the UA to perform QoS reservation• Can ask UA to provide specific credential in QoS

reservation (RFC 3313 alternative)

Page 28: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Consent Requirements

• UAC and UAS both know what proxies want

• UAC and UAS can reject policies

• Proxies can know whether UAC/UAS accepts or rejects

• Proxies can inform UAC/UAS of implications of non-compliance (needed?)

Page 29: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Security Requirements

• UAs can verify the identities of proxies who made policy requests

• Integrity protection on policy requirements• UA can have a guarantee of policy setting

by on-path elements• Confidentiality of policy requests (hope not)• No new DoS attacks• Don’t interfere with RTP security

Page 30: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Proposed Information Flow

UAC P1 P2 UAS

INV [Info Obj] INV [Info Obj+ S->C Pol Obj] INV [Info Obj

+ 2 S->C Pol Obj]

200 [Info Obj +S->C Pol Objs]

200 [Info Obj +S->C Pol Objs+ C->S Pol Obj]

200 [Info Obj +S->C Pol Objs+ 2 C->S Pol Obj]

ACK [2 C->S PolObj]

ACK [2 C->S Pol Obj]

ACK [2 C->S Pol Obj]

Page 31: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Open Issues

• Which session policy parameters require dynamic negotiation during a call?– Can allowed codecs be determined out-of-

band?

• From 3gpp/ietf workshop, 3gpp is expecting activity here– Is IETF interested?

Page 32: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

App Interaction Design Team

Jonathan Rosenberg

dynamicsoft

Page 33: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Summary

• Current I-Ds– Draft-rosenberg-sipping-app-interaction-

framework-00– Draft-culpepper-sipping-app-interact-reqs-03

[refreshed]– Draft-jennings-sip-app-info-00– Draft-burger-sipping-kpml [refreshed]

• Little activity since last meeting

Page 34: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

List Issues on KPML

• How are notifications done with SIP?– Are they one shot, or can you get another document (and if

so, should you be using HTTP)– Is this an implicit subscription?– How to handle proxy-based applications

• Bigger issue:– Does anything BUT one-shots make sense for KPML?– Can rule other usages out of scope…

• Digit suppression – don’t send subsequent digits in the media stream if they match a pattern

• Proposal: Do this only if one pattern can possibly match

Page 35: Jonathan Rosenberg dynamicsoft. Problem Statement We still don’t have a good answer for NAT traversal in SIP!! That is clear from nat-scenarios –Tons

Continuing Issues

• Framework scope and complexity?

• Supporting immediate barge functionality in KPML?

• Lifecycle management of UI components