SIP: Session Initiation Protocol - TKK

Transcription

SIP: Session Initiation ProtocolFrom HTTP and Session Invitationto Setup and Control for Packet-basedMultimedia Conferencing 2010 Jörg Ott1Session DescriptionConference Establishment & ControlWorkshop2a. Announcement1. CreateDescr.: Upperside SIP 2005Orig.: J.Ott jo@tzi.org 327689113Info: http://www.tzi.org/dmn/Start: 25.01.2005 / 09:30End: 25.01.2005 / 17:30Media: Audio PCM 234.5.6.7/39000Media: Video H.263 234.5.6.8/29000Media: Slides PDF 234.5.6.9/49000Announcement ProtocolNetnewsWWW2b. InvitationE-MailInvitation Protocol2c. Request3. JoinStreaming Protocol3. Join4. Media streams 2010 Jörg Ott2For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

History of Mbone conference initiationSession InvitationProtocolSimple ConferenceInvitation Protocol(Handley/Schooler)(Schulzrinne)– Participant location– Participant location– Conference invitation– Conference invitation– Capability negotiation during– Capability negotiation duringsetupsetup– Changing conferenceparameters– Terminate/leave conference1996Session Initiation Protocol 2010 Jörg Ott3Session Initiation Protocol (SIP)First draft in December 1996 Joint effort to merge SIP and SCIP IETF WG MMUSIC(Multiparty Multimedia Session Control)Application-layer call signaling protocol: Creation, modification, termination of teleconferences Negotiation of used media configuration Re-negotiation during session User location personal mobilityRFC 3261– June 2002 Security– obsoletes RFC 2543 Supplementary services 2010 Jörg Ott4For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

SIP and Conferencing over Time Origin: MMUSIC: Multiparty Multimedia Session Control From Invitation From Multiparty From Multimedia to initiation, modification,and terminationto point-to-point-focusedto voice-centricPast years: Multiparty & multimedia rediscoveredBut:Don’t believe in multicast (anymore)! 2010 Jörg Ott# pages 2010 Jörg Ott5“Weight” of SIP Base Spec12For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

IETF SIP-related Working Groups (1)MMUSIC WGSep 99Mar 01RFC 2543SIPCORESIP WG(Feb 1999)DISPATCHSIPPING WGDec 00SIMPLE WGOct 03AVT WGP2PSIPBLISSXCON WGSIPCLFDRINKSSPEERMINT 2010 Jörg Ott13IETF SIP-related Working Groups (2)MMUSIC WG SDP extensions NAT Traversal for SIPSIPWG SIP core spec maintenanceSIPCORE SIP protocol extensionsSIPPING WG Requirements for SIP Specific SIP application servicesSIMPLE WGXCON WG 2010 Jörg OttDISPATCH“WG factory” SIP for Presence and Instant Messaging Centralized Conferencing14For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

IETF SIP-related Working Groups (3) pAuthority-to-Citizen AlertBasic Level of Interoperability for SIP ServicesCall Control UUI Service for SIPDispatchData for Reachability of Inter/tra-NetworK SIPEmergency Context Resolution with Internet TechnologiesGeographic Location/PrivacyMultiple AoR reachabiliTy InformatioN IndicationPeer-to-Peer Session Initiation ProtocolSip ALerting for User DevicesSIP for Instant Messaging and Presence Leveraging ExtensionsSIP Common Log FormatSession Initiation Protocol CoreSIP RecordingSIP Overload ControllooSely-couPLed sIp deviCESCentralized ConferencingExtensible Messaging and Presence Protocol speermintenumSession PEERing for Multimedia INTerconnectTelephone Number Mapping avtcodecspeechscmediactrlmmusicAudio/Video TransportInternet Wideband Audio CodecSpeech Services ControlMedia Server ControlMultiparty Multimedia Session Control 2010 Jörg Ott15“Productivity” (1): Internet Draft Pages(rough estimate with errors!)2001 2010 Jörg Ott200616For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

