Asterisk agi: Difference between revisions
(Created page with "== Overview == AGI(Asterisk Gateway Interface) 내용 정리. == Basic == === Process Based AGI === Process-based AGI is the simplest variant of AGI. The script is invoked us...") |
|||
Line 14: | Line 14: | ||
=== FastAGI === | === FastAGI === | ||
FastAGI is the term used for AGI call control over a TCP connection. With process-based AGI, an instance of an AGI application is executed on the system for every call, and communication with that application is done over stdin and stdout. With FastAGI, a TCP connection is made to a FastAGI server. Call control is done using the same AGI protocol, but the communication is over the TCP conection and does not require a new process to be started for every call. | FastAGI is the term used for AGI call control over a TCP connection. With process-based AGI, an instance of an AGI application is executed on the system for every call, and communication with that application is done over stdin and stdout. With FastAGI, a TCP connection is made to a FastAGI server. Call control is done using the same AGI protocol, but the communication is over the TCP conection and does not require a new process to be started for every call. | ||
* Pros of FastAGI | |||
: It's more efficient than process-based AGI. Instead of spawning a process per call, a FastAGI server can handle many calls. DNS can be used to a achieve high availability and load balancing among FastAGI servers to further enhance scalability. | |||
* Cons of FstAGI | |||
: It is more complex to implement a FastAGI server than to implement a process based AGI application. However, implementing a TCP server has been done countless times before, so there are many examples available for virtually any programming language. | |||
[[category:asterisk]] | [[category:asterisk]] |
Revision as of 13:20, 20 January 2018
Overview
AGI(Asterisk Gateway Interface) 내용 정리.
Basic
Process Based AGI
Process-based AGI is the simplest variant of AGI. The script is invoked using the AGI() application from the Asterisk dialplan. The application to run is specified as the first argument to AGI(). Unless a full path is specified, the application is expected to exist in the /var/lib/asterisk/agi-bin directory. Arguments to be passed to the given AGI application can be specified as additional arguments to the AGI() application in the Asterisk dialplan.
EAGI
EAGI(Enhanced AGI) is a slight variant on AGI(). It is invoked in the Asterisk dialplan as EAGI(). The difference is that in addtion to the communication on stdin and stdout, Asterisk also provides a unidirectional stream of audio coming from the channel on file descriptor 3.
DeadAGI
It's dead. Should not use this one.
FastAGI
FastAGI is the term used for AGI call control over a TCP connection. With process-based AGI, an instance of an AGI application is executed on the system for every call, and communication with that application is done over stdin and stdout. With FastAGI, a TCP connection is made to a FastAGI server. Call control is done using the same AGI protocol, but the communication is over the TCP conection and does not require a new process to be started for every call.
- Pros of FastAGI
- It's more efficient than process-based AGI. Instead of spawning a process per call, a FastAGI server can handle many calls. DNS can be used to a achieve high availability and load balancing among FastAGI servers to further enhance scalability.
- Cons of FstAGI
- It is more complex to implement a FastAGI server than to implement a process based AGI application. However, implementing a TCP server has been done countless times before, so there are many examples available for virtually any programming language.