#!/usr/bin/perl # !/usr/local/bin/perl # # Rafael Skodlar Aug-30-96 # # Usage: pager [user|user_level] pager_code [pager_subcode] # require "ctime.pl"; $MODEM = "/dev/modem"; # Linux # MODEM = "dev/ttyb"; # Solaris %months = ( 'Jan', '01', 'Feb', '02', 'Mar', '03', 'Apr', '04', 'May', '05', 'Jun', '06', 'Jul', '07', 'Aug', '08', 'Sep', '09', 'Oct', '10', 'Nov', '11', 'Dec', '12', ); if ($#ARGV < 1) { print "Usage: pager [user|user_level] pager_code [pager_subcode]\n"; exit 1; } #if ($ARGV[0] eq "-d") { # $debug=1; # shift; #} if (length $ARGV[0] > 2) { # if string is longer than 2, then it must be a user $user = $ARGV[0]; } else { # user_level $user_level = $ARGV[0]; } shift; if ($ARGV[0] ne "") { $pager_code = $ARGV[0]; } shift; if ($ARGV[0] ne "") { $subcode = $ARGV[0]; $pager_subcode = "*" . $subcode; } $paging_code = $pager_code . $pager_subcode; if ($user_level ne "") { open (PAGERLIST, "pager.list") || die "Can't open pager.list"; while (){ chop; if (substr($_,0,1) ne "#") { ($lvl, $user, $pager_number, $full_name) = split(/,/,$_); @level = split (/|/,$lvl); foreach (@level) { if ($user_level eq $_){ print " User: $user Level: $user_level \nPager Code: $pager_code \tSubcode: $subcode\n"; &pager_test; &pager_call; } } } } } else { &pager_call; } close (PAGERLIST); sub pager_call { # system ("echo \"atdt ,,$pager_number,,,,,,,,$paging_code\" > $MODM"); print "atdt ,,$pager_number,,,,,,,,$paging_code\n"; system ("echo \"atdt $pager_number,,,,,,$paging_code\" >$MODEM"); # system ("echo \"atdtS0\" > $MODEM"); print "\n Calling: $user\n Full Name: $full_name\nPager Number: $pager_number\n\n"; $date = &ctime(time); chop $date; ($day, $month, $dd, $time, $year) = split (/ /,$date); print "Date: $day, $month, $dd, $time, $time, $year\n\n"; $LOGFILE= "/tmp/paged.$user.$year$months{$month}";print $file; # sleep (30); #Wait a bit before closing the modem # open (MODM,">/dev/ttyb")||die "Can't open Modem\n"; open (MODM,">/dev/modem")||die "Can't open Modem\n"; print (MODM "+++\nath0\n"); close (MODM); sleep (5); # Let the modem clean up. # write log file print "filename: $LOGFILE\n"; open (LOG, ">>$LOGFILE") || warn "Can not open $LOGFILE.\n"; print (LOG "$wkday $dd $time $pager_code $subcode\n"); close (LOG); } sub pager_test { # print "\n Calling: $user\n Full Name: $full_name\nPager Number: $pager_number\n\n"; open (PAGERCODES, "pager.codes") || warn "Can not open pager.codes\n"; #open (PAGERCODES, "pager.codes") || warn "Can't open paged.codes\n"; while (){ chop; ($code, $descr) = split (/\|/,$_); if ($code eq $pager_code) { print " Page Code: $pager_code --- $descr\n Sub Code: $pager_subcode\n\n"; } close PAGERCODES; } print "LOG, >>$LOGFILE"; } exit;