Subversion Repositories ALCASAR

Rev

Rev 1387 | Rev 1452 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 1387 Rev 1416
1
#!/bin/bash
1
#!/bin/bash
2
#########################################
2
#########################################
3
#######	VARIABLES ne pas toucher ########
3
#######	VARIABLES ne pas toucher ########
4
nb_essais=2
4
nb_essais=2
5
time_account=1
5
time_account=1
6
time_ban=1
6
time_ban=1
7
numero_alcasar=XXXXXXXXXX
7
numero_alcasar=XXXXXXXXXX
8
#########################################
8
#########################################
9
####### IDs DB ##########################
9
####### IDs DB ##########################
10
u_db="radius"
10
u_db="radius"
11
p_db="password"
11
p_db="password"
12
#########################################
12
#########################################
13
#########################################
13
#########################################
14
 
14
 
15
rad="radcheck"
15
rad="radcheck"
16
radgp="radusergroup"
16
radgp="radusergroup"
17
radgpck="radgroupcheck"
17
radgpck="radgroupcheck"
18
radinf="userinfo"
18
radinf="userinfo"
19
 
19
 
20
sms_p="SMS_ban_perm"
20
sms_p="SMS_ban_perm"
21
sms_t="SMS_ban_temp"
21
sms_t="SMS_ban_temp"
22
 
22
 
23
inb="inbox"
23
inb="inbox"
-
 
24
SMS_c="SMS_country"
24
 
25
 
25
config="/etc/gammu_smsd_conf"
26
config="/etc/gammu_smsd_conf"
26
logfile="/var/log/gammu-smsd/gammu-smsd.log"
27
logfile="/var/log/gammu-smsd/gammu-smsd.log"
27
script="/usr/local/bin/alcasar-sms.sh"
28
script="/usr/local/bin/alcasar-sms.sh"
28
separator="########## START ##########"
29
separator="########## START ##########"
29
end="%%%%%%%%%% STOP %%%%%%%%%%"
30
end="%%%%%%%%%% STOP %%%%%%%%%%"
30
 
31
 
31
 
32
 
32
usage="Usage: alcasar-gammu.sh 
33
usage="Usage: alcasar-gammu.sh 
33
Start Gammu-smsd   : --start
34
Start Gammu-smsd   : --start
34
Stop Gammu-smsd    : --stop 
35
Stop Gammu-smsd    : --stop 
35
Process on new sms : --new_sms"
36
Process on new sms : --new_sms"
36
 
37
 
37
 
38
 
38
nb_args=$#
39
nb_args=$#
39
args=$1
40
args=$1
40
 
41
 
41
 
42
 
42
# Functions
43
# Functions
43
function mode_huawei() {
44
function mode_huawei() {
44
	couple=$(lsusb | grep -i huawei | cut -d ' ' -f6)
45
	couple=$(lsusb | grep -i huawei | cut -d ' ' -f6)
45
	vendor=$(echo $couple | cut -d ':' -f1)
46
	vendor=$(echo $couple | cut -d ':' -f1)
46
	product=$(echo $couple | cut -d ':' -f2)
47
	product=$(echo $couple | cut -d ':' -f2)
47
 
48
 
48
	echo "*********************" >> /srv/log.log
49
	echo "*********************" >> /srv/log.log
49
	echo $vendor >> /srv/log.log
50
	echo $vendor >> /srv/log.log
50
	echo $product >> /srv/log.log
51
	echo $product >> /srv/log.log
51
 
52
 
52
	/usr/sbin/usb_modeswitch -I -H -v 0x$vendor -p 0x$product -V 0x$vendor -P 0x$product -W -n >> /srv/log.log
53
	/usr/sbin/usb_modeswitch -I -H -v 0x$vendor -p 0x$product -V 0x$vendor -P 0x$product -W -n >> /srv/log.log
53
}
54
}
54
 
55
 
55
function start_gammu() {
56
function start_gammu() {
56
	#On truncate la table phones (informations signal / IMEI / batterie / sms recu et envoyé)
57
	#On truncate la table phones (informations signal / IMEI / batterie / sms recu et envoyé)
57
		sql_trunc_phones="connect gammu; TRUNCATE phones;"
58
		sql_trunc_phones="connect gammu; TRUNCATE phones;"
58
		result=$(mysql --user=$u_db --password=$p_db -B -se "$sql_trunc_phones")
59
		result=$(mysql --user=$u_db --password=$p_db -B -se "$sql_trunc_phones")
59
 
60
 
60
 
61
 
61
	#On verifie que le groupe sms est créé
62
	#On verifie que le groupe sms est créé
62
		sql_check_gp="connect radius; SELECT * FROM $radgp WHERE username='sms' AND groupname='sms';"
63
		sql_check_gp="connect radius; SELECT * FROM $radgp WHERE username='sms' AND groupname='sms';"
63
		result=$(mysql --user=$u_db --password=$p_db -B -se "$sql_check_gp")
64
		result=$(mysql --user=$u_db --password=$p_db -B -se "$sql_check_gp")
64
 
65
 
65
		if test -z "$result"
66
		if test -z "$result"
66
		then
67
		then
67
			sql_add_gp="connect radius; INSERT INTO $radgp (username,groupname) VALUES ('sms','sms');"
68
			sql_add_gp="connect radius; INSERT INTO $radgp (username,groupname) VALUES ('sms','sms');"
68
			sql_add_gp_att="connect radius; INSERT INTO $radgpck (groupname,attribute,op,value) VALUES ('sms','Simultaneous-Use',':=',1);"
69
			sql_add_gp_att="connect radius; INSERT INTO $radgpck (groupname,attribute,op,value) VALUES ('sms','Simultaneous-Use',':=',1);"
69
		
70
		
70
			mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp"
71
			mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp"
71
			mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp_att"
72
			mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp_att"
72
		fi
73
		fi
73
 
74
 
74
	#Start gammu
75
	#Start gammu
75
		echo $separator >> $logfile
76
		echo $separator >> $logfile
76
		sudo gammu-smsd --config $config --pid /var/run/gammu-smsd.pid --daemon
77
		sudo gammu-smsd --config $config --pid /var/run/gammu-smsd.pid --daemon
77
} # end function start_gammu
78
} # end function start_gammu
78
 
