#!/usr/local/bin/perl # # Simple Beep program to page someone on a SkyTel alphanumeric beeper # or an Pagenet alphanumeric beeper. # # Wrolf Courtney wrolf@wrolf.net # # March 19, 1999 use strict; require LWP::UserAgent; use HTTP::Request::Common; my $DEBUG=0; # list of predefined pager numbers my %pager_number = ( paul => ["pagenet", "9172522000.0211111"], # Paul Adams craig => ["pagenet", "9172522000.0222222"], # Craig Baker marc => ["pagenet", "9172522000.0233333"], # Marc Cholmondesley claudio => ["pagenet", "9172522000.0144444"], # Claudio Draco emily => ["pagenet", "9172522000.0255555"], # Emily Everington larry => ["pagenet", "9172522000.0266666"], # Larry Fawkes mark => ["skytel", "3977777"], # Mark Gollum tech => ["skytel", "9088888"], # On Call Comm Tech wrolf => ["skytel", "5499999"], # Wrolf ); sub usage { print STDERR join( "\n", @_, "Usage: $0 person person ... message", " or: $0 message\n", " or: $0 . message\n"); exit 1; } usage "Not enough arguments" if $#ARGV+1 < 2; my @service; # Paging services parsed from command line parameters my @pagee; # Pagees parsed from command line parameters # check if the first argument is a name, or a number if ($ARGV[0] =~ /^\d{7}$/) { @service[0] = "skytel"; @pagee[0] = $ARGV[0]; } elsif ($ARGV[0] =~ /^\d{10}\.\d{7}$/) { @service[0] = "pagenet"; @pagee[0] = $ARGV[0]; } else { @service[0] = $pager_number{lc($ARGV[0])}[0]; @pagee[0] = $pager_number{lc($ARGV[0])}[1]; } usage "$ARGV[0] not known" if @pagee[0] eq ""; shift @ARGV; # read additional args, as long as they are names while ( $#ARGV > 0 && $pager_number{lc($ARGV[0])} ) { push @service, $pager_number{lc($ARGV[0])}[0]; push @pagee, $pager_number{lc($ARGV[0])}[1]; shift @ARGV; } # message is remaining arguments my $message = join(' ', @ARGV); usage "No Message" if $message eq ""; if ($DEBUG>0) { print "Paging\n"; for my $i (0 .. $#pagee) { print "\t", $service[$i], " ", $pagee[$i], "\n"; } print "with $message\n"; } usage "No Message" if $message eq ""; my $ua = new LWP::UserAgent; $ua->proxy(['http'], 'http://raptor:80/'); # for each pagee for my $i (0 .. $#pagee) { print "Paging $service[$i] $pagee[$i] with $message ... "; if ($service[$i] eq "skytel") { # if SkyTel my $response = $ua->request( POST 'http://www.skytel.com/cgi-bin/page.pl', [ to => $pagee[$i], pager => 2, message => $message, ]); if ($response->is_success) { print "successful. "; print $response->content, "\n" if $DEBUG>0; $response->content =~ /claim=(\d+)/; print "Message Status Number: $1. "; print "URL: http://www.skytel.com/Paging/status.cgi?pin=$pagee[$i]&c laim=$1\n"; } else { print "FAILED for $pagee[$i]!\n"; print $response->error_as_HTML if $DEBUG>0; } } elsif ($service[$i] eq "pagenet") { # else if Pagenet my $res = $ua->request( POST 'http://www.pagenet.net/pagenet/page_gen', [ To => @pagee[$i], Message => $message ]); if ($res->is_success) { print "successful.\n"; } else { print "FAILED for $pagee[$i]!\n"; print $res->error_as_HTML if $DEBUG>0; } } else { # impossible die "Unknown paging service.\n" } } # end for each pagee exit 0;