Top 3 Products & Services
Dated: Aug. 13, 2004
Related CategoriesComputer Beginners Guides
Instant Messaging (IM) technology has been around for some time. One of the first instant messaging programs was the Unix talk program, which enabled users to communicate with instant messages provided they were both connected to the same Unix server.
IM really began to take off in the mid-90’s with AOL’s Instant Messenger. Soon other IM systems began to proliferate, including Yahoo Messenger, ICQ and MSN Messenger. All of these had buddy lists which could be used to add contacts, and presence which enabled you to see which of your contacts were online, available, busy, etc. The problem was that none of these applications could interoperate, so an end user had to install several IM clients in order to talk to friends using different systems.
All of these systems were offered free by companies such as Microsoft and Yahoo in order to draw users to their online content. Users began installing these IM programs at work and using them to communicate with co-workers. Recently, enterprises have begun to see the value in IM for corporate use.
Viewing IM and presence as applications only for sending text messages is a very limited view. IM and presence must be viewed as part of a larger set of communications services, as they can be leveraged for voice, video, multimedia, games, and many other forms of communication.
IM and presence, if integrated into a larger communications platform can add the following benefits to the enterprise:
- Elimination of "Phone tag”: It is estimated that between 40-60% of business phone calls are unsuccessful, meaning that the caller fails to reach the called party because they are busy, or away from their desk. Integrating presence with voicecommunications enables callers to know when a person is present.
- Polite Calling: IM and presence enables users to express not only their availability, but their willingness to communicate. If a user is working on something, which requires their complete attention, and they do not want to be distracted, a presence system will let other users know this and they can wait until that person is once again ready to communicate.
- Automatic Callback on Presence: An application can reinitiate a new call as soon as a notification is received that the party to be called is reachable.
- Instant Conferencing: Ad-hoc conferencing with different people at different geographical locations is made possible.
- Call Centers and CRM: IM and presence add great value to call center and customer service operations. When customers call in for assistance, they will no longer have to wait for a customer service representative while being put on hold and listening to elevator music. Instead, they will be able to work on other things and will be alerted when a customer service representative becomes available.
Enterprise IM requires additional security and message encryption, as well as other features such as archiving and auditing. Giga Information Group predicts that the number of Enterprise IM users will grow 200% annually to over 150 million users by 2004.
The IMPP Working Group was formed in order to define the protocols and data formats required to build an internet-scale, end-user presence awareness, notification and instant messaging system. The scope of the group’s activities includes defining requirements and architecture for this system, which address issues of presence, naming, authentication, access control, and scalability.
Before addressing each of these issues, their first task was to create a model for a presence and instant messaging system, defining the entities required for such a system and their relationships to one another.
IMPP Model For Presence and Instant Messenger
The model for presence involves two basic entities, a "presentity” and a presence service. The presence service’s primary function is to receive, store and distribute presence information.
The basic unit of presence information is a presence tuple. A presence tuple consists of a status field and a communication address. The status of a presence tuple could be "online”, "offline”, "busy”, "away” or "do not disturb”, or other values such as "Back by 3 p.m”. The communication address consists of a communication means, such as email, pager, cell phone, etc., and a contact address, which is the service’s specific address.
The presence service has two types of clients, presentities, which provide the presence information to the service, and watchers, which receive presence information from the service.
Instant Messaging Model
The instant messaging model consists of a sender, which sends the message and an instant message service, which forwards it to an instant inbox. An instant message protocol governs the interaction between these entities and carries the messages between them.
The instant inbox address is information that can be included in presence information to define how messages should be delivered to it. The status field in the presence tuples indicate whether messages will be accepted at that particular instant inbox.
In both of these models, principals, which can best be described as end users (Bob, Alice, etc.), interact with the system through user agents. The model also describes security elements through access rules and visibility rules. Access rules determine how a presence service makes presence information available to watchers. Visibility rules determine how watcher information is made available to other watchers.
The IMPP Working Group went on to develop instant messaging and presence protocol requirements based off of this basic model.
SIP and SIMPLE
SIP, or Session Initiation Protocol is a text-encoded protocol based on the Hyper-text Transfer Protocol (HTTP) and Simple Mail Transfer Protocol (SMTP). SIP’s functions relate primarily to session initiation, but SIP has many other functions which can be leveraged to provide instant messaging and presence services.
SIP uses a set of methods to accomplish many communication functions. Session related functions include:
- Address Resolution: SIP performs address resolution upon initiation of a session.
- Establishing Communication Sessions SIP uses an INVITErequest to set up a session between two user agents.
- Media Negotiation Media negotiation occurs between user agentsusing another protocol called Session Description Protocol (SDP).
- Session Modification Sessions can be re-initiated with a change inmedia type, source IP or port number.
- Session Termination and CancellationSIP can also perform many non-session-related functions. The following functions areespecially relevant for instant messaging and presence services
- Mobility When a user agent registers with a SIP registrar server, theycan include multiple URL’s, which enable calls to be routed todifferent IP addresses depending on where the user is located.Automatic re-registration is possible, so that whenever the user signson to a different device, the SIP registrar server automatically isupdated with the current device’s URL.
- Message Transport SIP has a MESSAGE method that can be usedto transport instant messages, even without having established asession.
- Event Subscription and Notification SIP has built-in operationsfor event subscription and notification.
- Authentication and Security SIP supports authentication andsecurity using an encrypted username and password.
- Extensibility User agents can implement new extensions to the SIPprotocol by creating new headers and message bodies.
SIP and SIMPLE are clearly the best solution for IM and presence systems. The majorreasons are summarized here.
- SIP already contains the necessary operations for presence and IM.SIP’s SUBSCRIBE, NOTIFY and MESSAGE operations can support presence and IM forall types of instant communications. The infrastructure for presence already exists in theform of SIP registrar servers. SIP already solves the issues of user agent registration andauthentication.
- SIP supports mobility implicitly.Registration in SIP enables user presence to be tied to multiple devices.SIP and SIMPLE encompass all forms of communication.While protocols such as XMPP are designed solely for text messaging, SIP IM and presencefeatures can be used for voice, video, data, and games as well as text.
- SIP is scalable.SIP works on both TCP and UDP, which allows SIP servers to scale well. SIP uses DNS foraddress resolution, and DNS is scalable due to its distributed nature and use of caching.
- SIP uses peer-to-peer rather than client-server architecture.While systems that use XMPP have servers that maintain the state of each user session, withSIP the only place where session state information is maintained is at the endpoints –because it is in fact only the end users that have an interest in that session. This is consistentwith the end-to-end architecture of the Internet.
Now that you've gotten free know-how on this topic, try to grow your skills even faster with online video training. Then finally, put these skills to the test and make a name for yourself by offering these skills to others by becoming a freelancer. There are literally 2000+ new projects that are posted every single freakin' day, no lie!