Subversion Repositories ALCASAR

Rev

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

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