79
 
79
function stop_gammu() {
80
function stop_gammu() {
80
	#Stop gammu
81
	#Stop gammu
81
		sudo kill -9 gammu-smsd
82
		sudo kill -9 gammu-smsd
82
		sleep 10
83
		sleep 10
83
		echo $end >> $logfile
84
		echo $end >> $logfile
84
} # end function stop_gammu
85
} # end function stop_gammu
85
 
86
 
86
function unlock() {
87
function unlock() {
87
	#Suppression du numero dans la table SMS_ban_perm
88
	#Suppression du numero dans la table SMS_ban_perm
88
		sql_remove_ban_perm="connect gammu; DELETE FROM $sms_p"
89
		sql_remove_ban_perm="connect gammu; DELETE FROM $sms_p"
89
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_ban_perm WHERE SenderNumber=$1;"
90
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_ban_perm WHERE SenderNumber=$1;"
90
				
91
				
91
	# Ajout au groupe sms
92
	# Ajout au groupe sms
92
		sql_remove_gp="connect radius; DELETE FROM $radgp WHERE username='$1';"
93
		sql_remove_gp="connect radius; DELETE FROM $radgp WHERE username='$1';"
93
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_gp"
94
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_gp"
94
	
95
	
95
	# Suppression du compte dans Radcheck
96
	# Suppression du compte dans Radcheck
96
		sql_remove_compte="connect radius; DELETE FROM $rad WHERE username='$1';"
97
		sql_remove_compte="connect radius; DELETE FROM $rad WHERE username='$1';"
97
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_compte"
98
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_compte"
98
} # end function unlock
99
} # end function unlock
99
 
100
 
-
 
101
function change_country() {
-
 
102
	# recupère le status du pays
-
 
103
		sql_status_country="connect gammu; SELECT status FROM SMS_country WHERE name='$1'"
-
 
104
		stat=$(mysql --user=$u_db --password=$p_db -B -se "$sql_status_country")
-
 
105
 
-
 
106
		if [ $stat -eq 0 ]
-
 
107
		then
-
 
108
			sql_change_country="connect gammu; UPDATE $SMS_c SET status=1 WHERE name='$1'"
-
 
109
			mysql --user=$u_db --password=$p_db -B -se "$sql_change_country"
-
 
110
		else
-
 
111
			sql_change_country="connect gammu; UPDATE $SMS_c SET status=0 WHERE name='$1'"
-
 
112
			mysql --user=$u_db --password=$p_db -B -se "$sql_change_country"
-
 
113
		fi
-
 
114
 
-
 
115
 
-
 
116
} # end change_country
-
 
117
 
100
function supp_acc_rad() {
118
function supp_acc_rad() {
101
	# Suppression du compte dans Radcheck
119
	# Suppression du compte dans Radcheck
102
		sql_del_compte="connect radius; DELETE FROM $rad WHERE username='$1';"
120
		sql_del_compte="connect radius; DELETE FROM $rad WHERE username='$1';"
103
		mysql --user=$u_db --password=$p_db -B -se "$sql_del_compte"
121
		mysql --user=$u_db --password=$p_db -B -se "$sql_del_compte"
104
} # end function supp_acc_rad()
122
} # end function supp_acc_rad()
105
 
123
 
