480 likes | 488 Views
Learn about the history, functions, and network architecture of SIP (Session Initiation Protocol), an application-layer control protocol used for initiating, modifying, and terminating sessions. Understand its similarities to HTTP, scalability, interoperability, mobility, and integration with other IETF protocols.
E N D
Kommunikatsiooniteenuste arendusIRT0080 Loeng 4Avo Otstelekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.avo.ots@ttu.ee
SIP Overview(1) - History • SIP ( Session initiation protocol) • Work began in 1995 • Developed in SIP Working Group in IETF • Proposed standard RFC2543, February 1999 • New Version of SIP - RFC 3261, June 2002 • Split from MMUSIC (Multiparty Multimedia Session Control), Sep. 1999
SIP Overview(2) - Main Functions SIP is an application-layer control (signaling) protocol for : • initiating sessions • Find the user’s current location • Carry session descriptions • Modifying sessions • Terminating sessions
SIP Overview(3) - What is a session? • Refers to an active connection between two computers for the purpose of communicating and transferring information • Internet telephone calls • multimedia conferences • Instant Messaging • However it’s not limited to the above
SIP Overview(4) • SIP is similar to HTTP : • both use a request/response model • both are text-based • much of SIP’s message and header field syntax is identical to HTTP/1.1. • Works independent of the underlying network transmission protocol and indifferent to media
SIP Overview(5) • Scalability • Functionality such as proxying, redirection, location, or registration can reside in different physical servers. • Distributed functionality allows new processes to be added without affecting other components.
SIP Overview(6) • Interoperability • An open standard • Can implement to communicate with other SIP based products
SIP Overview(7) • Mobility • The user can be using a PC at work, PC at home ,wireless phone, IP phone, or regular phone. • Users must register/Update their current location. • Supports user mobility by proxying or redirecting requests to a user’s current location. • Proxy servers will forward calls to the user’s current location.
Integration with IETF Protocols • SIP forms only part of an overall IP telephony system • Other IETF protocol standards are used to build a fully functioning VoIP system. • example: • RSVP - to reserve network resources. • RTP (Real Time Transport Protocol) - to transport real time data • RTSP (Real Time Streaming Protocol) - for controlling delivery of streaming media. • RTCP (Real Time Transport Control Protocol) – provides information about the quality of the communication.
SIP Capabilities(1/2) • Determine location of target points – Support address resolution, name mapping, call redirection • Determine media capabilities – SIP uses Session Description Protocol (SDP) for this • Determine availability – returns a message why the remote party cannot be contacted • Establish a session between end points – also support mid call changes, changes of media characteristics or codec
SIP Capabilities(2/2) • Permits interaction between devices via signaling messages • These messages can: • Register a user with a system • Invite a user to join an interactive session • Establish a media stream between 2 or more end points • Terminate a session
SIP Component – User Agent • User Agent Client (UAC)- Initiate SIP Request • User Agent Server (UAS)-Accepts or rejects call • Phones – acts as UAC or UAS • Implemented in Hardware or Software Components • Includes softphones, sip ip phones
SIP Component – Proxy Server • Heart of SIP network that contains all service logic. • Receives SIP messages, forwards to next SIP UAS. • Interprets, rewrites or translates a request message before forwarding it.
SIP Component – Redirect Server • Return routing information to the originating endpoint. • Does not accept or terminate calls • Does not initiate its own SIP request
SIP Component – Registrar • Accept registration requests from users • Maintains user’s whereabouts at a Location Server • Typically co-located with a proxy server or a redirect server and may offer location services
SIP Addressing • The SIP address is identified by a SIP URL,in the format: user@host. • Email-like identifier of the form • Examples of SIP URLs: • sip:hostname@ntut.edu.tw • sip:hostname@192.168.10.1 • sip:14083831088@vovida.org
SIP Messages • The message syntax is identical to HTTP/1.1(RFC2616). • Two kinds of SIP messages SIP-message = Request | Response
SIP Messages - Requests • INVITE – Initiates a call by inviting user to participate in session. • ACK - Confirms that the client has received a final response to an INVITE request. • BYE - Indicates termination of the call. • CANCEL - Cancels a pending request. • REGISTER – Registers the user agent. • OPTIONS – Used to query the capabilities of a server.
SIP Messages - Responses • 1xx - Informational Responses • 180 ringing • 2xx - Successful Responses • 200 OK • 3xx - Redirection Responses • 302 Moved Temporarily • 4xx - Request Failure Responses. • 404 Not Found • 5xx - Server Failure Responses. • 503 Service Unavailable • 6xx - Global Failures Responses. • 600 Busy Everywhere • All responses, except for 1XX, are considered final responses
Message Headers • Provide further information about the message • E.g., • To : header in an INVITE • The called party • From : header • The calling party • Four main categories • General, Request, Response, and Entity headers
Header Fields • General Header • Be applied to both request and response messages • Entity Header • Define information about the message body • Request Header • Allow the client to pass additional information about the request • Response Header • Allow the server to pass additional information about the response
SIP Headers – From • A field required in all requests and response messages • Provides identity of request’s initiator • Example: • From: Laura Brown <sip:Laura.Brown@university.com>
SIP Headers – To • Provides identity of the intended recipient of the request • Example: • To: Bob Johnson <sip:Bob.Johnson@company.com>;
SIP Headers – Call-ID(1/2) • Provides a globally unique identifier to distinguish specific invitations • Typically uses a 32-bit cryptographically random numbers • Example: • Call-ID: ges456fcdw21lkfgte12ax@workstation1234.university.com
SIP Headers – Contact(1/2) • A Contact header provides a URL where the user can be reached directly. • This feature is important because it offloads SIP servers that do not need to be in the signalling path after routing the first INVITE. • Example: • Contact: Bob Johnson<sip:Bob@140.124.181.227>
SIP Header - Via • History of message’s path through network(s) • Helps to prevent looping and ensures replies route back to originator • Indicates the used transport protocol, ip address and port of sender • Via: SIP/2.0/UDP 192.168.6.21:5060
SIP Header – Content-Type • Provides information about media type of message body • Content-Type: application/sdp
SIP Header – CSeq(1/2) • CSeq or command sequence: • Needed in both request messages as well as response messages • Need to increment this when a user with the same Call-ID wants to send different SIP methods or content ( Except ACK and Cancel) • When sending responses to requests, CSeq should be the same • The numerical part of the Cseq is used to order different requests within the same session. • CSeq: 1 INVITE
Reliable Transmission of Responses(1/2) • Final responses are transmitted reliably between server and client, using retransmissions or a reliable transport protocol to ensure delivery. • Provisional responses may either be received by the client or be lost in the network.
Summary • SIP is gaining acceptance in the industry • Open Source projects are taking the lead in SIP implementations • New generation of services are already being offered • Staying with single a vender solution is currently workable • Interoperability between vender products is still in early stages
Reference • RFC 2543(SIP/1.0) • RFC 3261(SIP/2.0) • RFC 2327(SDP)