What is SIP
SIP is one of the protocols used on the Internet and is intended for multimedia communication using P2P (Peer to Peer). It is also an Internet protocol planned by the Internet standards organization “IETF”, and its contents are documented in RFC2543 (later revised in RFC3261).
Protocols standardized by the IETF include “HTTP”, which is well-known as a data communication protocol for websites, and “SMTP”, which is used for sending Internet mail and receiving mail on servers. Like these protocols, it was developed as an Internet standard. The difference between HTTP used in web browsers and SMTP used in e-mails is that it is a protocol created for “communication between people in a form close to real time”. .
As the name comes from the English “Session Initiation Protocol”, which means “protocol to initialize a session”, the procedure for connecting two terminals and controlling the connection was originally It is an agreed standard. By applying this, it is used for various P2P multimedia communications.
Smartphone software and services
SIP is used for Internet calls, videophone calls, and video conferencing with a large number of people by combining the session control and RTP (real-time transmission protocol, streaming audio and video to clients). . For example, “VoIP” calls that carry voice over IP networks are probably the best known application.
In general, the IP phone service using SIP may be the most familiar place. Services such as NTT East / NTT West’s “Hikari Telephone”, which are also used by ordinary households, are services that use a broadband Internet line to allow IP telephones to be used instead of conventional telephones. One of the.
In the case of mobile phones, NTT DOCOMO’s “Home U” can use IP phone service by mobile phone with a phone number starting with “050” within the home wireless LAN (Wi-Fi) range. There is also a one-number service that allows you to use this IP phone call with “090” and “080” numbers. This IP phone service uses SIP and can be used with FOMA models such as “N-02C” and “N-08B” that support this Home U.
On smartphones, there are SIP client software such as “CSipSimple” and “Sipdroid” as Android applications, and SIP client software such as “iPhytter” and “iSip” exists on iPhone, iPad, iPod touch, etc. . In addition, SIP-based IP phone services are provided by companies other than mobile phone operators.
VoIP and SIP
VoIP (Voice Over IP) is a technology for exchanging voice over the Internet. The IP phone that has recently become popular is the equivalent of a conventional phone that is realized on the Internet by combining VoIP and signaling.
Signaling, in the case of a telephone, is call control, and refers to processing such as securing or disconnecting a communication path on the public telephone exchange network (telephone exchange network) between the caller and the callee. Similarly, signaling in IP phones is necessary to establish a session for exchanging voice over the Internet. There are several methods of signaling available for IP phones. A typical example is H.323 * 1 recommended by the International Telecommunication Union-Telecommunication sector (ITU-T) in 1997 .
H.323 roughly defines audio / video transmission / reception, audio / video codec, etc. in addition to signaling. Since its introduction, many products such as video conferencing systems and IP telephones have been implemented based on H.323.
H.323 is a protocol that can support a wide range of voice and video communications, but the protocol is binary description and the data structure uses ASN.1 (Abstract Syntax Notation One) * 2 . The process is complicated.
SIP, on the other hand, was standardized by the Internet Engineering Task Force (IETF). The first edition appeared in 1999 and was defined as a standard track in RFC3261 * 3 published in 2002 . Since messages in SIP are written in text and designed using HTTP and SMTP as examples, it is said to be simple, highly scalable, and highly compatible with the Internet. As a result, implementation is easier than with H.323, and the signaling protocols used in IP telephony are being integrated into SIP from H.323 and other proprietary vendor protocols.
RFC3261 that defines SIP is a very thick RFC with 269 pages. It shows that a huge amount of regulations are required. I can’t give you all of them here, so I’ll just give you an overview.
SIP is a protocol that only creates, modifies, and disconnects sessions between terminals (User Agent: UA). It does not define the data that is exchanged over a session. Therefore, the application can be used in a wide range of applications such as IP phone if voice is exchanged over a session controlled by SIP, video phone if voice and video, and instant messenger if text message.
Next, let’s assume that Alice makes an IP phone call to Bob as an example. The devices that appear here are Alice and Bob’s IP phones (= UA), and SIP proxy servers A (atlanta.com) and B (biloxi.com) that each IP phone accommodates. A SIP proxy server is like a switchboard in the public switched telephone network. It receives requests from UAs and proxies and sends them to appropriate UAs and proxies.
Establishing a session begins with sending an INVITE message. UA identification in SIP is performed in URI (Uniform Resource Identifier) format like sip: email@example.com, sip: firstname.lastname@example.org, and Alice uses sip: bob @ to establish a session with Bob Send an INVITE message to biloxi.com (Figure 1-1).
Figure 1 shows an example of an INVITE message from Alice to Bob.
As you can see from this message format, the contents of the message can be read because it is written in ASCII in SIP. And because the format is similar to HTTP and SMTP, the contents can be easily understood.
Proxy A that received INVITE sends an INVITE message to proxy B at biloxi.com because the destination is email@example.com (Figure 1-2). Proxy A also sends provisional response 100 Trying to notify Alice that “INVITE to proxy B is being executed” (Figure 1-3).
This “100” is a status code that indicates the result of the request, and is a specification that extends the status code defined by HTTP as shown in Fig. 2.
Proxy B sends the INVITE to the subordinate Bob from the received INVITE (Figure 1-2) (Figure 1-4).
Bob who received INVITE performs call processing from the other party, such as ringing the telephone bell, and also sends a provisional response 180 Ringing to Proxy B to inform the caller (Alice) that the call is in progress. Ringing is forwarded to Alice (Figures 1-6, 7 and 8).
Bob sends success 200OK to A via proxy B / A, such as by handset off-hook (pick up the handset) (Figures 1-9, 10, 11).
Alice sends an ACK response (acknowledgment of session establishment) to Bob based on 200OK from Bob (Figure 1-12), and a session is created between Alice and Bob. Voice data is exchanged on the generated session and the call is placed.
When the handset on Bob goes on-hook, the session ends and the call ends with a BYE request (session disconnect request) and a 200OK response (Figures 1-13 and 14).
Although it is simpler than above, I explained the outline of SIP.
Since SIP signaling is simple and similar to HTTP and SMTP, you can see that it is easy to understand and implement.
Here are just a few parts of SIP. There are various other mechanisms. If you are interested, please refer to documents such as RFC.
SIP and interoperability
Now, SIP is spreading to IP phones, but here we will describe its interoperability.
In recent years, various VoIP terminals (UAs) have emerged as a result of the introduction of VoIP within enterprises and the introduction of VoIP in the consumer market as broadband spreads. With the spread, interoperability between VoIP devices has become a problem.
Generally speaking, you will think that interconnection is possible between IP phones and servers (VoIP exchanges) that implement SIP, a protocol standardized by the IETF. However, at present, unfortunately, the interconnection may not work.
Since VoIP devices tend to be closed systems from the beginning, servers (VoIP exchanges) and IP phones have been developed as a set and may be expanded independently. In addition, the URI notation method differs depending on the vendor, and the fact that the RFC is not strictly defined, etc. affects the interoperability between SIP-compatible products and VoIP providers.
In order to solve this problem, activities are being carried out to achieve interconnectivity from the standard and mounting aspects. In terms of standards, the Information and Communication Technology Committee (TTC) * 4 is developing specifications necessary for interconnection. In terms of implementation, interoperability between vendors (terminals and servers) is being verified at the Telecom Service Association VoIP Promotion Council Interconnection WG * 5 and Advanced Communication Systems Interconnection Promotion Meeting * 6 . In the VoIP / SIP Interconnection Verification Task Force * 7 , verification of interconnections between VoIP operators is underway.
It can be said that the problem is moving in the direction of solution through the interconnection verification activities in various places.
VoIP is occupying an important position on the Internet and will continue to spread. With the spread of SIP, the problem of interconnectivity, which is a problem, is progressing step by step through various activities.
It is expected that VoIP and SIP technology will continue to mature and become more interesting as the market grows. Keep an eye on the trend.