The concept of killer app is a powerful driver of our
collective psychology. We want to believe that our entire community can
be propelled forward and our lives reshaped by the next must-have
technology. A search on VoIP killer app will give you an idea of the extend of this belief…
hard to get people excited about new frontiers and possibilities.
Painting vivid and exciting pictures is not enough. They need to be
credible. I earlier hinted at some of the reasons for considering presence the new dial-tone. Alec Saunders also looked at the decreasing value of Skype presence.
I believe that his post is characteristic of many misconceptions
attached to presence (in short IM is not presence, and AOL is not IM),
although he probably wrote it on purpose… That said, he re-stated the
major flaws of today's combined IM/VoIP messaging
tells you nothing about the person using the device at the other end.
For example, it doesnt indicate that I am talking when I am in a call.
- Presence gives me little to no control over who can reach me.
- Presence does not express my willingness to communicate.
agree when he says the word presence cannot properly express whether I
am willing to engage in a conversation. Same when he says we really
mean availability, i.e. the result of processing presence information
according to rules about our reachability. But this is yesterday's
news. This difference was entirely detailed by the PAM forum many years
ago. On the other hand, I believe Saunders is wrong when he says
presence is a broken idea. He should have said the implementation of
presence in all the existing IM or VoIP applications is broken. Not the
idea of presence.
Generating the new dial-tone
requires a tight integration between the presence aggregation engine,
the availability inference engine and the presence notification engine.
I will quickly expose why I believe XMPP as a protocol have a more
appropriate design to support this integration and produce an accurate
and useful dial-tone. A dial-tone that would signal busy when you do
not want to be disturbed, and be your voice mail's dial-tone when you
are in a meeting.
When establishing a point to point a voice
communication, presence does not appear necessary. And de-facto, many
VoIP services are only mimicking the PSTN model with a different
technology. So much for those trying to make you believe they are re-inventing telephony.
In doing so, VoIP is a bit of a side show. Establishing a bidirectional
audio stream over a network is also yesterdays news. VoIP only gets
all the attention because of the PSTN charges and the sustained rush to
mine them. Nonetheless, attempts at combining multimedia communications
with presence have been around, at least on paper, for some times. Some
implementations, such as Skype, call presence the information derived
from authenticating on their system. AOL, along with other legacy
services, is coming at VoIP from the instant messaging side. By adding
voice to a client, it can claim offering a presence enabled VoIP
service. Another interesting implementation is the upcoming 3GPP mobile
phone service. The most courageous amongst you may read their thousand
of specification pages to have an idea of how the carriers' world wants
to use SIP presence extensions.
All these implementations have in common a loose coupling
at protocol level between presence and call management. Skype's
presence is irrelevant. AOL use a mix of proprietary instant messaging
protocol with SIP signaling for the media sessions. The 3GPP IMS is SIP
based, but provides presence as an added value service through the SIMPLE extensions to SIP.
is a respectable player when it comes to negotiating point to point
call sessions. It carries the weight of some big industry names behind
it. But this concerns only SIP, not the integration of its presence
extensions. How many SIP phones on the market implement the SIMPLE
extensions? How many phones implementing these extensions actually use
presence as a way to indicate willingness to communicate? How many
presence enabled phones actually change automatically the presence
status to “on the phone” when the call is in progress (The same could
be said from AOL's Triton client)? By offering presence as a service
the telecom world is taking the wrong road.
You could say that
it would be easy to integrate these different protocols in the client.
I agree that setting a status to “on the phone” is easily implemented
in a client (I actually wonder why current SIP phones or clients are
not doing it, don't you?) On the other hand, deriving availability from
the aggregated presence information requires a close collaboration at
the protocol level between the presence and call management. This is
where, in my opinion, XMPP has an advantage. XMPP is a presence based
protocol. Not only do all IM client applications receive notification
of presence state changes, but many non IM XMPP applications are
natively presence enabled. These application will only provide their
services to you when you express certain presence states. Such
applications today range from IM federation gateways to news feed
aggregators and generic publish-subscribe systems. Many XMPP clients
already allow message to be filtered out against presence status, and
either shown or buffered. Because presence is deeply rooted in the XMPP
protocol, the usage of presence is natural to many developers. This
alone provides a huge advantage over other protocols. Many SIP
developers are still thinking like telecom developers, not focusing on
what a user is trying to accomplish and what the other party is
available for. In this context, Jingle,
as a natural extension to XMPP, will also benefit from the same
advantages. Very naturally, the upcoming Jingle clients can
automatically change the presence status when a call is in progress
(GTalk does not do it, but GTalk is not a Jingle client). Some Jingle
clients offer call filtering and call re-routing derived from the
actual presence set by the user. On the server side, XMPP enables
granular routing between multiple client instances based on presence application priority, whereas SIP will fork calls to every registered instances of a SIP URI.
all, XMPP has many natural constructs leveraging presence. The root
integration of presence in the protocol has created a larger community
of presence aware developers. In comparison, SIP
implementations today treat presence as accessory. Those of you that
have tried to integrate presence in SIP applications have certainly
found out that it is a complex task. And everybody would agree that
complexity is an app killer. [Planet Jabber]