106
function add_acc_rad() {
124
function add_acc_rad() {
107
	# Ajout table RadCheck : creation du compte
125
	# Ajout table RadCheck : creation du compte
108
		sql_add_pass="connect radius; INSERT INTO $rad (username,attribute,op,value) VALUES ('$1','Crypt-Password',':=','$2');"
126
		sql_add_pass="connect radius; INSERT INTO $rad (username,attribute,op,value) VALUES ('$1','Crypt-Password',':=','$2');"
109
		sql_add_expe="connect radius; INSERT INTO $rad (username,attribute,op,value) VALUES ('$1','Expiration',':=','$3');"
127
		sql_add_expe="connect radius; INSERT INTO $rad (username,attribute,op,value) VALUES ('$1','Expiration',':=','$3');"
110
		
128
		
111
		mysql --user=$u_db --password=$p_db -B -se "$sql_add_pass"
129
		mysql --user=$u_db --password=$p_db -B -se "$sql_add_pass"
112
		mysql --user=$u_db --password=$p_db -B -se "$sql_add_expe"
130
		mysql --user=$u_db --password=$p_db -B -se "$sql_add_expe"
113
			
131
			
114
	# Ajout au groupe sms
132
	# Ajout au groupe sms
115
		sql_add_gp="connect radius; INSERT INTO $radgp (username,groupname) VALUES ('$1','sms');"
133
		sql_add_gp="connect radius; INSERT INTO $radgp (username,groupname) VALUES ('$1','sms');"
116
		mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp"
134
		mysql --user=$u_db --password=$p_db -B -se "$sql_add_gp"
117
} # end function add_acc_rad()
135
} # end function add_acc_rad()
118
		
136
		
119
function supp_num_temp() {
137
function supp_num_temp() {
120
	# Suppression du numéro dans table SMS_ban_temp
138
	# Suppression du numéro dans table SMS_ban_temp
121
		sql_remove_ban_temp="connect gammu; DELETE FROM $sms_t"
139
		sql_remove_ban_temp="connect gammu; DELETE FROM $sms_t"
122
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_ban_temp WHERE SenderNumber=$1;"
140
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_ban_temp WHERE SenderNumber=$1;"
123
} # end function supp_num_temp()
141
} # end function supp_num_temp()
124
	
142
	
125
function add_num_perm() {
143
function add_num_perm() {
126
	# Ajout du numero table SMS_ban_perm, 0 : creation du compte
144
	# Ajout du numero table SMS_ban_perm, 0 : creation du compte
127
		sql_add_ban_perm="connect gammu; INSERT INTO $sms_p (SenderNumber,Perm,Expiration) VALUES ('$1',0,'$2');"
145
		sql_add_ban_perm="connect gammu; INSERT INTO $sms_p (SenderNumber,Perm,Expiration) VALUES ('$1',0,'$2');"
128
		mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm"
146
		mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm"
129
} # end function add_num_perm()
147
} # end function add_num_perm()
130
 
148
 
131
function supp_num_perm() {
149
function supp_num_perm() {
132
	#Suppression du numero dans la table SMS_ban_perm
150
	#Suppression du numero dans la table SMS_ban_perm
133
		sql_remove_ban_perm="connect gammu; DELETE FROM $sms_p"
151
		sql_remove_ban_perm="connect gammu; DELETE FROM $sms_p"
134
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_ban_perm WHERE SenderNumber=$1;"
152
		mysql --user=$u_db --password=$p_db -B -se "$sql_remove_ban_perm WHERE SenderNumber=$1;"
135
} # end function add_num_perm()
153
} # end function add_num_perm()
136
 
154
 
