Stuff we notice while nourishing an open phone API platform.


1 week ago

Install an open source Asterisk phone app, get $250

We’re trying to make powerful phone and SMS apps easier to use, which means documenting how to deploy and use them.  It’s a chance to contribute to open source apps and make $250 for your effort.

HOW IT WORKS

We hope that the combination of powerful free apps, straightforward docs, and easy pay-as-you-go Asterisk hosting will encourage others to deploy these apps and write new ones.

THE APPS

Some of these apps are described on VentureVoIP.  Suggest another app if we missed a full-featured app that you like.

A FEW RULES

And of course, if you get stuck or have a special request, ask.  We can’t promise any customizations, but we’ll sure try.  The bounty may end September 30, 2010 or at our discretion.  To submit, add a comment or email support at cloudvox.com.

Here’s to powerful, flexible, portable voice services. Enjoy!

4 months ago

What the Truth in Caller ID Act (HR 1258) means

The House just passed HR 1258, the Truth in Caller ID Act (PDF).  Folks are talking about it on Twitter, Ars Technica, and elsewhere.  Here’s a rundown of its impact.

Note: I run Cloudvox, a hosted phone call API for building lightweight, Asterisk-compatible apps.  Since it exposes a lot of call control to users, I’ve been watching this with interest.  However, this was not prepared by a lawyer and is not legal advice.

misleading or inaccurate caller ID information, with the intent to defraud or deceive

It doesn’t disallow all caller ID spoofing.  This is important because Google Voice re-transmits caller ID of the original caller, and does so as a way to increase visibility for its customer (the call recipient) rather than defraud or deceive.  This type of recipient-authorized caller ID spoofing should still be permitted.

any real time voice communications service, regardless of the technology or network utilized

then the information it sends about a caller is probably covered by this bill.  The bill is not specific to the Public Switched Telephone Network (PSTN), VoIP, or another implementation.  Explicitly covering any technology may mean that legislative writers and the FCC understand that not-yet-created services will matter to consumers before they’re able to update laws to reflect it.

While pretty much everyone opposes using CID to defraud, the devil’s always in the details when it’s turned into legislation.  This is a starting point.  Add clarifications or corrections as comments, or contact us.

5 months ago

Thomas Howe on hosted apps, per-minute pricing, and third-world education

A communications-enabled business process pioneer, Thomas Howe (@howethomas) is an app and API idea factory - winner of VON Magazine Innovator’s Award (March 2008) and the O’Reilly Emerging Telephony Mashup Contest - and a one-man industry hub.

Through Light & Electric, he helps enterprises make the most of new technologies, including phone automation.  Thomas answered a few questions for us.

Cloudvox: Light & Electric sees the inside of name-brand companies and carriers, yet you also hack all the time.  There’s usually an impenetrable cultural wall here.

As the CIO or CTO at one of these companies, how would you start to integrate GitHub, Rails, TenderApp-style customer-to-customer forums - or even just get comfortable with EC2 and Twitter?

Thomas Howe: From my experience, there’s really two opposing interest groups at most large companies: the IT department and the lines of business. The IT department is responsible for locking the place down, and delivering approved tools to the various departments. The LOBs aren’t really concerned with security and reliability, but are super interested in higher productivity and getting the job done. What tends to happen is that the IT department simply cannot get to all of the tasks on the list, leaving the LOBs out in the cold. Then, the LOBs go out and get tools like GitHub and GetSatisfaction, essentially end-running the IT department. Eventually, these tools become widely deployed in the company, forcing the IT department to support them in some way.


My approach would be to quickly create a “short list” of third party providers that the LOBs could use. In addition to the programming tools like Lighthouse and HopToad, I would add on business productivity tools like Basecamp and Salesforce.com. In this way, at least the IT department can head off competing services selected by the LOBs, and provide some sort of internal guidance about tools that might be appropriate.   Over time, you can at least guarantee that your company matures in a common direction, and you have some opportunity to pick best of breed providers for your teams.

