115 lines
3.3 KiB
Perl
115 lines
3.3 KiB
Perl
#!/bin/perl
|
|
|
|
# TK zur Fensterdarstellung verwenden
|
|
use Tk;
|
|
|
|
use HTTP::Request::Common qw(POST);
|
|
use LWP::UserAgent;
|
|
|
|
# Saubere Programmierung erzwingen
|
|
use strict;
|
|
|
|
my $eingegeben;
|
|
my @gewaehlt;
|
|
|
|
# Neues Fensterobjekt erzeugen
|
|
my $main = new MainWindow(-title=>'SnomControl');
|
|
|
|
# Frameobjekt im Fensterobjekt mit verschiedenen Eigenschaften wird erzeugt
|
|
# nimmt später Statuslabel, LetzteNachrichtLabel und Eingabezeile auf
|
|
my $top_f=$main->Frame(-width=>200, -height=>200)->pack(-side=>'top', -padx=>5, -pady=>5);
|
|
|
|
# Ein weiteres Frameobjekt, das die Schaltflächen aufnimmt
|
|
my $bottom_f=$main->Frame()->pack(-side=>'top', -padx=>5, -pady=>5);
|
|
|
|
# Configure Event des Fensters wird abgefangen und ein resize verhindert
|
|
$main->bind('<Configure>' => sub {
|
|
my $xe = $main->XEvent;
|
|
$main->maxsize($xe->w, $xe->h);
|
|
$main->minsize($xe->w, $xe->h);
|
|
});
|
|
|
|
# Eingabeobjekt erzeugen und Variable $eingegeben wird referenziert, dadurch landen alle Eingaben in dieser globalen Variable
|
|
my $eingabe = $top_f->Entry(-width=>50, -textvariable => \$eingegeben);
|
|
|
|
# Die Schaltflächen Dial,Hangup
|
|
my $left1=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
|
my $left2=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
|
my $left3=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
|
my $left4=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
|
my $left5=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
|
|
|
# Standardaktion bei <Return> wird definiert, selbe Aktion wie bei Betätigung der Senden Schaltfläche (Aufruf sub senden_click)
|
|
$eingabe->bind('<Return>', \&dial_click );
|
|
|
|
# Senden Knopf wird definiert, Beschriftung und Aktion (Aufruf sub senden_click)
|
|
my $dial_button = $left1->Button(
|
|
'-text' => 'Dial/Accept',
|
|
'-command' => \&dial_click,
|
|
);
|
|
|
|
my $pickup_button = $left2->Button(
|
|
'-text' => 'Pick up',
|
|
'-command' => \&pickup_click,
|
|
);
|
|
|
|
my $redial_button = $left3->Button(
|
|
'-text' => 'Redial',
|
|
'-command' => \&redial_click,
|
|
);
|
|
|
|
my $hangup_button = $left4->Button(
|
|
'-text' => 'Hang up',
|
|
'-command' => \&hangup_click,
|
|
);
|
|
|
|
my $history_button = $left5->Button(
|
|
'-text' => 'History',
|
|
'-command' => \&history_click,
|
|
);
|
|
|
|
$eingabe->pack(-anchor => 'w');
|
|
|
|
# Knöpfe werden angezeigt
|
|
$dial_button->pack;
|
|
$pickup_button->pack;
|
|
$redial_button->pack;
|
|
$hangup_button->pack;
|
|
$history_button->pack;
|
|
|
|
# MainLoop des TK
|
|
MainLoop;
|
|
|
|
sub dial_click {
|
|
# Wenn Text nicht leer ist
|
|
if ($eingegeben ne "") {
|
|
push @gewaehlt, $eingegeben;
|
|
my $ua = LWP::UserAgent->new();
|
|
my $req = POST 'http://fote98:K01v1kk0!@10.60.1.21/command.htm', [ number => "$eingegeben"];
|
|
my $content = $ua->request($req)->as_string;
|
|
$eingegeben="";
|
|
}
|
|
else {
|
|
my $ua = LWP::UserAgent->new();
|
|
my $req = POST 'http://fote98:K01v1kk0!@10.60.1.21/link?accept=-14';
|
|
my $content = $ua->request($req)->as_string;
|
|
}
|
|
}
|
|
|
|
sub pickup_click {
|
|
my $ua = LWP::UserAgent->new();
|
|
my $req = POST 'http://fote98:K01v1kk0!@10.60.1.21/command.htm', [ number => "*8"];
|
|
my $content = $ua->request($req)->as_string;
|
|
}
|
|
|
|
sub redial_click {
|
|
}
|
|
|
|
sub hangup_click {
|
|
my $ua = LWP::UserAgent->new();
|
|
my $req = POST 'http://fote98:K01v1kk0!@10.60.1.21/command.htm?key=cancel';
|
|
my $content = $ua->request($req)->as_string;
|
|
}
|
|
|
|
sub history_click {
|
|
} |