137
function new_sms() {
155
function new_sms() {
138
	# Check Inbox table, manage Ban temp and perm, create account
156
	# Check Inbox table, manage Ban temp and perm, create account
139
		export salt='$1$passwd$'
157
		export salt='$1$passwd$'
140
	
158
	
141
		sql_select_inbox="connect gammu; SELECT ID, SenderNumber, TextDecoded FROM $inb;"
159
		sql_select_inbox="connect gammu; SELECT ID, SenderNumber, TextDecoded FROM $inb;"
142
		sql_delete_inbox="connect gammu; DELETE FROM $inb"
160
		sql_delete_inbox="connect gammu; DELETE FROM $inb"
143
		
161
		
144
		mysql --user=$u_db --password=$p_db -B -se "$sql_select_inbox" | while read result;
162
		mysql --user=$u_db --password=$p_db -B -se "$sql_select_inbox" | while read result;
145
		do
163
		do
146
		# On recupère le nombre de mots (resultat)
164
		# On recupère le nombre de mots (resultat)
147
			nb=$(echo $result | wc -w)
165
			nb=$(echo $result | wc -w)
148
			
166
			
149
	# On récupère le numéro de l'ID
167
		# On récupère le numéro de l'ID
150
			id=$(echo $result | cut -d ' ' -f1)
168
				id=$(echo $result | cut -d ' ' -f1)
151
 
169
 
152
	numero=$(echo $result | cut -d ' ' -f2)
170
		numero=$(echo $result | cut -d ' ' -f2)
153
 
171
 
154
	if [[ $numero =~ ^\+ ]] 
172
		if [[ $numero =~ ^\+ ]] 
155
	then
-
 
156
	
-
 
157
		numero=$(echo $numero | cut -d '+' -f2)
-
 
158
		
-
 
159
		# On vérifie que le numéro n'est pas Ban Perm	
-
 
160
			sql_ban_perm="connect gammu; SELECT * FROM $sms_p WHERE SenderNumber=$numero"
-
 
161
			result_bp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_ban_perm")
-
 
162
 
-
 
163
		if test -z "$result_bp"
-
 
164
		then
173
		then
165
			# Test sur le nombre de mots (resultat)
-
 
166
			if [ $nb -eq 2 ]	# Si 2 mots : le mot de passe est manquant
-
 
167
			then
-
 
168
				# On incrémente de 1 dans la table des bans temp // NO PASSWORD
-
 
169
				sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
-
 
170
				mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
-
 
171
 
174
	
172
			elif [ $nb -eq 3 ]	# Si 3 mots : id + mot de passe + numero 
-
 
173
			then
-
 
174
				export pass=$(echo $result | cut -d ' ' -f3)
-
 
175
				pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt)
-
 
176
			
-
 
177
				export LC_TIME="en_US.UTF-8"
-
 
178
				expir=$(date '+%d %B %Y' -d "$time_account days")
-
 
179
			
-
 
180
				supp_acc_rad "$numero"
-
 
181
				add_acc_rad "$numero" "$pass_salt" "$expir"
-
 
182
				supp_num_temp "$numero"
-
 
183
				add_num_perm "$numero" "$expir"
-
 
184
						
-
 
185
			else	
-
 
186
			# Autrement, le mot de passe est trop grand ( > un mot )
-
 
187
				# On incrémente d'un 1 dans la table des bans temp
-
 
188
					sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
-
 
189
					mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
-
 
190
			fi
-
 
191
			
-
 
192
			# On gère les bans temp en ban perm
175
			# On vérifie si le pays est bloqué		
193
				sql_select_temp="connect gammu; SELECT ID FROM $sms_t WHERE SenderNumber='$numero'"
176
				sql_select_countries="connect gammu; SELECT id FROM $SMS_c WHERE status=1"
194
				r_select_temp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_select_temp")
177
				mysql --user=$u_db --password=$p_db -B -se "$sql_select_countries" | while read result_c;
195
				nb_ban_t=$(echo $r_select_temp| wc -w)
-
 
196
			
-
 
197
			if [ $nb_ban_t -ge $nb_essais ]
-
 
198
			then
-
 
199
				supp_num_temp "$numero"
-
 
200
			
-
 
201
					export LC_TIME="en_US.UTF-8"
-
 
202
					expir_f=$(date '+%d %B %Y' -d "$time_ban days")
-
 
203
				
178
				do
204
				# Ajout du numero table SMS_ban_perm, 1 : flood
-
 
205
					sql_add_ban_perm="connect gammu; INSERT INTO $sms_p (SenderNumber,Perm,Expiration) VALUES ('$numero',1,'$expir_f');"
-
 
206
					mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm"
-
 
207
			fi	
-
 
208
		else
-
 
209
			date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4)
-
 
210
			perm=$(echo $result_bp | cut -d ' ' -f5)
-
 
211
			
-
 
212
			export LC_TIME="en_US.UTF-8"
-
 
213
			date_script=$(date '+%d %B %Y' -d "now")
-
 
214
 
-
 
215
			# On converti les deux dates en secondes, pour les comparer.
-
 
216
				d_exp=$(date --date "$date_expiration" +%s)
-
 
217
				d_scr=$(date --date "$date_script" +%s)
-
 
218
 
179
 
-
 
180
				if [[ $numero =~ ^"$result_c" ]]
-
 
181
				then		
219
 
182
 
220
			if test $d_scr -gt $d_exp		# Si le ban à expiré
183
				numero=$(echo $numero | cut -d '+' -f2)
221
			then
-
 
222
 
184
 
223
				# Test sur le nombre de mots (resultat)
-
 
224
				if [ $nb -eq 2 ]	# Si 2 mots : le mot de passe est manquant
-
 
225
				then
-
 
226
					# On incrémente de 1 dans la table des bans temp
185
				# On vérifie que le numéro n'est pas Ban Perm	
227
						sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
186
					sql_ban_perm="connect gammu; SELECT * FROM $sms_p WHERE SenderNumber=$numero"
228
						mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
187
					result_bp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_ban_perm")
229
 
188
 
-
 
189
					if test -z "$result_bp"
-
 
190
					then
-
 
191
						# Test sur le nombre de mots (resultat)
230
				elif [ $nb -eq 3 ]	# Si 3 mots : id + mot de passe + numero 
192
						if [ $nb -eq 2 ]	# Si 2 mots : le mot de passe est manquant
231
				then
193
						then
232
					date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4)
194
							# On incrémente de 1 dans la table des bans temp // NO PASSWORD
-
 
195
							sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
233
					perm=$(echo $result_bp | cut -d ' ' -f5)
196
							mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
234
 
197
 
-
 
198
						elif [ $nb -eq 3 ]	# Si 3 mots : id + mot de passe + numero 
-
 
199
						then
-
 
200
							export pass=$(echo $result | cut -d ' ' -f3)
-
 
201
							pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt)
-
 
202
			
-
 
203
							export LC_TIME="en_US.UTF-8"
-
 
204
							expir=$(date '+%d %B %Y' -d "$time_account days")
-
 
205
			
-
 
206
							supp_acc_rad "$numero"
-
 
207
							add_acc_rad "$numero" "$pass_salt" "$expir"
-
 
208
							supp_num_temp "$numero"
-
 
209
							add_num_perm "$numero" "$expir"
-
 
210
						
-
 
211
						else	
-
 
212
						# Autrement, le mot de passe est trop grand ( > un mot )