Cloudvox: Per-minute pricing is at once the savior and the bane of voice: everyone’s used to it, but nobody seems satisfied with it.  What’s required to get past per-minute pricing, and is that a worthwhile goal?

Thomas Howe: I firmly believe that voice needs to stay at per minute pricing. Voice is a commodity, and should be treated as such.  The proper approach would be to take voice and put it into a larger application focus, and that can escape per minute pricing. For instance, you can make a voice mail box that has great features like voicemail transcription, language translations (leave a voicemail in English; listen in Japanese), enhanced notifications, VoiceXML support, etc. You can then charge a monthly fee for that service.  I think IfByPhone can mature its service offerings to include some really neat apps just like this; you guys really aren’t that far away.  That’s the way to escape minute pricing for voice - you need to escape voice as your application.


Cloudvox: What service or app do you wish someone would create (communication-related or otherwise)?

Thomas Howe: That’s such a dangerous question; I’ll keep it family friendly. 

My favorite voice application dude has been David Troy for years. I really fell in love with TwitterVision, and Twitter Vote Report was super innovative. His work with government and political issues, especially around transparency and access, is really inspirational.  It’s a lot like the work that Microsoft Research did in India with text messaging rice farmers to help them maximize yields and profit margins.  With that as the context, I want to see somebody create the application for a smart phone that truly brings education and training to anyone who can get access to it.  How many hundreds of thousands of geniuses are prevented from curing cancer, only because his life is all about digging ditches in Bangladesh? We have to stop this incredible waste of human talent in the third world by bringing these people access to the information they need to change theirs and their communities lives. The scale of lost human potential is truly amazing.

5 months ago

Get a Growl, Jabber IM, or iPhone alert when a call ends

Let your app update you as it takes calls.  When a Cloudvox phone call ends, here’s how to get an alert notification as a:

.. or a call to other HTTP-based destination, with flexible parameters.  Here’s sample Growl and Google Talk alerts:

This can call any webhook or other HTTP destination (POST or GET), and can pass custom-formatted parameters of your choosing.  Variable interpolation is performed, like inserting the caller ID above.

Jabber, Growl, Prowl, Twitter, and SMS are generated via Notify.io, a wonderfully elegant service for coupling HTTP services.  PubSubHubBub uses zh’s watercoolr PubSubHubBub hub.

Here’s a sample that notifies Notify.io and watercoolr, as part of a JSON phone app that speaks a phrase:

[{"name":"onhangup","url":"http://api.notify.io/v1/notify/your_notifyio_id?api_key=your_source_api_key",
  "method":"post","url_options":{"title":"Call","text":"from ${callerid}"}},
{"name":"onhangup","url":"http://watercoolr.nuklei.com/messages","method":"post",
  "url_options":{"channel":"channel_id","message":"Cloudvox call from ${callerid}"}},
{"name":"speak",
  "phrase":"in a moment, all of my notify.io recipients will know you've called. indeed."}]

Same code on gist: http://gist.github.com/338091

This is just a way to let Cloudvox do the work for you.  Since your HTTP/JSON apps and portable Asterisk/AGI phone apps are controlling the phone calls, your app could independently generate the same HTTP calls at any point in the call, or only when a certain option is chosen.

I will say that getting a Growl for every completed call is pretty neat.  Enjoy.

5 months ago

Mark Headd on Open311, SIP, portability, and more

We read Mark Headd’s blog and liked what he’s been up to.  The man is a creative hacking dynamo.  Mark was generous enough to answer a few questions.

Cloudvox: Through VoiceInGov.org, you’ve advocated for Open311 - the concept and the project.  What about open 311 caught your interest, and where do you see it leading?


Mark Headd: I’ve been interested in how governments use technology to improve public service delivery for a long time.  During my last stint in state government, I was part of an effort to create a multi-state repository for sharing application code between governments.  The idea was that if governments have common problems and face common challenges that there chould be a huge potential benefit from sharing solutions.


