Presentation Transcript
Slide1: The new bis
Why rewrite the specification?: Why rewrite the specification? IESG said so
RFC2543 was never the model of clarity to begin with
Bis got worse with micro-editing
Symptoms
Repitition of material in many places
No overview of operations
Structure not obvious
Decision made at August IETF to move forward full steam with a rewrite
Goal: Preserve bis-04 normative content
How was it done?: How was it done? Recruited a bis rewrite team
Jonathan, Henning editors
Added four co-authors to help write
Gonzalo Camarillo (Ericsson)
Jon Peterson (Neustar)
Alan Johnston (Worldcom)
Robert Sparks (dynamicsoft)
Coaching from Dean Willis, Brian Rosen
Project Management from Rakesh Shah
Technical writing from Jean Mahoney
Jonathan prepared new outline and defines mapping of existing text to new outline (early Sep.)
Sections assigned to each writer
How was it done?: How was it done? Iterative approach utilizing bugzilla and cvs
First rewrite of each section done mid-September
Several cycles of cross section review and revision
Detailed verification of preservation of MUST/MAY/SHOULD
Brutally painful!
Deviations captured in changes section
bis-05 complete and submitted 10/26/01
New Structure: New Structure Semantically oriented
Present SIP as a layered protocol
Message layer
Transport layer
Transaction layer
Transaction users
Message layer
Self explanatory – message formats
Transport layer
Manages persistent connections
Listens for requests and responses
Via rules for sending responses, inserting received param
New Structure: New Structure Transaction Layer
Reliability
Request/Response Matching
ACK generation for non-INVITE
Transaction Users
Manage dialog/session semantics
INVITE-200
Outline: Outline Intro
Overview of Functionality
Terminology
Overview of Operation
Structure of the Protocol
Definitions
SIP Messages
General UA Behavior
Canceling Requests
Registrations
Querying for Capabilities Dialogs
Initiating a Session
Modifying a Session
Terminating a Session
Proxy Behavior
Transactions
Transport
Security
Common Message Components
Headers
Response Codes
SRV
Examples
BNF
Transport Layer Changes: Transport Layer Changes ACK-200 is officially a different transaction
ACK non-200 is part of the transaction
Same EXACT transaction machine for proxies and UA
Handling for INVITE 2xx response *NOT* part of the transaction layer!!
UA state machinery retransmits 2xx and ACK
Allows transaction machines to die instantly when 2xx received
Transitions based on timeouts, not # of retransmits, to unify machine between UDP, TCP
More aggressive transaction timeouts defined for TCP
Proper RTT estimation defined
Actual diagrams for non-INVITE transactions included
INVITE Client FSM: INVITE Client FSM
|INVITE from TU
Timer A fires |INVITE sent
Reset A, V Timer B fires
INVITE sent +-----------+ t.o. to TU
+---------| |---------------+
| | Calling | |
+-------->| |-------------->|
+-----------+ 2xx |
300-699 | | 2xx to TU |
ACK sent | |1xx |
+---------------+ |1xx to TU |
| | |
| 1xx V Timer C fires |
| 1xx to TU -----------+ t.o. to TU |
| +---------| |-------------->|
| | |Proceeding | |
| +-------->| |-------------->|
| +-----------+ 2xx |
| 300-699 | 2xx to TU |
| ACK sent, | |
| resp. to TU| |
| | | NOTE:
| 300-699 V |
| ACK sent +-----------+ | transitions
| +---------| | | labeled with
| | | Completed | | the event
| +-------->| | | over the action
| +-----------+ | to take
| ^ | |
| | | Timer D fires |
+--------------+ | - |
| |
V |
+-----------+ |
| | |
| Terminated|<--------------+
| |
+-----------+
INVITE Server FSM: INVITE Server FSM
|INVITE
|pass to TU, send 100
INVITE V
send response+-----------+
+--------| |--------+101-199 from TU
| | Proceeding| |send response
+------->| || |+
| Timer H fires |
V fail to TU |
+-----------+ |
| | |
| Confirmed | |
| | |
+-----------+ |
| |
|Timer I fires |
|- |
| |
V |
+-----------+ |
| | |
| Terminated|<---------------+
| |
+-----------+
Dialogs: Dialogs Equivalent to call-leg from bis-04
Call leg has been eradicated from the spec
Generalization, presence
Dialog procedures are no longer INVITE specific
Maintenance of CSeq, Route sets
Construction of mid-dialog requests
General construction guidelines
Other changes: Other changes Collected BNF
BNF now uses explicit LWS
Responses no longer need to transmitted over TCP for server transactions!
Does NOT include INV-2xx
CANCEL can’t be sent until 1xx received
BYE can’t be sent by UAS until ACK received
CR or LF alone deprecated
3xx to re-INVITE allowed and specified Radical surgery on multicast
No special treatment at ALL except deciding where to send the messages
Assumes only a single respondent
If there are more than one, responses look like retransmits
Still needs more refinement in spec
Proxies no longer forward 6xx on receipt
CANCEL first, then 6xx after all responses
Merged requests detected only at endpoints
Serverfeatures integrated
100rel will be integrated
SDP extracted to a separate I-D
Big changes to –05 (so far): Big changes to –05 (so far) CANCEL and ACK contain the same Route header fields as their associated request.
What’s not stable?: What’s not stable? SRV functionality will change
Under discussion with IESG
Likely to be much simplified (no merging of transports)
Route/Record-Route
Loose routing
Additional rigor and explanatory text needed
Registration section
Security section
Next steps: Next steps Closing open issues
Explicitly called out in bis-05 where possible
Currently all being tracked in Bugzilla
49 open issues, vast majority are minor
Major open issues:
Loose source routing, proxy route processing
Multicast operation
Maximum messages sizes
SRV
Target completion to send to IESG before 2002
Information Resource: Information Resource Robert Sparks
+1.972.473.5467
sip:rjsparks@dynamicsoft.com
mailto:rsparks@dynamicsoft.com