-
 
213
							# On incrémente d'un 1 dans la table des bans temp
-
 
214
								sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
-
 
215
								mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
-
 
216
						fi
-
 
217
			
-
 
218
						# On gère les bans temp en ban perm
-
 
219
							sql_select_temp="connect gammu; SELECT ID FROM $sms_t WHERE SenderNumber='$numero'"
-
 
220
							r_select_temp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_select_temp")
-
 
221
							nb_ban_t=$(echo $r_select_temp| wc -w)
-
 
222
			
-
 
223
						if [ $nb_ban_t -ge $nb_essais ]
-
 
224
						then
-
 
225
							supp_num_temp "$numero"
-
 
226
			
-
 
227
								export LC_TIME="en_US.UTF-8"
-
 
228
								expir_f=$(date '+%d %B %Y' -d "$time_ban days")
-
 
229
				
-
 
230
							# Ajout du numero table SMS_ban_perm, 1 : flood
-
 
231
								sql_add_ban_perm="connect gammu; INSERT INTO $sms_p (SenderNumber,Perm,Expiration) VALUES ('$numero',1,'$expir_f');"
-
 
232
								mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm"
-
 
233
						fi	
-
 
234
					else
-
 
235
						date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4)
-
 
236
						perm=$(echo $result_bp | cut -d ' ' -f5)
-
 
237
			
-
 
238
						export LC_TIME="en_US.UTF-8"
235
					date_script=$(date '+%d %B %Y' -d "now")
239
						date_script=$(date '+%d %B %Y' -d "now")
236
 
240
 
237
					# On converti les deux dates en secondes, pour les comparer.
241
					# On converti les deux dates en secondes, pour les comparer.
238
						d_exp=$(date --date "$date_expiration" +%s)
242
						d_exp=$(date --date "$date_expiration" +%s)
239
						d_scr=$(date --date "$date_script" +%s)
243
						d_scr=$(date --date "$date_script" +%s)
240
 
244
 
241
						export pass=$(echo $result | cut -d ' ' -f3)
-
 
242
						pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt)
-
 
243
					
-
 
244
						export LC_TIME="en_US.UTF-8"
-
 
245
						expir=$(date '+%d %B %Y' -d "$time_account days")
-
 
246
 
245
 
-
 
246
						if test $d_scr -gt $d_exp		# Si le ban à expiré
-
 
247
						then
-
 
248
 
-
 
249
							# Test sur le nombre de mots (resultat)
-
 
250
							if [ $nb -eq 2 ]	# Si 2 mots : le mot de passe est manquant
-
 
251
							then
-
 
252
							# On incrémente de 1 dans la table des bans temp
-
 
253
								sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
-
 
254
								mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
-
 
255
 
-
 
256
							elif [ $nb -eq 3 ]	# Si 3 mots : id + mot de passe + numero 
-
 
257
							then
-
 
258
								date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4)
-
 
259
								perm=$(echo $result_bp | cut -d ' ' -f5)
-
 
260
 
-
 
261
								date_script=$(date '+%d %B %Y' -d "now")
-
 
262
 
-
 
263
							# On converti les deux dates en secondes, pour les comparer.
-
 
264
								d_exp=$(date --date "$date_expiration" +%s)
-
 
265
								d_scr=$(date --date "$date_script" +%s)
247
 
266
 
-
 
267
								export pass=$(echo $result | cut -d ' ' -f3)
-
 
268
								pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt)
-
 
269
				
-
 
270
								export LC_TIME="en_US.UTF-8"
-
 
271
								expir=$(date '+%d %B %Y' -d "$time_account days")
-
 
272
 
-
 
273
 
248
						supp_acc_rad "$numero"
274
								supp_acc_rad "$numero"
249
						add_acc_rad "$numero" "$pass_salt" "$expir"
275
								add_acc_rad "$numero" "$pass_salt" "$expir"
250
						supp_num_temp "$numero"
276
								supp_num_temp "$numero"
251
						supp_num_perm "$numero"
277
								supp_num_perm "$numero"
252
						add_num_perm "$numero" "$expir"
278
								add_num_perm "$numero" "$expir"
253
					
279
					
254
					else	
280
							else	
255
					# Autrement, le mot de passe est trop grand ( > un mot )
281
							# Autrement, le mot de passe est trop grand ( > un mot )
256
						# On incrémente d'un 1 dans la table des bans temp
282
								# On incrémente d'un 1 dans la table des bans temp
257
							sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
283
									sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
258
							mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
284
									mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
259
							echo "Mot de passe incorrect, ajout du numero en ban temporaire"
285
									echo "Mot de passe incorrect, ajout du numero en ban temporaire"
260
					fi
286
							fi
261
				
287
				
262
					# On gère les bans temp en ban perm
288
							# On gère les bans temp en ban perm
263
						sql_select_temp="connect gammu; SELECT ID FROM $sms_t WHERE SenderNumber='$numero'"
289
								sql_select_temp="connect gammu; SELECT ID FROM $sms_t WHERE SenderNumber='$numero'"
264
						r_select_temp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_select_temp")
290
								r_select_temp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_select_temp")
