Upgrade 3CX to v18 and get it hosted free!

Add Voice Recognition to Asterisk

Author image

I recently started a small project to implement TellMe’s excellent voice recognition and VoiceXML app into my Asterisk system. I currently have it working, but it’s very basic.

Here are the steps.

1) Create an account at TellMe Studio.

Free access to Tellme Studio being retired.

On Friday, May 27th, 2011, Microsoft Tellme will retire free access to the MyStudio suite of services on Tellme Studio. We have been proud to offer these developers and test services at no cost to the voice community for the past 10 years, but the decision has been made to discontinue free access at this time.

2) Create a VoiceXML app in TellMe Studio. I have created an example one you can edit and paste in: Right click – Save as

What this VoiceXML app does is use text-to-speech to say:

“Thank you for calling the Your Last Name Goes Here residence. Who would you like to talk to? For Barbie’s cellphone say, Barbie. For Ken’s cellphone say, Ken.”

Once you say one of the variables that it’s looking for, it will post the variable to a CGI script located on your web server. This webserver could be on the same box that Asterisk is running on or a completely different one. We can make it work either way.

3) Now we need to put this Perl CGI script I wrote on your webserver. You will need to edit the variables at the top like the Asterisk manager username and password ( I will address configuring the Asterisk Manager next ), Asterisk server IP address, Ken and Barbie’s phone numbers, etc.

4) Now we need to set up the Asterisk Manager if you haven’t already done so. The contents of my /etc/asterisk/manager.conf looks like this:

[general]
enabled = yes
port = 5038

[myusername]
secret = mypassword 
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

You will need to edit the permit=ip.address accordingly

5) Now, all we should need to do is edit your Asterisk extensions.conf file to redirect incoming calls to a certain extension to TellMe Studio through SIP. You could also do the same thing by doing something like “s,1,Answer”, etc. in your [incoming] context. Below is an example.

exten => 1000,1,Answer
exten => 1000,2,Dial(SIP/[email protected])

So let me explain how this all ties together just in case you don’t get it.

An incoming call gets routed to TellMe Studio through SIP. It runs your VoiceXML app and passes the variable it collects to your webserver ( specifically the asterisk.pl script ). The Perl script then makes a telnet connection to the Asterisk manager. It determines which call is connected to TellMe Studio, rips it away, and passes it on to the number that variable is tied to ( the number you specified in that asterisk.pl script for ken or barbie).

Related Posts:

Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.