Skip to content

revmischa/asteryst

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Asteryst

Asteyst is a voice application framework for Asterisk. It supports the generic speech API and method dispatch based on FastAGI requests, among other things.

Asteryst is designed to do for voice applications what Catalyst does for web applications, with a similar interface and structure. It attempts to abstract the messy details of the API used for your application's interface and to allow you to concentrate on writing high-level maintainable code.

Usage

Many prompt file paths are currently hard-coded. You'll probably want to make your sound files reflect these, or change them.

You will need to create a config file, asteryst.yml. See sample_asteryst.yml

Install dependencies. cpanm -v --installdeps . should do the trick.

If you do actually wish to use this code, please drop us a line. There are pieces that will need filling in, since this was once a part of a larger codebase.

Purpose

The main purpose of this library is to facilitate the rapid development of IVR (interactive voice-response) voice applications with Asterisk.

In particular, there are many unplesant aspects of developing said class of application:

  • FastAGI interface:
    • Has lots of hidden surprises and issues lurking
    • Screws with STDOUT/STDERR
    • Bizzare and inconsistant function names, params and return types
    • Incorrect and misleading Asterisk::FastAGI documentation
    • No standard way of dispatching from a request to a Perl controller/method
  • Speech API:
    • Need to keep track of which grammar context you are in
    • API documentation is greatly lacking
  • Audio file playback:
    • Simplifies playing back prompts, in particular getting speech and DTMF input while playing a file
    • Supports resuming playback from a given point in a file (see Jumpfile)
    • Can fetch (and cache) files to play from a URL
    • See Prompt and UserInput controllers
  • Voice ads:
    • Support for Apptera and VoodooVox ad platforms

In short, a lot of the hard work has already been done for you. We suffered for many months to debug and interface with the sketchy APIs provided by Asterisk, and we would like to save others the effort.

History

Asteryst was a library developed for a very powerful and robust voice application by contract developers Mischa Spiegelmock and Quinn Weaver. Despite the considerable savings attained from moving from an expensive VXML provider to Asterisk in THE CLOUD, the company no longer exists. However, the developers wanted the code to be released to the open source community.

About

Asterisk FastAGI application framework. Supports speech API and method dispatch based on FastAGI requests.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages