#!/usr/bin/perl
#
# Short example of use for Device::Gsm class
#
# $Id: send_sms.pl,v 1.2 2002/04/29 17:03:46 cosimo Exp $

use strict;
use Device::Gsm;

print "\nthis is ", '$Id: send_sms.pl,v 1.2 2002/04/29 17:03:46 cosimo Exp $', "\n";
print "I hope I can send an SMS on your GSM phone attached to...\n";

my $port = $^O =~ /Win/ ? 'COM2' : '/dev/ttyS1';
my $myport;

my $pin  = '0000';
my $mypin;

print "Select your serial port [$port] : ";
chomp( $myport = <STDIN> );
$myport ||= $port;

print "Insert your PIN number if you need to register to GSM network [$pin] : ";
chomp( $mypin = <STDIN> );
$mypin ||= $pin;
$mypin =~ s/\D//g;
$mypin = substr( $mypin, 0, 4 );

my $gsm = new Device::Gsm( port => $myport, pin => $mypin, log => 'file,send.log' );

die "cannot create Device::Gsm object!" unless $gsm;

#
# If you have problems with bad characters being trasmitted across serial link,
# try different baud rates, as below...
#
# .---------------------------------.
# | Model (phone/modem) |  Baudrate |
# |---------------------+-----------|
# | Falcom Swing (A2D)  |      9600 |
# | Siemens C35/C45     |     19200 |
# | Digicom             |      9600 |
# | Nokia Communicator  |      9600 |
# `---------------------------------'
#

$gsm->connect( baudrate => 9600 ) or die "cannot connect to GSM device on [$myport]\n";
$gsm->register() or die "cannot register on GSM network: check pin and/or network signal!"; 

print "\nok! connected and registered to network.\n";

my $number;
do { 
	print "\nRecipient number (ex.: +490320201020 or 0320201020): ";
	chomp( $number = <STDIN> );
} until $number;

my $content;
do { 
	print "\nSMS Text (max 160 chars):\n";
	chomp( $content = <STDIN> );
} until $content;

$content = substr( $content, 0, 160 );

my $lOk = $gsm->send_sms(
	content => $content,
	recipient => $number,
	class     => 'normal'     # try `flash'
);

if( $lOk ) {

	print "SMS sent!\n" ;

} else { 

	print "Error in sending!\n";

}



