Provided by: manpages-ro_4.23.1-1_all bug

NUME

       chat - script conversațional automatizat cu un modem

SINOPSIS

       chat [ opțiuni ] script

DESCRIERE

       Programul chat definește un schimb conversațional între calculator și modem. Scopul său principal este de
       a  stabili  conexiunea între demonul protocolului punct-la-punct („Point-to-Point Protocol Daemon”: pppd)
       și procesul pppd de la distanță.

OPȚIUNI

       -f <fișier-chat>
              Citește scriptul de chat din fișierul fișier-chat. Utilizarea acestei opțiuni se exclude  reciproc
              cu  parametrii  scriptului  de  chat. Utilizatorul trebuie să aibă acces de citire la fișier. Sunt
              permise mai multe linii în fișier. Pentru a separa șirurile de caractere trebuie să  se  utilizeze
              spații sau caractere de tabulare orizontală.

       -t <timp-așteptare>
              Stabilește  timpul  de  așteptare  pentru  primirea șirului așteptat. Dacă șirul nu este primit în
              termenul limită, atunci șirul de răspuns nu este trimis. Se poate trimite  un  răspuns  alternativ
              sau  scriptul  va  eșua  dacă  nu  există un șir de răspuns alternativ. Un script eșuat va face ca
              programul chat să se încheie cu un cod de eroare diferit de zero.  Puteți  utiliza,  de  asemenea,
              șirul TIMEOUT pentru a specifica timpul de așteptare.

       -r <fișier-raport>
              Stabilește  fișierul  de  ieșire  a șirurilor de raport. Dacă se utilizează cuvântul cheie REPORT,
              șirurile rezultate sunt scrise în acest fișier. Dacă  nu  se  utilizează  această  opțiune  și  se
              utilizează în continuare cuvintele cheie REPORT, fișierul stderr (ieșirea de eroare standard) este
              utilizat pentru șirurile de raport.

       -e     Începe  cu  opțiunea  de  ecou  activată.  Ecoul  poate fi, de asemenea, activat sau dezactivat în
              anumite puncte ale scriptului de chat prin utilizarea cuvântului cheie ECHO. Atunci  când  funcția
              de ecou este activată, toate ieșirile de la modem sunt transmise la stderr.

       -E     Permite înlocuirea variabilelor de mediu în scripturile de chat folosind sintaxa standard $xxx.

       -v     Solicită  ca  scriptul  chat  să fie executat în modul descriptiv. Programul chat va consemna apoi
              starea de execuție a scriptului de chat, precum și toate textele primite de la modem  și  șirurile
              de  ieșire  trimise la modem. În mod implicit, se înregistrează prin intermediul SYSLOG; metoda de
              înregistrare poate fi modificată cu ajutorul opțiunilor „-S” și „-s”.

       -V     Solicită ca scriptul chat să fie executat în  modul  descriptiv  la  ieșirea  de  eroare  standard
              (stderr).  Astfel,  programul chat va înregistra pe dispozitivul „stderr” toate textele primite de
              la modem și șirurile de ieșire trimise la modem. Acest dispozitiv este de obicei consola locală de
              la stația care execută programul chat sau pppd.

       -s     Utilizează ieșirea de eroare standard (stderr). Toate mesajele de jurnal de la  opțiunea  „-v”  și
              toate mesajele de eroare vor fi trimise la stderr.

       -S     Nu  utilizează  SYSLOG.  În  mod  implicit,  mesajele de eroare sunt trimise la SYSLOG. Utilizarea
              opțiunii „-S” va împiedica atât mesajele de jurnal de la opțiunea „-v”, cât și mesajele de  eroare
              să fie trimise la SYSLOG.

       -T <număr-telefon>
              Introduce un șir arbitrar, de obicei un număr de telefon, care va fi înlocuit cu metacaracterul de
              substituție \T într-un șir de trimitere.

       -U <număr-telefon2>
              Introduce  un  al  doilea  șir de caractere, de obicei un număr de telefon, care va fi înlocuit cu
              metacaracterul de substituție \U într-un șir de trimitere. Acest lucru este util  atunci  când  se
              apelează un adaptor de terminal ISDN care necesită două numere.

       script În  cazul  în care scriptul nu este specificat într-un fișier cu opțiunea -f, atunci scriptul este
              inclus ca parametri pentru programul chat.

