Acquisire stringhe via telnet

Questa soluzione mi è stata utile per automatizzare l'importazione della documentazione degli addebiti da un centralino Samsung ed evitare l'utilizzo di un software dedicato.

Inizialmente avevo usato Putty come strumento intermedio, ma poi ho voluto rendere ancora più semplice la procedura; quindi, ho scelto di usare un semplicissimo batch di Windows e due comandi nativi del sistema operativo: telnet e taskkill.

Il cliente ha due centralini, raggiungibili agli indirizzi IP 192.168.1.101 (sede) e 192.168.1.102 (filiale). La filiale è collegata alla LAN della sede tramite un bridge wireless.
I centralini aprono la porta 5100 e vi trasmettono le stringhe della documentazione addebiti. Il client deve collegarsi alla porta 5100 in telnet, per acquisire i dati e riversarli in un file di testo. Essendo due i centralini, le sessioni telnet sono due e due anche i file di log. Inoltre, i centralini non hanno un buffer; questo significa che se il client non sta ricevendo, la stringa della telefonata è persa.
Il cliente usa Ericsoft Hotel 3° per la gestione alberghiera. Il software acquisisce il file centralino.tel tramite il modulo centralino (ho opportunamente configurato il driver con lo strumento integrato) non appena il file viene creato, poi lo cancella.

Il batch consta di pochissime righe:

rem @echo off
REM - KILLA LE ISTANZE DI TELNET, PER POI RICREARE I FILE DI LOG
taskkill /IM telnet.exe

REM - TRASFERISCE I CONTENUTI DEI FILE DI LOG IN UNICO FILE
REM - CONTENENTE GLI ADDEBITI DI ENTRAMBI I CENTRALINI

type centra1.log >> centralino.tel
type centra2.log >> centralino.tel

REM - RILANCIA LE SESSIONI TELNET
start /min telnet 192.168.1.101 5100 -f centra1.log
start /min telnet 192.168.1.102 5100 -f centra2.log

exit

Ho schedulato il batch per essere eseguito come operazione pianificata ogni 5 minuti. Il tempo di esecuzione è molto breve (circa 3 decimi di secondo), pertanto il rischio di perdere dati è molto basso.

Sarebbe possibile migliorare la procedura tenendo le sessioni telnet sempre attive e spostando solo i dati già acquisiti. Per il futuro...

Aggiungi un commento