41,9 → 41,9 |
end="%%%%%%%%%% STOP %%%%%%%%%%" |
|
|
usage="Usage: alcasar-gammu.sh |
usage="Usage: alcasar-gammu.sh |
Start Gammu-smsd : --start |
Stop Gammu-smsd : --stop |
Stop Gammu-smsd : --stop |
Process on new sms : --new_sms" |
|
|
78,7 → 78,7 |
then |
sql_add_gp="connect radius; INSERT INTO $radgp (username,groupname) VALUES ('sms','sms');" |
sql_add_gp_att="connect radius; INSERT INTO $radgpck (groupname,attribute,op,value) VALUES ('sms','Simultaneous-Use',':=',1);" |
|
|
mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp" |
mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp_att" |
fi |
99,11 → 99,11 |
#Suppression du numero dans la table SMS_ban_perm |
sql_remove_ban_perm="connect gammu; DELETE FROM $sms_p" |
mysql --user=$u_db --password=$p_db -B -se "$sql_remove_ban_perm WHERE SenderNumber=$1;" |
|
|
# Ajout au groupe sms |
sql_remove_gp="connect radius; DELETE FROM $radgp WHERE username='$1';" |
mysql --user=$u_db --password=$p_db -B -se "$sql_remove_gp" |
|
|
# Suppression du compte dans Radcheck |
sql_remove_compte="connect radius; DELETE FROM $rad WHERE username='$1';" |
mysql --user=$u_db --password=$p_db -B -se "$sql_remove_compte" |
136,21 → 136,21 |
# Ajout table RadCheck : creation du compte |
sql_add_pass="connect radius; INSERT INTO $rad (username,attribute,op,value) VALUES ('$1','Crypt-Password',':=','$2');" |
sql_add_expe="connect radius; INSERT INTO $rad (username,attribute,op,value) VALUES ('$1','Expiration',':=','$3');" |
|
|
mysql --user=$u_db --password=$p_db -B -se "$sql_add_pass" |
mysql --user=$u_db --password=$p_db -B -se "$sql_add_expe" |
|
|
# Ajout au groupe sms |
sql_add_gp="connect radius; INSERT INTO $radgp (username,groupname) VALUES ('$1','sms');" |
mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp" |
} # end function add_acc_rad() |
|
|
function supp_num_temp() { |
# Suppression du numéro dans table SMS_ban_temp |
sql_remove_ban_temp="connect gammu; DELETE FROM $sms_t" |
mysql --user=$u_db --password=$p_db -B -se "$sql_remove_ban_temp WHERE SenderNumber=$1;" |
} # end function supp_num_temp() |
|
|
function add_num_perm() { |
# Ajout du numero table SMS_ban_perm, 0 : creation du compte |
sql_add_ban_perm="connect gammu; INSERT INTO $sms_p (SenderNumber,Perm,Expiration) VALUES ('$1',0,'$2');" |
166,34 → 166,34 |
function new_sms() { |
# Check Inbox table, manage Ban temp and perm, create account |
export salt='$1$passwd$' |
|
|
sql_select_inbox="connect gammu; SELECT ID, SenderNumber, TextDecoded FROM $inb;" |
sql_delete_inbox="connect gammu; DELETE FROM $inb" |
|
|
mysql --user=$u_db --password=$p_db -B -se "$sql_select_inbox" | while read result; |
do |
# On recupère le nombre de mots (resultat) |
nb=$(echo $result | wc -w) |
|
|
# On récupère le numéro de l'ID |
id=$(echo $result | cut -d ' ' -f1) |
|
numero=$(echo $result | cut -d ' ' -f2) |
|
if [[ $numero =~ ^\+ ]] |
if [[ $numero =~ ^\+ ]] |
then |
|
# On vérifie si le pays est bloqué |
|
# On vérifie si le pays est bloqué |
sql_select_countries="connect gammu; SELECT id FROM $SMS_c WHERE status=1" |
mysql --user=$u_db --password=$p_db -B -se "$sql_select_countries" | while read result_c; |
do |
|
if [[ $numero =~ ^"$result_c" ]] |
then |
then |
|
numero=$(echo $numero | cut -d '+' -f2) |
|
# On vérifie que le numéro n'est pas Ban Perm |
# On vérifie que le numéro n'est pas Ban Perm |
sql_ban_perm="connect gammu; SELECT * FROM $sms_p WHERE SenderNumber=$numero" |
result_bp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_ban_perm") |
|
206,46 → 206,46 |
sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');" |
mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp" |
|
elif [ $nb -eq 3 ] # Si 3 mots : id + mot de passe + numero |
elif [ $nb -eq 3 ] # Si 3 mots : id + mot de passe + numero |
then |
export pass=$(echo $result | cut -d ' ' -f3) |
pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt) |
|
|
export LC_TIME="en_US.UTF-8" |
expir=$(date '+%d %B %Y' -d "$time_account days") |
|
|
supp_acc_rad "$numero" |
add_acc_rad "$numero" "$pass_salt" "$expir" |
supp_num_temp "$numero" |
add_num_perm "$numero" "$expir" |
|
else |
|
else |
# Autrement, le mot de passe est trop grand ( > un mot ) |
# On incrémente d'un 1 dans la table des bans temp |
sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');" |
mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp" |
fi |
|
|
# On gère les bans temp en ban perm |
sql_select_temp="connect gammu; SELECT ID FROM $sms_t WHERE SenderNumber='$numero'" |
r_select_temp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_select_temp") |
nb_ban_t=$(echo $r_select_temp| wc -w) |
|
|
if [ $nb_ban_t -ge $nb_essais ] |
then |
supp_num_temp "$numero" |
|
|
export LC_TIME="en_US.UTF-8" |
expir_f=$(date '+%d %B %Y' -d "$time_ban days") |
|
|
# Ajout du numero table SMS_ban_perm, 1 : flood |
sql_add_ban_perm="connect gammu; INSERT INTO $sms_p (SenderNumber,Perm,Expiration) VALUES ('$numero',1,'$expir_f');" |
mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm" |
fi |
fi |
else |
date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4) |
perm=$(echo $result_bp | cut -d ' ' -f5) |
|
|
export LC_TIME="en_US.UTF-8" |
date_script=$(date '+%d %B %Y' -d "now") |
|
263,7 → 263,7 |
sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');" |
mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp" |
|
elif [ $nb -eq 3 ] # Si 3 mots : id + mot de passe + numero |
elif [ $nb -eq 3 ] # Si 3 mots : id + mot de passe + numero |
then |
date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4) |
perm=$(echo $result_bp | cut -d ' ' -f5) |
276,7 → 276,7 |
|
export pass=$(echo $result | cut -d ' ' -f3) |
pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt) |
|
|
export LC_TIME="en_US.UTF-8" |
expir=$(date '+%d %B %Y' -d "$time_account days") |
|
286,8 → 286,8 |
supp_num_temp "$numero" |
supp_num_perm "$numero" |
add_num_perm "$numero" "$expir" |
|
else |
|
else |
# Autrement, le mot de passe est trop grand ( > un mot ) |
# On incrémente d'un 1 dans la table des bans temp |
sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');" |
294,26 → 294,26 |
mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp" |
echo "Mot de passe incorrect, ajout du numero en ban temporaire" |
fi |
|
|
# On gère les bans temp en ban perm |
sql_select_temp="connect gammu; SELECT ID FROM $sms_t WHERE SenderNumber='$numero'" |
r_select_temp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_select_temp") |
nb_ban_t=$(echo $r_select_temp| wc -w) |
|
|
if [ $nb_ban_t -ge $nb_essais ] |
then |
supp_num_perm "$numero" |
supp_num_temp "$numero" |
|
|
export LC_TIME="en_US.UTF-8" |
expir_f=$(date '+%d %B %Y' -d "$time_ban days") |
|
|
# Ajout du numero table SMS_ban_perm, 1 : flood |
sql_add_ban_perm="connect gammu; INSERT INTO $sms_p (SenderNumber,Perm,Expiration) VALUES ('$numero',1,'$expir_f');" mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm" |
fi |
else |
echo "Le ban de $numero est encore valide" |
fi |
echo "Le ban de $numero est encore valide" |
fi |
break |
fi |
#else |
359,7 → 359,7 |
else |
echo "gammu is already stopped" |
fi |
exit 0 |
exit 0 |
;; |
--pidof) |
/sbin/pidof gammu-smsd |
367,103 → 367,103 |
--last_nosim) |
# Récupère la dernière ligne où NOSIM est présent (error) |
cat $logfile | grep -n "NOSIM" | cut -d ':' -f1 | tail -n 1 |
exit 0 |
exit 0 |
;; |
--last_start) |
# Récupère la dernière ligne où ########## est présent (séparateur) |
cat $logfile | grep -n "##########" | cut -d ':' -f1 | tail -n 1 |
exit 0 |
exit 0 |
;; |
--last_stop) |
# Récupère la dernière ligne où %%%%%%%%%% est présent (séparateur) |
cat $logfile | grep -n "%%%%%%%%%%" | cut -d ':' -f1 | tail -n 1 |
exit 0 |
exit 0 |
;; |
--last_writeerror) |
#Récupère la dernière ligne où SECURITYERROR est présent (error) |
cat $logfile | grep -n "DEVICEWRITEERROR" | cut -d ':' -f1 | tail -n 1 |
exit 0 |
exit 0 |
;; |
--last_timeout) |
# Récupère la dernière ligne où SECURITYERROR est présent (error) |
cat $logfile | grep -n "TIMEOUT" | cut -d ':' -f1 | tail -n 1 |
exit 0 |
exit 0 |
;; |
--last_secu) |
# Récupère la dernière ligne où SECURITYERROR est présent (error) |
cat $logfile | grep -n "SECURITYERROR" | cut -d ':' -f1 | tail -n 1 |
exit 0 |
exit 0 |
;; |
--last_puk) |
# Récupère la dernière ligne où PUK est présent (error) |
cat $logfile | grep -n "UNKNOWN" | cut -d ':' -f1 | tail -n 1 |
exit 0 |
exit 0 |
;; |
#--log) |
# # Récupère le nom du fichier de log |
# cat $config | grep logfile | cut -d ' ' -f3 |
# exit 0 |
# exit 0 |
# ;; |
--connect) |
# Récupère la vitesse de co |
cat $config | grep connection | cut -d ' ' -f3 |
exit 0 |
exit 0 |
;; |
--replace_connect) |
# Edition de la vitesse de co |
sed -i "s/^connection = at.*/connection = at$2/g" $config |
exit 0 |
exit 0 |
;; |
--pin) |
# Récupère le code PIN (file de conf) |
cat $config | grep PIN | cut -d ' ' -f3 |
exit 0 |
exit 0 |
;; |
--replace_pin) |
# Edition du code PIN |
sed -i "s/^PIN =.*/PIN = $2/g" $config |
exit 0 |
exit 0 |
;; |
--try_ban) |
# Récupère le nombre d'essais avant le ban perm |
grep nb_essais= $script | head -n 1 | cut -d '=' -f2 |
exit 0 |
exit 0 |
;; |
--replace_try_ban) |
# Edition le nombre d'essais avant le ban perm |
sed -i "s/^nb_essais=.*/nb_essais=$2/g" $script |
exit 0 |
exit 0 |
;; |
--time_account) |
# Récupère la durée en jours de la session créée |
grep time_account= $script | head -n 1 | cut -d '=' -f2 |
exit 0 |
exit 0 |
;; |
--replace_time_account) |
# Edition de la durée de la session créée |
sed -i "s/^time_account=.*/time_account=$2/g" $script |
exit 0 |
exit 0 |
;; |
--time_perm) |
# Récupère la durée un jours d'un ban perm (après flood par exemple) |
grep time_ban= $script | head -n 1 | cut -d '=' -f2 |
exit 0 |
exit 0 |
;; |
--replace_time_perm) |
# Edition de la durée d'un ban perm |
sed -i "s/^time_ban=.*/time_ban=$2/g" $script |
exit 0 |
exit 0 |
;; |
--unlock_num) |
# Appel de la fonction unlock : deban un numero $2 |
unlock "$2" |
exit 0 |
exit 0 |
;; |
--change_country) |
# Permet de changer l'état de blocage d'un pays |
a="" |
for i in "$@" |
do |
do |
a=$(echo "$a $i") |
done |
a=$(echo $a | cut -d ' ' -f2-$#) |
514,12 → 514,12 |
--numero_alcasar) |
# Récupère le numero de la clé 3g (téléphone) |
grep "\$current_num=" $public_page | head -n 1 | cut -d"'" -f2 |
exit 0 |
exit 0 |
;; |
--replace_numero_alcasar) |
# Edition du numero de la clé 3g (téléphone) |
sed -i "s/\$current_num=.*/\$current_num='$2';/g" $public_page |
exit 0 |
exit 0 |
;; |
--mode) |
# Mode huawei |