SCRIPT CHAT

       Scriptul chat definește comunicațiile.

       Un script este format din una sau mai multe perechi de șiruri „așteaptă-trimite”, separate  prin  spații,
       cu  o  pereche  opțională  de șiruri subiacentă „așteaptă-trimite”, separate prin liniuță, ca în exemplul
       următor:

              ogin:-BREAK-ogin: ppp ssword: hello2u2

       Această linie indică faptul că programul chat ar trebui să aștepte șirul de caractere „ogin:”.  În  cazul
       în  care  nu primește o solicitare de conectare în intervalul de timp alocat, acesta trebuie să trimită o
       secvență de întrerupere la distanță și apoi să aștepte șirul „ogin:”. Dacă se  primește  primul  „ogin:”,
       atunci secvența de întrerupere nu este generată.

       Odată  ce  a  primit  solicitarea  de  conectare,  programul chat va trimite șirul ppp și apoi va aștepta
       solicitarea „ssword:”. Când primește solicitarea de introducere a parolei, va trimite parola hello2u2.

       În mod normal, după șirul de răspuns se trimite un retur de cărucior. Acesta nu este  așteptat  în  șirul
       „așteaptă ” decât dacă este solicitat în mod special prin utilizarea secvenței de caractere \r.

       Secvența „așteaptă” ar trebui să conțină doar ceea ce este necesar pentru a identifica șirul. Deoarece în
       mod  normal  este stocată într-un fișier pe disc, nu trebuie să conțină informații variabile. În general,
       nu este acceptabil să se caute șiruri de timp, șiruri de identificare a rețelei sau alte  date  variabile
       ca șir de așteptare.

       Pentru  a  ajuta la corectarea caracterelor care pot fi corupte în timpul secvenței inițiale, caută șirul
       „ogin:” în loc de „login:”. Este posibil ca caracterul „l” din față să fie primit din  greșeală  și  este
       posibil  să  nu  găsiți niciodată șirul, chiar dacă a fost trimis de sistem. Din acest motiv, scripturile
       caută „ogin:” mai degrabă decât „login:” și „ssword:” mai degrabă decât „password:”.

       Un script foarte simplu ar putea arăta în felul următor:

              ogin: ppp ssword: hello2u2

       Cu alte cuvinte, așteaptă ....ogin:, trimite ppp, așteaptă ...ssword:, trimite hello2u2.

       În practica reală, scripturile  simple  sunt  rare.  Cel  puțin,  ar  trebui  să  includeți  secvențe  de
       sub-așteptare  în cazul în care șirul original nu este primit. De exemplu, luați în considerare următorul
       script:

              ogin:--ogin: ppp ssword: hello2u2

       Acesta ar fi un scenariu mai bun decât cel simplu folosit anterior. Acesta ar  căuta  aceeași  solicitare
       login:, însă, dacă nu se primește una, se trimite o singură secvență de returnare și apoi se va căuta din
       nou  login:.  În  cazul  în  care  zgomotul  de  linie  ascunde prima solicitare de autentificare, atunci
       trimiterea liniei goale va genera, de obicei, o nouă solicitare de autentificare.

COMENTARII

       Comentariile pot fi încorporate în scriptul de chat. Un comentariu este o linie care începe cu caracterul
       # (hash) în coloana 1. Astfel de linii de comentariu sunt pur și simplu ignorate de  programul  de  chat.
       Dacă  trebuie  așteptat  un  caracter  „#”  ca prim caracter al secvenței expect, trebuie să puneți între
       ghilimele șirul așteptat. Dacă doriți să așteptați o solicitare care începe cu un caracter #  (hash),  ar
       trebui să scrieți ceva de genul acesta:

              # Acum așteaptă promptul și trimite șirul de ieșire din sesiune
              '# ' logout

