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. You even can have some success with running the gnokii project to power a Nokia 6110 or something, but I have not tested this. Other options are the M20 from Siemens and the A1 or A2 from Falcom. The module that is the most interesting for you is probably the GSM::SMS::NBS module, as this is the high level interface you are supposed to use. Please look at the examples to see how you use the library. 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 NEW IN THIS RELEASE Look in the 'Changes' file for a complete review and credits. * GSM::SMS::NBS::sendOperatorLogo_from{file,b64} now works. * GSM::SMS::Support::RTTTL2MIDI converts rtttl strings to midi. * Serial transport wait correctly for the modem to come up when reading SIM card information (phonebook, ...). * GSM::SMS::NBS returns success and failure correctly * XmlRpc Transport for remote node functionality. ( Look at the iSMS package for example, http://www.tektonica.com ) * Faster SMS delete on Serial transport * Supports more GSM modems ( Siemens ) by use of extra config parameter ( memorylimit ). PREREQUISITES Following packages are mandatory * Data::Dumper * MIME::Base64 * Image::Magick * LWP * Device::SerialPort INSTALL I *should* be a simple: perl Makefile.PL make make install CONFIGURATION This is important, because the transports need to be configured. The best you can do is look in the examples for the file transport.cfg. This file contains the necessary settings for the transports and are (clearly) documented. As time permits I will be expanding the documentation. SERIAL TRANSPORT A note about the serial transport. To use this you need to have Device::SerialPort installed. For the moment this also means that this part is not Win32 compliant, as another module ( Win32::SerialPort ) is used on the other system. Expect an update that also works on window systems. A problem that can arise when using the serial tarnsport 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 ... >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. I've build an application on top of these modules that expose the send functions in an XMLRPC way, thus creating a SMS webservice. 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-2001 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 I take no responsibility for anything that can go wrong or can be done wrong with this piece of software. Please look at the file DISCLAIMER.