Getting Conferency With Asterisk

A good indicator of just how powerful and useful Asterisk can be is demonstrated by the amount of effort that is required to build a feature rich conference call application. What if I told you it can be done in 6 lines of code?

(Yes, extensions.conf is software – when you work with it, you are writing software code. See “When You Write extensions.conf, You Are Writing Software” by @jicksta in this post for more on this.)

Create a conference room by editing meetme.conf:

$ echo "conf => 1234,2345,5678" >> /etc/asterisk/meetme.conf

Or you can open the file with your favorite editor and add the new line at the bottom. This will create a conference numbered 1234, with a user PIN of 2345 and an administrator PIN of 5678. Next create a dialplan context and rule set for the conference room

exten => 9000,1,Answer()
exten => 9000,n,Meetme(1234,ips)
exten => 9000,n,Hangup()

The parameters passed into the Meetme() application are the number of our conference room (just created in meetme.conf) and a set of options. The i option enables an announcement each time someone enters or leaves the room. The p option allows a user to exit the conference by pressing the ‘#’ key. The s option allows a user (regular or admin) to hear a menu of options when the ‘*’ key is pressed.

Now, include the conference room context in your primary dialplan context:

include => MyFirstConferenceRoom

That’s it – to test it out, make sure you reload your dialplan, and then dial 9000.

You’ve got to love how easy it is to get conferency with Asterisk!


Book Review: Asterisk 1.6

The folks at Packt Publishing recently sent me a copy of Asterisk 1.6 by David Merel, Barrie Dempster and David Gomillion and I’ve been using it for the past week or so to set up a fresh instance of Asterisk 1.6 on Ubuntu 8.04.

(Note – like many Asterisk books, this one is very CentOS focused, but I found the installation and configuration steps described in it – as well as some of the larger Asterisk management concepts – easily applied to Debian-based distros like Ubuntu.)

This is a solid, well-written book for anyone that wants to start building and managing an Asterisk-based telephony system. I found this book to be very well focused on concepts that would appeal to someone who wants to manage an Asterisk system professionally, and is probably less well suited for someone interested in tinkering with Asterisk as a hobby.

There is a good discussion of some of the key concepts that someone who aspires to be (or already is) an Asterisk professional should have a handle on. It has a very good discussion on hardening an Asterisk server in the chapter on “Maintenance and Security”, and the book begins (very appropriately) with an exercise in developing a deployment plan – again, probably not well suited for an Asterisk or VoIP tinkerer, but critical for someone who is going to deploy an Asterisk server in a production environment and assume responsibility for managing it.

I didn’t see any discussion of some of the more cutting edge features of Asterisk 1.6 that might be of interest to someone wanting in exploring alternative communication protocols (Jabber/Jingle) or some of the less mainstream channel drivers (GTalk, Skype, etc.) There is no mention at all (that I could see) of how to connect Asterisk to Google Talk via Jingle, or to the Skype network via Skype for Asterisk. Nor is there any mention of some of the IM-focused dialplan applications like JabberSend().

This book appears to be designed for someone who wants to set up and manage a more traditional Asterisk-based system. And for that purpose it is very well suited.