TRIMITEREA DE DATE DINTR-UN FIȘIER

       Dacă  șirul  de trimis începe cu un semn (@), restul șirului este considerat a fi numele unui fișier care
       trebuie citit pentru a obține șirul de trimis. În cazul în care ultimul caracter al datelor citite este o
       linie nouă, acesta este eliminat. Fișierul poate fi o conductă cu nume (sau fifo) în  loc  de  un  fișier
       obișnuit.  Acest  lucru  oferă  o modalitate prin care chat să comunice cu un alt program, de exemplu, un
       program care să solicite utilizatorului și să primească o parolă tastată de acesta.

ȘIRURI ABORT

       Multe modemuri vor raporta starea apelului sub  forma  unui  șir  de  caractere.  Aceste  șiruri  pot  fi
       CONNECTED  (conectat)  sau  NO  CARRIER  (fără  purtătoare) sau BUSY (ocupat). Adesea este de dorit să se
       încheie scriptul în cazul în care modemul nu reușește să se conecteze la distanță. Dificultatea constă în
       faptul că un script nu ar ști cu exactitate ce șir de caractere de modem ar putea primi. La o  încercare,
       poate primi BUSY, în timp ce data următoare poate primi NO CARRIER.

       Aceste șiruri „abort” pot fi specificate în script folosind secvența ABORT. Aceasta se scrie în script ca
       în exemplul următor:

              ABORT BUSY ABORT 'NO CARRIER' ” ATZ OK ATDT5551212 CONNECT

       Această  secvență  nu  va  aștepta  nimic,  iar  apoi va trimite șirul ATZ. Răspunsul așteptat la această
       secvență este șirul OK. Atunci când primește OK, șirul ATDT5551212 pentru a  marca  numărul  de  telefon.
       Șirul  așteptat  este  CONNECT.  Dacă  se  primește șirul CONNECT, se execută restul scriptului. Cu toate
       acestea, în cazul în care modemul găsește un telefon ocupat, acesta va trimite șirul BUSY. Acest lucru va
       face ca șirul să se potrivească cu secvența de caractere de anulare.  În  acest  caz,  scriptul  va  eșua
       deoarece  a  găsit  o  corespondență cu șirul de caractere de anulare. În cazul în care a primit șirul NO
       CARRIER, acesta va eșua din același motiv. Se poate primi oricare dintre aceste  șiruri.  Oricare  dintre
       cele două șiruri va încheia scriptul chat.

ȘIRURI CLR_ABORT

       Această secvență permite ștergerea șirurilor ABORT definite anterior. Șirurile ABORT sunt păstrate într-o
       matrice  de  o  dimensiune  predeterminată (la momentul compilării); CLR_ABORT va recupera spațiul pentru
       intrările șterse, astfel încât noile șiruri să poată utiliza acel spațiu.

ȘIRURI SAY

       Directiva SAY permite scriptului să trimită  șiruri  de  caractere  către  utilizator  la  terminal  prin
       intermediul ieșirii de eroare standard. În cazul în care chat este rulat de «pppd», iar «pppd» rulează ca
       un  demon (detașat de terminalul care îl controlează), ieșirea de eroare standard va fi redirecționată în
       mod normal către fișierul „/etc/ppp/connect-errors”.

       Șirurile SAY trebuie să fie incluse în ghilimele simple sau duble. În cazul în care este nevoie de  retur
       de cărucior și de avans de linie în șirul de ieșire, trebuie să le adăugați în mod explicit la șir.

       Șirurile  SAY  pot  fi  utilizate pentru a transmite mesaje de progres în secțiuni ale scriptului în care
       doriți ca „ECHO OFF” să fie dezactivat, dar utilizatorul să știe totuși ce se întâmplă. Un exemplu este:

              ABORT BUSY
              ECHO OFF
              SAY "Se apelează furnizorul dvs. de servicii de internet (ISP)...\n"
              ” ATDT5551212
              TIMEOUT 120
              SAY "Se așteaptă până la 2 minute pentru conectare... "
              CONNECT ”
              SAY "Conectat, acum se autentifică...\n"
              ogin: account
              ssword: pass
              $ \c
              SAY "Ok, Autentificat...\n" etc ...

       Această secvență va prezenta utilizatorului doar șirurile SAY, iar toate detaliile scriptului vor  rămâne
       ascunse. De exemplu, dacă scriptul de mai sus funcționează, utilizatorul va vedea:

              Se apelează furnizorul dvs. de servicii de internet (ISP)...
              Se așteaptă până la 2 minute pentru conectare...  Conectat, acum se autentifică...
              Ok, Autentificat...