265
						nb_ban_t=$(echo $r_select_temp| wc -w)
291
								nb_ban_t=$(echo $r_select_temp| wc -w)
266
			
292
			
267
					if [ $nb_ban_t -ge $nb_essais ]
293
							if [ $nb_ban_t -ge $nb_essais ]
268
					then
294
							then
-
 
295
								supp_num_perm "$numero"
-
 
296
								supp_num_temp "$numero"
269
			
297
			
270
						supp_num_perm "$numero"
-
 
271
						supp_num_temp "$numero"
-
 
272
				
-
 
273
							export LC_TIME="en_US.UTF-8"
298
									export LC_TIME="en_US.UTF-8"
274
							expir_f=$(date '+%d %B %Y' -d "$time_ban days")
299
									expir_f=$(date '+%d %B %Y' -d "$time_ban days")
275
				
300
			
276
						# Ajout du numero table SMS_ban_perm, 1 : flood
301
								# Ajout du numero table SMS_ban_perm, 1 : flood
277
							sql_add_ban_perm="connect gammu; INSERT INTO $sms_p (SenderNumber,Perm,Expiration) VALUES ('$numero',1,'$expir_f');"
302
									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"
-
 
303
							fi
-
 
304
						else
278
							mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm"
305
							echo "Le ban de $numero est encore valide"	
-
 
306
						fi	
-
 
307
						break
279
					fi
308
					fi
280
				else
309
				#else
281
					echo "Le ban de $numero est encore valide"	
310
					#echo "Pays bloqué"
282
				fi	
311
				fi
283
			fi	
312
			done
284
	else
313
		else
285
		echo "Numero non autorisé (ex: 36665)"
314
			echo "Numero non autorisé (ex: 36665)"
286
	fi
315
		fi
287
			# On supprime la ligne d'ID=$id dans inbox
316
				# On supprime la ligne d'ID=$id dans inbox
288
			mysql --user=$u_db --password=$p_db -B -e "$sql_delete_inbox WHERE ID=$id;"
317
				mysql --user=$u_db --password=$p_db -B -e "$sql_delete_inbox WHERE ID=$id;"
289
		done
318
		done
290
} # end function new_sms
319
} # end function new_sms
291
 
320
 
292
 
321
 
293
# CORE
322
# CORE
294
case $args in
323
case $args in
295
	-h | --help)
324
	-h | --help)
296
		echo "$usage"
325
		echo "$usage"
297
		exit 0
326
		exit 0
298
		;;
327
		;;
299
	--start)
328
	--start)
300
		start_gammu
329
		start_gammu
301
		exit 0
330
		exit 0
302
		;;
331
		;;
303
	--stop)
332
	--stop)
304
		stop_gammu
333
		stop_gammu
305
		exit 0 
334
		exit 0 
306
		;;
335
		;;
307
	--last_nosim)
336
	--last_nosim)
308
		# Récupère la dernière ligne où NOSIM est présent (error)
337
		# Récupère la dernière ligne où NOSIM est présent (error)
309
		cat $logfile | grep -n "NOSIM" | cut -d ':' -f1 | tail -n 1
338
		cat $logfile | grep -n "NOSIM" | cut -d ':' -f1 | tail -n 1
310
		exit 0 
339
		exit 0 
311
		;;
340
		;;
312
	--last_start)
341
	--last_start)
313
		# Récupère la dernière ligne où ########## est présent (séparateur)
342
		# Récupère la dernière ligne où ########## est présent (séparateur)
314
		cat $logfile | grep -n "##########" | cut -d ':' -f1 | tail -n 1
343
		cat $logfile | grep -n "##########" | cut -d ':' -f1 | tail -n 1
315
		exit 0 
344
		exit 0 
316
		;;
345
		;;
317
	--last_stop)
346
	--last_stop)
318
		# Récupère la dernière ligne où %%%%%%%%%% est présent (séparateur)
347
		# Récupère la dernière ligne où %%%%%%%%%% est présent (séparateur)
319
		cat $logfile | grep -n "%%%%%%%%%%" | cut -d ':' -f1 | tail -n 1
348
		cat $logfile | grep -n "%%%%%%%%%%" | cut -d ':' -f1 | tail -n 1
320
		exit 0 
349
		exit 0 
321
		;;
350
		;;
322
	--last_writeerror)
351
	--last_writeerror)
323
		#Récupère la dernière ligne où SECURITYERROR est présent (error)
352
		#Récupère la dernière ligne où SECURITYERROR est présent (error)
324
		cat $logfile | grep -n "DEVICEWRITEERROR" | cut -d ':' -f1 | tail -n 1
353
		cat $logfile | grep -n "DEVICEWRITEERROR" | cut -d ':' -f1 | tail -n 1
325
		exit 0 
354
		exit 0 
326
		;;
355
		;;
327
	--last_timeout)
356
	--last_timeout)
328
		# Récupère la dernière ligne où SECURITYERROR est présent (error)
357
		# Récupère la dernière ligne où SECURITYERROR est présent (error)
329
		cat $logfile | grep -n "TIMEOUT" | cut -d ':' -f1 | tail -n 1
