Wednesday, May 10, 2006

XMPP exchange

Beyond a better signaling, I believe Jingle offers XMPP an opportunity to to rethink the phone system architecture outside the current PBX implementations. I include in these the latest flavors of SIP based IPBXs. XMPP is ideally suited to implement a fully distributed architecture to support a new generation phone exchange. To expose this architecture at a high level, let’s start from the voice functions we want the phone system to provide in a PBX.

  • We first of all want exchange functions, including but not limited to call setup, call holding, call transfer, call forwarding, call queuing and conference call.
  • We also want a voice-mail function with message waiting indication and mail box management. The voice mail does not have to be co-located with the PBX.
  • We may finally want some call recorder function. The recorder does not have to be co-located with the PBX.

Let’s look at how leveraging XMPP built in mechanisms provides a consistent framework to implement these services.
For each of the three listed independent functions, we would need to discover the service location and its associated features. Services may be located anywhere on the Internet or a private network. This is just what the service discovery is about.
The phone exchange and recorder functions will be using the Jingle signaling framework. The voice mail function will be provided through a combination of Jingle, to negotiate a voice session with the mailbox, and offline message message retrieval to provide the mailbox management.

Why is XMPP be better suited than other existing protocol to this task? Simply because by it’s very nature XMPP provides:

  • a well established extensible service discovery mechanism,
  • an overlay capability that does not entirely rely on DNS to build private networks,
  • an inherent high level of trust derived from it’s authentication and authorization mechanisms,
  • a fine grained privacy control,
  • a built in presence and personal availability support.

This high level architecture is generic, in that it does not mandate a particular physical implementation. It also follow the mentra of simple clients/complex server. The Jingle framework allows a common way to negotiate the session, media and the transport parameters independently. So anyone will be able to choose from a vast array of available building blocks. The implementation could either support XMPP natively, or provide an XMPP proxy component to an existing PBX such as Asterisk, but also any other phone systems, or phone services. Furthermore, a proxy component could either be interfacing with a single PBX, or acts as an aggregator of different phone services.

Technorati Tags: , , , , , , , , ,