Skip to content

Latest commit

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

node-agi

Client for asterisk AGI protocol. Parses incomming messages into events. Dispatches AGI commands and their responses from asterisk. Most commonly used as a low level client for a fAGI server.

note: still a work in progress

install

npm install agi

API

agi.createServer([listener])

Returns a new net.Server instance. The listener will be called on a new agi connection with a single Context object as described below.

require('agi').createServer(function(context){//context is a new instance of agi.Context for each new agi session//immedately after asterisk connects to the node processcontext.on('variables',function(vars){console.log('received new call from: '+vars.agi_callerid+' with uniqueid: '+vars.agi_uniqueid);});}).listen(3000);

new agi.Context(stream)

Constructor to create a new instance of a context. Supply a readable and writable stream to the constructor. Commonly stream will be a net.Socket instance.

context.exec(command, [args], [callback])

Dispatches the EXEC AGI command to asterisk with supplied command name and arguments. callback is called with the result of the dispatch.

context.exec('ANSWER',function(err,res){//the channel is now answered});context.exec('RecieveFax','/tmp/myfax.tif',function(err,res){//fax has been recieved by asterisk and written to /tmp/myfax.tif});

context.hangup([callbac])

Dispatches the 'HANGUP' AGI command to asterisk. Does not close the sockets automatically. callback is called with the result of the dispatch.

context.hangup(function(err,res){//the channel has now been hungup.});

About

node.js AGI (Asterisk Gateway Interface)

Resources

Stars

22 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages