I am not a technical expert on Asterisk, but being fully aware of its gathering momentum as an is a free software / open-source software implementation of a telephone private branch exchange (PBX), I decided to hang out with some Asterisk code jocks for the better of an afternoon.
I was much looking forward to a walkthrough of Asterisk, which when implemented, allows multiple attached telephones to make calls to each other, as well as to connect to the Public Switched Telephone Network.
The setting was an Asterisk tutorial presented last Monday at the Open Source Conference in my hometown of Portland. The cerebral and witty Brian Capouch, assistant professor and chair of the Department of Computer Science at Saint Joseph's College in Rensselaer, Indiana, was the MC.
Brian, who is finishing "Inside and Out: Do-it-yourself Open Source Telephony" for Addison-Wesley, walked us through a series of conceptual slides about telephony, IP telephony, and then Asterisk. And as you have probably guessed by now, that is a basic Asterisk schematic at the top of this post.
Now let us look at some of the slides, and how they come together in a code string for a specific Asterisk-enabled application.
This describes the conceptual basics of an Asterisk- configured call.
As far as extensions are concerned, they are often, but not always numeric,and can quantify a prioritization insofar as how the call being placed is handled.
Applications contained within the code for a specific Asterisk scenario provide instructions for behavior to be executed within that scenario. Here's how Brian summarizes this:
Now, let us take a look at how all of this comes together in what is generally referred to as a "Call Flow:"
I expect that some of you have been hanging here for the code. I won't disappoint.
In this scenario, Brian has written code for an Asterisk "call to road warrior," for an instance where the user is available to take the call via his laptop:
Interested? If you've come this far, I know you are.
All the Asterisk downloads you'll ever want are listed, described, and linked from this page.