NAME

SMS::AQL - Perl extension to send SMS text messages via AQ's SMS service

SYNOPSIS

# create an instance of SMS::AQL, passing it your AQL username
# and password (if you do not have a username and password, 
# register at www.aql.com first).

$sms = new SMS::AQL({
  username => 'username',
  password => 'password'
});

# default parameters can be passed like so:
$sms = new SMS::AQL({
  username => 'username',
  password => 'password',
  options => { sender => '+4471234567' }
});

# send an SMS:

$sms->send_sms($to, $msg) || die;

# called in list context, we can see what went wrong:
my ($ok, $why) = $sms->send_sms($to, $msg);
if (!$ok) {
    print "Failed, error was: $why\n";
}

# params for this send operation only can be supplied:
$sms->send_sms($to, $msg, { sender => 'bob the builder' });

DESCRIPTION

SMS::AQL provides a nice object-oriented interface to send SMS text messages using the HTTP gateway provided by AQ Ltd (www.aql.com) in the UK.

It supports concatenated text messages (over the 160-character limit of normal text messages, achieved by sending multiple messages with a header to indicate that they are part of one message (this is handset-dependent, but supported by all reasonably new mobiles).

METHODS

new (constructor)

You must create an instance of SMS::AQL, passing it the username and password of your AQL account:

$sms = new SMS::AQL({ username => 'fred', password => 'bloggs' });

You can pass extra parameters (such as the default sender number to use) like so:

$sms = new SMS::AQL({
  username => 'fred', 
  password => 'bloggs',
  options  => {
      sender => '+44123456789012'
  }
});
send_sms($to, $message [, \%params])

Sends the message $message to the number $to, optionally using the parameters supplied as a hashref.

If called in scalar context, returns 1 if the message was sent, 0 if it wasn't.

If called in list context, returns a two-element list, the first element being 1 for success or 0 for fail, and the second being a message indicating why the message send operation failed.

Examples:

if ($sms->send_sms('+44123456789012', $message)) {
    print "Sent message successfully";
}

my ($ok, $msg) = $sms->send_sms($to, $msg);
if (!$ok) {
    print "Failed to send the message, error: $msg\n";
}
credit()

Returns the current account credit

last_error()

Returns the last result code received from the AQL gateway.

Possible codes are:

AQSMS-NOAUTHDETAILS

The username and password were not supplied

AQSMS-AUTHERROR

The username and password supplied were incorrect

AQSMS-NOCREDIT

The account specified did not have sufficient credit

AQSMS-OK

The message was queued on our system successfully

AQSMS-NOMSG

No message or no destination number were supplied

SEE ALSO

http://www.aql.com/

AUTHOR

David Precious, <davidp@preshweb.co.uk>

All bug reports, feature requests, patches etc welcome.

COPYRIGHT AND LICENSE

Copyright (C) 2006 by David Precious

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.