Voiceroute in TMC Internet Telephony EXPO West 2007 Shows Off Druid Live

Voiceroute showed off its Druid Live a new version of the Druid Telephony Platform during last week’s TMC ITEXPO West 2007. Voiceroute claims that with DRUID Live, DRUID is now not just the best GUI for Asterisk in the market, but is also the “first truly plug and play CDP (Cisco Discovery Protocal) based auto-provisioning of Cisco, Polycom and Linksys phones with additional VLAN based auto-provisioning of Aastra, Snom and GrandStream phones.”

During the exhibit Voiceroute showed of its upcoming Druid Live Click-to-Call VoIP hosted service with Adobe Flash for enterprises. Aside from the features that the “old” Druid telephony platform brings (as mentioned above) , according to Ming Yong, Voiceroute CEO, Druid Live allows “enterprises to embed interactive flash widgets into their flash video, rich media ads, text ads and web sites to allow interested customers to seamlessly connect using voice and text with a sales or customer support representative without installing any java soft-phone client on the customer side or server side software on the SME side.”

Druid Live’s beta version is set for release this October. In the meantime, thos einterested in DRUID will be happy to know that their current version is packed with excellent features that makes a VOIP telephony platform relatively easy to install and manage.

Features of the current DRUID version include:

  • Extension Management Wizard – allows easy removal and addition of phones and users
  • Trunks Management Wizard - allows instant configuration of inbound / outbound trunks
  • Dialplan Wizard - allows the creation of Asterisk dialplan controls without needing to learn about nor understand the complex dialplan languages needed to be able to route calls into your system. The Dialplan Wizard is so easy to use that even a first time Asterisk user can figure it out.
  • Hardware Wizard (E1/T1/PSTN/TDMoE) – allows easy configuration of an Asterisk server with Digium / Sangoma E1, T1, FXO, FXS card as well as GSM gateways and Channel Banks.
  • Druid User Portal – allows you Asterisk/Druid users to check their voicemail and configure other call options such as Simultaneous-Ring and Follow-Me features.
  • Live Java Console – a remote Asterisk call control utility that allows operators/administrators to see call activity in real-time and hang-up, transfer or originate a call remotely.

Asterisk 1.6 Update

Asterisk 1.6 is starting to shape up with some features of Asterisk 1.2 and 1.4 already successfully merged and new dialplan functions already in place. Listed below is a summary of latest update in the functionality CHANGES file of Asterisk.

AMI – The manager (TCP/TLS/HTTP)
Added functionalities include: TLS support for the manager interface and HTTP server, URI redirect option for the built-in HTTP server, GetConfigJSON (action that returns the contents of an Asterisk configuration file in JSON format), a “Bridge” action which allows you to bridge any two channels that are currently active on the system, and a “ListAllVoicemailUsers” action that allows you to get a list of all the voicemail users setup.

Dialplan functions
Added functionalities include: a DEVSTATE() dialplan function that allows retrieval of any device state in the dialplan, a new option to Dial() for telling IP phones not to count the call as “missed” when dial times out and cancels, LOCK(), TRYLOCK(), and UNLOCK().

CLI Changes
Added functionalities include a ‘core show channels count’ CLI command and the ability to set the core debug and verbose values on a per-file basis.

SIP changes

Added functionalities include: an improved NAT and STUN support, new way of matching incoming requests, “busy-level” for setting a level of calls where asterisk reports a device as busy, new realtime family called “sipregs” (used to store SIP registration data), more support for T.140 realtime text in SIP/RTP, new variables for call transfers, and a new header that is displayed for cancelled calls answered by another phone.

IAX2 changes
Added functionalities include: trunkmaxsize configuration option to chan_iax2, srvlookup option to iax.conf, and support for OSP.

DUNDi changes
Added functionalities include: the ability to specify arguments to the Dial application when using the DUNDi switch in the dialplan, ability to set weights for responses dynamically, dialplan functions (DUNDIQUERY and DUNDIRESULT) that will allow you to initiate a DUNDi query from the dialplan and find out how many results there are as well as access each one.

ENUM changes
Added functionalities are two new dialplan functions (ENUMQUERY and ENUMRESULT) that will allow you to initiate an ENUM lookup from the dialplan access the results without doing multiple DNS queries.

Voicemail Changes
Added functionalities include:  the ability to customize which sound files are used for some of the prompts within the Voicemail application, the ability for the “voicemail show users” CLI command, “tw” language support, support for storage of greetings, and the ability to customize forward, reverse, stop, and pause keys for message playback.

