diff options
Diffstat (limited to 'doc/ajam.tex')
-rw-r--r-- | doc/ajam.tex | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/doc/ajam.tex b/doc/ajam.tex new file mode 100644 index 000000000..b5e184931 --- /dev/null +++ b/doc/ajam.tex @@ -0,0 +1,85 @@ +\section{Asynchronous Javascript Asterisk Manger (AJAM)} + +AJAM is a new technology which allows web browsers or other HTTP enabled +applications and web pages to directly access the Asterisk Manger +Interface (AMI) via HTTP. Setting up your server to process AJAM +involves a few steps: + +\subsection{Setup the Asterisk HTTP server} + +\begin{enumerate} +\item Uncomment the line "enabled=yes" in /etc/asterisk/http.conf to enable + Asterisk's builtin micro HTTP server. + +\item If you want Asterisk to actually deliver simple HTML pages, CSS, + javascript, etc. you should uncomment "enablestatic=yes" + +\item Adjust your "bindaddr" and "bindport" settings as appropriate for + your desired accessibility + +\item Adjust your "prefix" if appropriate, which must be the beginning of + any URI on the server to match. The default is "asterisk" and the + rest of these instructions assume that value. +\end{enumerate} + +\subsection{Allow Manager Access via HTTP} + +\begin{enumerate} +\item Make sure you have both "enabled = yes" and "webenabled = yes" setup + in /etc/asterisk/manager.conf + +\item You may also use "httptimeout" to set a default timeout for HTTP + connections. + +\item Make sure you have a manager username/secret +\end{enumerate} + +Once those configurations are complete you can reload or restart +Asterisk and you should be able to point your web browser to specific +URI's which will allow you to access various web functions. A complete +list can be found by typing "show http" at the Asterisk CLI. + +examples: + +http://localhost:8088/asterisk/manager?action=login\&username=foo\&secret=bar + +This logs you into the manager interface's "HTML" view. Once you're +logged in, Asterisk stores a cookie on your browser (valid for the +length of httptimeout) which is used to connect to the same session. + +http://localhost:8088/asterisk/rawman?action=status + +Assuming you've already logged into manager, this URI will give you a +"raw" manager output for the "status" command. + +http://localhost:8088/asterisk/mxml?action=status + +This will give you the same status view but represented as AJAX data, +theoretically compatible with RICO (http://www.openrico.org). + +http://localhost:8088/asterisk/static/ajamdemo.html + +If you have enabled static content support and have done a make install, +Asterisk will serve up a demo page which presents a live, but very +basic, "astman" like interface. You can login with your username/secret +for manager and have a basic view of channels as well as transfer and +hangup calls. It's only tested in Firefox, but could probably be made +to run in other browsers as well. + +A sample library (astman.js) is included to help ease the creation of +manager HTML interfaces. + +Note that for the demo, there is no need for *any* external web server. + +\subsection{Integration with other web servers} + +Asterisk's micro HTTP server is *not* designed to replace a general +purpose web server and it is intentionally created to provide only the +minimal interfaces required. Even without the addition of an external +web server, one can use Asterisk's interfaces to implement screen pops +and similar tools pulling data from other web servers using iframes, +div's etc. If you want to integrate CGI's, databases, PHP, etc. you +will likely need to use a more traditional web server like Apache and +link in your Asterisk micro HTTP server with something like this: + +ProxyPass /asterisk http://localhost:8088/asterisk |