Book Review: AGI 1.4 and 1.6 Programming

April 06, 2009


Have you been working with Asterisk for a bit and want to use it to build some more sophisticated applications? Are you looking to build and IVR solution, but are a bit wary of what you will be able to accomplish with the Asterisk dialplan alone? Are you comfortable on the Linux command line and with using PHP-based scripts in a Linux environment?

If you answered yes to any of these questions, then you will want to check out the book “Asterisk Gateway Interface 1.4 and 1.6 Programming” by Nir Simionovich. There is a lot to like in this book for Asterisk programmers.

One of my favorite quotes from this book is:

Many IVR developers do not regard themselves as programmers. That is a shame as programming an efficient IVR environment using any type of telephony engine requires skill, and when done right can be regarded as a work of art.

Truer words were never spoken. I personally have never suffered from the affliction of thinking that voice applications developers are not “programmers” – voice application developers are programming Rocks Stars, pure and simple. So if you are a Rock Star (or aspire to be one), you should check this book out.

I like that this book spends some time talking about developing IVRs using the Asterisk dialplan, even though the limitations of building IVRs using the dialplan itself is probably what leads most developers to explore alternatives like PHPAGI or Adhearsion.

There is a great section in this book outlining the “ten rules of AGI development” – things every developer should know before starting AGI programming of any flavor. This book starts with the basics and moves quickly (but comfortably) on to advanced topics.

If you are an Asterisk guru, or a hobbiest that is just getting started, this book is worth having in your collection. My copy is on my bookshelf, within arms reach, right next to my dogeared copy of O’Reilly’s “Asterisk: The Future of Telephony.”

Now, if only they’d put IVR development into the next edition of Guitar Hero