AstManProxy

AstManProxy is a multi-threaded proxy server for Asterisk written in C/P-threads. It is designed to handle communication with multiple Asterisk servers and to act as a single point of contact for applications. Astmanproxy supports multiple input/output formats, including Standard, XML, CSV, and HTTP, HTTPS and SSL.

It has been under development since April 2005 and is currently at version 1.21.
New development site is here http://github.com/davetroy/astmanproxy/tree/master




Astmanproxy is the fast, flexible proxy server for Asterisk's Manager Interface. With version 1.21, Astmanproxy allows you to
communicate with multiple Asterisk boxes from a single point of contact using a variety of I/O formats, now including support for XML, HTTP, HTTPS, SSL, CSV, and the Asterisk-native standard format. Astmanproxy is written in c/pthreads (just like Asterisk) for speed and robustness.

Many other features have been added, including a new authentication layer and support for the Action: Challenge MD5 authentication method. SSL is now supported, so you can encrypt from client->proxy->asterisk, end-to-end.
Talking to Asterisk via SSL requires that you are running an SSL-capable version of Asterisk (see bugs.digium.com #6812), but if you're not ready to do that then you can talk client->proxy via SSL.

One really interesting side effect of having both SSL and HTTP support natively is that we in fact now support HTTPS!

With the proxy configured on localhost:1234, you can do things along these lines:

https://localhost:1234/?Action=ShowChannels&ActionID=Foo

This has been tested extensively with good results. The HTTP handler supports both GET and POST and can properly deal with XML or Standard output formats. With Autofilter=on, this paradigm is ideal for creating a simple REST-like interface into Asterisk (even multiple boxes!) with no web servers needed.

Digium has graciously offered the use of their SVN community server to host Astmanproxy development.

For the 1.21 release, 'svn checkout' from:

For the development trunk (cvs-head), checkout:

And there is a yahoo-groups mailing list here for users and developers of Astmanproxy:

There are many new features, changes, and enhancements. Please check them out and get us your feedback! We would love to hear what you think!

Gaetan Minet provides a patch that fixes the ActionID which are ignored during authentication in the standard distribution. The modified version with the patch applied now works with common libraries for the Manager API like Asterisk-Java.

Additional Background Information on AstManProxy:

Developing web-based realtime applications for the asterisk open-source PBX often requires interacting with asterisk's Manager interface. The Asterisk Manager runs on port 5038 by default and provides a simple TCP interface into several common asterisk functions, including call origination, redirection, hangup, and many other functions.

Each interaction from a web-based application requires a separate connection to the manager interface. Asterisk, being a real time
application, shouldn't have to deal with the load of constant connections, disconnections, and authentications from a single trusted client, namely your web app.

In the same way that web developers have solved this problem for other similar services (imapproxy for IMAP web mail clients, database connection caches, etc), 'astmanproxy' sets out to solve this problem for asterisk.

This project started out as a simple proof-of-concept script called "simpleproxy.pl" which was made available in September 2004, following a discussion at the Astricon conference regarding the need for such a proxy. That code was based on Nicolas Gudino's manager proxy for his excellent Flash Operator Panel. Written in perl and as a single-threaded select-based "dumb" proxy, simpleproxy.pl has been widely used as a basis for experimentation, but I wanted something more robust and that could act as a basis for additional features.

Asterisk Manager Proxy is a multithreaded proxy server for Asterisk Manager written in c, and based on several of the same data structures and routines found in the asterisk manager itself. This insures a very high degree of compatibility with Asterisk; it should also be very robust and scalable.

Asterisk Manager Proxy gives the ability to support multiple input and output formats, configurable on a per-client basis.

See also


AstManProxy is a multi-threaded proxy server for Asterisk written in C/P-threads. It is designed to handle communication with multiple Asterisk servers and to act as a single point of contact for applications. Astmanproxy supports multiple input/output formats, including Standard, XML, CSV, and HTTP, HTTPS and SSL.

It has been under development since April 2005 and is currently at version 1.21.
New development site is here http://github.com/davetroy/astmanproxy/tree/master




Astmanproxy is the fast, flexible proxy server for Asterisk's Manager Interface. With version 1.21, Astmanproxy allows you to
communicate with multiple Asterisk boxes from a single point of contact using a variety of I/O formats, now including support for XML, HTTP, HTTPS, SSL, CSV, and the Asterisk-native standard format. Astmanproxy is written in c/pthreads (just like Asterisk) for speed and robustness.

Many other features have been added, including a new authentication layer and support for the Action: Challenge MD5 authentication method. SSL is now supported, so you can encrypt from client->proxy->asterisk, end-to-end.
Talking to Asterisk via SSL requires that you are running an SSL-capable version of Asterisk (see bugs.digium.com #6812), but if you're not ready to do that then you can talk client->proxy via SSL.

One really interesting side effect of having both SSL and HTTP support natively is that we in fact now support HTTPS!

With the proxy configured on localhost:1234, you can do things along these lines:

https://localhost:1234/?Action=ShowChannels&ActionID=Foo

This has been tested extensively with good results. The HTTP handler supports both GET and POST and can properly deal with XML or Standard output formats. With Autofilter=on, this paradigm is ideal for creating a simple REST-like interface into Asterisk (even multiple boxes!) with no web servers needed.

Digium has graciously offered the use of their SVN community server to host Astmanproxy development.

For the 1.21 release, 'svn checkout' from:

For the development trunk (cvs-head), checkout:

And there is a yahoo-groups mailing list here for users and developers of Astmanproxy:

There are many new features, changes, and enhancements. Please check them out and get us your feedback! We would love to hear what you think!

Gaetan Minet provides a patch that fixes the ActionID which are ignored during authentication in the standard distribution. The modified version with the patch applied now works with common libraries for the Manager API like Asterisk-Java.

Additional Background Information on AstManProxy:

Developing web-based realtime applications for the asterisk open-source PBX often requires interacting with asterisk's Manager interface. The Asterisk Manager runs on port 5038 by default and provides a simple TCP interface into several common asterisk functions, including call origination, redirection, hangup, and many other functions.

Each interaction from a web-based application requires a separate connection to the manager interface. Asterisk, being a real time
application, shouldn't have to deal with the load of constant connections, disconnections, and authentications from a single trusted client, namely your web app.

In the same way that web developers have solved this problem for other similar services (imapproxy for IMAP web mail clients, database connection caches, etc), 'astmanproxy' sets out to solve this problem for asterisk.

This project started out as a simple proof-of-concept script called "simpleproxy.pl" which was made available in September 2004, following a discussion at the Astricon conference regarding the need for such a proxy. That code was based on Nicolas Gudino's manager proxy for his excellent Flash Operator Panel. Written in perl and as a single-threaded select-based "dumb" proxy, simpleproxy.pl has been widely used as a basis for experimentation, but I wanted something more robust and that could act as a basis for additional features.

Asterisk Manager Proxy is a multithreaded proxy server for Asterisk Manager written in c, and based on several of the same data structures and routines found in the asterisk manager itself. This insures a very high degree of compatibility with Asterisk; it should also be very robust and scalable.

Asterisk Manager Proxy gives the ability to support multiple input and output formats, configurable on a per-client basis.

See also


Created by: davetroy, Last modification: Mon 26 of Jan, 2009 (11:56 UTC) by mach
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+