358
		cat $logfile | grep -n "TIMEOUT" | cut -d ':' -f1 | tail -n 1
330
		exit 0 
359
		exit 0 
331
		;;
360
		;;
332
	--last_secu)
361
	--last_secu)
333
		# Récupère la dernière ligne où SECURITYERROR est présent (error)
362
		# Récupère la dernière ligne où SECURITYERROR est présent (error)
334
		cat $logfile | grep -n "SECURITYERROR" | cut -d ':' -f1 | tail -n 1
363
		cat $logfile | grep -n "SECURITYERROR" | cut -d ':' -f1 | tail -n 1
335
		exit 0 
364
		exit 0 
336
		;;
365
		;;
337
	--last_puk)
366
	--last_puk)
338
		# Récupère la dernière ligne où PUK est présent (error)
367
		# Récupère la dernière ligne où PUK est présent (error)
339
		cat $logfile | grep -n "UNKNOWN" | cut -d ':' -f1 | tail -n 1
368
		cat $logfile | grep -n "UNKNOWN" | cut -d ':' -f1 | tail -n 1
340
		exit 0 
369
		exit 0 
341
		;;
370
		;;
342
	#--log)
371
	#--log)
343
	#	# Récupère le nom du fichier de log
372
	#	# Récupère le nom du fichier de log
344
	#	cat $config | grep logfile | cut -d ' ' -f3
373
	#	cat $config | grep logfile | cut -d ' ' -f3
345
	#	exit 0 
374
	#	exit 0 
346
	#	;;
375
	#	;;
347
	--connect)
376
	--connect)
348
		# Récupère la vitesse de co
377
		# Récupère la vitesse de co
349
		cat $config | grep connection | cut -d ' ' -f3
378
		cat $config | grep connection | cut -d ' ' -f3
350
		exit 0 
379
		exit 0 
351
		;;
380
		;;
352
	--replace_connect)
381
	--replace_connect)
353
		# Edition de la vitesse de co
382
		# Edition de la vitesse de co
354
		sed -i "3c connection = at$2" $config
383
		sed -i "3c connection = at$2" $config
355
		exit 0 
384
		exit 0 
356
		;;
385
		;;
357
	--pin)
386
	--pin)
358
		# Récupère le code PIN (file de conf)
387
		# Récupère le code PIN (file de conf)
359
		cat $config | grep PIN | cut -d ' ' -f3
388
		cat $config | grep PIN | cut -d ' ' -f3
360
		exit 0 
389
		exit 0 
361
		;;
390
		;;
362
	--replace_pin)
391
	--replace_pin)
363
		# Edition du code PIN
392
		# Edition du code PIN
364
		sed -i "9c PIN = $2" $config
393
		sed -i "9c PIN = $2" $config
365
		exit 0 
394
		exit 0 
366
		;;
395
		;;
367
	--try_ban)
396
	--try_ban)
368
		# Récupère le nombre d'essais avant le ban perm
397
		# Récupère le nombre d'essais avant le ban perm
369
		grep nb_essais= $script | head -n 1 | cut -d '=' -f2
398
		grep nb_essais= $script | head -n 1 | cut -d '=' -f2
370
		exit 0 
399
		exit 0 
371
		;;
400
		;;
372
	--replace_try_ban)
401
	--replace_try_ban)
373
		# Edition le nombre d'essais avant le ban perm
402
		# Edition le nombre d'essais avant le ban perm
374
		sed -i "4c nb_essais=$2" $script
403
		sed -i "4c nb_essais=$2" $script
375
		exit 0 
404
		exit 0 
376
		;;
405
		;;
377
	--time_account)
406
	--time_account)
378
		# Récupère la durée en jours de la session créée
407
		# Récupère la durée en jours de la session créée
379
		grep time_account= $script | head -n 1 | cut -d '=' -f2
408
		grep time_account= $script | head -n 1 | cut -d '=' -f2
380
		exit 0 
409
		exit 0 
381
		;;
410
		;;
382
	--replace_time_account)
411
	--replace_time_account)
383
		# Edition de la durée de la session créée
412
		# Edition de la durée de la session créée
384
		sed -i "5c time_account=$2" $script
413
		sed -i "5c time_account=$2" $script
385
		exit 0 
414
		exit 0 
386
		;;
415
		;;
387
	--time_perm)
416
	--time_perm)
388
		# Récupère la durée un jours d'un ban perm (après flood par exemple)
417
		# Récupère la durée un jours d'un ban perm (après flood par exemple)
389
		grep time_ban= $script | head -n 1 | cut -d '=' -f2
418
		grep time_ban= $script | head -n 1 | cut -d '=' -f2
390
		exit 0 
419
		exit 0 
391
		;;
420
		;;
392
	--replace_time_perm)
421
	--replace_time_perm)
393
		# Edition de la durée d'un ban perm
422
		# Edition de la durée d'un ban perm
394
		sed -i "6c time_ban=$2" $script
423
		sed -i "6c time_ban=$2" $script
395
		exit 0 
424
		exit 0 
396
		;;
425
		;;
397
	--unlock_num)
426
	--unlock_num)
398
		# Appel de la fonction unlock : deban un numero $2
