Ein einfaches Script, um eine SMS per HTTP request abzusetzen, hier über sms77.de als Anbieter.
Aufruf in anderem Script durch
Code:
# Wiregate Plugin, um SMS per Anbieter SMS77.de zu versenden # HTTP API Version 0.76 Spezifikationen: http://sms77.de/api.pdf # Version 0.01 07.07.2015 # Copyright: nipponichi, License: GPLv2 # Steuerung über Variablen: # <plugin_name>_request 0/1 # <plugin_name>_data zu sendener Text ##################### ### EINSTELLUGNEN ### ##################### my $user = "user1234567"; # user my $pwrd = "1234"; # password my $telno = "0160123456789"; # Zieltelefonnummer(n), per Komma getrennt my $from = "Niemand"; # Absender 16 Ziffern oder 11 Zeichen, nicht basicplus my $prio = "basicplus"; # basicplus/quality/direct $plugin_info{$plugname.'_cycle'} = 60; ##################### my $gv_event=undef; if (!$plugin_initflag) { # aus welchem Grund laeuft das Plugin gerade $gv_event = EVENT_RESTART; # Restart des daemons / Reboot } elsif ($plugin_info{$plugname.'_lastsaved'} > $plugin_info{$plugname.'_last'}) { $gv_event = EVENT_MODIFIED; # Plugin modifiziert } elsif (%msg) { $gv_event = EVENT_BUS; # Bustraffic } elsif ($fh) { $gv_event = EVENT_SOCKET; # Netzwerktraffic } else { $gv_event = EVENT_CYCLE; # Zyklus } if (($gv_event eq EVENT_RESTART) or ($gv_event eq EVENT_MODIFIED)) { $plugin_info{$plugname.'_request'} = 0; $plugin_info{$plugname.'_data'} = ''; $plugin_info{$plugname.'_prio'} = 0; } elsif ($gv_event eq EVENT_BUS) { } elsif ($gv_event eq EVENT_SOCKET) { } elsif ($gv_event eq EVENT_CYCLE) { if ($plugin_info{$plugname.'_request'} == 1) { use LWP::UserAgent; use URI::Escape; use Encode; my ($userAgent, $request, $response, $requestURL); $userAgent = LWP::UserAgent->new; $userAgent->agent("WireGatePlugin/1.0"); # für Test: "&debug=1" $requestURL = sprintf("https://gateway.sms77.de/?u=%s&p=%s&to=%s&text=%s&type=%s&from=%s", uri_escape($user), uri_escape($pwrd), uri_escape($telno), uri_escape(encode("utf8", $plugin_info{$plugname.'_data'})), uri_escape($prio), uri_escape(encode("utf8", $from)) ); $request = HTTP::Request->new(GET => $requestURL); #$request->timeout(5); $response = $userAgent->request($request); if ($response->is_success) { plugin_log($plugname, "SMS senden erfolgreich: $telno, $plugin_info{$plugname.'_data'}"); } elsif ($response->code == 401) { plugin_log($plugname, "SMS nicht gesendet."); } else { plugin_log($plugname, "SMS nicht gesendet " . $response->content); } $plugin_info{$plugname.'_request'} = 0; $plugin_info{$plugname.'_data'} = ''; $plugin_info{$plugname.'_prio'} = 0; } } return;
Code:
$plugin_info{'SendSms.pl_request'} = 1; $plugin_info{'SendSms.pl_data'} = 'Hallo';
Kommentar