Subversion Repositories ALCASAR

Rev

Rev 1387 | Rev 1452 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 1387 Rev 1416
Line 19... Line 19...
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 ##########"
Line 95... Line 96...
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()
Line 144... Line 162...
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
Line 397... Line 426...
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
		;;
Line 431... Line 489...
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
 
-