“Productivity” (2): RFC Pages17“Productivity” (3): RFC Pages 2010 Jörg Ott 2010 Jörg Ott18For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

Original base spec RFCs related to SIP (1)RFC 3261: SIP: Session Initiation ProtocolRFC 3263: Locating SIP ServersRFC 3264: An Offer/Answer Model with SDPExtended Features RFC 2976: The SIP INFO MethodRFC 3262: Reliability of Provisional Responses in SIPRFC 3265: SIP-specific Event NotificationRFC 3311: SIP UPDATE MethodRFC 3312, RFC 4032: Integration of Resource Management and SIPRFC 3326: Reason HeaderRFC 3327: Registering Non-Adjacent ContactsRFC 3428: Instant MessagingRFC 3487: Requirements for Resource PriorityRFC 3515: SIP REFER MethodRFC 3581: Symmetric Message RoutingRFC 3680: SIP event package for registrationsRFC 3725: Third-party Call Control (3PCC)RFC 3840, 3841: Callee capabilities and caller preferencesRFC 3842: Message waiting indication / message summaryRFC 3857, 3958: Watcher Information event package XML formatRFC 3891: Replaces: headerRFC 3892: Referred-By: headerRFC 3903: Event state publication (SIP PUBLISH method)RFC 3911: Join: headerRFC 4028: Session timersRFC 4168: SCTP as transport protocol 2010 Jörg Ott Extended features (continued) 19RFCs related to SIP (2)RFC 4244: Request historyRFC 4320: Addressing issues with non-INVITE transactionsRFC 4321: Problems with non-INVITE transactionsRFC 4412: Communications resource priority for SIPRFC 4483: Content indirection in SIPRFC 4488: Suppressing implicit subscriptions of REFERRFC 4508: Conveying feature tags with REFERRFC 4235: INVITE-initiated dialog event packageRFC 4245: Requirements for SIP conferencingRFC 4353: SIP conferencing frameworkRFC 4376: Floor control requirementsRFC 4411: SIP Reason header for preemptionRFC 4453: Requirements for consent-based communicationsRFC 4475: SIP torture test messagesRFC 4479: A data model for presenceRFC 4480: RPID: rich presenceRFC 4481: Extensions for timed presenceRFC 4482: CPID: Contact information in presenceRFC 4575: SIP conference event packageRFC 4579: SIP call control: conferencing for user agentsRFC 4596: Caller preferences extensionsRFC 4597: Conferencing scenariosRFC 4660: Functional description of event filteringRFC 4661: XML for event filteringRFC 4662: Event notifications for resource listsRFC 4730: Key Press Stimulus Event Package (KPML)RFC 4916: Connected Identity 2010 Jörg Ott20For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

Extended features (continued) RFCs related to SIP (3)RFC 4825: XCAPRFC 4826: XCAP Processing Rules for Resource ListsRFC 4827: XCAP For Manipulating Presence ContentsRFC 4975: MSRPRFC 4976: MSRP Relays Security RFC 3323: A Privacy Mechanism for SIPRFC 3325: Private Extension for Asserted Identity in Trusted NetworksRFC 3329: Security-Mechanism Agreement for SIPRFC 3603: Proxy-to-Proxy ExtensionsRFC 3702: AAA requirements for SIPRFC 3853: S/MIME AESRFC 3893: Authenticated Identity BodyRFC 4189: Requirements for end-to-middle securityRFC 4474: Enhancements for authenticated identity managementRFC 4484: Trait-based authentication requirementsRFC 4538: Request authorization through dialog identification 2010 Jörg Ott Others 21RFCs related to SIP (4)RFC 3665, 3666: SIP Call FlowsRFC 3361: DHCP Option for SIP ServersRFC 3608: Service Route DiscoveryRFC 3398, 3578: ISUP and SIP MappingRFC 3420: Internet Media Type message/sipfragRFC 3427: SIP Change ProcessRFC 3455: Header Extensions for 3GPPRFC 3485, 3486: SIP header compressionRFC 3764, 3824: Using ENUM with SIPRFC 3959: Early Session disposition type (early-session, session)RFC 3960: Early Media and Ringing Tone GenerationRFC 3968, 3969: IANA SIP header field and URI registryRFC 3976: SIP – IN InterworkingRFC 4117: 3rd party call control invocation of transcoding servicesRFC 4123: SIP – H.323 Interworking requirementsRFC 4485: Guidelines for authors of SIP extensionsRFC 4497: SIP – QSIG interworkingRFC 4569: IANA media feature tag registrationRFC 4780: SIP MIBeor tsm 000 rafyDan 5 etM s rnC teRF InyanmRelated: RTP, SDP, Security basics, 3GPP requirements and extensionsA Hitchhikers Guide to the Session Initiation Protocol (SIP)RFC 5411 2010 Jörg Ott22For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

