Mojo

Volume 10, Issue 112; 18 Oct 2007; last modified 08 Oct 2010

Getting your telephone mojo on. [Updated: new pipeline.]

The other day,

<foaf:name role="fullname">Paul Downey</foaf:name>
offered me a login on his mostly stealth-mode project, http://mojo.bt.com/. (I'm not outing them, or if I am, it's Paul's fault, he said it was ok to blog about it. :-)

Paul is a pretty consistent source of interesting stuff and good ideas, so I was delighted to take his new jalopy out for a spin. After logging in, I get this screen:

A bit of random clicking reveals that there's a fair bit of documentation about the APIs (more on those in a bit), but not much description of what this service actually does.

The “text message” bit seems fairly straightforward; I plonk in my mobile number and a message, click “send”, and a few seconds later my phone buzzes on my desk and half scares me to death. “Hello world” it says. Just what I typed.

Now “phone call”. Phone call?

I can see only one obvious interpretation, so I plonk in my work number, my home number, and click “make call”. A few seconds later, my phones ring and I'm connected to myself (by way of BT, I assume; not the most efficient way to connect two phones on the same desk on this side of the pond, but it worked).

It worked!

I have no rational explanation for why this made me laugh gleefully for several minutes while Pinky and the Brain drifted through my mind. World domination by way of web service? It's not astonishingly new technology. There are teleconference bridges that will call out. You can even get the W3C's bridge to do it via IRC.

So I don't know why it made me laugh, but it did.

By itself, a web page that lets you send SMS messages or make phone calls isn't really all that exciting. What makes the Mojo stuff cool is that it's all accessible with RESTful web APIs. If you can drive an http: connection, you can send messages and make calls.

That's a pretty interesting bit of infrastructure. And because it's all open, there's the real possibility of some unexpected applications. Good on BT!

One of the things you can do with your login is create your own “gadget”. So here's the obvious one for me to make, an XProc Gadget Pipeline.

Using this pipeline, I can send an SMS like this:

<px:mojo-sms xmlns:px="http://xproc.org/ns/xproc/ex"
	     username="ndw" to="+15555551234" text="My message"
	     secret="my-secret-mojo-key"/>

The pipeline I originally posted didn't work, in fact wasn't valid, but I've updated it (19 Oct 2007) and now it actually works! I'm laughing gleefully again, but the explanation is pretty obvious!

Pretty cool stuff, I think. And it feels pretty cool to be writing pipelines that actually do something new. We'll ignore the fact that this one required three extension steps: px:sha1, px:uuid, and px:url-form-encode. No, not ignore, it's a productive use case!

Thanks, Paul! And good luck with your mojo!

Comments

Hey Norm- You might also find Lypp interesting - similar offering, also a REST API

—Posted by Gabe Wachob on 19 Oct 2007 @ 12:06 UTC #

Hah, thanks for the great review Norm! This is pretty much stelth mode, but it's just a simple wrap for the Web21C Web services. There are a bunch of people exposing telephones onto the Web in various shapes and forms, and that's great because it's creating a market the old school cannot ignore. We're breaking down the walls of The Ministry of Telco! What's great about BT is this is very much just a toe in the water, and if it "works" we've a ton of great stuff to release onto the Web so people like yourselves can build silly and useful stuff. Fun times ahead!

—Posted by Paul Downey on 19 Oct 2007 @ 06:55 UTC #

Like Gabe mentioned in an earlier comment, Lypp offers a similiar service with the additional feature that you can drive it via IM.

—Posted by Mike Taylor on 19 Oct 2007 @ 08:24 UTC #

Looking at it the lypp and mojo security models seem pretty different.

Lypp just wraps basic authentication, whereas from what I can see here mojo has stronger security model. I wonder if BT are considering oAuth?

—Posted by mighty fish on 19 Oct 2007 @ 11:49 UTC #