People attending the most recent SFTelephony Meetup were treated to a preview of “Whistle,” a very impressive suite of call processing fabric designed to work on multiple processors at high-volumes with high reliability. For those not familiar with the 2600Hz Project, it is a group of developers organized by VoIP Inc. to create open source telephony software, meaning clusters of components and APIs that enables the use of the FreeSWITCH, Asterisk and YATE switching libraries.
…and “yes,” both the name “2600Hz Project” and “Whistle” are references to the first “phone hacks” (back in the 1960s), which used a plastic whistle that came as prize in boxes of Cap’n Crunch cereal in order to generate audible tones (2600Hz) that spoofed the network into providing free long-distance service. Today, as co-founder Darren Schreiber explained to the Meet-up attendees, the company has found that today’s developers appreciate the availability of freely circulated software that can control the popular open source call processing resources, specifically FreeSwitch, but also including the Asterisk and YATE libraries.
Instead of a plastic whistle, the Whistle suite uses other tools of the trade. OpenSIPS, an open source rendition of a SIP Server, provides for basic call control. Flexibility and scalability are ensured by the use of computer languages and database schema that are relatively new to the telephony domain. The system employs the document-oriented CouchDB. As an open source product from Erlang Ltd, its scripts and programs are written in Erlang, which is described in company-provided documentation as “a general-purpose concurrent programming language and runtime system.”
Then there’s Chef, “an open source systems integration framework” from OpsCode. It is process automation software that allows developers to write source code that describes how they want each part of the infrastructure to be built, then it applies apply those descriptions to the servers. Thus it creates a fully automated way to add or take away servers.
I’m told by the folks who anticipate using Whistle for some heavy-duty call processing that direct access to AMQP (the Advanced Message Queuing Protocol) is also the secret to scaling, right-sizing and load-balancing. As Zhao Lu, organizer of the SFTelephony Meetup explains in his evaluation of the meeting, “Direct access to AMQP will be extremely useful for some of my use cases.” Presumably, granular control of message queuing is especially interesting when the call volumes (need to establish and tear down calls) are hard-to-predict or highly variable.
All in all, I was amazed at how quickly things are changing in the world of telco app development and multi-modal mashups. Whistle, which is designed to run in a highly-distributed way can be instantiated locally (or on premises) or in any number of hosted platforms (for example Voxeo’s Tropo, Twilio or Amazon Web Services EC2). With its JSON-based API’s it can make easy access to highly-reliable, open source call processing and voice processing resources a reality.
Categories: Articles