http://www.perlmonks.org?node_id=1056096


in reply to access vi through teraterm

Assuming that the serial connection is from a Windows box to a console/TTY on the Linux box, this old code excerpt may be instructive.
use strict; use warnings; use Win32::SerialPort; my $loggedin = 0; my $term = Win32::SerialPort->new('COM1') or die "bad COM1\n"; $term->baudrate(9600); $term->databits(8); $term->parity("none"); $term->parity_enable(0); $term->stopbits(1); $term->handshake('xoff'); $term->user_msg(1); # misc. warnings $term->error_msg(1); # hardware and data errors $term->read_interval(1000); # max time between chars 1000 ms (1 +sec) $term->read_interval(0xffffffff); # non-blocking read $term->write_settings; $term->write("\r"); my $esccount = 0; while ($prompt !~ /Supervisor Name :/) { die "$esccount attempts to contact the PBX have failed." if $escco +unt++ > 10; # loop sending ESCs until we get the login prompt $term->write("\e"); sleep 2; ($count, $prompt) = $term->read(2000); } # we should now be at the Supervisor Name prompt $term->write("REPORTS\r"); sleep 2; ($count, $prompt) = $term->read(2000); if ($prompt =~ /Password\s+:/) { $term->write("REPORTS\r"); sleep 3; ($count, $prompt) = $term->read(2000); if ($prompt =~ /Main Menu/) { $loggedin = 1; } } . . .
(yes, I did just give away the password to that old PBX. If it's still running and you can find it and connect to its serial port, feel free to hack away)