Salve a tutti.
Mi connetto ad internet utilizzando il cellulare come modem.
Si tratta di una connessione EDGE e come operatore ho Tim.
Il cellulare è un Nokia 6230 e lo collego al portatile attraverso il cavetto usb "DKU-2".
Le connessioni Edge sono famose per soffrire instabilità, a parte altri problemi di banda (poca)
e tempi di latenza elevati (siamo a cica 500 ms, su maya.ngi.it).Utilizzo questa connessione da
anni, ormai e ho notato un comportamento singolare:
casualmente, a volte, la connessione si inchioda, cioè resta come addormentata, senza
disconnettersi, ma non si riesce più a scambiare dati.
La soluzione manuale che adotto di solito è "disconnetti e riconnetti", ma non è sufficiente
perchè la riconnessione non va a buon fine (ora non ricordo il codice d'errore...), il cellulare
resta ancora bloccato e sul display in alto a sinistra vi è ancora la G inscritta in un
quadrato, che indica che il telefono è ancora connesso. Importante notare che la connessione di
rete termina in modo normale, è solo il telefono che resta ancora bloccato.
Nel tempo ho provato diverse "manovre"...in particolare se disconnetto, chiamo un numero
telefonico qualsiasi (io chiamo sempre il 4916 che è il numero delle info della tim...quindi
gratutito), riaggancio, a questo punto se riprovo a connettermi al numero giusto ("*99***1#")
facendo partire la connessione di rete corrispondente, allora si riconnette.
A volte, ma raramente, anche questa operazione fallisce, in tal caso si può staccare il cavetto
dalla porta usb e riattaccarlo. Così facendo, se mi connetto funziona nuovamente. Anche questa
operazione a volte non funge (molto, ma molto raramente...) e quindi non resta altra soluzione
che spegnere e riaccendere il cellulare. L'ultima spiaggia, se continua a non funzionare è
riavviare il computer.
Spero di essermi spiegato.
Ora, il problema è semplice:
capita a volte di lasciare il portatile acceso a scaricare, quando non sono presente:
inparticolare durante la notte e c'è il rischio (quasi sicuro...) che in così tanto tempo (10
ore per esempio), la connessione si inchiodi, semza disconnettersi e senza funzionare. Mi è
capitato spesso di trovare al mattino la connessione in questo stato pietoso.
Siccome il piano tariffario della tim, che ad oggi si chiama "maxi tim web time richarge",
permette di scambiare 9 GB/mese col server durante la fascia oraria 17:00 ----> 9:00, volendo
scaricare qualcosa di grosso è chiaro che la notte và sfruttata tutta (e non posso di certo
stare lì a riconnettere quando va in panne).
Ecco che allora nasce l'esigenza di scrivere un piccolo script in grado di stabilire se la
connessone è inchiodata e di effettuare eventualmente tutta una serie di manovre per sbloccare
il telefono e riconnettersi. Lo script viene utilizzato come operazione oianificata e fatto
girare ogni tot minuti (esempio 5 minuti, 10, come si vuole...)
Già da tempo ho scritto questo script, che effettivamente ha sempre funzionato, permettendomi di
sfruttare tutto il tempo che il piano tariffario mette a disposìzione.
Adesso vorrei migliorarlo in un suo aspetto: veniamo al sodo.
operazioni da svolgere:
1- invia un ping ad un sito
2- se la risposta non è positiva (in pratic trovi "100% persi")
3- disconnetti--> rasdial edge_tim /d
4- chiama il 4916: rasdial edge_tim /phone:4916 (il 4916 non può rispondere ad una chiamata
dati, quindi esce con un, errore...non importa, serve solo per sbloccare i telefono...)
5- riconnetti: rasdial edge_tim
Queste operazioni sono la sequenza ridotta all'osso, per far capire il concetto, nella pratica
lo script effettua qualche operazione in più: ci sono alcuni choce qua e la per attendere lo
sblocco ecc ecc, ma nella sostanza la serie di operazioni è quella.
Va sottolineato ancora un aspetto importante:
quando, appena disconnesso, chiamo il 4916 con rasdial, questa operazione termina subito e il
cell emette un bip strano (come dire "sono ancora bloccato"). Attendendo alcuni secondi, circa
10, 15 (ma è random, dioende di volta in volta) il cell emette un'altro bip (come dire "mi sono
sbloccato"...e in fatti controllando il display si vede connessione dati terminata.). Il fatto
curioso avviene a questo punto:
se ora passassi all'operazione numero 5, benchè il telefono è sbloccato, la connessione non
avverrebbe e se ne uscirebbe con un errore di rasdial.
per evitare questo è necessario chiamare ancora una volta il 4916, ma questa volta il telefono è
sbloccato e termina l'operazione con un errore, ma senza che il cellulare emetta il bip di
prima.
A questo punto si può riconnettere normalmente. Chiarito questo, vi riscrivo le operazioni:
1- invia un ping ad un sito
2- se la risposta non è positiva (in pratic trovi "100% persi")
3- disconnetti--> rasdial edge_tim /d
4- chiama il 4916: rasdial edge_tim /phone:4916 (l'operazione termina istantaneamente con un
errore ed il telefono emette un bip)
5- aspetta che si sblocchi il telefono---> choice /t:Y,10 (si spera che in 10 secondi si sia
sbloccato...non è detto, in tal caso alla prossima operazione il telefono emmette ancora il bip)
6- chiamo il 4916 (se il telefono è sbloccato non emette bip, altrimenti sì e occorrera
aspettare ancora che si sblocchi e quindi richiamare ancora una volta il 4916 ecc ecc....si può
fare con un if...magari gurdando il codice d'errore nei due casi: quando fa bip e quando no...)
7- telefono di nuovo attivo (si spera)-----> riconnetti: rasdial edge_tim
Come potete vedere è tutto abbastanza spartano....ma alla fine efficace. Dove voglio
migliorarlo?
vorrei cambiare qualcosa nell'operazione 6:
Il telefono è sbloccato e richiamo il 4916: è un'operazione lunga ed è inutile portarla a
termine, ho notato, dando i comandi a mano che loperazone 6, si può interrompere con un bel
ctrl+c e tutto funziona ugualmente.
In teoria si potrebbe automatizzare questa operazione di interruzione, demandando l'operazione 6
ad un bat figlio e quindi uccidendo il processo ad esso corrispondente dopo pochi secondi.
Ne ho già discusso in un altro post:
http://forum.html.it/forum/showthrea...readid=1069692
il problema è che così facendo non si riesce più a connettersi, perchè all'operazone 7 dà un
errore dicendo che la connessione è già in uso....boh....
Manualmete si può risolvere solo staccando la presa usb e riattaccandola, ma automaticamente non
saprei.
Se avete idee, precisazioni, domande per chiarire (probabili...), fatemi sapere.
Ringrazio in anticipo risposte ed interventi. A risentirci.![]()