#!/usr/bin/perl # (c) Pali 2019, Perl license use strict; use warnings; use Net::Telnet; use Time::HiRes qw(usleep); die "Usage: $0 host pass volume\n" unless @ARGV == 3; my $host = $ARGV[0]; my $pass = $ARGV[1]; my $vol = $ARGV[2]; my $t = Net::Telnet->new(Timeout => 3, Prompt => '/[^\n]*> $/'); $t->open($host); $t->waitfor('/Password :$/'); $t->print($pass); $t->waitfor($t->prompt); foreach ('open', ('key voldn') x 16, ('key volup') x $vol, 'close') { $t->cmd("test $_"); usleep 200_000; } $t->print("exit"); $t->close();