• Home
  • About
  • Documentation
  • Download
  • License
  • Mailing List
  • VXML Test

GPL code that provides VoiceXML implementation with OpenVXI and Asterisk.

RSS feeds
Posts
Comments

User Guide

Aug 1st, 2007 by admin

Verifying Installation
After a successful installation, three new services will be available to run:

dynlog
phoneglue
voiceglue

You can check that they are ready to run by running (as root):

/sbin/service dynlog status
/sbin/service phoneglue status
/sbin/service voiceglue status

Each command should respond that the service is stopped, except for voiceglue, which should complain about a missing /etc/voiceglue.conf file (unless you’ve already made one).

They cannot be started successfully, however, until Asterisk is properly configured.

Configuring Asterisk

The phoneglue service needs to log in to the Asterisk manager with username “phoneglue” and password “phoneglue” (configurable with command-line arguments), so configure Asterisk’s manager.conf with an entry like this:

[phoneglue]
secret=phoneglue
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

and make sure you have:

enabled=yes

in the same file.

Phoneglue also needs to be contacted via FastAGI for all calls that it will handle, and it also needs to use a particular context, extension, and priority to send calls to itself. So put a context like this in Asterisk’s extensions.conf:

[phoneglue]
exten => 1,1,Agi(agi://localhost)
exten => 1,2,Hangup

(Phoneglue can use a different context, extension, and priority that these by using commandp-line arguments to phoneglue.)

The result of this is that whenever an Asterisk call is directed to the “phoneglue” context at extension 1 and priority 1, it will get routed to the phoneglue program, which will in turn route it to voiceglue.

Configuring Voiceglue

The voiceglue service needs spec file /etc/voiceglue.conf containing a whitespace-separated dnis (incoming number) and url pair per line. Such a pair maps the incoming phone number to that url to load. This file can be changed dynamically and voiceglue will immediately notice any changes. The wildcard dnis “*” can be used to match anything that isn’t matched otherwise.

So, an example /etc/voiceglue.conf could contain:

* http://localhost/vxml/welcome-audiofile.vxml

This would result in all incoming calls being handled by the welcome-audiofile.vxml script found at http://localhost/vxml/.

Extra Logging

By default, the dynlog program collects all logs from the phoneglue and voiceglue processes. It is not strictly required, but without it you will be scouring multiple log files to find out what’s happening. The logs are written to /var/log/dynlog/dynlog. Dynlog has a dynamic log-level changing capability, so by running “dynlog_level 7″ you will
get the full output from all voiceglue components. Running “dynlog_level 4″ will get you back to a more sane level. These levels are identical to those used by syslog. I recommend setting the level to 7 (the highest) when you are trying to debug a problem with voiceglue. Note that you don’t have to stop or re-start anything; dynlog and its clients coordinate dynamically to achieve the appropriate level of logging. Note, also, that this could cause massive performance changes if done on a loaded system.

Starting Voiceglue

After performing the above configuration steps and making sure asterisk is running, start the voiceglue services by rebooting or running as root:

/sbin/service dynlog start
/sbin/service phoneglue start
/sbin/service voiceglue start

Once everything is up and stays up, you should be able to call in and have the VXML file(s) specified in /etc/voicemail.conf interpreted.


Example VXML Files

The directory “examples” here contains some example VXML files that work with voiceglue. Keep in mind that there is much (some say too much) latitude in the VXML specification as to what could be supported, so not all VXML files will run without modification. Specifically, voiceglue only supports simple SRGS XML DTMF grammars, and no speech input (but working on it). The TTS sounds pretty bad, but that’s what you get with Festival. I’ll be working on integrating better TTS engines, too.

Here are what the example files do:

welcome-tts.vxml — Speaks “Welcome” in TTS
welcome-audiofile.vxml — Recorded audio of Allison saying “Welcome”
single-digit-input.vxml — Repeatedly gets and speaks a single digit
menu-input.vxml — Repeatedly gets a menu input
multi-digit-input.vxml — Repeatedly gets and speaks multiple digits
record-audio.vxml — Repeatedly records audio from the caller

Comments are closed.

  • Navigation

    • About
      • Features
      • History
      • Project Goals
      • Who
    • Documentation
      • INSTALL
      • README
      • Unsupported
      • User Guide
    • Download
    • License
    • Mailing List
    • VXML Test

VoiceGlue © 2008 All Rights Reserved.

Design based on MistyLook