Question. What can you do with SIP? If you are like most people you will tell me that “SIP is used to make telephone calls.” Some of you might also add video calls to the list, but for the most part I would be told that SIP is used to make some sort of “call.” While this is certainly a very valid usage of SIP, the idea of making some form of call only scratches the surface of what SIP can do.
If you have been following my blog, you perhaps know that for many years I was a software developer working on SIP endpoints and services. Not to brag (at least not too much), I have four United States patents in SIP technology. During my days as a developer, I wrote a lot of code that created and managed SIP “calls.” However, I also wrote as much code that had nothing to do with calls. I worked on a project that used SIP to create a shared whiteboard/drawing space. Think of extending the Microsoft Paint program across the Internet where two people could play with the same drawing canvas at the same time. I also worked on a SIP-based chess system. One of my more interesting creations was software that shared a computer’s clipboard between two different PCs. I was able do a copy on one PC and then paste that data on another PC. How did that date get from one machine to the other? SIP, of course.
The point is that SIP can be used for things far beyond dial tone. While it’s true that dial tone features are presently a big part of SIP, I would venture to say that as time goes on and we expand our use of other forms of communication, SIP for voice may one day become the lesser case.
I divide the non-call aspects of SIP into two different camps. First, there are the real-time communications aspects. These involve creating a session and passing data. My chess game is an example of this. A SIP INVITE message is used to establish a session between two players. Contained within that INVITE is SDP that defines the IP address, port, and protocol used to transmit chess moves. The game ends with a SIP BYE message. With the exception of the SDP data values, these are the same things you would do for a voice or video session.
I would also lump instant message into this real-time form of communication, but instead of INVITE messages, SIP employs the MESSAGE request. Within the MESSAGE is the IM text. Unlike other forms of real-time conversations, no session is established, but it’s still the passing of data between two users.
The next big class of SIP applications do not rely on INVITE or MESSAGE requests. In this case, SIP SUBCRIBE, PUBLISH, and NOTIFY messages are used to create a client/server relationship between two entities. This subscription/bond informs the server of who is interested in something and notifies the client when that something has changed. For example, a SIP entity will subscribe to the voice mail status of the logged in user. When a new voice mail arrives for that user, the client is notified and the entity can display text, or in the case of a physical SIP telephone, illuminate a red light.
SIP subscriptions are amazingly powerful and allow you to go well beyond dial tone and calls. I’ve seen SIP used to subscribe to a user’s class-of-service options. This allowed an administrator to set options for a user (e.g. this user now has the ability to perform conferences) and have that user’s end point visually display the change (e.g. un-gray the conference button on a soft phone). Users can also subscribe to address books to be informed of changes or an alarm system to know when an emergency condition has gone into effect.
How about using SIP to remote control your house? As far-fetched as that might sound, someone already created a design and published it on the Internet. If you want to see just how far you can move SIP away from phone calls, navigate over to http://www.hindawi.com/journals/jcnc/2012/190639/
If you are curious as to how Avaya uses subscriptions to extend the telephony features of their telephones, please read my blog on Avaya SIP Telephones.
I find the idea of extending SIP into technologies beyond communications extremely fascinating. So much so that I will be presenting a session on it at the upcoming International Avaya Users Group (IAUG) convention in Dallas this April. If you are planning to be there, I would love to have you attend this or any of my other sessions. I strive to make my sessions both informative as well as fun. Okay, nerdy fun, but if you weren’t already a nerd I highly doubt you have read this far.