Even though this was not that long ago, the use of open source software in government was not as widespread as it is now and some concepts that are now in vogue had not really taken off yet - like cloud computing.  The effort was ultimately not very successful, and I think most of the reason was that it was driven by the CIO for the Commonwealth of Massachusetts at the time.  He was very famously skewered by powerful interests in the Commonwealth that were not enamored of his advocating for an open document standard.  But at least part of the reason for the failure of this initiative (in my own personal opinion) was that people just weren’t ready yet to think about governments sharing application code.  At least not enough of them to keep the initiative viable.


I see Open311 as the next step in the evolution of this idea. Unlike private sector entities, governments (with rare exception) are not in direct competition with each other.  There is enormous mutual benefit to be gained if governments work collaboratively on common problems.  Open311 has the potential to demonstrate that if governments share a common standard (as opposed to the earlier notion of sharing actual code) that they can leverage technology to improve service delivery.

Open311 is still very much a work in progress.  Getting governments to agree to use the standard is only part of the challenge - there is an implicit assumption in this effort that “if you build it, they will come.”  The “they” in this case is third-party developers, and private sector companies.  The assumption is that they will see the benefit of building solutions that adhere to the Open311 standard because it makes it easier to sell their solutions to multiple government customers.

The effort is still very young, but I hope to see it mature and become successful.  I also hope to see lots of phones-based apps being built to support Open311.


Cloudvox: You’ve worked with (and blogged about) many ways of defining communications flows, from very deep telecom-oriented systems to very light Web-oriented ones.  Are there elements or tasks that are still much harder than they should be, or maybe that VoiceXML does particularly well but newer lightweight technologies haven’t picked up on?


Mark Headd: I’ve said many times that there is an embarrassment of riches when it comes to building phone-based apps these days.  There are lots of choices, ranging from very lightweight frameworks and platforms to deep telecom-oriented systems.  Pretty much all of them cover about 75-80% of what the average developer needs to do with a phone application.  There appears to be a lot of things happening very quickly in this space, and there are new (and very interesting) services popping up all the time.  I’m really pleased to see so many that are based on Asterisk - it sort of validates in my mind that Asterisk is the Swiss Army Knife of communications technologies.


I see four trends/factors that will determine which of these new services will be around for the long haul:  

1. Portability

A new service may be launched that offerers some unique features, or does things that no one else can do.  But if I build my solution around this service, I’m stuck with them - that’s a deal breaker for me.  Services based on open source technologies and open standards promote portability and will be around for a while.   

2. SIP integration

Speaking of open standards, the defacto standard for VoIP telephony is SIP and platforms that support it will be around for the long haul.  I see “cloud telephony” as the ability to amalgamate different services from different parts of the web to support a single telephone call.  A single telephone call may be routed across multiple platforms and access multiple services (address lookup, account lookup, user authentication, CRM lookup, etc) to provide a service, picking up information along the way and perhaps being routed down a different path based on the data returned from these services.  The ability to “append” information to a phone call with SIP headers will become increasingly important as the infrastructure that supports phone calls becomes more cloud-based.

3. Multi-channel / multi-modality

The lines between different communication channels is blurring.  I think people expect to be able to serve themselves not only through phone-based IVR systems, but also through different channels - IM, SMS and even social networking services like Twitter.  Platforms and services that support multiple channels will be around longer than those that don’t.

4. Speech recognition

It’s interesting that with so many new platforms and services supporting phone app development, almost none of them makes it easier to build speech recognition applications.  I think that cloud telephony and the idea of a single phone call moving around between services and picking up information along the way will change the way people think about speech recognition.  It will become just another service that is accessed over the life cycle of a phone call - an on demand services that is called when needed, rather than an a rigid paradigm in which an entire phone application is developed. 



Cloudvox: What service or app do you wish someone would create (communications-related or otherwise)?


