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

NAME

GSM::SMS - Perl Modules For Smart Messaging

INTRODUCTION

This set of modules allows you to send and receive SMS messages. Besides text messages you can also use Smart Messages, also known as ringing tones, groupgraphics, vcards etc...

Out of the box, it comes with a serial transport and a transport for Novelsoft, a HTTP based SMSC (http://www.sms-wap.com ). To use the serial transport you will need a GSM modem, like the wavecom WMOD2B ( http://www.wavecom.com ). If you want to receive SMS messages, the serial solution is the only one for the moment.

Some mobile phones (e.g. Nokie 6110) will install a custom serial friver for you on the Windows platform. Please follow the guidelines for your GSM support software.

You can do the same on linux using the AT command emaulator from the gnokii project (gnokii.org when using these special phones.

More generic options are the M20 from Siemens and the A1 or A2 from Falcom.

A good start is to read the docs for GSM::SMS::NBS. This class is a facade for the rest of the package and provides easy to use methods.

(Upcoming) When using EMS, you can use the L>GSM::SMS::EMS> package.

For the moment the package comes with support for the following Smart Messaging formats:

ring tones (RTTTL)
Caller Line Identification logos
Operator logos
VCard
OTA Configuration for WAP phones
PictureMessage

More are on their way, as is support for EMS.

NEW IN THIS RELEASE

Win32 support
Flash SMS support
Refactored directory structure layout
More docs
Better error reporting
Configuration wizard update

Look in the 'Changes' file for a complete review and credits.

PREREQUISITES

Following packages are mandatory

Data::Dumper
MIME::Base64
Image::Magick
LWP
Device::SerialPort or Win32::SerialPort
Log::Agent

Note: Device::SerialPort and Win32::SerialPort are only necessary when using serial transport.

INSTALL

It *should* be a simple:

        perl Makefile.PL
        make
        make install

When you want to use the default values for installing, you can set PERL_MM_USE_DEFAULT to true before running perl Makefile.PL. This can be of interest when installing GSM::SMS from a script.

CONFIGURATION

This package needs configuration, period. When you're installing the package on a Windows machine then you'll need to type double back slashes when providing a path, e.g. for the log directory:

  c:\\gsmsms\\log

You have three options to configure the package:

On installation

Running perl Makefile.PL will invoke the configuration wizard.

After installation

You can always run the configuration wizard again by the following command

  perl -MGSM::SMS::Config -esetup
When instantiating GSM::SMS::NBS (or GSM::SMS::EMS)

You can provide a configuration file to the constructor. This configuration file can be generated from the default configuration (created by previous config methods) by running the next command

  perl -MGSM::SMS::Config -egenerate_config

SERIAL TRANSPORT

To use the serial transport, you'll need to have either Device::SerialPort or Win32::SerialPort installed.

A problem that can arise when using the serial transport is the setting of the service center address. If this happens, or if you want to set this manually, use the following command(s) in your favourite comms program. I use minicom ... (Win32 users can use terminal).

        >minicom -s
        AT+CPIN?
                Check for pincode
        AT+CPIN="nnnn"
                Set pincode. Important ... only 3 tries!!!
        AT+CSCA?
                Check for service center address
        AT+CSCA="+32475161616"
                Set service center address. ( This one is for proximus belgium ).

EXAMPLES

Look in the examples directory, this should get you started. The most complex one is the smartmessagingserver, allowing you to request a rttl or groupgraphic by sending an sms message. The slashdot example allows you to receive the latest slashdot headlines in a SMS message. The ideas are ofcourse endless.

Win32 Specific issues

Sometimes I need to open up a terminal program to connect to the modem manually. If I don't do that, Perl cannot connect to the serial port. I only need to do that one time, when I boot up the system. Afterwards, everything works fine.

You probably will get warnings when running the test suite. These do not originate from GSM::SMS, but from Image::Magick. They are harmless I guess, as I did not see apatch from ActiveState yet.

BUGS

Probably a lot. I hope I get a lot of feedback so we can figure the bugs out and start fixing them!

AUTHOR

Johan Van den Brande <johan@vandenbrande.com>

COPYRIGHT

Copyright (c) 1999-2002 Johan Van den Brande All rights reserved.

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

DISCLAIMER

NO WARRANTY

BECAUSE THE SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.