Summary:ASTERISK-04369: [patch] astmanproxy 1.0 - New Multithreaded Manager Proxy
Reporter:davetroy (davetroy)Labels:
Date Opened:2005-06-07 11:46:03Date Closed:2011-06-07 14:03:05
Versions:Frequency of
Environment:Attachments:( 0) astmanproxy-1.0c.tgz
( 1) astmanproxy-1.11-20050815-0956.tgz
( 2) astmanproxy-1.12.tgz
Description:For those developing interactive web-based Asterisk applications, it can be a challenge getting Asterisk integrated in a cgi/mod_perl/php environment.  The load associated with making multiple short connections to asterisk via the manager port, having to teach our applications to parse "manager-ese", and a variety of other factors have all pointed to the need for a Manager Proxy.

In September, as a proof-of-concept I released a first version of a proxy called
simpleproxy.pl, which has been widely deployed.  Wanting to add in new features, such as XML output capability, I have released a new and considerably richer
multi-threaded/pthreads based proxy called "astmanproxy".

The attached c/pthreads-based code should be able to serve as the basis for an extensible Manager Proxy for Asterisk.  While this first release focuses primarily on simple proxying with an option for XML output, several important architectural details should be noted:

- Ability to support multiple input/output formats with NO changes to Asterisk
- Ability to support different I/O formats on a per-client basis
- Ability to add new "proxy-specific" commands
- Ability to filter output on a per-client basis, minimizing client load
- Runs as a non-root user, minimizing security concerns

The overall architecture can serve as a basis for any one of a number of synchronous or asynchronous interfaces to Asterisk, including XMLRPC-style and SOAP-style interfaces.

Mark has, understandably, expressed an interest in keeping XML out of core-Asterisk, and for those desiring XML I/O capabilities, this proxy may serve as a basis for supporting new formats without requiring any changes to Asterisk.

Request addition to cvs contrib.

The following are features/additions I would like to see, and would love to collaborate on:

- Add support for multiple Asterisk servers
- Add support for XML input
- Add support for Input/Output Format Abstraction
- Add support for Extensible Proxy Command language, Proxy Macros
- Add idea of loglevels to logmsg/debugmsg; kill debugmsg

Disclaimer on file, etc.
Comments:By: davetroy (davetroy) 2005-06-08 16:02:01

Have made a couple of small updates; latest version is posted here: http://www.popvox.com/astmanproxy

By: Michael Jerris (mikej) 2005-09-25 15:38:50

davetroy, can you post the most recent version here not in .tgz for easier review.  I still am pushing to get this in to 1.2.  Thanks

By: davetroy (davetroy) 2005-09-27 08:29:59

MikeJ, so posted... Let me know if you have any questions.  This version cleans up some compatibility issues with old-style CLI output from Asterisk.  Nicolas is also coding FOP to work with this version as well.

By: Serge Vecher (serge-v) 2005-09-27 09:14:36

MikeJ, there are 32 files in the archive, so it is probably easiest to distribute this as .tgz file. Or, maybe this could go into asterisk-addons.

By: Olle Johansson (oej) 2005-10-20 02:25:03

Closing this bug report, since astmanproxy will live its own life outside of the main cvs, possibly in a svn repository on cvs.digium.com after 1.2.

Meanwhile, check the website http://www.popvox.com/astmanproxy for updated information and mailing list.