In the first part of this article series, I talked about the basic functionality of SIP, and how SIP fits in with some other commonly used protocols. In this article, I want to continue the discussion by talking about how SIP performs some of the tasks that I talked about in Part 1.
Basic SIP Operation
As I explained in the first part of this series, there are certain tasks that SIP is responsible for performing. SIP performs these tasks by issuing commands, which are commonly referred to as verbs. Any time that SIP issues a verb, the host that the verbs are being transmitted to responds with a numerical code. This code tells SIP the results of the requested action so that it knows what it needs to do next.
Later in this article, I'm going to show you some of the more commonly used verbs, and provide you with a general overview of what the response codes mean. Before I get into all of that though, I want to give you an example of how the process works as a whole.
Perhaps the most commonly used verb associated with SIP is REGISTER. REGISTER is used primarily for logging into the SIP environment, but the REGISTER verb can also be used when a user is logging out or changing locations.
With that in mind, here's a condensed version of what happens when a user tries to log into an Office Communications Server:
Other SIP Verbs
Now that I have talked about the REGISTER verb, and given you a brief (and simplified) example of how the verbs and responses work, I want to talk about some of the more commonly used SIP verbs.
The first two verbs that I want to talk about are SUBSCRIBE and NOTIFY. These two verbs work together to make it possible to use presence information. Suppose for instance that User1 wanted to monitor the presence information for User2. User1's client application would issue a SUBSCRIBE command to the host server indicating that they wanted to monitor User2. The Host would return a response code of 200,
To continue reading for free, register below or login
To read more you must become a member of SearchUnifiedCommunications.com
');
// -->

indicating that the command was successful, but then the host would issue a command of its own. In this case, the host would issue the NOTIFY command to the client, informing them of User2's current status. Upon receipt of this information, the client would return response code 200 to the server. This process is repeated any time that User2's presence information changes. Since User1 has subscribed to the information about User2, the host will Notify User1 any time that User2's status changes.
Another verb that I want to talk about is the SERVICE verb. In the previous example, I talked about how a host could notify a subscriber when another user's presence information changed. However, the user whose presence information changed needs to have a way of informing the host of that change. This is where the SERVICE verb comes in. Any time that a user needs to change their presence information, their client application issues a SERVICE command to request that the host perform some kind of service; in this case making a change to the presence information. The SERVICE command can also be used to do things like creating or modifying conferences.
Another commonly used verb is INVITE. The INVITE verb is used to establish a peer-to-peer communications session. Probably the most well known use for the Invite verb is in establishing instant messaging sessions, but it can also be used for establishing audio and video conferencing, application sharing, and whiteboarding.
There are a few other really common verbs that I want to quickly mention. Below is a list of these verbs and a brief description of what they do:
ACK - ACK is an acknowledgement that is sometimes sent to a host in response to response code 200.
BYE - Used to terminate a session.
CANCEL - A request to cancel an Invite request.
Now that I have talked about some commonly used verbs, I want to talk about some of the response codes that are used. Generally speaking, response codes are grouped into ranges. Codes within a range have similar functions. The table below lists the ranges that are used, and what the function of that range is:
[TABLE]
Conclusion
In this article, I have talked about some of the more commonly used SIP verbs and response codes. In part 3, I will conclude this series by talking about SIP routing.
Read part 3 of this SIP introduction series.
About the author:
Brien M. Posey, MCSE, is a Microsoft Most Valuable Professional for his work with Windows 2000 Server and IIS. Brien has served as CIO for a nationwide chain of hospitals and was once in charge of IT security for Fort Knox. As a freelance technical writer, he has written for Microsoft, CNET, ZDNet, TechTarget, MSD2D, Relevant Technologies and other technology companies. You can visit Brien's personal website at www.brienposey.com.