Credito interattivo VoipCheap tramite dialplan

Ho creato un piccolo script Perl che esegue uno script bash basato su quello fornito da johnnyrun sul sito www.vocesuip.com (link), con la differenza che il valore del credito viene messo su un file in /tmp/voipcheap_credito per poi essere letto dallo script perl e popolare una variabile da utilizzare nel dialplan col risultato di avere una voce digitalizzata, la quale vi dirà il credito rimanente del vostro account voipcheap.

Nel mio file extension_custom.conf ho aggiunto il seguente codice:


;Credito residuo voipcheap tramite tasto 68
exten => 68,1,AGI(voipcheap_credito.agi)
exten => 68,2,Flite(Your Voip Cheap Credit is ${voipcheap_credito} Euro.)
exten => 68,3,Flite(You have ${voipcheap_freedays} days remaining.)
exten => 68,7,Hangup
;Fine Modifica

Il file voipcheap_credito.agi è uno script Perl molto semplice:


#!/usr/bin/perl -w


use LWP::UserAgent;
use Asterisk::AGI;


$AGI = new Asterisk::AGI;


my $credito = "";
my $freedays = "";
system("/var/lib/asterisk/agi-bin/voipcheap_credito.agi.bash");
open(CREDITO, "/tmp/voipcheap_credito");
while ($record = ) {
$credito = $record;
}
close(CREDITO);
open(FREEDAYS, "/tmp/voipcheap_freedays");
while ($record = ) {
$freedays = $record;
}
close(FREEDAYS);
$AGI->set_variable('voipcheap_credito', $credito);
$AGI->set_variable('voipcheap_freedays', $freedays);

mentre il file voipcheap_credito.agi.bash è cosi strutturato:


#!/bin/sh
USER1="cripted_user";
PSW1="cripted_psw";
curl -k -D - -c /tmp/voipcheap -b /tmp/voipcheap 'https://myaccount.voipcheap.com/clx/index.php?part=plogin&username='$USER1'&password='$PSW1>/dev/null


ris=$( curl -k -b /tmp/voipcheap "https://myaccount.voipcheap.com/clx/index.php?part=menu&justloggedin=true" )


credito=$( echo $ris |grep balanceid|sed s?.*\\€\;\ \;??|sed s?\<.*?? )
freedays=$(echo $ris |grep Freedays|sed s?.*\\??|sed s?\<.*?? ) echo $ris > /tmp/voipcheap_ris
echo $credito > /tmp/voipcheap_credito
echo $freedays > /tmp/voipcheap_freedays

Ho dovuto fare due script in quanto non ho trovato come utilizzare direttamente il file bash su asterisk in quanto non sono in grado di ritornare il valore. Sicuramente è migliorabile, ma intanto funziona…

This entry was posted in Asterisk/TrixBox and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *