Subversion Repositories ALCASAR

Rev

Rev 1380 | Blame | Last modification | View Log

<?php
# Test présence de clé/modem
$exec_com=exec("lsusb | grep -i 067b | cut -d ' ' -f6 | cut -d ' ' -f1");
$exec_com2=exec("lsusb | grep -i 12d1 | cut -d ' ' -f6 | cut -d ' ' -f1");

//$exec_com2=exec("lsusb | grep -i d-link | cut -d ' ' -f7");

$status_key="false";
$script="/usr/local/bin/alcasar-sms.sh";

#Define
$gammu_puk = "";
$gammu_simfail = "";
$gammu_simsecu = "";
$gammu_writeerror = "";
$gammu_timeout = "";
$error_pin = "";
$error_time_account = "";
$error_nb_essais = "";
$error_time_perm = "";
$error_num_alcasar = "";

# Choice of language
$Language = 'en';
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
        $Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
        $Language = strtolower(substr(chop($Langue[0]),0,2)); }
if($Language == 'fr'){
        $l_title = "Auto enregistrement (SMS)";
        $l_conf = "Configuration";
        $l_conf_actu = "Configuration actuelle";
        $l_pin = "Code PIN";
        $l_num_alcasar = "Le numero de téléphone de la clé 3G";
        $l_ban_temp = "Nombre d'essais avant le blocage";
        $l_time_account = "Durée pour une session créée";
        $l_time_perm = "Durée du blocage (en jours)";
        $l_status_gammu = "Etat du service";
        $l_start = "Démarrer";
        $l_status_device = "Status de votre périphérique";
        $l_key_diseable = "Aucun périphérique détecté";
        $l_key_enable = "Votre clé est connectée";
        $l_force_signal = "Force du signal";
        $l_imei_device = "IMEI du périphérique";
        $l_sms_received = "Nombre de SMS reçu";
        $l_stop = "Arrêter";
        $l_gammu_on="Gammu est lancé";
        $l_gammu_off="Gammu est arrêté";
        $l_edit = "Editer";
        $l_error_label_empty = "Le champ est vide";
        $l_error_label_num = "Ce n'est pas un PIN valide";
        $l_error_label_num2 = "Ce n'est pas un nombre";
        $l_error_label_num3 = "Le format n'est pas correct: +xxxYYYYYYYYY (xxx: code pays / YYYYYYYYY: numéro de téléphone)";
        $l_error_writefail = "Le service semble ne pas parvenir à discuter avec la clé (port ttyUSB0).";
        $l_error_timeoutfail = "Impossible de se connecter à la clé 3G. Timeout.";
        $l_error_simfail = "Un problème au niveau de la carte SIM a été détecté. Est elle présente?";
        $l_error_simsecu_l = "Attention, lors du dernier démarrage, votre code PIN était erroné.<br>
                                        La SIM doit être bloqué (code PUK). Consultez la documentation.";
        $l_autorefresh = "Rafraichissement : 30 sec";
        $l_days = "jours ";
        
        $l_num_block="Liste des numéros bloqués";
        $l_num_num="Numéro";
        $l_num_raison="Raison";
        $l_num_expiration="Date d'expiration";
        $l_num_action="Action";
        $l_num_exist="Un compte a été créé";
        $l_num_flood="Le nombre d'essais maximum a été dépacé";
        $l_num_unlock="Effacer";
        $l_service_status_img_ok="Démarré";
        $l_service_status_img_ko="Arrété";
        
        $l_conf_name="Configuration : ";
        $l_current_connect = "Connexion";

        $l_tab_first = "premier";
        $l_tab_last = "dernier";
        $l_tab_next = "suivant";
        $l_tab_prev = "précédent";
        $l_tab_search = "Recherche :";
        $l_tab_pmenu = "Affiche la page _PAGE_ sur _PAGES_";
        $l_tab_info = "Montrer _MENU_ résultat par page";
        $l_tab_infoempty = "Aucun résultat";
}
else {
        $l_title = "Auto registration (SMS)";
        $l_conf = "Configuration";
        $l_conf_actu = "Current configuration";
        $l_pin = "PIN password";
        $l_num_alcasar = "Phone number (3g key)";
        $l_ban_temp = "Max number of try before a permanent ban"; 
        $l_time_account = "Time for a new session";
        $l_time_perm = "Duration of a ban (for example, after X try)";
        $l_status_gammu = "Service status";
        $l_start = "Start";
        $l_status_device = "Status of your device";
        $l_key_diseable = "No device detected";
        $l_key_enable = "Your 3g key is connected";
        $l_force_signal = "Signal strength";
        $l_imei_device = "Device IMEI";
        $l_sms_received = "Number of SMS received";
        $l_stop = "Stop";
        $l_gammu_on="Gammu is running";
        $l_gammu_off="Gammu is down";
        $l_edit = "Edit";
        $l_error_label_empty = "Field empty";
        $l_error_label_num = "It's not a valid PIN password";
        $l_error_label_num2 = "It's not a number";
        $l_error_label_num3 = "The phone number is not good: +xxxYYYYYYYYY (xxx: code pays / YYYYYYYYY: numéro de téléphone)";
        $l_error_writefail = "Can not listen the ttyUSB0 port.";
        $l_error_timeoutfail = "Timeout. Can not connect to modem.";
        $l_error_simfail = "An issue with your Sim card was detected. Is it in the key?";
        $l_error_simsecu_l = "Warning, during the last startup, the PIN code was wrong. <br>
                                The Sim card must be blocked. Please read the documentation.";
        $l_autorefresh = "Refresh : 30 sec";
        $l_days = "days ";
        
        $l_num_block="List of blocked phone";
        $l_num_num="Phone number";
        $l_num_raison="Reason";
        $l_num_expiration="Expiration date";
        $l_num_action="Action";
        $l_num_exist="An account has been created";
        $l_num_flood="The number of try has been reached";
        $l_num_unlock="Erase";
        $l_service_status_img_ok="Running";
        $l_service_status_img_ko="Stopped";
        
        $l_conf_name="Configuration : ";
        $l_current_connect = "Connection";
        
        $l_tab_first = "first";
        $l_tab_last = "last";
        $l_tab_next = "next";
        $l_tab_prev = "previous";
        $l_tab_search = "Search :";
        $l_tab_pmenu = "Showing _PAGE_ to _PAGE_ of _PAGE_ entries :";
        $l_tab_info = "Show _MENU_ entries";
        $l_tab_infoempty = "No matching records found";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><!-- written by Rexy -->
<head>
<META HTTP-EQUIV="Refresh" CONTENT="30">
<meta http-equiv="Content-Type" content="text/html; charset=$config[general_charset]">
<title>Auto enregistrement</title>
<link rel="stylesheet" href="/css/style.css">
<!-- DataTables CSS -->
<link rel="stylesheet" type="text/css" href="../../../css/jquery.dataTables.css">
<!-- jQuery -->
<script type="text/javascript" charset="utf8" src="../../../js/jquery.js"></script>
<!-- DataTables -->
<script type="text/javascript" charset="utf8" src="../../../js/jquery.dataTables.js"></script>
<script type="text/javascript">
$(document).ready( function () {
    $('#table_id').DataTable({
                "language": {
                        "paginate": {
                        "sFirst": "<?php echo $l_tab_dirst; ?>",
                        "sLast": "<?php echo $l_tab_last; ?>",
                        "sPrevious": "<?php echo $l_tab_prev; ?>",
                        "sNext": "<?php echo $l_tab_next; ?>"
                        },
            "lengthMenu": "<?php echo $l_tab_info; ?>",
            "zeroRecords": "<?php echo $l_tab_infoempty; ?>",
            "info": "<?php echo $l_tab_pmenu; ?>",
            "infoEmpty": "<?php echo $l_tab_infoempty; ?>",
                        "sSearch": "<?php echo $l_tab_search; ?>"
        }
        });
} );
</script>
</head>
<body>
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
<?php
echo "
        <tr>
                <th>$l_title</th>
        </tr>
        <tr bgcolor=\"#FFCC66\">
                <td><img src=\"/images/pix.gif\" width=\"1\" height=\"2\"></td>
        </tr>
        </TABLE>
        <br />
        $l_autorefresh  
        ";

?>
<center>
<br /><br />
<table border=1 width=100%>
<tr>
<td colspan=3><h3><?php echo $l_status_device ?></h3></td>
</tr>

<tr>
<?php
if(!empty($exec_com) || !empty($exec_com2))
{

        if(isset($_GET['config_submit'])){
                switch ($_GET['config']) {
                case "at":
                        exec("sudo $script --replace_connect  ");
                        break;
                case "9600":
                        exec("sudo $script --replace_connect 9600");
                        break;
                case "19200":
                        exec("sudo $script --replace_connect 19200");
                        break;
                case "115200":
                        exec("sudo $script --replace_connect 115200");
                        break;

                }       
        }

        $current_connect = exec("sudo $script --connect");
        

        echo '<td width="50%">'.$l_key_enable.'</td>';
        echo '<td width="20%">'.$l_current_connect.' : '.$current_connect.'</td>';
        echo '  <form form="GET" action="./autoregistration.php">
                        <td align="right">      '.$l_conf_name.'
                                <select name="config">
                                        <option value="at">at</option>
                                        <option value="9600">at9600</option>
                                        <option value="19200">at19200</option>
                                        <option value="115200">at115200</option>
                                </select>
                                <input type="submit" name="config_submit"></submit> 
                        </td>
                </form>
                ';

        $status_key="true";
}
else
{
        echo "<td>$l_key_diseable</td>";
        $status_key="false";
}
?>
</tr>
</table>
</center>
<br /><br />

<?php

#Test si gammu est lancé
$gammu_pid=exec("sudo /sbin/pidof gammu-smsd");


if ($status_key=="false")
{
        if ($gammu_pid!="")
        {
                exec("sudo $script stop");
                sleep(8);
                header('Location: autoregistration.php');       
        }
}

if ($status_key=="true")
{
        #Nom du fichier de log lorsque gammu est démarré
        #$file_log = "gammu-smsd.log";

        #Recuperation du code PIN actuel
        $current_pin = exec("sudo $script --pin");      
        
        #Recuperation du nombre de try avant le ban perm
        $current_try_ban = exec("sudo $script --try_ban");      

        #Recuperation de la durée d'une session créée
        $current_time_account = exec("sudo $script --time_account");    

        #Recuperation de la durée dun ban perm (après flood)
        $current_time_perm = exec("sudo $script --time_perm");  

        #Detection neméro de tel
        $current_num_alcasar = exec("sudo $script --numero_alcasar");
        
        #Detection problème avec la SIM
        $current_simfail = exec("sudo $script --last_nosim");

        #Recuperation de la dernière ligne de START
        $current_last_start = exec("sudo $script --last_start");

        #Recuperarion de la dernière ligne de STOP
        $current_last_stop = exec("sudo $script --last_stop");

        #Recuperation de la dernière ligne de SECURITYERROR
        $current_last_secu = exec("sudo $script --last_secu");

        #Recuperation de la dernière ligne de DEVICEWRITEERROR
        $current_last_write = exec("sudo $script --last_writeerror");

        #Recuperation de la dernière ligne de TIMEOUT
        $current_last_timeout = exec("sudo $script --last_timeout");
        
        # Test si le service est lancé
        if ($gammu_pid=="")
        {
                $force_signal = "-";
                $imei_device = "-";
                $sms_received = "-";

                $gammu="<td><img src=\"/images/state_error.gif\" width=\"15\" height=\"15\" alt=\"".$l_service_status_img_ko."\"></td><td>$l_gammu_off</td>";   
                $gammu_status_on="";
                $gammu_status_off="disabled";

                if($current_last_secu!="")
                {
                        if(($current_last_secu > $current_last_start) && ($current_last_secu < $current_last_stop))
                        {
                                $gammu_simsecu="<tr><td colspan=7><font color=red>$l_error_simsecu_l</font></td></tr>"; 
                        }
                }
        } else {
                # Recuperation de la force du signal et IMEI et nombre de sms reçu
                $val_force_signal = exec("sudo $script --signal_device");
                $imei_device = exec("sudo $script --imei_device");
                $sms_received = exec("sudo $script --sms_received");

                if ($val_force_signal < 21) {
                        $force_signal = "<img src=\"/images/signal_0.png\">  --  ".$val_force_signal." %";
                } elseif ($val_force_signal < 41) {
                        $force_signal = "<img src=\"/images/signal_20.png\">  --  ".$val_force_signal." %";

                } elseif ($val_force_signal < 61) {
                        $force_signal = "<img src=\"/images/signal_40.png\">  --  ".$val_force_signal." %";

                } elseif ($val_force_signal < 81) {
                        $force_signal = "<img src=\"/images/signal_60.png\">  --  ".$val_force_signal." %";

                } elseif ($val_force_signal < 101) {
                        $force_signal = "<img src=\"/images/signal_80.png\">  --  ".$val_force_signal." %";

                }





                $gammu="<td><img src=\"/images/state_ok.gif\" width=\"15\" height=\"15\" alt=\"".$l_service_status_img_ok."\"></td><td>$l_gammu_on</td>";       
                                
                
                if($current_last_timeout!=""){
                        if(($current_last_timeout > $current_last_start) && ($current_last_timeout > $current_last_stop))
                        {
                                $gammu_timeout="<tr><td colspan=7><font color=red>$l_error_timeoutfail</font></td></tr>";       
                        }
                }
                
                if($current_last_secu!="")
                {
                        if(($current_last_secu > $current_last_start) && ($current_last_secu > $current_last_stop))
                        {
                                exec("sudo $script --stop");
                        }
                }
                
                if($current_last_write!=""){
                        if(($current_last_write > $current_last_start) && ($current_last_write > $current_last_stop))
                        {
                                $gammu_writeerror="<tr><td colspan=7><font color=red>$l_error_writefail</font></td></tr>";      
                        }
                }
                
                if($current_simfail!="")
                {
                        if(($current_simfail > $current_last_start) && ($current_simfail > $current_last_stop))
                        {
                                $gammu_simfail="<tr><td colspan=7><font color=red>$l_error_simfail</font></td></tr>";
                        }
                }
                $gammu_status_on="disabled";
                $gammu_status_off="";
        }


        #Lancement et arret de gammu-smsd 3*7sec
        if(isset($_GET["start"])){
                $gammu_1=exec("sudo $script --start");
                sleep(7);
                
                if($current_last_secu!="")
                {
                        if(($current_last_secu > $current_last_start) && ($current_last_secu > $current_last_stop))
                        {
                                exec("sudo $script --stop");
                        }
                }
                
                sleep(7);
                if($current_last_secu!="")
                {
                        if(($current_last_secu > $current_last_start) && ($current_last_secu > $current_last_stop))
                        {
                                exec("sudo $script --stop");
                        }
                }
                
                sleep(7);       
                if($current_last_secu!="")
                {
                        if(($current_last_secu > $current_last_start) && ($current_last_secu > $current_last_stop))
                        {
                                exec("sudo $script --stop");
                        }
                }
                
                
                
                header('Location: autoregistration.php');
        }

        if(isset($_GET["stop"])){
                exec("sudo $script --stop");
                sleep(8);
                header('Location: autoregistration.php');
        }


        #Edition du NUMERO de telephone
        if(isset($_GET["b_num_alcasar"])){
                $num = $_GET["num_alcasar"];
                $error_num_alcasar = "";
                if($num !="")
                {
                        if(preg_match('#^\+#',$num))
                        {
                                exec("sudo $script --replace_numero_alcasar  $num");
                                header('Location: autoregistration.php');
                        }
                        else
                        {
                                $error_num_alcasar=$l_error_label_num3;
                        }
                }
                else
                {
                        $error_num_alcasar=$l_error_label_empty;
                }
        }
        
        #Edition du code PIN
        if(isset($_GET["b_pin"])){
                $pin = $_GET["pin"];
                $error_pin = "";
                if($pin !="")
                {
                        if(is_numeric($pin))
                        {
                                exec("sudo $script --replace_pin  $pin");
                                header('Location: autoregistration.php');
                        }
                        else
                        {
                                $error_pin=$l_error_label_num;                  
                        }
                }
                else
                {
                        $error_pin=$l_error_label_empty;
                }
        }
        
        
        #Edition du nombre d'essais avant le ban perm
        if(isset($_GET["b_ban_temp"])){
                $nb_ban_temp = $_GET["nb_essais"];
                $error_nb_essais = "";
                if($nb_ban_temp !="")
                {
                        if(is_numeric($nb_ban_temp))
                        {
                                exec("sudo $script --replace_try_ban  $nb_ban_temp");
                                header('Location: autoregistration.php');
                        }
                        else
                        {
                                $error_nb_essais=$l_error_label_num2;                   
                        }
                }
                else
                {
                        $error_nb_essais=$l_error_label_empty;
                }
        }


        #Edition de la durée pour un compte créé
        if(isset($_GET["b_time_account"])){
                $time_account = $_GET["time_account"];
                $error_time_account = "";
                if($time_account !="")
                {
                        if(is_numeric($time_account))
                        {
                                exec("sudo $script --replace_time_account  $time_account");
                                header('Location: autoregistration.php');
                        }
                        else
                        {
                                $error_time_account=$l_error_label_num2;
                        }
                }
                else
                {
                        $error_time_account=$l_error_label_empty;
                }
        }

        #Edition de la durée d'un ban perm (après flood)
        if(isset($_GET["b_time_perm"])){
                $time_perm = $_GET["time_perm"];
                $error_time_perm = "";
                if($time_perm !="")
                {
                        if(is_numeric($time_perm))
                        {
                                exec("sudo $script --replace_time_perm  $time_perm");
                                header('Location: autoregistration.php');
                        }
                        else
                        {
                                $error_time_perm=$l_error_label_num2;
                        }
                }
                else
                {
                        $error_time_perm=$l_error_label_empty;
                }
        }

        # Suppression d'un numero bloqué
        if(isset($_GET['num_select'])){
                $numero=$_GET['num_select'];

                $add_mac=exec("sudo /usr/sbin/chilli_query list | grep $numero | cut -d ' ' -f1");
                exec("sudo /usr/sbin/chilli_query logout $add_mac");

                exec("sudo $script --unlock_num $numero");
                header('Location: autoregistration.php');
        }



        #Si une clé 3g est plugué
        echo "<form action=\"autoregistration.php\" methode=\"GET\">
                        
                <table border=1>
                <tr>
                        <td colspan=4><b>$l_status_gammu</b></td>
                        <td><b><center>$l_force_signal</center></b></td>
                        <td><b><center>$l_imei_device</center></b></td> 
                        <td><b><center>$l_sms_received</center></b></td> 
                </tr>
                <tr>
                        $gammu
                        <td><button type=\"submit\" name=\"start\" $gammu_status_on>$l_start</button></td>              
                        <td><button type=\"submit\" name=\"stop\" $gammu_status_off>$l_stop</button></td>
                        <td><center>$force_signal</center></td>
                        <td><center>$imei_device</center></td>
                        <td><center>$sms_received</center></td>
                </tr>
                $gammu_puk
                $gammu_simfail
                $gammu_simsecu
                $gammu_timeout
                $gammu_writeerror
                </table>
        <br /><br />
                
                <table border=1>
                <tr>
                <td colspan=3><b>$l_conf</b></td>
                <td><b>$l_conf_actu</b></td>
                </tr>
                
                <tr>
                <td> $l_num_alcasar </td><td><input type=text name='num_alcasar' maxlength=\"20\"></td>
                <td><button type=\"submit\" name=\"b_num_alcasar\" $gammu_status_on>$l_edit</button></td>
                <td><center><font color=\"green\">$current_num_alcasar</font></center></td>
                </tr>
                <tr><td colspan=\"4\"><font color=red><b>$error_num_alcasar</b></font></td></tr>
                
                <tr>            
                <td> $l_pin </td><td><input type=text name='pin' maxlength=\"8\"></td>
                <td><button type=\"submit\" name=\"b_pin\" $gammu_status_on>$l_edit</button></td>
                <td><center><font color=\"green\">$current_pin</font></center></td>
                </tr>
                <tr><td colspan=\"4\"><font color=red><b>$error_pin</b></font></td></tr>

                <td> $l_time_account </td><td><input type=text name='time_account'> $l_days </td>
                <td><button type=\"submit\" name=\"b_time_account\" $gammu_status_on>$l_edit</button></td>      
                <td><center><font color=\"blue\">$current_time_account</font></center></td>
                </tr>
                <tr><td colspan=\"4\"><font color=red><b>$error_time_account</b></font></td></tr>
                
                <tr>
                <td> $l_ban_temp </td><td><input type=text name='nb_essais'></td>       
                <td><button type=\"submit\" name=\"b_ban_temp\" $gammu_status_on>$l_edit</button></td>  
                <td><center><font color=\"orange\">$current_try_ban</font></center></td>
                </tr>
                <tr><td colspan=\"4\"><font color=red><b>$error_nb_essais</b></font></td></tr>
                
                <tr>
                <td>$l_time_perm</td><td><input type=text name='time_perm'> $l_days</td>
                <td><button type=\"submit\" name=\"b_time_perm\" $gammu_status_on>$l_edit</button></td> 
                <td><center><font color=\"orange\">$current_time_perm</font></center></td>
                </tr>
                <tr><td colspan=\"4\"><font color=red><b>$error_time_perm</b></font></td></tr>
                
                
                </tr>
                </table>
                </form>";               
        
        
        require('/etc/freeradius-web/config.php');

        if (is_file("../../../pass/sql/drivers/$config[sql_type]/functions.php"))
                include_once("../../../pass/sql/drivers/$config[sql_type]/functions.php");
        else{
                echo "<b>Could not include SQL library</b>\n";
                exit();
        }


        $con = mysqli_connect("$config[sql_server]","$config[sql_username]","$config[sql_password]","gammu");

        if(mysqli_connect_errno())
        {
                echo "Fail to connect to $config[sql_type]" . mysqli_connect_error();
        }

        $result = mysqli_query($con, "SELECT * FROM SMS_ban_perm");

?>
        <table id="table_id" class="display">
                <thead>
                        <tr>
                                <th><b><font color="black"><?php echo $l_num_num; ?></font></b></th>
                                <th><b><font color="black"><?php echo $l_num_raison; ?></font></b></th>
                                <th><b><font color="black"><?php echo $l_num_expiration; ?></font></b></th>
                                <th><b><font color="black">Action</font></b></th>
                        </tr>
                </thead>
                <tbody>
        <?php 
        while($row = mysqli_fetch_array($result))
        {
                echo "  
                        <tr>
                        <form action=\"autoregistration.php\" methode=\"POST\">
                        <td>
                                <input type=\"hidden\" name=\"num_select\" value=\"" .$row['SenderNumber']."\"> 
                                ".$row['SenderNumber']."
                        </td>";
                
                if($row['Perm']=='0')
                {
                        echo "<td>$l_num_exist</td>";
                }
                if($row['Perm']=='1')
                {
                        echo "<td>$l_num_flood</td>";
                }
                echo "  <td>" . $row['Expiration']. "</td>
                                <td>
                                        <input type='submit' value='".$l_num_unlock."'>
                                </td>
                                </form>
                        </tr>
                        ";
        }
        ?>
                </tbody>
        </table>
<?php
        mysqli_close($con);
        }
?>
</html>