Subversion Repositories ALCASAR

Rev

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

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