SIP is not Tied to any specific mediaSIP Intended for conference control by itself No floor control No participant lists No policies, voting, Designed for distribution of multimedia data Some extensions allow for carrying images, audio files, etc. A generic transport protocol! Another RPC mechanism SIP has no inherent support for distributed state information Something to put into every device on the planet No general IP infrastructure part (yet?) Nevertheless: Application layer routing gets more and more important (but proposals for “misuse” show up again and again) 2010 Jörg Ott23Base Terminology User Agent Client (UAC): Endpoint, initiates SIP transactions User Agent Server (UAS):User Agent Handles incoming SIP requests Redirect server: Retrieves addresses for callee and returns them to caller Proxy (server): Autonomously processes and routes requests forward incoming messages (limited modifications only) Registrar: Stores explicitly registered user addresses Location Service: Provides information about a target user’s location Back-to-Back User Agent (B2BUA) Keeps call state; more powerful intervention than proxy 2010 Jörg Ott24For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

Local SIP ArchitectureAdministrative Entity(SIP Server)RegistrarRedirect /ProxyServerLocationServerSIPGatewaySIP UASIPGatewayPSTNISDNGSMSIP UASIPGatewayLocal IP networkEndpointEndpointEndpointSIP UASIP UASIP UASIP UA 2010 Jörg OttH.32325Protocol Characteristics Transaction oriented Request–response sequences Independent from lower layer transport protocol Works with a number of unreliable and reliable transports UDP, TCP, SCTP Secure transport: TLS over TCP, IPSec Retransmissions to achieve reliability over UDP Optionally use IP multicast anycast service Independent of the session to be (re-)configured Re-use syntax of HTTP 1.1 Text-based protocol (UTF-8 encoding) Enable servers maintaining minimal state info Stateless proxies Transaction-stateful proxies Dialog (call) state in endpoints (optional for proxies) 2010 Jörg Ott26For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

Functional Layerssession creation,application-specific processingTransaction UserTransaction handlingrequest retransmissionTransactionTransportsend/receive SIP messagesSyntax / EncodingMessage parsingTLSUDPTCPSCTPTransport Protocol 2010 Jörg Ott27SIP ionstateBRequestProvisional ResponsesFinal Response RPC-like approach: Initial request Wait for final response Provisional state Unique identifier (transaction id)(originator, recipient, unique token,sequence number, .) Independent completion Additional status information May be unreliable 2010 Jörg Ott28For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

DialogsSignaling vs. media session Distributed state between endpoints setup earlydialog State change if transaction suceeds No change on error createdialogestablishdialogUnique dialog identifierAcreatedialogtransaction indicatesstate odifydialogmodifydestroydialogdestroydialogdestroy 2010 Jörg Ott29Dialog Example: Media SessionsApreparemedia session;early dialogestablishmedia session,dialogmedia sessionin progressBINVITERingingOKACKMedia StreamsBYEterminatemedia session;destroy dialog 2010 Jörg OttOKSpecial case: threeway handshake forINVITE transactioncreatemedia session,dialogmedia sessionin progressterminatemedia sessiondestroy dialog30For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