ȘIRURI REPORT

       Un  șir  report  este similar cu șirul ABORT. Diferența constă în faptul că șirurile și toate caracterele
       până la următorul caracter de control, cum ar fi un retur de cărucior, sunt scrise în fișierul de raport.

       Șirurile de raport pot fi utilizate pentru a izola rata de transmisie a șirului de conectare a  modemului
       și  pentru  a  returna  valoarea către utilizatorul chat-ului. Analiza logică a șirului de raport are loc
       împreună cu alte procesări ale șirului, cum ar fi căutarea șirului de așteptare. Utilizarea aceluiași șir
       pentru o secvență de raportare și de anulare nu este probabil foarte utilă, însă este posibilă.

       Șirurile de raport pentru a nu modifica codul de finalizare a programului.

       Aceste șiruri de „raport” pot fi specificate în script folosind secvența  REPORT.  Aceasta  se  scrie  în
       script ca în exemplul următor:

              REPORT CONNECT ABORT BUSY ” ATDT5551212 CONNECT ” ogin: account

       Această  secvență  nu  va  aștepta  nimic;  apoi va trimite șirul ATDT555121212 pentru a forma numărul de
       telefon. Șirul așteptat este CONNECT. Dacă se primește șirul CONNECT, se execută  restul  scriptului.  În
       plus,  programul  va scrie în fișierul de așteptare șirul „CONNECT” plus orice caractere care îl urmează,
       cum ar fi rata de conectare.

ȘIRURI CLR_REPORT

       Această secvență permite ștergerea șirurilor REPORT definite  anterior.  Șirurile  REPORT  sunt  păstrate
       într-o  matrice  de  o dimensiune predeterminată (la momentul compilării); CLR_REPORT va recupera spațiul
       pentru intrările șterse, astfel încât noile șiruri să poată utiliza acel spațiu.

ECHO

       Opțiunile de ecou controlează dacă ieșirea de la modem este transmisă la stderr. Această opțiune poate fi
       definită cu ajutorul opțiunii -e,  dar  poate  fi  controlată  și  prin  cuvântul  cheie  ECHO.  Perechea
       „așteaptă-trimite”  ECHO  ON  activează ecoul, iar ECHO OFF îl dezactivează. Cu acest cuvânt cheie puteți
       selecta ce părți ale conversației trebuie să fie vizibile. De exemplu, cu următorul script:

              ABORT 'BUSY'
              ABORT 'NO CARRIER'
              ” ATZ
              OK\r\n ATD1234567
              \r\n \c
              ECHO ON
              CONNECT \c
              ogin: account

       toate ieșirile rezultate din configurarea și apelarea modemului nu sunt vizibile, dar începând cu mesajul
       CONNECT (sau BUSY), totul va fi transmis.

HANGUP

       Opțiunile HANGUP controlează dacă o deconectare a modemului trebuie  considerată  sau  nu  ca  o  eroare.
       Această opțiune este utilă în scripturile pentru sistemele de apelare care vor închide și vor suna înapoi
       la sistemul dumneavoastră. Opțiunile HANGUP pot fi ON sau OFF.
       Atunci când HANGUP este stabilită la OFF și modemul închide (de exemplu, după prima etapă de conectare la
       un  sistem  de apelare), chat va continua să ruleze scriptul (de exemplu, așteaptă primirea apelului și a
       doua etapă de conectare). De îndată ce apelul primit este conectat, trebuie să utilizați directiva HANGUP
       ON pentru a reinstala comportamentul normal al  semnalului  de  închidere.  Iată  un  script  de  exemplu
       (simplu):

              ABORT 'BUSY'
              ” ATZ
              OK\r\n ATD1234567
              \r\n \c
              CONNECT \c
              'Callback login:' call_back_ID
              HANGUP OFF
              ABORT "Autentificare greșită"
              'Callback Password:' Call_back_password
              TIMEOUT 120
              CONNECT \c
              HANGUP ON
              ABORT "NO CARRIER"
              ogin:--BREAK--ogin: real_account
              etc ...

