RFC3261. SIP: Session Initiation Protocol
Total Page:16
File Type:pdf, Size:1020Kb
Network Working Group J. Rosenberg/H. Schulzrinne/G. Camarillo/A. Johnston/J. Peterson/R. Sparks/M. Handley/E. Schooler Request for Comments: 3261 dynamicsoft/Columbia U./Ericsson/Worldcom/Neustar/dynamicsoft/ICIR/AT&T Category: Standards Track June 2002 Obsoletes: 2543 SIP: Session Initiation Protocol Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discus- sion and suggestions for improvements. Please refer to the current edition of the “Internet Official Protocol Standards” (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (c) The Internet Society (2002). All Rights Reserved. Abstract This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. SIP invitations used to create sessions carry session descriptions that allow participants to agree on a set of compatible media types. SIP makes use of elements called proxy servers to help route requests to the user’s current location, authenticate and authorize users for services, implement provider call- routing policies, and provide features to users. SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. SIP runs on top of several different transport protocols. Contents 1 Introduction 9 2 Overview of SIP Functionality 10 3 Terminology 11 4 Overview of Operation 11 5 Structure of the Protocol 16 6 Definitions 18 RFC 3261 SIP: Session Initiation Protocol June 2002 7 SIP Messages 22 7.1Requests............................................. 23 7.2Responses............................................ 23 7.3HeaderFields.......................................... 24 7.3.1 HeaderFieldFormat.................................. 24 7.3.2 Header Field Classification . ............................ 27 7.3.3 CompactForm..................................... 27 7.4Bodies.............................................. 27 7.4.1 Message Body Type .................................. 27 7.4.2 Message Body Length ................................. 28 7.5 Framing SIP Messages . .................................. 28 8 General User Agent Behavior 28 8.1UACBehavior.......................................... 28 8.1.1 GeneratingtheRequest................................. 29 8.1.2 SendingtheRequest.................................. 33 8.1.3 Processing Responses ................................. 33 8.2UASBehavior.......................................... 36 8.2.1 MethodInspection................................... 36 8.2.2 HeaderInspection................................... 36 8.2.3 Content Processing . .................................. 38 8.2.4 ApplyingExtensions.................................. 38 8.2.5 Processing the Request ................................. 38 8.2.6 Generating the Response ................................ 38 8.2.7 StatelessUASBehavior................................ 39 8.3RedirectServers......................................... 40 9 Canceling a Request 41 9.1ClientBehavior......................................... 41 9.2 Server Behavior........................................ 42 10 Registrations 43 10.1Overview............................................ 43 10.2 Constructing the REGISTER Request............................. 44 10.2.1AddingBindings.................................... 45 10.2.2RemovingBindings.................................. 46 Rosenberg, et al. Standards Track [Page 2] RFC 3261 SIP: Session Initiation Protocol June 2002 10.2.3FetchingBindings................................... 47 10.2.4RefreshingBindings.................................. 47 10.2.5 Setting the Internal Clock . ............................ 47 10.2.6DiscoveringaRegistrar................................. 47 10.2.7 Transmitting a Request ................................. 47 10.2.8ErrorResponses.................................... 48 10.3 Processing REGISTER Requests............................... 48 11 Querying for Capabilities 50 11.1 Construction of OPTIONS Request.............................. 50 11.2 Processing of OPTIONS Request............................... 51 12 Dialogs 52 12.1CreationofaDialog....................................... 53 12.1.1UASbehavior...................................... 53 12.1.2UACBehavior..................................... 54 12.2RequestswithinaDialog.................................... 54 12.2.1UACBehavior..................................... 55 12.2.2UASBehavior..................................... 57 12.3TerminationofaDialog..................................... 58 13 Initiating a Session 58 13.1Overview............................................ 58 13.2 UAC Processing . ....................................... 58 13.2.1 Creating the Initial INVITE .............................. 58 13.2.2 Processing INVITE Responses............................. 60 13.3 UAS Processing . ....................................... 62 13.3.1 Processing of the INVITE ............................... 62 14 Modifying an Existing Session 64 14.1UACBehavior.......................................... 64 14.2UASBehavior.......................................... 65 15 Terminating a Session 66 15.1 Terminating a Session with a BYE Request.......................... 67 15.1.1UACBehavior..................................... 67 15.1.2UASBehavior..................................... 67 Rosenberg, et al. Standards Track [Page 3] RFC 3261 SIP: Session Initiation Protocol June 2002 16 Proxy Behavior 67 16.1Overview............................................ 67 16.2StatefulProxy.......................................... 68 16.3RequestValidation....................................... 69 16.4 Route Information Preprocessing . ............................ 71 16.5DeterminingRequestTargets.................................. 71 16.6RequestForwarding....................................... 73 16.7 Response Processing ...................................... 78 16.8 Processing Timer C ....................................... 83 16.9HandlingTransportErrors................................... 83 16.10CANCEL Processing ...................................... 84 16.11StatelessProxy......................................... 84 16.12Summary of Proxy Route Processing . ............................ 86 16.12.1Examples........................................ 86 17 Transactions 89 17.1ClientTransaction........................................ 91 17.1.1 INVITE ClientTransaction............................... 91 17.1.2 Non-INVITE ClientTransaction............................ 95 17.1.3MatchingResponsestoClientTransactions...................... 96 17.1.4HandlingTransportErrors............................... 96 17.2 Server Transaction....................................... 96 17.2.1 INVITE Server Transaction.............................. 98 17.2.2 Non-INVITE Server Transaction...........................100 17.2.3 Matching Requests to Server Transactions......................100 17.2.4HandlingTransportErrors...............................101 18 Transport 101 18.1Clients..............................................103 18.1.1SendingRequests....................................103 18.1.2 Receiving Responses ..................................104 18.2Servers.............................................105 18.2.1 Receiving Requests . ..................................105 18.2.2SendingResponses...................................106 18.3Framing.............................................106 18.4ErrorHandling.........................................106 Rosenberg, et al. Standards Track [Page 4] RFC 3261 SIP: Session Initiation Protocol June 2002 19 Common Message Components 107 19.1SIPandSIPSUniformResourceIndicators..........................107 19.1.1 SIP and SIPS URI Components ............................107 19.1.2 Character Escaping Requirements ...........................110 19.1.3ExampleSIPandSIPSURIs..............................111 19.1.4URIComparison....................................111 19.1.5FormingRequestsfromaURI.............................113 19.1.6RelatingSIPURIsandtelURLs............................114 19.2OptionTags...........................................115 19.3Tags...............................................115 20 Header Fields 116 20.1 Accept .............................................117 20.2 Accept-Encoding .......................................117 20.3 Accept-Language .......................................119 20.4 Alert-Info ............................................120 20.5 Allow ..............................................120 20.6 Authentication-Info ......................................120 20.7 Authorization ..........................................121 20.8 Call-ID .............................................121 20.9 Call-Info .............................................121 20.10Contact .............................................122 20.11Content-Disposition .......................................122 20.12Content-Encoding .......................................123 20.13Content-Language ......................................123 20.14Content-Length ........................................124 20.15Content-Type ..........................................124 20.16CSeq ..............................................124 20.17Date ...............................................124