[asterisk-users] asterisk manager interface stability

Earl Terwilliger earlt at unete.com.ve
Wed May 16 10:01:05 MST 2007


On Wednesday 16 May 2007 11:43, Lee Jenkins wrote:
> Matt Florell wrote:
> > The issue has more to do with the sheer amount of data passed to the
> > client from within the Asterisk application when you have 50-100+
> > clients connected to the AMI on full output mode. Running a system with
> > FreePBX/Trixbox especially generates vast amounts of output that has to
> > be generated on every AMI connection for every client. This is not
> > trivial and can result in lockups very easily, although this has gotten
> > much better since the early 1.0 versions.
> >
> > The new Asterisk Manager web API in 1.4 is a good step where sending of
> > Actions does not require an actual Telnet conneciton to the AMI, but I
> > think to be able to handle larger numbers of concurrent connections that
> > a separate send-only and a separate receive-only type of interface be
> > built where Asterisk would just output all AMI data to a single
> > server-like application that would then broadcast it to all connected
> > clients. This would remove the burden of so many connections going
> > directly into Asterisk and would allow for much larger scaling of
> > AMI-type applications that require real-time output of AMI events.
>
> I definitely agree here personally.  Clients could connect to this
> "proxy" and subscribe to only the events that are interesting or
> applicable.
>
> > As for how to go about doing this, I can't help you there. I did build a
> > very specialized version of something like this 4 years ago for the
> > astGUIclient project called the Asterisk Central Queue System(ACQS) It
> > is based on 1.0 Asterisk but it still works with 1.2 and 1.4. It is
> > limited in what it does, but it does scale much better than using direct
> > AMI connections.
>
> I've been considering writing something like this for a project that I'm
> thinking about doing that would require potentially high number of
> concurrent clients to consume AMI services.
>
>  From your experience, does the software that you wrote require
> significant CPU to cache and then doll out the kind of volume of
> messages that AMI can send?
>
> If I end up writing something myself, I'll release it as OS...

You might be interested in a python server script I wrote (called ProxyMan) 
that does this kind of thing. It is part of my EventMonitor package but runs 
fine on its own.

#    A multi-threaded server which connects to an Asterisk Manager
#    and logs all events
#
#    Connects to the Asterisk Manager and listens for all events
#    Optionally listens on socket and accepts client connections
#         proxies all client commands to the Asterisk Manager Interface
#         sends all data received from the manager to all connected clients
#    Optionally prints data as received (also in optional hex dump format)
#    Optionally logs all data to a MySQL database table


 You can get it here:

	http://www.micpc.com/eventmonitor

earl


More information about the asterisk-users mailing list