TIMPUL DE AȘTEPTARE (TIMEOUT)

       Valoarea  inițială a timpului de așteptare este de 45 de secunde. Aceasta poate fi modificată cu ajutorul
       parametrului -t. De asemenea, puteți specifica "TIMEOUT 0".

       Pentru a modifica valoarea timpului de așteptare pentru următorul șir  de  așteptare,  se  poate  utiliza
       următorul exemplu:

              ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5 assword: hello2u2

       Aceasta  va  schimba timpul de așteptare la 10 secunde atunci când se așteaptă la promptul login:. Timpul
       de așteptare este apoi modificat la 5 secunde atunci când se așteaptă la solicitarea parolei.

       Timpul de așteptare, odată modificat, rămâne în vigoare până când este modificat din nou.

TRIMITEREA EOT

       Șirul special de răspuns EOT indică faptul că programul de chat trebuie să trimită un caracter EOT  către
       stația de la distanță. Aceasta este în mod normal secvența de caractere de sfârșit de fișier. După EOT nu
       se  trimite  un  caracter de returnare.  Secvența EOT poate fi încorporată în șirul de trimitere folosind
       secvența ^D.

GENERAREA ÎNTRERUPERII (BREAK)

       Șirul special de răspuns BREAK va determina trimiterea unei condiții de întrerupere. Întreruperea este un
       semnal special pe emițător. Prelucrarea normală pe receptor este de a schimba rata de transmisie.  Acesta
       poate fi utilizat pentru a parcurge ciclic ratele de transmisie disponibile pe stația de la distanță până
       când  veți  putea primi o solicitare de conectare validă. Secvența de întrerupere poate fi încorporată în
       șirul de trimitere utilizând secvența \K.

SECVENȚE DE CONTROL

       Șirurile de așteptare și de răspuns pot conține secvențe de control.  Toate  secvențele  sunt  legale  în
       șirul  de  răspuns.  Multe  dintre  ele  sunt legale în șirul de așteptare. Cele care nu sunt valabile în
       secvența de așteptare sunt indicate astfel.

             Așteaptă sau trimite un șir de caractere nul. Dacă trimiteți un șir  nul,  se  va  trimite  totuși
              caracterul  de  retur.  Această  secvență  poate fi fie o pereche de apostrofuri, fie o pereche de
              caractere de ghilimele.

       \b     reprezintă un caracter de backspace.

       \c     Suprimă linia nouă de la sfârșitul șirului de răspuns. Aceasta este singura metodă de a trimite un
              șir de caractere fără un caracter de retur la sfârșit. Acesta trebuie  să  se  afle  la  sfârșitul
              șirului  de  trimitere. De exemplu, secvența hello\c va trimite pur și simplu caracterele h, e, l,
              l, o. (nevalabil în așteptare).

       \d     Întârzie o secundă. Programul utilizează sleep(1) care va întârzia până la maximum o secundă.  (nu
              este valabil în așteptare).

       \K     Introduce o întrerupere BREAK (nevalabil în așteptare).

       \n     Transmiteți un caracter de linie nouă sau de salt de linie.

       \N     Trimite un caracter nul. Aceeași secvență poate fi reprezentată prin  \0.   (nu  este  valabil  în
              așteptare).

       \p     Face  o  pauză de o fracțiune de secundă. Întârzierea este de 1/10 de secundă. (nu este valabil în
              așteptare).

       \q     Suprimă scrierea șirului în fișierul SYSLOG. Șirul ?????? este scris în jurnal în locul  acestuia;
              (nu este valabil în așteptare).

       \r     Trimite sau așteaptă un retur de cărucior.

       \s     Reprezintă  un caracter spațiu în șirul de caractere. Acesta poate fi utilizat atunci când nu este
              de dorit să se citeze șirurile care conțin spații. Secvența 'Salut Andrei!' și Salut\sAndrei! sunt
              identice.

       \t     Trimite sau așteaptă un caracter de tabulare.

       \T     Trimite șirul de număr de telefon specificat cu opțiunea -T; (nevalabil în așteptare).

       \U     Trimite șirul de numere de telefon 2, așa cum  este  specificat  cu  opțiunea  -U;  (nevalabil  în
              așteptare).

       \\     Trimite sau așteaptă un caracter de bară oblică inversă.

       \ddd   Restrânge  cifrele  octale  (ddd)  într-un singur caracter ASCII și trimite acest caracter; (unele
              caractere nu sunt valabile în așteptare).

       ^C     Substituie secvența cu caracterul de control reprezentat de C. De  exemplu,  caracterul  DC1  (17)
              este prezentat sub forma ^Q; (unele caractere nu sunt valabile în așteptare).

