The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

POE::Component::Client::Asterisk::Manager - Event-based Asterisk / Aefirion Manager Client

SYNOPSIS

  use POE::Session;
  use POE::Component::Client::Asterisk::Manager;

  POE::Component::Client::Asterisk::Manager->new(
        Alias           => 'monitor',
        RemoteHost              => 'localhost',
        RemotePort      => 5038, # default port
        CallBacks  => {
                intput => ':all',  # catchall for all manager events
                ring => {
                        'Event' => 'Newchannel',
                        'State' => 'Ring',
                },
        },
        inline_states => {
                input => sub {
                        my $input = $_[ARG0];
                        # good for figuring out what manager events look like
                        require Data::Dumper;
                        print Data::Dumper->Dump([$input]);
                },
                ring => sub {
                        my $input = $_[ARG0];
                        # $input is a hash ref with info from 
                        print STDERR "RING on channel $input->{Channel}\n";
                },      
        },
  );

  $poe_kernel->run();

DESCRIPTION

POE::Component::Client::Asterisk::Manager is an event driven Asterisk manager client. This module should also work with Aefirion.

METHODS

new()

This method creates a POE::Component::Client::TCP session and works inside that session. You can specify the alias, host, port and inline_states. See the synopsis for an example.

CALLBACKS

Callbacks are events that meet a criteria specified in a hash ref

For example:

        ring => {
                'Event' => 'Newchannel',
                'State' => 'Ring',
        },

The event 'ring' will be called with a hash href in ARG0 when the component receives a manager event matching 'Newchannel' and manager state 'Ring'.

You can specify a catch all event like this:

        catch_all => ':all'

Note: This was changed from 'default' to ':all' in an effort to make it more clear. 'default' will also work.

BUGS

Please report them via RT: http://rt.cpan.org/NoAuth/ReportBug.html?Queue=POE%3A%3AComponent%3A%3AClient%3A%3AAsterisk%3A%3AManager

EXAMPLES

There are a few examples in the examples directory that can get you going.

AUTHOR

David Davis, <xantus@cpan.org>

SEE ALSO

perl(1), POE::Filter::Asterisk::Manager, http://aefirion.org/, http://asterisk.org/, http://teknikill.net/