Subversion Repositories ALCASAR

Rev

Rev 1387 | Rev 1452 | Go to most recent revision | Only display areas with differences | Regard 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
173
		then
156
	
174
	
-
 
175
			# On vérifie si le pays est bloqué		
-
 
176
				sql_select_countries="connect gammu; SELECT id FROM $SMS_c WHERE status=1"
-
 
177
				mysql --user=$u_db --password=$p_db -B -se "$sql_select_countries" | while read result_c;
-
 
178
				do
-
 
179
 
-
 
180
				if [[ $numero =~ ^"$result_c" ]]
-
 
181
				then		
-
 
182
 
157
		numero=$(echo $numero | cut -d '+' -f2)
183
				numero=$(echo $numero | cut -d '+' -f2)
158
		
184
 
159
		# On vérifie que le numéro n'est pas Ban Perm	
185
				# 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"
186
					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")
187
					result_bp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_ban_perm")
162
 
188
 
163
		if test -z "$result_bp"
189
					if test -z "$result_bp"
164
		then
190
					then
165
			# Test sur le nombre de mots (resultat)
191
						# Test sur le nombre de mots (resultat)
166
			if [ $nb -eq 2 ]	# Si 2 mots : le mot de passe est manquant
192
						if [ $nb -eq 2 ]	# Si 2 mots : le mot de passe est manquant
167
			then
193
						then
168
				# On incrémente de 1 dans la table des bans temp // NO PASSWORD
194
							# 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');"
195
							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"
196
							mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
171
 
197
 
172
			elif [ $nb -eq 3 ]	# Si 3 mots : id + mot de passe + numero 
198
						elif [ $nb -eq 3 ]	# Si 3 mots : id + mot de passe + numero 
173
			then
199
						then
174
				export pass=$(echo $result | cut -d ' ' -f3)
200
							export pass=$(echo $result | cut -d ' ' -f3)
175
				pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt)
201
							pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt)
176
			
202
			
177
				export LC_TIME="en_US.UTF-8"
203
							export LC_TIME="en_US.UTF-8"
178
				expir=$(date '+%d %B %Y' -d "$time_account days")
204
							expir=$(date '+%d %B %Y' -d "$time_account days")
179
			
205
			
180
				supp_acc_rad "$numero"
206
							supp_acc_rad "$numero"
181
				add_acc_rad "$numero" "$pass_salt" "$expir"
207
							add_acc_rad "$numero" "$pass_salt" "$expir"
182
				supp_num_temp "$numero"
208
							supp_num_temp "$numero"
183
				add_num_perm "$numero" "$expir"
209
							add_num_perm "$numero" "$expir"
184
						
210
						
185
			else	
211
						else	
186
			# Autrement, le mot de passe est trop grand ( > un mot )
212
						# Autrement, le mot de passe est trop grand ( > un mot )
187
				# On incrémente d'un 1 dans la table des bans temp
213
							# 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');"
214
								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"
215
								mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
190
			fi
216
						fi
191
			
217
			
192
			# On gère les bans temp en ban perm
218
						# On gère les bans temp en ban perm
193
				sql_select_temp="connect gammu; SELECT ID FROM $sms_t WHERE SenderNumber='$numero'"
219
							sql_select_temp="connect gammu; SELECT ID FROM $sms_t WHERE SenderNumber='$numero'"
194
				r_select_temp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_select_temp")
220
							r_select_temp=$(mysql --user=$u_db --password=$p_db -B -se "$sql_select_temp")
195
				nb_ban_t=$(echo $r_select_temp| wc -w)
221
							nb_ban_t=$(echo $r_select_temp| wc -w)
196
			
222
			
197
			if [ $nb_ban_t -ge $nb_essais ]
223
						if [ $nb_ban_t -ge $nb_essais ]
198
			then
224
						then
199
				supp_num_temp "$numero"
225
							supp_num_temp "$numero"
200
			
226
			
201
					export LC_TIME="en_US.UTF-8"
227
								export LC_TIME="en_US.UTF-8"
202
					expir_f=$(date '+%d %B %Y' -d "$time_ban days")
228
								expir_f=$(date '+%d %B %Y' -d "$time_ban days")
203
				
229
				
204
				# Ajout du numero table SMS_ban_perm, 1 : flood