Mark Headd: Location is the new buzz word, and people can share their location with Twitter and will soon be able to with Facebook.  It seems every communication device there is can now tell you (and just about anyone else who cares, and some that don’t) where you are.


It would be nice if this was true for phone calls.  It is for some, but not for most.  There are ways of determining (or approximating) location on phone calls but few are easy, and almost none are cheap.  I’m not sure if there are ways to determine location when using other communication channels - SMS, IM, etc. - but it would be nice if someone came up with an easy way to do this.

7 months ago

Tinkering with Ifbyphone NetGet phone call API

We’re very excited to announce that Cloudvox was acquired by Ifbyphone today.  Ifbyphone has an impressive set of ready-made and ready-to-integrate phone services, and they share our vision of making phone services flexible, easy, and open.

Ifbyphone is as passionate about Cloudvox’s “Asterisk in the cloud” phone API as we are.  We’ll just be able to do more and grow faster.

Diving In

We’re tinkerers, so as part of learning about Ifbyphone, we wanted to actually use their services.  I’m on the board of a not-for-profit Internet peering point, the Seattle Internet Exchange, which helps its members move lots of Internet packets.

Members need to report urgent network problems, and their ops staff are trained to use phone calls for that.  I setup an automated service that answers a call, prompts for a member number (the last part or “octet” of their IP address), and uses Ifbyphone’s “NetGet” HTTP API to verify it and obtain their domain name.

It speaks the domain back to them, confirms it, and lets them describe the problem (like a voicemail).  We ask them to acknowledge that it’s urgent, and assuming they do, the SurVo emails the answers and voicemail to us (one of the destinations is a SMS gateway).

I could have created a similar phone business process without writing a single line of code, but I wanted to try integrating my IP verification.  Here’s how it works:

  1. On ifbyphone.com, I made a free developer account and got 100 minutes, then created a new “SurVo,” or Interactive Voice Response (IVR) flow.  The SurVo defines call logic and my preferences:Because the “Post SurVo Action” is “Net Integration,” my 1-step SurVo ends by posting the caller’s input to an URL I provide (source code below).  Looks like this:
  2. Then I created a second SurVo which speaks the domain (returned by my NetGet script), records a voicemail with the member’s problem, confirms the urgency, and assuming it is urgent, delivers it to me (or in production, our pager alias) via email.  That’s all within this SurVo:
  3. Now when Seattle IX members call our operations hotline, our ops staff, ticketing system, and pagers receive an email.  The email needs no other context: it has their phone number, each question, their answer, a WAV of them describing the problem, plus troubleshooting “pass through” data from my script (which wasn’t used in the call).  Here’s an email:

Here’s the source code to my small PHP phone script.  95% of the code is specific to my service, then lines 37-39 return my data and a redirect to the second SurVo.  Those last 3 lines are all it takes to do the phone logic.

We were impressed at how easy this was, and the caliber of the end result: text-to-speech is excellent, the automatic email contains everything, and the questions can change via the Web interface without modifying any code.  Here’s to an amazingly innovative 2010.

10 months ago

Launching an API: Majority has spoken, and they’re shouting “OS X”

After attending conferences with endless seas of MacBook Pros, this shouldn’t have surprised us, but it did. When Cloudvox launched its phone API platform on Thursday, 53% of visitors were using OS X. 53%. Not just a lot, a majority.

What’s this mean when launching a technical product? Most people’s first experiences - browser and potentially API client - will be on OS X. There’s a single platform large enough to justify extra effort and specific docs.

What We Saw

Among API hackers, entrepreneurs, and the technically inclined, the days of Firefox on Windows are long gone:

Take a look:

What’s This Mean?

We’re right in the middle of a few trends that will play out in 2010. For a technical product or API:

And broadly:


Browsing in 2010

Here’s one stab at same users in Oct. 2010:



A Theme By Tyler Molamphy. Powered by Tumblr.