in reply to RE: Re: perl + modem
in thread perl + modem

Yes the man sucks.

I have been trying to dial a phone number for almost 3 hours now and have got nowhere. I know my modem works because I can dial using minicom. But getting this dang Device::SerialPort to actually do something is yet to be seen. Hey I might as well post the code in case someone else can spot the obvious.
#!/usr/bin/perl
use Device::SerialPort qw( :PARAM :STAT 0.07 );

$PortName = '/dev/ttyS1';
$Configuration_File_Name = 'phone.conf';

$PortObj = new Device::SerialPort ($PortName) || die "Can't open $PortName: $!\n";
$PortObj->user_msg(ON);
$PortObj->databits(8);
$PortObj->baudrate(9600);
$PortObj->parity("none");
$PortObj->stopbits(1);
$PortObj->handshake("rts");
$PortObj->write_settings || undef $PortObj;
$PortObj->save($Configuration_File_Name);


$PortObj->write("ATDT5010005");
$PortObj->close || die "failed to close";
undef $PortObj; # frees memory back to perl

print "help\n";

__END__

Replies are listed 'Best First'.
(jcwren) RE: (3) perl + modem
by jcwren (Prior) on Aug 22, 2000 at 03:02 UTC
    Two things:

    1) I would test this without using the RTS handshaking. Look up the command for the modem to turn off handshaking, or do it by resetting the modem to factory defaults. (by default it should be off in the factory settings. You can do a AT&F&WZ to fetch the factory settings, and write them into NVRAM, and reset the modem)

    2) You don't have a carriage return at the end of the phone number. The modem isn't going to act until the CR or LF is seen.

    As a debugging aid, I can suggest wiring up a null modem cable, and connecting it to another machine with a terminal program. That way, you can be assured that the port is spitting out what you think it should be.

    --Chris

    e-mail jcwren
      I Just wanted to thank everyone for their help. I did manage to get the phone to dial, after putting a carriage return after the dial statement and also executing-
      sleep(10);

      so it had enough time to actually dial.

      Tanks again for your expertise.
      TC