Avanti Indietro Indice

11. Dial-in - ricevere chiamate

11.1 Introduzione

Il dial-in è quando impostate il vostro PC così che altri possano chiamare il vostro numero di telefono ed usare il vostro PC. Il "punto di vista" è il vostro PC. Quando componete un numero esterno dal vostro PC state nel contempo facendo un dial-in in un altro computer (ma non potete fare il dial-in nel vostro proprio computer).

Il dial-in funziona così. Qualcuno con un modem compone il vostro numero telefonico. Il vostro modem risponde alla chiamata e si connette. Una volta che il chiamante è connesso, il vostro PC (tramite il programma getty) invia il processo di login per il chiamante. Il metodo originale era quello di inviare un prompt di login allo schermo del chiamante (login manuale). Ma un metodo più moderno (se usate mgetty) è lanciare PPP (pppd) e lasciar fare al PPP il login al chiamante in modo automatico (non c'è bisogno di digitare manualmente un nome o una password). Vedere il PPP-HOWTO (una nuova revisione è attesa tra poco) e la documentazione di mgetty per maggiori dettagli.

Dopo che il chiamante si è collegato, egli usa il vostro PC. Usare il vostro PC significa che il chiamante ha un account di shell e può usare il vostro PC proprio come se si fosse collegato tramite console (o terminale di testo). Potrebbe anche significare che egli si può connettere ad Internet attraverso il vostro PC (tramite PPP). Il programma che usate nel vostro PC per gestire il dial-in è chiamato getty o mgetty. Vedere A proposito di mgetty

Se vi aspettate che qualcuno sia in grado di collegarsi a 56k, non è possibile a meno che:

  1. Abbiate una connessione digitale alla compagnia telefonica tipo una linea trunkside-T1 o ISDN.
  2. Usiate modem digitali speciali (vedere Modem digitali)
  3. Abbiate un "...concentrator" (concentratore) o simile per interfacciare i vostri modem digitali alle linee digitali della compagnia telefonica.
Un "... concentrator" potrebbe essere chiamato anche "modem concentrator" oppure "remote access concentrator" (concentratore di accesso remoto) o potrebbe essere incluso in un "remote access server" (server di accesso remoto) che includa i modem digitali, ecc. Questo tipo di impostazioni vengono usate dagli Internet Service Provider (ISP).

11.2 Getty

getty è il programma che lanciate per il dial-in. Non ne avete bisogno per chiamate verso l'esterno (dialout). Oltre a presentare un prompt di login, risponde anche al telefono. Originariamente getty veniva usato per il login verso un computer da un terminale stupido. È attualmente usato per il login verso una console Linux. Ci sono alcuni programmi getty differenti con nomi leggermente diversi. Solo alcuni funzionano con i modem per il dialin. Questo programma getty viene in genere lanciato in fase di boot. Deve essere chiamato dal file /etc/inittab. Potreste trovare un esempio in questo file di una chiamata a getty nel quale potreste avere bisogno di fare qualche piccola modifica. Se usate un programma getty diverso da quello mostato nell'esempio, allora dovreste apportare delle modifiche importanti visto che le opzioni hanno diversi formati.

Ci sono quattro diversi programmi getty tra cui scegliere che possono essere usati coi modem per il dialin: mgetty, uugetty, getty_em e agetty. Alcuni dettagli vengono forniti nelle sottosezioni seguenti. getty è il più semplice (e più debole) dei quattro ed alcuni lo considerano principalmente da usarsi con terminali di testo collegati direttamente. mgetty supporta fax e voice mail, invece uugetty no. mgetty si afferma manchi di alcune delle caratteristiche di ugetty. getty_em è una versione semplificata di ugetty. Quindi mgetty è probabilmente la vostra scelta migliore a meno che abbiate già familiarità con ugetty (o troviate difficile reperire mgetty). La sintassi per questi programmi getty differisce, così assicuratevi di stare usando la sintassi corretta in /etc/inittab per qualsiasi getty usiate.

Mgetty

mgetty fu scritto come rimpiazzo di uugetty che esisteva molto prima di mgetty. Entrambi si possono usare con i modem. Sebbene mgetty possa anche essere usato per terminali direttamente connessi, la documentazione per questa cosa è difficile da trovare e mgetty (a metà 1999) non supporta il controllo di flusso software ( usato da molti terminali) senza ricompilarlo. Questo difetto viene classificato come un bug. Oltre a consentire login in dialup, mgetty fornisce supporto FAX ed autoriconoscimento del PPP. C'è un programma addizionale chiamato vgetty che gestisce le caselle vocali per alcuni modem. La documentazione per mgetty è buona (eccetto per le caselle vocali), e non necessita di supplementi. Per cortesia riferitevi ad essa per le istruzioni di installazione. Potete trovare le ultime informazioni su mgetty a http://www.leo.org/~doering/mgetty/ e http://alpha.greenie.net/mgetty

uugetty

getty_ps contiene due programmi: getty viene usato per le console ed i terminali, e ugetty per i modem. Greg Hankins (già autore del Serial-HOWTO) usava ugetty così le sue considerazioni circa questo sono là incluse. Vedere Uugetty. Gli altri getty sono ben trattati dalla documentazione che li accompagna.

getty_em

Questa è una versione semplificata di "uugetty". Fu scritta da Vern Hoxie dopo che fu completamente confuso dai complessi file di supporto che occorrono a getty_ps e uugetty.

Fa parte della raccolta di utilità ed informazioni di Vern Hoxie reperibili tramite ftp da scicom.alphacdc.com/pub/linux. Il nome della raccolta è "serial_suite.tgz". Quando eseguite il login in "scicom" come anonimi, dovete usare il vostro indirizzo e-mail completo come password. Ad esempio: greg.hankins@cc.gatech.edu

agetty e mingetty

agetty è una semplice e completamente funzionale implementazione di getty che meglio si adatta alle console virtuali od ai terminali piuttosto che per i modem. Ma, date determinate condizioni favorevoli, funziona bene anche con i modem (a meno che voi non eseguiate una chiamata quando agetty è in esecuzione in fase di attesa di chiamate). agetty nella distribuzione Debian viene semplicemente chiamata getty.

mingetty è un piccolo getty che funzionerà solo per le console (monitor), quindi non si può usare con i modem per il dialin.

11.3 Cosa succede quando qualcuno ci chiama? (dial-in)

Il chiamante lancia un certo programma di configurazione che compone il vostro numero di telefono ed il vostro telefono squilla. Ci sono due differenti modi nei quali il vostro PC può rispondere al telefono. Un modo è che il modem risponda automaticamente alla chiamata. L'altro modo è che getty rilevi lo squillo ed invii un comando al modem che gli imponga di rispondere alla chiamata. Una volta che viene risposto alla chiamata, il vostro modem invia dei toni all'altro modem (e viceversa). I due modem negoziano il modo con il quale essi comunicheranno e quando finiscono il vostro modem invia un messaggio di "CONNECT" (connessione) o simile a getty. Quando getty riceve questo messaggio invia un prompt di login attraverso la porta seriale. Qualche volta getty invoca semplicemente un programma chiamato login per gestire il login. getty in genere viene lanciato in fase di boot ma deve aspettare fino a quando viene effettuata una connessione prima di fare partire il prompt di login.

Ora ulteriori dettagli sui due modi di rispondere ad una chiamata. Impostando il registro S0 del modem a 3, il modem automaticamente risponde al terzo squillo. Se è impostato a 0 allora il modem risponderà alla chiamata solo se getty gli invia il comando "A" (Risposta) mentre il telefono sta squillando. In realtà il comando è "ATA" visto che tutti i comandi modem devono essere prefissati da "AT". Potreste pensare che sia meglio utilizzare la capacità del modem di rispondere automaticamente alla chiamata, ma in verità è meglio fare sì che sia getty a rispondere. Se il modem non risponde automaticamente, si parla di risposta manuale (anche se getty la gestisce in modo automatico).

Per il caso di risposta manuale, getty apre la porta in fase di boot e resta in ascolto. Quando il telefono squilla, un messaggio "RING" viene inviato a getty che sta ascoltando. Poi se getty vuole rispondere allo squillo, invia al modem il comando "ATA". Il modem poi esegue la connessione ed invia il messaggio "CONNECT ..." a getty che invia un prompt di login al chiamante.

Nel caso della risposta automatica, viene usata la linea CD "Carrier detect" (Portante rilevata) che va dal modem alla porta seriale per rilevare quando viene fatta una connessione. Funziona così. In fase di boot, getty cerca di aprire la porta seriale, ma fallisce visto che in genere non c'è segnale CD dal modem. Allora il programma getty si ferma all'istruzione di apertura (open) nel programma fino a che il segnale CD compare. Quando un segnale CD arriva (forse ore dopo), allora la porta viene aperta e getty invia il prompt di login. Mentre getty sta aspettando all'altezza dell'istruzione di apertura, altri processi possono essere lanciati visto che Linux è un sistema operativo multiprocessing. Quello che fa "svegliare" getty è un interrupt che viene generato quando la linea CD dal modem pone il suo stato ad on.

Potreste chiedervi come getty sia capace di aprire la porta seriale nel caso della risposta manuale visto che non vi è segnale CD. Bene, si può scrivere un programma per forzare l'apertura della porta anche se non è presente un segnale CD.

11.4 Perché la risposta manuale è meglio

La differenza tra i due modi di risposta si palesa quando il computer è spento ma il modem sta ancora lavorando. Nel caso manuale, il messaggio "RING" viene inviato a getty ma visto che il computer è spento, getty non è pronta, quindi non ci sarà mai risposta al telefono. Non ci sono addebiti telefonici quando non si risponde alla chiamata. Nel caso della risposta automatica, c'è risposta alla telefonata ma non verrà mai inviato un prompt di login visto che il computer è spento. La bolletta cresce mentre l'attesa continua. Se la chiamata è gratuita, non fa molta differenza, sebbene possa essere frustrante attendere per un prompt di login che mai arriverà. mgetty usa la risposta manuale. uugetty può fare questo tramite uno script di configurazione.

11.5 Callback

Si definisce callback quando qualcuno per primo chiama il vostro modem. Poi voi ottenete un po' di informazioni dal chiamante e lo richiamate. Perché si vuole fare questo? Una ragione è risparmiare sulla bolletta se voi potete telefonare al chiamante con tariffe più convenienti rispetto alle sue. Un altro è assicurarvi che il chiamante sia davvero colui che sostiene di essere. Se un chiamante vi contatta e dice di chiamare dal suo abituale numero telefonico, un modo per verificarlo è di effettuare una nuova chiamata a quel numero.

C'è un programma per Linux chiamato "callback" che funziona con mgetty. Si trova in ftp://ftp.icce.rug.nl/pub/unix/. Istruzioni passo-passo su come installarlo (e PPP) si trovano a http://www.stokely.com/unix.serial.port.resources/callback.html

11.6 Casella vocale (Voice Mail)

La casella vocale è come una segreteria telefonica eseguita da un computer. Per fare questo dovete avere un modem con il supporto "voice" ed il relativo software. Invece di incidere i messaggi su nastro, essi vengono salvati in forma digitale sul disco. Quando qualcuno vi chiama, ascolterà un messaggio di benvenuto e poi può lasciare un messaggio per voi. Sistemi più avanzati possono avere caselle postali selezionabili dal chiamante e messaggi da fare ascoltare selezionabili dall'utente. Software gratuito è disponibile in Linux per la semplice risposta, ma non sembra essere ancora a disposizione per capacità più avanzate.

So di due diversi pacchetti di voicemail per Linux. Uno è minimale (vedere Voicemail Software). L'altro, più avanzato, ma attualmente scarsamente documentato, è vgetty. È una aggiunta opzionale al ben documentato e largamente distribuito programma mgetty. Supporta i comandi modem vocali tipo ZyXEL. Nella distribuzione Debian potete ottenere il pacchetto mgetty-voice in aggiunta al pacchetto mgetty e mgetty-doc. La documentazione obsoleta è stata rimossa da mgetty, ma quella messa al suo posto è latitante (a meno che voi usiate l'opzione -h (aiuto) quando lanciate certi programmi, ecc). Ma si potrebbero consultare i messaggi circa l'uso che vengono inviati nel newsgroup di mgetty. Vedere A proposito di mgetty e >. Sembra che vgetty sia attualmente non molto stabile ma che venga usato con successo e che il suo sviluppo continui. Se questa è l'ultima versione di questo HOWTO qualcuno che è familiare con vgetty mi faccia cortesemente sapere lo stato attuale delle cose.


Avanti Indietro Indice