Subversion Repositories ALCASAR

Rev

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

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