Asterisk Voice Recognition Company Directory

Ethan Schroeder

Ethan Schroeder

Along with requests for the Asterisk Voice Recognition "Magic Button", I have had numerous requests over the last couple days for the Asterisk Voice Recognition Company Directory (AVRCD). As promised before, I am releasing the source for the company directory. Drop to the bottom for links to a demo and all the source files for the Company Directory or keep reading for details.

This isn’t your Daddy’s company directory. My goal in this project was to not only create a voice-enabled company directory for Asterisk, but to also extend the functionality of the company directory in the process. It took over 200 hours and utilizes some of the most advanced web-based technology available for an interactive interface.

The AVRCD is tree-based with advanced web-based drag-and-drop technology that lets you drag the extensions you want in the company directory to a custom tree that you create. You can create sales, customer service, marketing, accounting, and whatever other "department" folders you want and have employees specifically in that department folder. When navigating the tree through voice commands, you could for example, say "support", then "Ethan Schroeder" and be connected to me. You can configure each extension to playback confirmations by either pointing an extension to the user’s voicemail name recording or system recording. If there is no audio file selected as a confirmation, the system falls back on text-to-speech using Flite.

The AVRCD also has custom entries support. These could be entries for ring groups, off site IAX or SIP users that don’t have an extension on the main PBX, etc. You can then drag these custom extensions to the tree, just as the built in extensions. These custom extensions also support custom dial strings, so if you do have a remote PBX, you can have it dial that person over
the IAX trunk through the custom dial string.

The company directory, once setup, automatically configures itself to your existing PBX users. All you have to do is drag them to where you want them, and you can drag the same person to multiple directory folders. It sets up "pronunciations" for you based on their names. These pronunciations are editable by you on a per-extension and per-tree-item basis. So if you
are getting complaints that "Michael Smith" is getting calls to "Michelle Smith", you can phonetically help the speech engine by writing custom pronunciations for each name. For example, "Mishell Smith" and "Mikall Smith".

Now, all of this said, the company directory is definitely in beta form. It’s using cutting edge javascript/ajax/ui libraries, and I’m going to be honest with you, I hadn’t worked in client-side application development for years and never OO Javascript, though I was once a Java developer. I just squashed some of the last UI bugs I could find, but there may be more. In addition, it doesn’t support voice error handling. This basically means that it isn’t threshold aware on the voice recognition level, meaning that if the application "isn’t quite sure" what was spoken, it’s probably going to make a choice anyway. Ideally, this is handled by determining threshold acceptability levels and if a recognized pattern is below that threshold it will prompt with options. But it’s free, so you are encouraged to use it as you see fit.

I’m too busy working on material for the Open Telephony Training Seminar to setup an entire demonstration PBX for everyone to try it out, but I have posted a live demo of the interface. All the source is here, which includes PHP, Javascript, dial plans, and AGI. You’ll need to setup and install LumenVox and Flite. Lumenvox has a Linux/Asterisk developer version available for around $50, or you could attend the Training at the end of February to get a free LumenVox license and the Asterisk Voice Recognition "Magic Button".

Lastly, as with the Asterisk Voice Recognition "Magic Button", this project deserves to be a FreePBX modular for integration more tightly coupled with configuration of extensions. In addition, this is a voice only directory. There is no support for dtmf entry for "the first three letters of the first or last name". This functionality is definitely on the todo list, but won’t be useful to accomplish until the FreePBX integration occurs. FreePBX needs your support to make things like this a reality, so consider attending the training at the end of the month. The training is going to reach capacity, so hurry up and register. If you miss this one, stay tuned for announcements in the coming month on subsequent training.



Share this Blogpost

Start the Discussion

Sign up for our Newsletter

Scroll to Top