SIP protocol overview
Abstract: The SIP protocol is an important protocol in NGN, which is increasingly valued by the industry. This article makes an all-round summary introduction to the SIP protocol through several aspects of the background, function, network element, implementation mechanism, and the composition of the SIP message, so that the reader has a preliminary concept and understanding of SIP.
Keywords: SIP NGN Proxy Server
First, the background and function of the SIP protocol
The development of SIP (session initial protocol) is to help provide advanced telephone services across the Internet. The Internet phone (IP phone) is evolving to a formal business phone mode, and SIP is an important member used to ensure this evolutionary implementation of the NGN (next-generation network) series agreement.
SIP is part of the IETF standard process, which is established on the basis such as SMTP (Simple Mail Transfer Protocol) and HTTP (Hyper Text Transfer Protocol). It is used to create, change and terminate calls between users based on IP networks. In order to provide telephone services, it also needs to be combined with different standards and protocols: especially need to ensure transmission (RTP), interconnects with the current telephone network, can ensure the voice quality (RSVP), can provide a directory (LDAP), can Right user (RADIUS), etc.
SIP is described as a session used to generate, modify, and terminate one or more participants. These sessions include Internet multimedia conferences, Internet (or any IP network) telephone calls and multimedia publishing. Members in the session can communicate with a network that is connected or unicast. SIP support session description, which allows participants to agree on a set of compatible media types. It simultaneously supports user mobility by proxy and redirect requests to user current positions. SIP is not bundled with any particular conference control protocol.
Essentially, SIP provides the following functions:
Name translation and user positioning: No matter where the caller is ensuring that the call reaches the called party. Perform any description information to the mapping of positioning information. Make sure the essential details of the call (session) are supported.
Feature negotiation: It allows groups related to calls (this can be multi-party calls) on supported features (Note: Not owners can support the same level of features). For example, video can or cannot be supported. In short, there are many scope of consultation.
Call Participant Management: Participants in calls can introduce other users to join calls or cancel them to other users. In addition, the user can be transferred or set to a call.
Call feature changes: the user should be able to change the call feature during the call. For example, a call can be set to "Voice-ONLY", but during the call, the user can need to turn on the video function. That is to say, a third party joining a call can open different characteristics in order to join the call.
Second, SIP network elements
There are two elements in the SIP. SIP User Agent and SIP Network Server. The user agent is the terminal system element of the call, and the SIP server is a network device that handles signaling with multiple calls.
The user agent itself has a client element (User Agent Client UAC) and a server element (User Agent Server UAS). The client element initial call and the server element should answer the call. This allows the call to the point to complete through the client-server protocol.
SIP server elements provide a variety of types of servers. There are three server forms existing in the network - SIP stateful proxy server, SIP stateless proxy server and SIP redirect server. Since the caller is not necessarily aware of the IP address or host name of the caller, the main function of the SIP server is to provide name resolution and user positioning. You can obtain an address of an email or a phone number associated with the caller. With this information, the caller's user agent can determine a particular server to resolve address information - this may involve many servers in the network.
The SIP proxy server receives the request and decides where to transfer these requests to the next server (using the next hop routing principle). There can be multiple hops in the network. The status of state and stateless proxy servers is that the status proxy server remembers its reception request, and the response of the retransmission and the request it transferred. There is no state proxy server to forget all information once it is transferred. This allows state proxy servers to generate requests to try multiple possible user locations in parallel and send back to the best response. The stateless proxy server may be the fastest and is the backbone of the SIP structure. There is a status proxy server may be the recent local device closest to the user agent, which controls the user domain and is the main platform for application services.
Redirect the server reception request, but not transmitting these requests to the next server but transmit a response to the caller to indicate the address called the user. This allows the caller to contact the address of the caller on the next server.
Third, the implementation mechanism of the SIP protocol
SIP is a hierarchical protocol, which means that its behavior is described in accordance with a set of equal independent processing phases, and each stage is just loosely coupled. The protocol layered description is to express, so that the description of the function can span several elements in a portion. It does not specify an implementation of any way. When we say that an element contains a layer, we refer to it complies with the rule set defined by this layer.
Each element specified in the agreement contains each layer. Moreover, the elements specified by the SIP are logical elements, not physical elements. A physical implementation can be selected as a different logic element, and may even on the basis of one transaction.
The bottom of the SIP is grammar and encoding. Its encoding is specified using the enhanced backus-NAYR form syntax (BNF).
The second layer is a transport layer. It defines how a client on the network will send requests and reception responses and how a server receives requests and sends a response. All SIP elements include transport layers.
The third layer is a transaction layer. The transaction is the basic element of SIP. A transaction is a request (using the transport layer) by the client transaction (using the transport layer), and all responses to the client to send back to the client from the server transaction should be requested. The transaction layer processing application layer retransmission, matching response to request, and application layer timeout. Any user agent client (UAC) is created using a set of transactions. The user agent contains a transaction layer, and there is a stateful agent. The stateless agent does not include a transaction layer. The transaction layer has a client component (called a client transaction) and a server component (called server transaction), each represents a limited state machine, which is constructed to handle specific requests.
The layer above the transaction layer is called the transaction user (TU). Each SIP entity, in addition to the state of state, is a transactional user. When a TU wants to send a request, it generates a client transaction instance and delivers the request and IP address, port, and transmission mechanisms used to send the request. A TU generates a client transaction can also delete it. When the client cancels a transaction, it requests the server to stop further processing, restore the status to transaction initialization, and generate a specific error response to the transaction. This is completed by the Cancel request, which constitutes its own transaction, but involves a transaction to be canceled.
SIP indicates the user address via an address in the form of an email. Each user is identified by a first-class URL that is constructed by elements such as a user phone number or host name (for example: SIP: user@company.com). Because it is similar to the Simail address, SIP URLS is easily associated with the user's Email address.
SIP provides its own reliability mechanism to be independent of the grouping layer, and only unreliable packet services. SIP can be typically used on UDP or TCP.
SIP provides the necessary protocol mechanism to ensure that the terminal system and proxy servers provide the following services:
● User positioning
● User capacity
● User availability
● Call establishment
● Call processing
● Call forward, including: (1) Equivalent 800 type call, (2) No answer call forward, (3) Turn forward, (4) unconditional call forward ● Call number passed, this number can Is any naming mechanism.
● Personal mobility, such as by a single, location-independent address, to the caller, even if the terminal is changed by the caller.
● Terminal type negotiation and selection: The caller can give the selection how to reach the other party, such as through the Internet phone, mobile phone, or answering business, and the like.
● Terminal capability negotiation
● Caller and caller authentication
● Unaptified and guided call transfer
● Invitation to multicast meetings
When a user wants to call another user, the caller requests the initial call with the INVITE, and the request includes sufficient information to be used by the caller. If the client knows the other position it can directly send the request to the other IP address. If you don't know, the client will request the request to send to a local configuration SIP web server. If the server is a proxy server it will parse the location of the called user and send the request to them. There are many ways to complete step, such as searching for DNS or accessing the database. The server can also be a redirect server, which can return the location of the call to the call client to contact the user directly. During the positioning user, the SIP network server is of course an agent or redirect call to other servers until a server that explicitly knows the call user IP address is reached.
Once the user address is found, the request is sent to the user, and several options will be generated. In the simplest case, the user's telephone client receives the request - that is, the user's phone ringing. If the user accepts a call, the client machine client software specifies the ability to respond request and establish a connection. If the user rejects the call, the session will be redirected to the voice mailbox server or another user. "Specified Ability" refers to the functionality that the user wants to enable. For example, client software can support video conferencing, but users just want to use audio conferencing, which only enables audio functions.
SIP also has two other features. The first is that the state SIP proxy server has the ability to split the call or copy the incoming call, so that several extension branches can be run simultaneously. The branch of the first response accepted a call. This feature is very convenient to operate between two locations (eg, laboratory and office) or while ringing the manager and its secretary.
The second feature is the ability of SIP unique returns different media types. Lift an example of a user contact company. When the SIP server receives the client's connection request, it can return to the customer's client via the web interactive voice response page, which has available sectoral branches or users on the list. After clicking the appropriate link, you will send a request to the user to select a call.
Fourth, the composition of SIP messages
There are two types of SIP messages:
● Request: From the client to the server
● Response: Send from the server to the client
The SIP request message contains three elements: request, head, and message.
The SIP response message contains three elements: status line, head, and message body.
The request line and the header domain defines the nature of the call according to the service, address, and protocol features, and the message body is independent of the SIP protocol and can contain anything.
SIP defines the following method:
INVITE - invite users to join the call.
BYE - Terminate a call between two users on a call.
Options - requests information about server capabilities.
ACK - Confirm that the client has received the final response to Invite.
Register - Provides an address parsing map that allows the server to know the location of other users.
INFO - for session signaling.
Five, conclude