#!/usr/bin/php
<?php
     
        foreach ($argv as $k=>$v)
        {
                $arr=explode('=',$v);
                @$var[$arr[0]]=$arr[1];
        }
         
        $arr=explode(':',$var["--users"]);
        $Username=$arr[0];
        $Host=$arr[1];
        
        $socket = @fsockopen($var["--host"],"5038", $errno, $errstr, 5);
        if ($socket===false) { echo "No socket connection to {$var["--host"]}"; exit(2); }
        
        stream_set_timeout($socket,5);
        
        sleep(1);
                 
        fputs($socket, "Events: off\r\n");
        fputs($socket, "Action: login\r\n");
        fputs($socket, "Username: {$var["--amilogin"]}\r\n");
        fputs($socket, "Secret: {$var["--amipwd"]}\r\n");
        fputs($socket, "ActionID: 1\r\n\r\n");
        
        fputs($socket, "Action: SIPshowregistry\r\n");
        fputs($socket, "ActionID: 2\r\n\r\n");
        
        $i=0;
        $done=false;
        while (!feof($socket) && ($i<20) && (!$done))
        {
          $i++;
          $packet=fread($socket, 1500);
          $arr=explode("\r\n",$packet);
          foreach ($arr as $line)      
          {                      
            $arr=explode(":",$line);
            $k=$arr[0]; $v=@trim($arr[1]," \r\n");
            if ($k=='Host') { $Host=$v; }         
            if ($k=='Username') { $Username=$v; }
            if ($k=='State') {                   
              $state["$Username:$Host"]=$v;
            }                              
          }  
          if (strpos($packet,"Event: RegistrationsComplete")!==false) { $done=true; }
        }
         
        $tmp="ERROR";

        if (array_key_exists($var["--users"],$state)) { $tmp=$state[$var["--users"]]; }
        echo "{$var["--users"]} = {$tmp}";
        
        if ($tmp=='Registered') {
                exit (0);        
        }
        else
        {   
                exit (2);
        }
?>
