Skip to content

Its official – Adhearsion & Voxeo

July 22, 2009

Picture 1Adhearsion is effective in making telephony applications easy to develop. The next phase is to make deployment and scaling of these applications easy while increasing choice of development environments. The first step in accelerating this phase was announced today, Adhearsion and Voxeo Launch Voxeo Labs! It is time to take Adhearsion to the cloud.

Some of you that have been following along closely, may already have noticed our involvement with We worked closely with Voxeo at the inception of Tropo which was subsequently launched at eComm in March of 2009. The goal of is to bring a scalable telephony cloud infrastructure to the broadest group of developers by allowing development directly in dynamic languages. Languages included are: Javascript, Groovy, PHP, Python and Ruby. We will now be focused on bringing Tropo and Adhearsion together to offer the power of Adhearsion with the scale of Tropo, while extending capabilities in the other languages.

Jay and I as founding members of Voxeo Labs is no accident. The DNA of Voxeo Labs is a commitment to open-source. Adhearsion will continue to evolve as an open-source framework with continued support for Asterisk along with Tropo and others. Our goal is to provide the widest possible set of deployment choices for the Adhearsion community, while eliminating friction for those who want effortless deployment and scaling.

Stay tuned as we have lots of interesting announcements just around the corner. In the meantime, thanks to the entire Adhearsion community for the support that allowed us to pursue this next step.


Adhearsion (アドヒアジョン) & Tropo presentation at Ruby Kaigi – Tokyo 2009

July 17, 2009

I just gave my talk at Ruby Kaigi in Tokyo Japan. The event is well organized and attended. I suppose that is a bit easier since Tokyo is the home of Ruby, and filled with 13 million people.

Here are the slides:

Behavior Driven Systems Monitoring for Telephony

June 10, 2009


While attending Euruko several weeks ago, I had the opportunity to see @aslak_hellesoy present the Cucumber Behavior Driven Development (BDD) framework. BDD is a part of Agile software development focused on bringing the domain expert into the specification process through the use of natural language. This is done through the users and developers creating a story that is directly parsed by the code for tests.

Aslak’s presentation was well done, giving some compelling reasons to adhere to BDD principals, showing that using Cucumber made it a joy. Thing is, Cucumber is already a part of testing for  the Adhearsion framework and some specific projects we are working on. What was new to me, was a lightning talk given at the end of the day on Cucumber-Nagios.

Read more…

Using C#/.Net to Invoke the Adhearsion API via REST

June 8, 2009

Recently an Adhearsion community member, David Lawal, built upon the PHP/REST example I posted back in February. David comes from a C#/.Net background and was beginning to learn Ruby in order to use Adhearsion. Then, in his own words:

“…I needed to leverage ‘all the work’ done in .Net…As I discovered, the marriage of .Net and Adhearsion was lovely, thanks to the RESTful RPC [API of Adhearsion]”

So David created an example and has graciously shared it with the rest of us. The example includes a component in Adhearsion that has this method extending the ‘methods_for :rpc’:

Read more…

Mashing up Tripit with Adhearsion

May 21, 2009

Picture 3A friend of mine in Barcelona who travels frequently, and runs his own business, recently asked me if he could tie his Tripit location to his business phone routing. Even when he is traveling across the Atlantic, he must be able to provide telephone support to his clients but only based on a reasonable time in the timezone he is in.

Of course you could setup routing rules in your phone system each time you move to a new timezone, but good luck remembering to do this. Tripit now makes a blog badge available that reports your current location based on city, state or country:

Picture 2My Tripit Adhearsion Comonponent on Github allows you to mashup the details from your badge and use them in your dialplan. Now, you may add this component to your project and add something like this to your Adhearsion dialplan:

adhearsion {
  user_time = tripit_user_time?('jdoe')
  if user_time
    ahn_log.tripit.debug user_time
    ahn_log.tripit.debug 'Error'

You may then use this information to decide whether to dial your mobile at your destination, or send it straight to voicemail. This is a great example of using Adhearsion to mashup data available on the web and use it to control your communications.

Early impressions of Skype for SIP (SfS)

April 8, 2009

125251152_618186f502The day has finally come, I have been able to place a SIP call directly to and from the Skype network via a Skype service. I received my Skype for SIP (SfS) closed beta credentials yesterday and immediately set to work configuring endpoints to start making calls.

The first step was to use an XLite Softphone to connect to the Skype SIP proxy. Then I graduated to connecting an Asterisk server. While there were some initial issues, Skype worked with the beta testers and had all of the major elements working by the end of the first day. I am impressed by how few issues there actually are, but I guess that is to be expected since this service leverages the same infrastructure behind SkypeOut and SkypeIn. Those services have been around for years and make up some of Skype’s core revenue generating business.

Here was what I was able to do so far:

  • Asterisk/XLite -> SIP -> SkypeOut -> PSTN (w/G711 codec)
  • PSTN -> SkypeIn -> SIP -> Asterisk/XLite (w/G729 codec)
  • Skype User -> SIP -> Asterisk/XLite

(Note: What I will not be able to try is ‘Asterisk/Xlite -> SIP -> Skype User’ since this is intentionally blocked by Skype. I presume this is to protect their SkypeIn business by blocking the ability to create a competing alternative.)

If you have used the SkypeIn/SkypeOut services before, then you already know the quality of the calling. So far I have not had any issues with the call quality or dropped calls once the kinks were worked out.

While Skype is supporting the freely available G711 codec via its SIP gateways, it is dependent on what codecs are supported by the carrier that is being used to terminate a particular call. So while on SkypeOut I was able to use the G711 codec to terminate to numbers in the San Francisco Bay Area (415/650), on SkypeIn to a San Jose number (408) the only available codec was g729. So the reality is, you will need to have a SIP endpoint that supports the licensed G729 codec for reliable use.

The current calls are not encrypted. Skype has already stated they intend to support TLS/SRTP in the near future as encryption is considered a core feature for SIP as much as for their P2P calls.

As time permits I will be continuing to do more tests as well as contrasting with the Skype for Asterisk (SfA) beta software. Skype is definitely on the right track by opening their network to key standards with multiple interfacing options. I believe Skype is now poised to become a key global player in the business VoIP market, as well as bringing in a broader range of developers.

I began to think this day would never come, but it has…

Adhearsion Website and Sandbox Migration Complete

April 7, 2009

sandbox1Over the last week we have been working to migrate various Adhearsion services to new homes. This could not have come a moment too soon, as during the migration one of the hard drives in our server in Texas gave up the ghost. Of course we used RAID, so we did not miss a beat, but clearly it was time to move along.

To this end we have now migrated the Adhearsion website, wiki and API docs to Amazon EC2. Leveraging S3 and EBS we have a great solution that allows us to quickly fire up more servers if and when needed. The cloud is great.

We have also moved the Sandbox to a new hosted server. Our friends at Voxeo have provided a great server for us and are now sponsoring the Adhearsion Sandbox. It is great to have a visionary leader in the telephony cloud space involved with the Adhearsion community.

I would like to take this opportunity to remind folks what the Adhearsion Sandbox provides. We have provided a hosted system that takes away the need to install your own Asterisk to get started developing Adhearsion applications. Simply install Adhearsion, sign-up for a Sandbox account and get started writing apps. Our goal is to lower all the barriers to make it easy for developers to realize the possibilities of voice in modern web development.

Enjoy the new servers!