The Session Initiation Protocol ( SIP ) is a communication protocol for signaling and controlling multimedia communication sessions in Internet phone applications for voice and video calls, in private IP phone systems, as well as in instant messaging over the Internet Protocol (IP) network.
The protocol defines the specific format of the messages being exchanged and the communication sequence for the cooperation of the participants. SIP is a text-based protocol, combining many elements of Hypertext Transfer Protocol (HTTP) and Simple Mail Transfer Protocol (SMTP). Calls made with SIP can consist of multiple media streams, but no separate streams are required for the application, such as text messages, which exchange data as a charge in SIP messages.
SIP works alongside several other protocols that define and carry session media. Media type and parameter negotiation and media settings are done with Session Description Protocol (SDP), which is performed as a load in a SIP message. SIP is designed to be independent of the underlying transport layer protocol, and can be used with User Datagram Protocol (UDP), Transmission Control Protocol (TCP), and Stream Control Transmission Protocol (SCTP). For media stream transmission (voice, video) SIP typically uses the Real-time Transportation Protocol (RTP) or the Secure Real-time Transport Protocol (SRTP). For secure transmission of SIP messages through unsafe network links, protocols can be encrypted with Transport Layer Security (TLS).
Video Session Initiation Protocol
History
SIP was originally designed by Mark Handley, Henning Schulzrinne, Eve Schooler and Jonathan Rosenberg in 1996. The protocol was standardized as RFC 2543 in 1999. In November 2000, SIP was accepted as a 3GPP signaling protocol and a permanent element of IP Multimedia Subsystem (IMS) architecture for IP-based streaming multimedia services on mobile networks. In June 2002 the specifications were revised in RFC 3261 and various extensions and clarifications have been published since then.
SIP is designed to provide signaling and call setup protocols for IP-based communications that support call processing functions and features available in public switched telephone networks (PSTN) with the vision of supporting new multimedia applications. It has been extended to video conferencing, streaming media distribution, instant messaging, attendance information, file transfers, Internet fax and online games.
SIP is distinguished by its supporters because it is rooted in the Internet community rather than in the telecommunications industry. SIP has been standardized primarily by the IETF, while other protocols, such as H.323, have traditionally been associated with the International Telecommunication Union (ITU).
Maps Session Initiation Protocol
Operation protocol
SIP is only involved for signaling operations from media communication sessions and is primarily used to manage and stop voice or video calls. SIP can be used to create two-party sessions (unicast) or multiparty (multicast). It also allows modification of existing calls. Mods can involve changing addresses or ports, inviting more participants, and adding or removing media streams. SIP has also found applications in messaging applications, such as instant messaging, and event subscriptions and notifications.
SIP works in conjunction with several other protocols that define media formats and encodings and that bring the media after a call is set. For call settings, the SIP message body contains the Session Description Protocol (SDP) data unit, which specifies media formats, codecs, and media communication protocols. Streaming voice and video media is usually done between terminals using the Real-time Transport Protocol (RTP) or the Secure Real-time Transport Protocol (SRTP).
Under SIP, each resource, such as a user agent or voice mailbox, is identified by a Uniform Resource Identifier (URI), which follows a common standard syntax that is also used in Web services and e-mail. The URI scheme used for SIP is sip and typical SIP URI has a form of sip: username @ domainname or sip: username @ hostport , where < i> domainname needs DNS SRV records to locate servers for SIP domains while hostport can be either fully qualified IP addresses or hostnames and ports. If secure transmission is required, the sips scheme is used.
SIP uses design elements similar to the HTTP request/response transaction model. Each transaction consists of a client request that calls a specific method or function on the server and at least one response. SIP reuses most header fields, encodes HTTP status codes and codes, provides a readable text-based format.
SIP can be done by several transport layer protocols including Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and Stream Control Transmission Protocol (SCTP). SIP clients typically use TCP or UDP on port numbers 5060 or 5061 for SIP traffic to servers and other endpoints. Port 5060 is commonly used for unencrypted signaling traffic whereas port 5061 is typically used for traffic encrypted with Transport Layer Security (TLS).
SIP-based telephone networks often implement call processing features of Signaling System 7 (SS7), which have special SIP protocol extensions, although the two protocols themselves are very different. SS7 is a centralized protocol, characterized by complex central network architectures and stupid endpoints (traditional phones). SIP is a client-server protocol of equipotent peers. The SIP feature is applied at the communication endpoint, whereas the traditional SS7 architecture is only used among the transfer centers.
Network element
Network elements that use the Session Initiation Protocol for communication are called SIP user agents . Each user agent (UA) performs the functionality of a user-agent client (UAC) when requesting a service function, and from a user-agent server (UAS) in response to a request. Thus, any two end points of SIP can in principle operate without the SIP infrastructure that intervenes. However, for network operational reasons, for the provision of public services to users, and for directory services, SIP defines certain types of network server elements. Each of these service elements also communicates in the client-server model that is implemented in the user-agent client and server.
User agent
The user agent is the logical network endpoint used to create or receive SIP messages. The user agent manages the SIP session. As a client (UAC), it sends SIP requests, and as server (UAS) receives requests and returns SIP responses. Unlike other network protocols that fix client and server roles, for example, in HTTP, where web browsers act only as clients, and never as servers, SIP requires both partners to implement both roles. UAC and UAS roles only last for the duration of SIP transactions.
A SIP phone is an IP phone that implements client functions and a SIP user agent server and provides traditional phone dialing functions such as dial, answer, decline, call suspension and call transfer. SIP phones can be implemented as hardware or as softphone. As vendors increasingly deploy SIP as a standard phone platform, the distinction between hardware-based and software-based SIP phones is blurred and SIP elements are applied in firmware basic functions of many IP-enabled devices.
In SIP, as in HTTP, the user agent can identify itself using message header fields ( Agent-Users ), which contains text descriptions of software, hardware, or product names. The user agent field is sent in a request message, which means that the receiving SIP server can evaluate this information to perform device-specific configuration or feature activation. SIP network element operators sometimes store this information in customer account portals, where it can be useful in diagnosing SIP compatibility issues or displaying service status.
Proxy server
Proxy servers are network servers with UAC and UAS components that act as intermediate entities for the purpose of performing requests on behalf of other network elements. A proxy server primarily plays a routing role, meaning that the task is to make sure that the request is sent to another entity closer to the targeted user. Proxies are also useful for enforcing policies, such as to determine whether users are allowed to make calls. Proxy proxy, and, if necessary, rewrite certain parts of the request message before passing it.
Registrar
The Registrar is the end point of SIP that provides location services. It receives a REGISTER request, records the address and other parameters of the user agent. For subsequent requests it provides an important means to search for possible communication colleagues on the network. Location services link one or more IP addresses to SIP URIs from registration agents. Some user agents may register for the same URI, with the result that all registered user agents receive calls to URIs.
The SIP listing is a logical element, and is often placed together with a SIP proxy. To improve network scalability, location services can be placed with redirecting servers.
Redirection server
A redirect server is a user-agent server that generates a 3xx (redirection) response for the request it receives, directing the client to contact a set of alternative URIs. The redirection server allows the proxy server to direct SIP session invitations to external domains.
Session border controller
Session border controller serves as a middle box between UA and SIP servers for various types of functions, including network topology hiding and help in NAT traversal.
Gateway
Gateways can be used to connect SIP networks to other networks, such as a public switched telephone network, which uses different protocols or technologies.
SIP messages
SIP is a text-based protocol with a syntax similar to HTTP. There are two different types of SIP messages: requests and responses. The first line of the request has method , defines the nature of the request, and the Request URI, which indicates where the request should be sent. The first line of the response has a response code.
Request
The request initiates SIP transactions between two SIP entities to build, control, and end the session. Critical methods include the following.
- INVITE: Used to create a dialog with a media exchange between user agents.
- BYE: Stops an existing session.
- REGISTER: This method implements location services for user agents, which shows their address information to the server.
Feedback
Responses are sent by the user agent server that shows the result of the request received. Some response classes are recognized, determined by the numerical range of the result code:
- 1xx: The temporary response to the request indicates that the request was valid and is being processed.
- 2xx: response level 200 indicates successful completion of request. In response to INVITE, this indicates a call has been made.
- 3xx: This group indicates that redirects are required to complete the request. Requests must be completed with new goals.
- 4xx: The request contains a bad syntax or can not be met on the server.
- 5xx: The server failed to meet a request that appears to be valid.
- 6xx: This is a global failure, because the request can not be fulfilled on any server.
Transactions
SIP defines a transaction mechanism to control exchange between participants and deliver the message reliably. A transaction is a state of the session, which is controlled by various timers. The client transaction sends the request and the server transaction responds to the request with one or more responses. Responses may include temporary responses with a response code in the form of 1xx , and one or more final responses (2xx - 6xx).
Transactions are more categorized as type Invite or type Non-Invite . Invitation transactions are different because they can form long-standing conversations, referred to as dialogs in SIP, and thus include the acknowledgment (ACK) of any non-failing final responses, for example, 200 OK.
Because of this transactional mechanism, unreliable transport protocols, such as User Datagram Protocol (UDP), are sufficient for SIP operations.
Instant messages and presence
Session Initiation Protocol for Instant Messaging and Instant Messaging (SIMPLE) is a set of SIP standards for instant messaging and attendance information. MSRP (Message Session Relay Protocol) enables instant message sessions and file transfers.
Conformity test
The SIP developer community meets regularly at conferences organized by the SIP Forums to test the interoperability of SIP implementations. The TTCN-3 test specification language, developed by the task force at ETSI (STF 196), is used to determine suitability tests for SIP implementations.
Performance testing
When developing SIP software or deploying new SIP infrastructure, it is important to test the server's and IP network's ability to handle certain call loads: the number of concurrent calls and the number of calls per second. SIP performance test software is used to simulate SIP and RTP traffic to see if the server and IP network are stable under calling. The software measures performance indicators such as answer delays, answer/seizure ratios, RTP jitter and packet loss, round-trip delay time.
Apps
The SIP connection is a marketing term for the Voice over Internet Protocol (VoIP) service offered by many Internet telephony service providers (ITSPs). This service provides routing of phone calls from a private client branch (PBX) telephone exchange system to a public switched telephone network (PSTN). The service can simplify the enterprise information system infrastructure by sharing Internet access for voice and data, and removing costs for the Basic Level Interface (BRI) or Primary Level (PRI) interface interface.
SIP trunking is a preferred similar marketing term when the service is used to simplify telecommunication infrastructure by sharing carrier access circuits for voice, data, and Internet traffic while eliminating the need for a Primary Level Interface (PRI) circuit.
Video surveillance cameras that support SIP can initiate calls to alert operators of events, such as object movement in a protected area.
SIP is used in audio over IP for broadcasting applications where it provides interoperable means for audio interfaces from different manufacturers to make connections with each other.
Implementations
The US National Institute of Standards and Technology (NIST), Advanced Networking Technology Division provides a public Java implementation of the domain that serves as a reference implementation for the standard. Implementation can work on proxy servers or user agent scenarios and has been used in various commercial and research projects. It supports RFC 3261 in full and a number of RFC extensions including RFC 6665 (event notification) and RFC 3262 (provisional reliable response).
Many existing commercial and open-source SIP implementations exist. See List of SIP software.
Interworking Codes
SIP-I, or Session Initiation Protocol with ISUP encapsulation, is a protocol used to create, modify, and end communication sessions based on ISUP using SIP and IP networks. Services using SIP-I include voice, video telephony, fax, and data. SIP-I and SIP-T are two protocols with similar features, primarily to allow ISUP messages to be transported over a SIP network. This keeps all the details available in the ISUP header, which is important because there are many variants of the country-specific ISUP that have been implemented for the past 30 years, and it is not always possible to express all the same details using the original SIP message. SIP-I is defined by ITU-T, while SIP-T is defined through the IETF RFC route.
Encryption
Concerns about the security of calls over the public Internet have been handled by SIP protocol encryption for secure transmission. The URI sips scheme is used to mandate that any jumps in which requests are forwarded to the target domain must be secured with Transport Layer Security (TLS). The last hop of the target domain proxy to the user agent must be secured in accordance with local policies. TLS protects against attackers who try to listen on signaling links but do not provide end-to-end security to prevent espionage and law enforcement interception, since hop-by-hop encryption and every single intermediate proxy must be trusted.
End-to-end security can also be achieved with secure tunneling and IPsec, but most service providers offer secure connections using TLS to secure signaling. The TLS connection uses a URI in the form of sips: user@example.com . A media stream, which is a separate connection from the signaling flow, can be encrypted with the Secure Real Time Transport Protocol (SRTP). The key exchange for SRTP is done with SDES (RFC 4568), or with ZRTP (RFC 6189). One can also add MIKEY (RFC 3830) exchange to SIP to specify session keys for use with SRTP.
See also
References
Bibliography
External links
- Computer/Internet/Protocol/SIP/in Curlie (based on DMOZ)
- IANA: SIP Parameters
- IANA: Event Type SIP Namespace
Source of the article : Wikipedia