More of the latest updates on my next post. To view the detailed updates including modified and removed functionalities you can check out their changes file.

Back to the Basics – Config Files

The configuration files in Asterisk are all text based. Nothing too complicated. If you installed the sample .conf files, then they will have a default setup and will have everything commented nicely so that you can learn your way through them.

The config files have the extention of “.conf” and are located in “/etc/asterisk”. The main file that you will play with is the extentions.conf. This is where ALL the main functionality in Asterisk comes from. In this file you will place the dial plan. There is a tool that I like to use called “The Dialplanner” that will help you in setting up your dial plan. This way it’s all point and click and you can just copy and paste it over to your file through SSH or whatever you want.

If you want to get techincal, you can include other files in the .conf by using the “#include” function. If you know PHP at all, this does the same thing as the include function in PHP. Go figure, haha.

Asterisk Dial Plan: What is it?

I decided that I’d like to go back to the basics with Asterisk, so here is the first post in this series.

What is the dial plan? Basically the dial plan is how you tell Asterisk what you want it to do. It can be very long and involved, calling all sorts of outside protocols and scripts. On the other hand, it can be as short as a three line call forwarding application.

Here is a short example of how it may look.

exten => s,1,Answer
exten => s,2,Wait(2)
exten => s,3,Dial(503)

See how easy that was? Now let’s take it apart and see what we’ve got.

exten =>
This is how each line MUST start in the dialplan. I have yet to see an exception when you are handcoding your dialplans. This tells Asterisk that there is a command to be followed on the particular line.

s
This is the extention name. It can be a digit of any kind. In this case, since it is the beginning of a context (which we will discuss later) we can leave it as “s” for start. Lets say that you were trying to reach extention 200. In the part of the dial plan that you are coming into that particular extention, you would need to replace the “s” with 200. We will get into more of an example later.

1, 2, or 3
This is pretty much just the order to follow. See how they consecutively keep adding one to each line? Just keep it up and you won’t have any trouble.

Answer, Wait, or Dial
This is the command that is issued to Asterisk, telling it what to do. There are a whole lot of these, and for a pretty good list of them, make sure to check out Voip-Info.

Those are the basic basics of the Asterisk dial plan, from this you should be able to write… well… not very much. So keep your eyes here because I’ll be posting more on this in a little bit.

Using Asterisk In Your Home – The Setup

When setting up Asterisk for home use, you’ve got a million and a half ways to do it. If you want to take the easy way, Asterisk@Home is the way to go, thus the name. It provides a GUI that you can use, instead of having to write all your own code. However, if it were me, I like writing my own code. So that’s what I would do.

Now, for this kind of thing you have a few options.

  1. Use VOIP
  2. Use your existing Landline
  3. Turn your Landline into VOIP

Continue reading

The Dialplanner

Ok, so I found this AWESOME tool today. I think it might be what I use for writing my dial plans now. It’s wonderful. It’s called “The DialPlanner” and I am in love with it. Basically what it is, is a custom dialplan builder that you gives you quite god control over it, and makes it very simple. It’s written in Java and it’s online so you don’t have to download anything which is wonderful. I may see about mirroring it on this website as well. I really reccomend trying this out, but only if you know how to write the dialplan anyway, this, in my opinion, should not be a crutch, but it’s still awesome.

The Playback() and Background() Functions

These two functions are going to be commonly used in your dial plan. They are virtually the same thing with the exception of one detail, interactivity. First of all, let me share with you a piece of my dial plan that I am currently using on this computer.

[incoming]
exten => 866*******,1,Answer()
exten => 866*******,2,AGI(call_log.agi)
exten => 866*******,3,Wait(2)
exten => 866*******,4,Background(main)
exten => 866*******,5,Wait(15)
exten => 866*******,6,Hangup()

Let me share with you what all of that does. First of all, every line in the dial plan starts with “exten =>” then the incoming DTMF tone, then the priority of which the call will flow, and lastly the program to run. So, First it answers from the toll free number I have set up, it runs a call logging script, waits for 2 seconds, then plays a background file, waits again, and hangs up.

Ok, so you now see a background file in use, lets discuss it. Basically it will play a file and lets the user select something from a menu that you provide. Typically background files will say things like “If you would like to… press 1″ and so on.

On the other hand, the playback function will not let the user press any buttons. the function ignores any DTMF that comes through the line.