VARIABILE DE MEDIU

       Variabilele de mediu sunt disponibile în cadrul scripturilor de chat, dacă opțiunea -E a fost specificată
       în  linia  de  comandă. Metacaracterul $ este utilizat pentru a introduce numele variabilei de mediu care
       trebuie înlocuită. În cazul în care substituția eșuează, deoarece variabila de mediu solicitată  nu  este
       definită, se înlocuiește variabila cu nothing.

CODURI DE IEȘIRE

       Programul chat se va încheia cu următoarele coduri de finalizare.

       0      Încheierea  normală  a  programului.  Aceasta indică faptul că scriptul a fost executat fără erori
              până la încheierea normală.

       1      Unul sau mai mulți parametri nu sunt valabili sau un șir de așteptare  a  fost  prea  mare  pentru
              tampoanele interne. Acest lucru indică faptul că programul nu a fost executat corect.

       2      A  apărut  o  eroare  în  timpul  executării programului. Aceasta se poate datora unei operații de
              citire sau de scriere care a eșuat dintr-un anumit motiv sau la primirea  de  către  chat  a  unui
              semnal, cum ar fi SIGINT.

       3      Un eveniment de depășire a timpului de așteptare a avut loc atunci când a existat un șir așteptare
              fără  a  avea  un șir subiacent „-trimitere”. Acest lucru poate însemna că nu ați programat corect
              scriptul pentru această condiție sau că a avut loc un eveniment neașteptat și șirul așteptat nu  a
              putut fi găsit.

       4      A apărut primul șir marcat ca fiind o condiție ABORT.

       5      Cel de-al doilea șir marcat ca fiind o condiție ABORT a apărut.

       6      Al treilea șir marcat ca fiind o condiție ABORT a apărut.

       7      Al patrulea șir marcat ca fiind o condiție ABORT a apărut.

       ...    Celelalte coduri de terminare sunt, de asemenea, șiruri marcate ca o condiție ABORT.

       Cu  ajutorul codului de terminare, este posibil să se determine ce eveniment a pus capăt scriptului. Este
       posibil să se decidă dacă șirul „BUSY” a fost primit de la modem, spre deosebire de „NO  DIAL  TONE”.  În
       timp ce primul eveniment poate fi încercat din nou, al doilea va avea probabil puține șanse de reușită în
       timpul unei noi încercări.

CONSULTAȚI ȘI

       Informații  suplimentare despre scripturile chat pot fi găsite în documentația UUCP. Scriptul chat a fost
       preluat din ideile propuse de scripturile folosite de programul uucico.

       uucico(1), uucp(1)

DREPTURI DE AUTOR

       Programul chat este în domeniul public. Aceasta nu este licența publică GNU. Dacă se rupe, atunci  puteți
       păstra ambele bucăți.

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  NICIO
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

Chat versiunea 1.22                                22 mai 1999                                           CHAT(8)