| 
	
 | 
 Posted by Henk Oegema on 06/12/07 21:58 
I'm using the script below to get the remaining balance of my VoipBuster 
account.  
I'm using this script in my Astrerisk PBX server. 
 
==========================begin script ======================= 
 
function encryptString($string) { 
  for($i=0; $i < strlen($string); $i++) { 
    if(is_numeric($string[$i])) { 
      if($string[$i] < "5") 
       $string[$i]= $string[$i] + 5; 
      else 
       $string[$i]= $string[$i] - 5; 
     } 
  } 
  return str_rot13($string); 
} 
 
// Set username and password: 
  $username = encryptString('your_own_voipbusterusername'); 
  $password = encryptString('your_own_voipbusterpassword'); 
 
$loginurl= 
('https://myaccount.voipbuster.com/clx/index.php?part=plogin&username=' . 
$username . '&password=' . $password); 
  $mainmenuurl = 
('https://myaccount.voipbuster.com/clx/index.php?part=menu&justloggedin=true'); 
 
//========== FIRST PART (LOGIN): ========================== 
 
$cookiejar = tempnam("", ""); 
if ($cookiejar) {  
  $ch = curl_init(); // curl initialization 
 
  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar); //connecting cookie input 
and output to 
  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiejar); //this curl session 
 
  curl_setopt ($ch, CURLOPT_URL, $loginurl); //set URL to use in GET/POST 
action 
 
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); //return received data 
(instead of curl result code) 
 
  curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); //DISABLE HTTPS 
AUTHENTICATION CHECKING: 
 
  curl_exec ($ch); //EXECUTE 1st REQUEST (FORM LOGIN): 
  //will give a redirect to: /index.php?part=menu&justloggedin=true 
 
 
//========== SECOND PART: ========== 
 
  // FOLLOWING REDIRECT TO /index.php?....: 
  curl_setopt($ch, CURLOPT_URL, $mainmenuurl); 
 
  $content = curl_exec ($ch); //EXECUTE 2nd REQUEST (load 'main menu'), 
saving data in $content: 
 
  curl_close ($ch); //close curl session 
 
 
  $start = strpos($content,'balanceid'); //bepaal start van balanceid 
  $deelstring = substr($content,$start+26,10); //kopieer het begin van het 
bedrag de string naar een tussen waarde 
//print $deelstring; 
  $einde = strpos($deelstring,'<'); //einde van het bedrag is waar de 
afsluit tag begint 
  $bedrag = substr($deelstring,0,$einde); 
  print "Remaining credit: $bedrag\n"; //use this for testing 
//  print "$bedrag"; //gebruik dit als je het als AGI script gaat gebruiken 
in Asterisk 
 
} 
else { print "error creating cookie file"; } 
 
?> 
 
==========================end script =============================== 
 
Here is where I use the script in my Asterisk server: 
 
exten=>3002,1,Answer() 
exten=>3002,2,Set(status=${CURL(http://localhost/credit/credit_voipbuster.php)}) 
exten=>3002,3,NoOP(${status}) 
exten=>3002,4,SayDigits(${status}) 
exten=>3002,5,Playback(vm-goodbye) 
exten=>3002,6,Hangup() 
 
 
When I dial extension 3002, I will here the remaining balance. 
 
I have been using this script without any problems. 
However................after a new installation of Linux (SuSE102.2) and a 
new installation of Asterisk, the result is always 0. 
 
This line :  
 
exten=>3002,2,Set(status=${CURL(http://localhost/credit/credit_voipbuster.php)})   
 
should assign the value of the remaining balance to the variable 'status'.  
It contains only the value 0, instead of the real balance. 
 
If I run the script directly from a web browser, it prints the RIGHT value 
(print "Remaining credit: $bedrag\n"; //use this for testing) 
 
The funny thing is that the script worked correctly before I did a new 
installation. 
(I jus copied the old file to the new installation) 
 
Somebody who can help?  ::) 
 
Rgds 
Henk
 
[Back to original message] 
 |