PsychoMantis
Aktives Mitglied
- Mitglied seit
- 18 Dez 2005
- Beiträge
- 2,539
- Punkte für Reaktionen
- 10
- Punkte
- 38
So sieht meine Lösung nun aus (besteht aus 2 scripten):
Das ist die ausführbare Datei "/usr/sbin/scripts/justvoip":
Und das ist der Script der immer aufgerufen werden kann, damit das aktuelle Guthaben abgefragt werden kann:
Für jeden Betamax-Ableger habe ich zwei solche Dateien und schon passt alles und ich bin glücklich
Jetzt brauche ich nur noch ein paar deutsche Prompts mit der Ansage "Ihr Guthaben beträgt", "Euro", "und", "Cent".
Das ist die ausführbare Datei "/usr/sbin/scripts/justvoip":
Code:
#! /usr/bin/perl -w
use WWW::Curl::Easy;
sub writeBMCallback {
my ($data, $pointer) = @_;
${$pointer}=${$pointer}.$data;
return length($data);
}
sub headerBMCallback {
my($data, $pointer) = @_;
return length($data);
}
sub betamax_curl () {
my $body='';
my $curl = new WWW::Curl::Easy;
$curl->setopt(CURLOPT_HEADER, 1);
$curl->setopt(CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7');
$curl->setopt(CURLOPT_FOLLOWLOCATION, 1);
$curl->setopt(CURLOPT_FAILONERROR, 1);
$curl->setopt(CURLOPT_COOKIEJAR, $sCookie_File);
$curl->setopt(CURLOPT_COOKIEFILE, $sCookie_File);
$curl->setopt(CURLOPT_SSL_VERIFYPEER, 0);
$curl->setopt(CURLOPT_WRITEFUNCTION, \&writeBMCallback );
$curl->setopt(CURLOPT_HEADERFUNCTION, \&headerBMCallback );
$curl->setopt(CURLOPT_FILE, \$body);
if ($_[1] =~ 'POST') {
$curl->setopt(CURLOPT_POST, 1);
$curl->setopt(CURLOPT_POSTFIELDS,"username=$_[2]&password=$_[3]");
}
$curl->setopt(CURLOPT_URL,$_[0]);
$curl->perform();
my $err = $curl->errbuf;
return $body;
}
$MYUSER="PsychoMantis";
$MYPASS="meinpwd";
$sCookie_File = "/tmp/bm.cookie";
$url='https://myaccount.justvoip.com/clx';
$url1='/index.php?part=menu&justloggedin=true';
&betamax_curl($url.'/','POST',$MYUSER,$MYPASS);
&betamax_curl($url.$url1,'GET');
my $content=&betamax_curl($url.$url1,'GET');
my $sHTML_File="/tmp/bm.html";
open(HTML, '>'.$sHTML_File);
print HTML $content;
close(HTML);
Code:
/usr/sbin/scripts/justvoip
guthaben=$(cat /tmp/bm.html | grep -i euro | egrep -o '[0-9]{1,3}\.[0-9]{1,2}')
rm /tmp/bm.html
rm /tmp/bm.cookie
asterisk -rx "database put justvoip guthaben $guthaben"
echo $guthaben
Für jeden Betamax-Ableger habe ich zwei solche Dateien und schon passt alles und ich bin glücklich
Jetzt brauche ich nur noch ein paar deutsche Prompts mit der Ansage "Ihr Guthaben beträgt", "Euro", "und", "Cent".