So, I’ve not been much of a Maker recently, at least that’s what you’d conclude from this blog. But actually I’ve been busy busy busy at work creating new sample code, which hasn’t left much time for at-home tinkering. Except for the OpenVBX project I’ve been working on
I really like Twilio in a retro-futuristic way. I mean, navigating telephone trees (“Press 1 to be ignored. Press 2 to be referred endlessly from one department to another.”) was something I’d thought died with the dawn of smart phones. Why would I go through a linear search through an audio tree when I could click on a web page and go directly to the information I want?
Well, it feels different when you control the tree.
With Twilio you can make a phone call do just about anything you want. Text to speech? No problem. Speech to text? Easy. Record a message? Conference calls? Protect everything with passwords? All trivial. Even your own hold music! No more Muzak™!
So I long ago wrote a little package that knows all the phone numbers in my family, and if one of those numbers calls in, it automatically calls out to everyone else, sort of an active conference call or a rings-you party line. It works really well, but sometimes nobody answers (given that we’re spread across three timezones, its not surprising that my free time doesn’t match anyone else’s). So I began to wish for the ability to take messages and transcribe them to emails, and for people to manage their own call-in and call out numbers. That’s “easy” t0 do, but still a lot of code to test. I procrastinated for months.
And procrastination paid off! Twilio released OpenVBX which does nearly everything I want right out of the box. Now I can focus on just making one widget (the call-everyone party line) instead of all the UI and other stuff.
So I installed it and started to play with it and … hit a bug. Apparently some other folks had experienced the same thing, and Twilio had been looking at it for about a month, but no solution was offered. It turned out that I had just the right amount of ignorance on the internals that I found the problem quickly just looking at the obvious stuff, like “what changed since the last push when the conference call worked?” It was a one word change, something that got missed when the maintainers updated the API. I was disappointed that it was missed in their QA and that nobody had fixed it in a whole month. The QA problem is a ding on Twilio, but the not-fixing-for-a-whole-month is a super big ding on the open source users! Seriously folks, contribute!
Shawn Parker at Twilio saw my answer and got the fix added to the development branch pretty quickly, which I was really happy to see. And then he sent me a t-shirt! That’s the most profitable one word I’ve ever uttered