427
		# Appel de la fonction unlock : deban un numero $2
399
		unlock "$2"
428
		unlock "$2"
400
		exit 0 
429
		exit 0 
401
		;;
430
		;;
-
 
431
	--change_country)
-
 
432
		# Permet de changer l'état de blocage d'un pays
-
 
433
		a=""
-
 
434
		for i in "$@"
-
 
435
		do 
-
 
436
			a=$(echo "$a $i")
-
 
437
		done
-
 
438
		a=$(echo $a | cut -d ' ' -f2-$#)
-
 
439
		change_country "$a"
-
 
440
		exit
-
 
441
		;;
-
 
442
	--change_country_ena_all)
-
 
443
		# Active l'ensemble des pays
-
 
444
		sql_change_country="connect gammu; UPDATE $SMS_c SET status=1"
-
 
445
		mysql --user=$u_db --password=$p_db -B -se "$sql_change_country"
-
 
446
		exit
-
 
447
		;;
-
 
448
	--change_country_dis_all)
-
 
449
		# Desactive l'ensemble des pays
-
 
450
		sql_change_country="connect gammu; UPDATE $SMS_c SET status=0"
-
 
451
		mysql --user=$u_db --password=$p_db -B -se "$sql_change_country"
-
 
452
		exit
-
 
453
		;;
-
 
454
	--change_country_filter)
-
 
455
		# Change la valeur du filtrage (FR, UE, all, perso)
-
 
456
		sql_change_country="connect gammu; UPDATE $SMS_c SET id='$2' WHERE name='FILTRAGE'"
-
 
457
		mysql --user=$u_db --password=$p_db -B -se "$sql_change_country"
-
 
458
		break
-
 
459
		;;
402
	--new_sms)
460
	--new_sms)
403
		# Appel de la fonction new_sms : filtrage du password, creation du compte et ban
461
		# Appel de la fonction new_sms : filtrage du password, creation du compte et ban
404
		new_sms
462
		new_sms
405
		exit 0
463
		exit 0
406
		;;
464
		;;
407
	--imei_device)
465
	--imei_device)
408
		# Recuperation de l'imei du device
466
		# Recuperation de l'imei du device
409
		sql_imei_phones="connect gammu; SELECT \`IMEI\` FROM phones;"
467
		sql_imei_phones="connect gammu; SELECT \`IMEI\` FROM phones;"
410
		mysql --user=$u_db --password=$p_db -B -se "$sql_imei_phones"
468
		mysql --user=$u_db --password=$p_db -B -se "$sql_imei_phones"
411
		exit 0
469
		exit 0
412
		;;
470
		;;
413
	--signal_device)
471
	--signal_device)
414
		# Recuperation du signal du device
472
		# Recuperation du signal du device
415
		sql_signal_phones="connect gammu; SELECT \`Signal\` FROM phones;"
473
		sql_signal_phones="connect gammu; SELECT \`Signal\` FROM phones;"
416
		mysql --user=$u_db --password=$p_db -B -se "$sql_signal_phones"
474
		mysql --user=$u_db --password=$p_db -B -se "$sql_signal_phones"
417
		exit 0
475
		exit 0
418
		;;
476
		;;
419
	--sms_received)
477
	--sms_received)
420
		# Recuperation du nombre de sms reçu. Depuis la dernière activation.
478
		# Recuperation du nombre de sms reçu. Depuis la dernière activation.
421
		sql_sms_received="connect gammu; SELECT \`Received\` FROM phones;"
479
		sql_sms_received="connect gammu; SELECT \`Received\` FROM phones;"
422
		mysql --user=$u_db --password=$p_db -B -se "$sql_sms_received"
480
		mysql --user=$u_db --password=$p_db -B -se "$sql_sms_received"
423
		exit 0
481
		exit 0
424
		;;
482
		;;
425
	--numero_alcasar)
483
	--numero_alcasar)
426
		# Récupère le numero de la clé 3g (téléphone)
484
		# Récupère le numero de la clé 3g (téléphone)
427
		grep numero_alcasar= $script | head -n 1 | cut -d '=' -f2
485
		grep numero_alcasar= $script | head -n 1 | cut -d '=' -f2
428
		exit 0 
486
		exit 0 
429
		;;
487
		;;
430
	--replace_numero_alcasar)
488
	--replace_numero_alcasar)
431
		# Edition du numero de la clé 3g (téléphone)
489
		# Edition du numero de la clé 3g (téléphone)
432
		sed -i "7c numero_alcasar=$2" $script
490
		sed -i "7c numero_alcasar=$2" $script
433
		exit 0 
491
		exit 0 
434
		;;
492
		;;
435
	--mode)
493
	--mode)
436
	# Mode huawei
494
		# Mode huawei
437
	mode_huawei
495
		mode_huawei
438
	exit 0
496
		exit 0
439
	;;
497
		;;
440
	*)
498
	*)
441
		# Default
499
		# Default
442
		echo "$usage"
500
		echo "$usage"
443
		exit 0
501
		exit 0
444
		;;
502
		;;
445
esac
503
esac
446
exit 0
504
exit 0
447
 
-
 
448
 
505