NAME
    AXL::Client::Simple - Cisco Unified Communications XML API

VERSION
    This document refers to version 0.01 of AXL::Client::Simple

SYNOPSIS
    Set up your CUCM AXL client:

     use AXL::Client::Simple;
     
 my $cucm = AXL::Client::Simple->new({
         server      => 'call-manager-server.example.com',
         username    => 'oliver',
         password    => 's3krit', # or set in $ENV{AXL_PASS}
     });

    Then perform simple queries on the Unified Communications server:

     my $device = $cucm->get_phone('SEP001122334455');
     
 my $lines = $device->lines;
     printf "this device has %s lines.\n", $lines->count;
     
 while ($lines->has_next) {
         my $l = $lines->next;
         print $l->alertingName, "\n";
         print $l->extn, "\n";
     }
     
 if ($device->has_active_em) {
         # extension mobility is active, so the lines are different
     
     my $profile = $device->currentProfile;
     
     my $profile_lines = $profile->lines;
         printf "this profile has %s lines.\n", $profile_lines->count;
     
     while ($profile_lines->has_next) {
             my $l = $profile_lines->next;
             print $l->alertingName, "\n";
             print $l->extn, "\n";
         }
     }

DESCRIPTION
    This module acts as a client to the Cisco Unified Communications
    Administrative XML interface (AXL). From here you can perform simple
    queries to retrieve phone device details and in particular the lines
    active on a device.

    Although the API is presently very limited, it should be possible to add
    access to additional device and line properties, although performing
    other AXL calls is probably out of scope (hence the module being named
    Simple).

    If the device is running Extension Mobility and a user is logged in, you
    can also retrieve the line details from the current mobility profile
    active on the handset.

METHODS
  AXL::Client::Simple->new( \%arguments )
    Instantiates a new AXL client. There won't be any connection to the
    server until you call the device retrieval method "get_phone". Arguments
    are:

    "server =>" Fully Qualified Domain Name (required)
        The host name of the CUCM server to which the module should connect.
        Note that the port number 8443 and the path "/axl/" are
        automatically appended so you need only provide the FQDN or IP
        address.

    "username =>" String (required)
        The account username under which the module will connect to CUCM.
        This value will be URI encoded by the module.

    "password =>" String OR via $ENV{AXL_PASS} (required)
        The password of the account under which the module will connect to
        CUCM. This value will be URI encoded by the module. You can also
        provide the password via the "AXL_PASS" environment variable.

    "schema_path =>" String (optional)
        A folder on your file system which contains the WSDL and Schema file
        which describe the Administrative XML (AXL) interface. They are
        shipped with this module so your providing this is optional.

  "$cucm->get_phone( <device-name> )"
    Retrieves the AXL::Client::Simple::Phone object which reveals a limited
    number of phone properties and details on the active extensions on the
    handset. See that linked manual page for more details.

REQUIREMENTS
    *   Moose

    *   MooseX::Iterator

    *   XML::Compile::SOAP

    *   XML::Compile::WSDL11

    *   URI::Escape

    *   File::ShareDir

AUTHOR
    Oliver Gorwits "<oliver.gorwits@oucs.ox.ac.uk>"

COPYRIGHT & LICENSE
    Copyright (c) University of Oxford 2010.

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

