  PPP-over-minicom mini-HOWTO
  Winfried Trmper (winni@xpilot.org)
  v0.2 01 Maggio 1998

  Desiderate controllare il PPP utilizzando una utility controllata da
  un men? Un database facile ma potente con i numeri di telefono del
  vostro ISP? Volete vedere cosa succede quando vi loggate? Allora
  questo mini-HOWTO  per voi!
  ______________________________________________________________________

  Indice Generale


  1. Introduzione
     1.1 Il programma terminale "minicom"
     1.2 Commenti e critiche
     1.3 Bug conosciuti

  2. Effettuare una chiamata con minicom
     2.1 Configurare minicom
     2.2 Far partire PPP manualmente
     2.3 Valutare i file di log
     2.4 Configurare un numero telefonico
     2.5 Uno script di login
     2.6 Connessione automatizzata alla partenza di minicom
     2.7 Estensioni future


  ______________________________________________________________________

  11..  IInnttrroodduuzziioonnee

  PPP  diventato il protocollo standard per collegarsi ad internet
  tramite connessione dialup. Il demone associato "pppd" comprende una
  utility molto primitiva per il collegamento, che gestisce bene
  solamente configurazioni molto semplici.

  Questo mini-HOWTO descrive una soluzione alternativa basata su
  "minicom".


  11..11..  IIll pprrooggrraammmmaa tteerrmmiinnaallee ""mmiinniiccoomm""

  "minicom"  un programma molto complicato per collegarsi ad altri
  computer (ISP o BBS). Ha un men colorato, un database delle
  connessioni dialup e un potente linguaggio di scripting. Cos viene
  idealmente adattato per l'uso in congiunzione con "pppd".


  11..22..  CCoommmmeennttii ee ccrriittiicchhee

  Sono solamente interessato a commenti e critiche che possano
  migliorare questo mini-HOWTO. Non risponder a domande generali su
  Linux, PPP, SLIP o networking.


  11..33..  BBuugg ccoonnoosscciiuuttii

  Al tempo della scrittura, sembrava che ci fossero alcuni bug in
  "minicom", "runscript" e il metodo descritto sotto:

    "runscript" non aspetta che i programmi esterni finiscano



  print "blah"
  ! sleep 10
  print "blup"



  Questo script esce immediatamente (ma non quando lo si analizza
  tramite strace...)

    "pppd" si impossessa del dispositivo seriale negandolo a minicom
     (quando non alimentato da stdin)
     Sembra che Miquel van Smoorenburg (l'autore di minicom) sia troppo
     occupato per mettersi a lavorare sul problema di cui sopra. Indi
     per cui volontari sono benvenuti.


  22..  EEffffeettttuuaarree uunnaa cchhiiaammaattaa ccoonn mmiinniiccoomm

  Molte guide su PPP raccomandano di lasciare minicom dopo che  stato
  usato per collegarsi. Ma non c' in realt alcuna ragione per lasciare
  questo confortevole programma...


  22..11..  CCoonnffiigguurraarree mmiinniiccoomm

  Eseguite "minicom -s" e scegliete dal men la voce "Serial port
  setup". La prima voce dovrebbe essere "Serial Device".  Questa 
  l'opzione pi importante: il dispositivo seriale a cui  collegato il
  vostro modem.  (Qualche volontario per fare in modo che minicom
  gestisca pi dispositivi seriali alla volta?)

  Per avere il nome del file del dispositivo, al quale  collegato il
  vostro modem, digitate i seguenti commandi:



       for i in 0 1 2 3
       do
         if (chat -v -t 5 "" ATZ "" \\d "" ATZ OK "" > /dev/ttyS$i < /dev/ttyS$i)
         then
            echo "Modem in /dev/ttyS$i (= COM$[$i+1] sotto DOS)"
         else
            echo "Nessun Modem trovato in ttyS$i."
         fi
       done



  Il codice sopra assicura che il modem sia configurato correttamente.
  Alcune persone hanno problemi con i modem plug-and-play, il che
  dimostra che "plug-and-play"  pi che una "lite" di mercato.

  Adesso provate a comporre un numero col comando "atdt5" (dt sta per
  "componi usando il metodo a toni"). Se non sentite un dialtone,
  controllate i cablaggi. Il vostro modem protester con il messaggio
  "no dialtone" e annuller il comando. Se il vostro sistema telefonico
  non ha un dialtone, potete voler dirlo al vostro modem con "x3",
  perci il comando da provare  "atx3dt5".

  Se ottenete il dialtone, ma la composizione non ha effetto, allora
  potete riprovare con il metodo "pulse dialing" (usate "dp" invece del
  "dt" di prima). In ogni caso, premete la barra spazio per interrompere
  l'ultimo comando.

  Prendete nota del comando che ha successo. Infine andate su "Modem and
  dialing parameter setup" in minicom e modificate "Dialing prefix" per
  adattarvi ai vostri bisogni. Potete inserire "l0m0" direttamente dopo
  AT per spegnere lo speaker prima di prendere la linea telefonica.


  22..22..  FFaarr ppaarrttiirree PPPPPP mmaannuuaallmmeennttee

  Pu darsi che abbiate gi provato a comporre il numero telefonico del
  vostro ISP invece di "5". Avete visto caratteri divertenti sullo
  schermo dopo il login (altrimenti, digitate "ppp")?  Risultano dal
  "pppd" (o equivalente) fatto partire all'altra parte della linea. Se 
  cos, potete provare a far partire il pppd daemon sul vostro sistema e
  poi valutare i file di log.

  Per far partire "pppd" dentro minicom, potete definire un nuovo metodo
  di upload (capite da soli come) o ridefinire l'opzione "kermit
  program" dal men di configurazione "Filename and paths":



       A - Download directory :
       B -   Upload directory :
       C -   Script directory :
       D -     Script program : /usr/bin/runscript
       E -     Kermit program : /usr/sbin/pppd file /etc/ppp/mini_options



  Adesso se vedete quei caratteri divertenti la prossima volta che vi
  collegate al vostro ISP potete premere <Alt-K> per far partire "pppd".

  Il resto di questo mini-HOWTO si occupa di automatizzare il processo
  di login e di partenza di "pppd".


  22..33..  VVaalluuttaarree ii ffiillee ddii lloogg

  Sebbene io non voglia spiegare come PPP deve essere configurato, do un
  breve consiglio su come leggere il file di log. Per estrarre le
  informazioni essenziali dal file di log "/var/log/debug" (o
  l'altervativo "/var/log/daemon.log") eseguite i comandi


       tail -n 40  /var/log/debug |\
               grep -E " pppd\[[0-9]*\]:" |\
               sed -e "s/^.*pppd\[/[/"



  Dovreste vedere messaggi del tipo



       sent [LCP ConfReq id=0x1 <mru 296>]
       rcvd [LCP ConfRej id=0x1 <mru 296>]



  che indicano che abbiamo spedito una config-request per configurare la
  "maximum receive unit" a 296. L'altro lato rifiuta questa opzione
  ("configuration rejected"). In questo caso ho solamente rimosso
  l'opzione "mru" da "/etc/ppp/options" (vedete sotto).
  22..44..  CCoonnffiigguurraarree uunn nnuummeerroo tteelleeffoonniiccoo

  Se ci che abbiamo visto sopra ha avuto successo, potete voler
  immagazzinare un numero telefonico nel database di minicom. Premete
  <Alt-D> per vedere il men di composizione e usate i tasti cursore per
  selezionare "Edit":


       A -  Name                : Xeno
       B -  Number              : 022039697303
       C -  Dial string #       : 1
       D -  Local echo          : No
       E -  Script              : /etc/ppp/login.script
       F -  Username            : ppp-382
       G -  Password            : top-secret
       H -  Terminal Emulation  : VT102
       I -  Backspace key sends : Delete
       J -  Linewrap            : Off
       K -  Line Settings       : Curr 8N1



  Questa  una entry di esempio per collegarmi a uno dei miei ISP. Lo
  script "/etc/ppp/login.script" viene mostrato sotto. Due variabili
  speciali sono passate a questo script: $(LOGIN) e $(PASS) che sono
  impostate ai valori scelti per username (F) e password (G). Questa
  caratteristica rende minicom piuttosto flessibile perch avete bisogno
  di un solo script per automatizzare il vostro login a molti ISP.


  22..55..  UUnnoo ssccrriipptt ddii llooggiinn

  "minicom" fa partire lo script di login dopo che riceve la stringa
  "CONNECT". Ad essere precisi, "minicom" non esegue lo script da solo
  ma chiama l'utility "runscript" come sottoprocesso.

  Sotto c' un esempio,  quello che uso per i miei ISP.



  # v1.0, 20.08.96 Winfried Trmper <winni@xpilot.org>
  print ""
  print "Automatic login via /etc/ppp/login.script"

  ## uncomment if you need to press enter to get the prompt
  #send ""

  expect {
  "ogin:"
  "ogin>"
  "sername:"
  "sername>"
  "NO CARRIER" exit 1
  }
  send "$(LOGIN)"
  expect {
          "assword:"
          "assword>"
          timeout 20
  }
  send "$(PASS)"
  expect {
          "port"  send "ppp"
          "Start your PPP now"
          "}!}!}"
          timeout 10
  }
  print ""
  print "Now switching into ppp-mode ..."
  print ""

  ! /usr/sbin/pppd  file /etc/ppp/mini_options

  print ""
  print "the command   killall -TERM pppd   terminates pppd"



  La capacit di "runscript" di chiamare programmi esterni  usata per
  far partire "pppd". Copiate il vostro file di opzioni per ppp in
  "/etc/ppp/options.ttyS1" (dove dovete sostituire "ttyS1" col
  dispositivo a cui il vostro modem  connesso) e cancellate tutte le
  linee da /etc/ppp/options che sono specifiche per il vostro modem
  (come "connect", "crtscts" o "modem"). Mettete le opzioni che
  dovrebbero essere specifiche alla connessione ppp con minicom in
  "/etc/ppp/mini_options". Una di queste opzioni dovrebbe essere


       disconnect "chat '' '\d\d+++\d\dATH\r\c'"



  Questo  un must perch "pppd"  alimentato dallo standard input e non
  pu scollegare il modem con "crtscts". Ecco il mio
  /etc/ppp/mini_options:



  debug
  -detach
  defaultroute
  netmask 255.255.255.0
  mru 1500
  mtu 1500
  asyncmap 00000000
  disconnect "chat '' '\d\d+++\d\dATH\r\c'"



  22..66..  CCoonnnneessssiioonnee aauuttoommaattiizzzzaattaa aallllaa ppaarrtteennzzaa ddii mmiinniiccoomm

  Usate l'opzione "-d" per comporre un certo numero telefonico all'avvio
  di minicom. Potete anche provare



       open -sl -- minicom -d 1



  Per mettere minicom su un'altra console (consultate il Consoles-Many
  mini-HOWTO per i dettagli).


  22..77..  EEsstteennssiioonnii ffuuttuurree

  Poich "pppd"  un demone non  stato designato per interagire con
  l'utente o essere osservato. In questo modo  ok. Dopo tutto, stiamo
  usando un sistema operativo unix-like...

  La soluzione canonica  un backend. C' qualche volontario per
  lavorare a questo per minicom? Delle estensioni carine potrebbero
  essere:


    generazione automatica della script di login guardando l'utente che
     si collega manualmente

    valutazione automatica del file di log con la correzione delle
     opzioni

    estrazione di messaggio come mostrato in 2.3.

  Fine del PPP-over-minicom mini-HOWTO

  Traduzione italiana a cura di Nicola Girardi (girardi@keycomm.it)



