Mojo
Getting your telephone mojo on. [Updated: new pipeline.]
The other day,
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
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!
Like Gabe mentioned in an earlier comment, Lypp offers a similiar service with the additional feature that you can drive it via IM.
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?