Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/revmischa/asteryst
Asterisk FastAGI application framework. Supports speech API and method dispatch based on FastAGI requests.
https://github.com/revmischa/asteryst
Last synced: 3 days ago
JSON representation
Asterisk FastAGI application framework. Supports speech API and method dispatch based on FastAGI requests.
- Host: GitHub
- URL: https://github.com/revmischa/asteryst
- Owner: revmischa
- Created: 2012-04-24T00:04:14.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2012-06-08T02:41:32.000Z (over 12 years ago)
- Last Synced: 2024-10-18T07:52:14.824Z (3 months ago)
- Language: Perl
- Size: 262 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
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 platformsIn 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.