SIP Message Syntax: RequestStart lineMessage headersINVITE sip:user@example.com SIP/2.0To: John Doe sip:user@example.com From: sip:jo@tzi.uni-bremen.de;tag 4711Subject: Congratulations!Content-Length: 117Content-Type: applicaton/sdpCall-ID: 2342344233@134.102.218.1CSeq: 49581 INVITEContact: sip:jo@134.102.224.152:5083;transport udpVia: SIP/2.0/UDP 134.102.218.1;branch z9hG4bK776asdhdsMessage body(SDP content)v 0o jo 75638353 98543585 IN IP4 134.102.218.1s SIP callt 0 0c IN IP4 134.102.224.152m audio 47654 RTP/AVP 0 1 4 2010 Jörg Ott31SIP Message Syntax: ResponseStart lineMessage headersSIP/2.0 200 OKTo: John Doe sip:user@example.com ;tag 428From: sip:jo@tzi.uni-bremen.de;tag 4711Subject: Congratulations!Content-Length: 121Content-Type: applicaton/sdpCall-ID: 2342344233@134.102.218.1CSeq: 49581 INVITEContact: sip:jdoe@somehost.domainVia: SIP/2.0/UDP 134.102.218.1;branch z9hG4bK776asdhdsMessage body(SDP content)v 0o jdoe 28342 98543601 IN IP4 134.102.20.22s SIP callt 0 0c IN IP4 134.102.20.38m audio 61002 RTP/AVP 0 4 2010 Jörg Ott32For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

SIP URI Addressing Schemesip: / sips: Follows basic URI syntax per RFC 2396 Separating names (permanent) and addresses (temporary) Basic mobility support Two roles reflected in SIP Naming a user; typically sip:user@domain Contact address of a user; typically containshost name or IP address, port, transport protocol, . URIs may carry additional parameters sip: [ user [ : passwd ] @ ] host [ : port ] params [ ? headers ]params :: headers :: ( ; name [ value ] )*field value? [ & headers ] URIs may also identify services 2010 Jörg Ott33SIP URI Addressing .9:9950Registration domainor IP addressSIP URI to call(Address of Record)SIP Contact Address(actual user nfserv.comService identifier; semanticsopaque to the usersip:user34@anonymizer.orgUse URI scheme ‘sips’ to request secure communications. 2010 Jörg Ott34For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

SIP URI Addressing Examples (2)URI parameters may carry detailedinformation on specific URI components:sip:john@Example.COM;maddr 10.0.0.1sip: 1555123456@tel-gw.myitsp.com;user phone 2010 Jörg Ott35Nested URI Encoding (e.g. for Service .5%3Bmaddr 134.102.3.99@example.comNeed to encode reserved charactersService indication examplesip:voicemail.replay ab1x817m@media-engine;msgid 78Additional header fields (line breaks inserted for readability)sip:sales@warehouse.com;method INVITE \?Subject gw%20c2651&Call-ID eplaces &Accept-Contact %3Ajo%40134.102.218.1%3E%3Bonly%3Dtrue\\ %3CsipSeparator characters 2010 Jörg Ott36For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

URIs in Header FieldsURI-parameters vs. header hods "NOTIFY";expires 3600 angle brackets:URI parameterContact: sip:bob@p2.example.com:55060;methods "NOTIFY" ;expires 3600Required if? Header parameter URI contains comma, question mark or semicolon The header field contains a display name 2010 Jörg Ott37Further Common URI SchemesTelephony (RFC 2806)tel: 1-555-12345678tel:7595;phone-context 49421218ITU-T H.323 Protocolh323:user@example.comInstant ple.com 2010 Jörg Ott38For exclusive use with TKK Netlab course S-38.3150 Networked Multimedia Protocols and Services

Session Initiation Protocol (SIP) First draft in December 1996 Joint effort to merge SIP and SCIP IETF WG MMUSIC (Multiparty Multimedia Session Control) Application-layer call signaling protocol: Creation, modification, termination of teleconferences