230
							# 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');"
231
								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"
232
								mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm"
207
			fi	
233
						fi	
208
		else
234
					else
209
			date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4)
235
						date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4)
210
			perm=$(echo $result_bp | cut -d ' ' -f5)
236
						perm=$(echo $result_bp | cut -d ' ' -f5)
211
			
237
			
212
			export LC_TIME="en_US.UTF-8"
238
						export LC_TIME="en_US.UTF-8"
213
			date_script=$(date '+%d %B %Y' -d "now")
239
						date_script=$(date '+%d %B %Y' -d "now")
214
 
240
 
215
			# On converti les deux dates en secondes, pour les comparer.
241
					# On converti les deux dates en secondes, pour les comparer.
216
				d_exp=$(date --date "$date_expiration" +%s)
242
						d_exp=$(date --date "$date_expiration" +%s)
217
				d_scr=$(date --date "$date_script" +%s)
243
						d_scr=$(date --date "$date_script" +%s)
218
 
244
 
219
 
245
 
220
			if test $d_scr -gt $d_exp		# Si le ban à expiré
246
						if test $d_scr -gt $d_exp		# Si le ban à expiré
221
			then
247
						then
222
 
248
 
223
				# Test sur le nombre de mots (resultat)
249
							# Test sur le nombre de mots (resultat)
224
				if [ $nb -eq 2 ]	# Si 2 mots : le mot de passe est manquant
250
							if [ $nb -eq 2 ]	# Si 2 mots : le mot de passe est manquant
225
				then
251
							then
226
					# On incrémente de 1 dans la table des bans temp
252
							# On incrémente de 1 dans la table des bans temp
227
						sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
253
								sql_add_temp="connect gammu; INSERT INTO $sms_t(SenderNumber) VALUES ('$numero');"
228
						mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
254
								mysql --user=$u_db --password=$p_db -B -se "$sql_add_temp"
229
 
255
 
230
				elif [ $nb -eq 3 ]	# Si 3 mots : id + mot de passe + numero 
256
							elif [ $nb -eq 3 ]	# Si 3 mots : id + mot de passe + numero 
231
				then
257
							then
232
					date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4)
258
								date_expiration=$(echo $result_bp | cut -d ' ' -f2,3,4)
233
					perm=$(echo $result_bp | cut -d ' ' -f5)
259
								perm=$(echo $result_bp | cut -d ' ' -f5)
234
 
260
 
235
					date_script=$(date '+%d %B %Y' -d "now")
261
								date_script=$(date '+%d %B %Y' -d "now")
236
 
262
 
237
					# On converti les deux dates en secondes, pour les comparer.
263
							# On converti les deux dates en secondes, pour les comparer.
238
						d_exp=$(date --date "$date_expiration" +%s)
264
								d_exp=$(date --date "$date_expiration" +%s)
239
						d_scr=$(date --date "$date_script" +%s)
265
								d_scr=$(date --date "$date_script" +%s)
240
 
266
 
241
						export pass=$(echo $result | cut -d ' ' -f3)
267
								export pass=$(echo $result | cut -d ' ' -f3)
242
						pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt)
268
								pass_salt=$(perl -e'print crypt($ARGV[0],$ARGV[1])' $pass $salt)
243
					
269
				
244
						export LC_TIME="en_US.UTF-8"
270
								export LC_TIME="en_US.UTF-8"
245
						expir=$(date '+%d %B %Y' -d "$time_account days")
271
								expir=$(date '+%d %B %Y' -d "$time_account days")
246
 
272
 
247
 
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
269
			
-
 
270
						supp_num_perm "$numero"
295
								supp_num_perm "$numero"
271
						supp_num_temp "$numero"
296
								supp_num_temp "$numero"
272
				
297
			
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"
278
							mysql --user=$u_db --password=$p_db -B -se "$sql_add_ban_perm"
-
 
279
					fi
303
							fi
280
				else
304
						else
281
					echo "Le ban de $numero est encore valide"	
305
							echo "Le ban de $numero est encore valide"	
282
				fi	
306
						fi	
-
 
307
						break
-
 
308
					fi
-
 
309
				#else
-
 
310
					#echo "Pays bloqué"
283
			fi	
311
				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