/[mon-modules]/sms.alert
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sms.alert

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by dpavlin, Tue Feb 4 15:16:37 2003 UTC revision 1.8 by dpavlin, Tue Oct 28 17:37:05 2003 UTC
# Line 3  Line 3 
3  # sms.alert - send an alert via smstools available at  # sms.alert - send an alert via smstools available at
4  #             http://www.isis.de/~s.frings/smstools/  #             http://www.isis.de/~s.frings/smstools/
5  #  #
6  # based on qpage.alert by Jim Trocki, trockij@transmeta.com  # based on qpage.alert and mail.alert by Jim Trocki, trockij@transmeta.com
7  #  #
8  # usage:  # usage:
9  #       sms.alter [-f][-l][-u] 385abxxxxxx|name  #       sms.alter [flags...] -g group -s system 385abxxxxxx|name[ 12345|name...]
10    #
11    # flags which are standard:
12  #  #
 # flags:  
13  #       -u      this is upalert  #       -u      this is upalert
14    #       -g grp  group
15    #       -s sys  system
16    #       -l time time to next alert
17    #
18    # flags specific to sms.alert: (all optional)
19    #
20  #       -f      send flash sms (directly to screen)  #       -f      send flash sms (directly to screen)
21  #       -l      send long message (all output, smstools with split it in  #       -x      send extended message (all output, smstools with split it in
22  #               multiple smses if needed)  #               multiple smses if needed)
23    #       -i hh:mm-hh:mm  send sms only if it falls in this interval
24    #
25    # it users file /usr/local/etc/sms.addressbook as addressbook in format
26    #
27    # 123456        name
28    #
29    # where 123456 is phone number (with country prefix, but without +) and
30    # name is alias used like:
31    #
32    # sms.alert -f dobrica
33  #  #
34    # in mon.cf
35    
36  my $sms_outgoing = "/var/spool/sms/outgoing";  my $sms_outgoing = "/var/spool/sms/outgoing";
37  my $sms_addressbook = "/usr/local/etc/sms.addressbook";  my $sms_addressbook = "/usr/local/etc/sms.addressbook";
# Line 21  my $sms_addressbook = "/usr/local/etc/sm Line 39  my $sms_addressbook = "/usr/local/etc/sm
39  use strict;  use strict;
40  my %opt;  my %opt;
41  use Getopt::Std;  use Getopt::Std;
42  getopts ("s:g:fu", \%opt);  getopts ("S:s:g:h:t:l:ufi:", \%opt);
43    
44  # read addressbook  # read addressbook
45  my %name2phone;  my %name2phone;
# Line 46  my @MSG=<STDIN>; Line 64  my @MSG=<STDIN>;
64  my $summary = shift @MSG;  my $summary = shift @MSG;
65  chomp $summary;  chomp $summary;
66    
67    if ($opt{i}) {
68            if ($opt{i} =~ /(\d+):(\d+)-(\d+):(\d+)/) {
69                    my $from = $1 * 60 + $2;
70                    my $to = $3 * 60 + $4;
71                    my ($sec,$min,$hour) = localtime(time);
72                    my $t = $hour * 60 + $min;
73                    exit 0 if ($t < $from || $t > $to);
74            } else {
75                    die "interval time format: hh:mm-hh:mm"
76            }
77    }
78    
79    $summary = $opt{S} if $opt{S};
80    
81  my ($wday,$mon,$day,$tm) = split (/\s+/, localtime);  my ($wday,$mon,$day,$tm) = split (/\s+/, localtime);
82    
83  my $ALERT = $opt{u} ? "UPALERT" : "ALERT";  my $ALERT = $opt{u} ? "UPALERT" : "ALERT";
84    
85  my $sms = "From: mon\n";  my $sms = "From: mon\n";
86  $sms .= "Flash: yes\n" if $opt{'f'};  $sms .= "Flash: yes\n" if $opt{f};
87  $sms .= "\n$ALERT $opt{g}/$opt{s} $summary ($wday $mon $day $tm)\n";  $sms .= "\n$ALERT";
88  $sms .= join("\n",@MSG) if $opt{'l'};  $sms .= " $opt{g}/$opt{s}" if ($opt{g} && $opt{s});
89    $sms .= " $summary ($wday $mon $day $tm)\n";
90    # add next alter time
91    $sms .= "Secs until next alert: $opt{l}\n" if $opt{l};
92    # add rest of text
93    $sms .= join("\n",@MSG) if $opt{x};
94    
95    my $suffix = 0;
96    
97  foreach my $to (@ARGV) {  foreach my $to (@ARGV) {
98          if (open(SMS, "> $sms_outgoing/mon$$")) {          if (open(SMS, "> $sms_outgoing/mon-$$-$suffix")) {
99                  my $phone = $to;                  my $phone = $to;
100                  $phone = $name2phone{lc($to)} if ($name2phone{lc($to)});                  $phone = $name2phone{lc($to)} if ($name2phone{lc($to)});
101                    die "$phone is not phone number! " if ($phone !~ m/^\d+$/);
102                  print SMS "To: $phone\n$sms";                  print SMS "To: $phone\n$sms";
103                  close SMS;                  close SMS;
104                    $suffix++;
105          } else {          } else {
106                  die "could not open sms file in '$sms_outgoing': $!";                  die "could not open sms file in '$sms_outgoing': $!";
107          }          }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.26