terminal, ppp ja callback

teejuht

                        1. Sissejuhatus
                        2. Serveri ja koduarvuti tööleseadmine
                        3. ppp - ühenduse loomine
                        4. callback
                        5. US Robotics 34V käsud

1. Sissejuhatus

Kolmes juba varem valmis kirjutatud punktis on juttu sarnastest või vähemalt asjaga seotud teemadest:

- modemi töö põhimõtte selgitus
- kuidas olemasoleva nn. ppp serveriga ühendust saada
- kuidas PC'd terminaliks panna üle null-modemi kaabli

Järgnev eeldab, et nood lood on läbi loetud ja soovitavalt ka järgi proovitud.

Siin jätkuv tahab olla õpetus sellest kuidas panna tööle nn. ppp server ja õpetada serverile ja kliendile callback'i.

Callback tähenab nagu ta tõlkes tähendab 'tagasi helistamine'. Seega, ütleme etteruttavalt ära, et kui callback on realiseeritud, siis toimub midagi järgmist:

kodus on teil üks modemiga arvuti ja telefon. Töökohas on teil teine modemiga arvuti ja telefon; kusjuures töökoha arvutil, edaspidi serveril on ka püsiühendus Internet'ga. Ja mida me taotleme on see, et

- helistame kodust modemiga töökohta
- töökohas vastab meile modem
- server saab teada kes helistas (kasutaja cbtome keda tegelikult polegi /home kataloogis) kuivõrd sisestame erilise kasutajanime; - - liin pannakse korraks maha st. torud hargile
- serveri modem helistab meile koju ja sisselogimine jätkub; sisselogimine võib lõppeda terminali rezhiimiga või ppp ühendusega
- kui asjad aetud paneme liini maha.
 

2. Serveri tööleseadmine

Kõige parem on seda teha nii, et varem on kindlaks tehtud, et kodust saab modemiga välja helistada ning luua ppp ühenduse - nt mõnda juba töötavasse IPS ppp serverisse ja nt minicomi'ga. Muuseas ppp ühenduse võimelisus tähendab ka kerneli sättimist (vt. ISP punkti).

Lihtsalt veenduge, et teie poolt on kõik korras:

- too IPS server hakkab küsima login name'i ja parooli
- seejärel logitakse teid sisse ja saate ette käsurea.
- tavaliselt see käsurida ei reageeri muudele käskudele kui vaid ppp mis on alias pikemale käsule,
nt. 'pppd -detach /dev/ttyS1 115200 &'.
- selle viimase käsu järgi hakkavad tulema ekraanile kummalised sümbolid ja seejärel on vaja kliendis panna minicom kinni toru hargile panemata ning seejärel anda sama käsk (pppd -detach ...) ka kodust. Mis toimub on see, et minicomi'ga käivitati modemid ja viidi asi modemi käsurezhiimist andmevahetusrezhiimi ja seejärel pandi omavahel suhtlema kaks vaimu: pppd'd. Need juba ise omavahel õiendavad ja tavaliselt saavad hakkama.

Niisiis, oletame, et teie kodune arvuti on nö. korras st. suudab mõne töötava IPS'ga ühendust võtta ja ppp püsti panna.

Nüüd pole muud kui serverile hakata õpetama modemiga suhtlemist ja ppp tegemist.

Serveri kernel on vaja ppp ühenduse mõttes kompilleerida nii nagu kodune kerneligi. Ja kõige kindlam on enne serveriga muude asjade tegemist saada ta niikaugele, et ka temaga saad helistada mõnda töötavasse ISP'sse ja luua ppp ühendus. Nagu koduse arvutiga. Jah, tavaliselt seda serverit nii kasutama ei hakata kuid nii saab teha kindlaks, et serveri kerneli kompilleerimine õnnestus ja serveri modem suhtleb serveri arvutiga. Kasutage minicom'i.
 

Niisiis, teie server on võimeline samaks nagu kodune arvutigi: suudab sisse logida ja ppp ühendust teha.

Esimene asi mis on vaja serveris juurde panna on programm mgetty.

mgetty on programm, mis kuulab serial porti (antud juhul seda mille taga on modem) ja kui helistatakse, siis võtab toru peale ettemääratud RING'i (kutsumis-piipi). Peale toru võtmist küsib ta kasutaja nime ja parooli. Kui need sisestatakse, siis on sissehelistaja arvuti serveri terminaliks. St. tal on ees serveri prompt ehk käsurida.

Tavaliselt tuleb mgetty (version 1.0.0) ise kompilleerida (kuidas seda teha on kirjeldatud terminali lehel). Seal on paar tähelepanekut:

policy.h (vt. all pool)

ja midugi lugege ise kaasasolevaid faile!

ja serveri inittab'i tuleb panna juurde rida, nt:

# Dialup lines
#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
d2:12345:respawn:/usr/local/sbin/mgetty -s 115200 ttyS1 vt100

NB! pange omale vastav serial device number: 0, 1 vms.

ja laske serveri init'il oma conf läbi lugeda: 'init q'

Kõigepealt tulekski niipalju käima saada ja siis edasi vaadata.

muide väga abiks on uurida nii kodus kui serveris log faili /var/adm/messages või veel parem teha omale selline /etc/syslog.conf

*.=info;*.=notice                               /usr/adm/messages
*.=debug                                        /usr/adm/debug
*.err                                           /usr/adm/syslog
*.*;mail.none                                   /dev/tty12

ning tõmmata syslogd vaim uuesti käima:

bash# killall -HUP syslogd

Siis saate Alt+F12 peale kõik teated!

mgetty conf failid on kataloogis /usr/local/etc/mgetty+sendfax/ ja seal on üks oluline fail:
login.config:

*       -       -       /bin/login @

seal on tegelikult teisigi aga mina pole neid väga näppinud. Idee on põhimõtteliselt selline, et

- kõige default'imad parameetrid pannakse sisse policy.h 'sse enne kompilleerimist.
- kui on vaja midagi pärast muuta ja ei saa/taha kompilleerida siis tuleb muuta conf faile
- kui konf faile kah muuta ei taha, siis tuleb anda käsurealt parameetrid (st. inittab failist)

Mina tegesin kõige rohkem policy.h failiga (seal on mh. modemi init string, RING'ide arv, flow control ja kiirus sees)

No nalja pärast, minu 'bash# grep ^#  policy.h' selline:

#ident "@(#)policy.h    4.1 97/01/12 Copyright (c) Gert Doering"
#define MGETTY_CONFIG "mgetty.config"
#define SENDFAX_CONFIG "sendfax.config"
#define LOGIN_CFG_FILE "login.config"
#define DEFAULT_LOGIN_PROGRAM "/bin/login"
#define CALLBACK_CONFIG "callback.config"
#define GETTYDEFS "/etc/gettydefs"
#define GETTYDEFS_DEFAULT_TAG "n"
#define DEVICE_OWNER    "uucp"
#define DEVICE_GROUP    "modem"
#define FILE_MODE 0660
#define CONSOLE "/dev/console"
#define LOG_PATH "/tmp/log_mg.%s"
#define LOG_LEVEL L_MESG
#define ADMIN   "root"
#define SYSLOG
#define SYSLOG_FC LOG_AUTH
#define LOGIN_PROMPT    "@!login: "
#define MAX_LOGIN_TIME  30
#define NOLOGIN_FILE "/etc/nologin.%s"
#define MGETTY_PID_FILE "/etc/mg-pid.%s"
#if defined (SVR4) || defined(sunos4)
# define LOCK_PATH "/var/spool/locks"
# define LOCK      "/var/spool/locks/LCK..%s"
#else
# ifdef sgi
#  define LOCK  "/usr/spool/locks/LCK..%s"
# endif
# ifdef _AIX
#  define LOCK  "/etc/locks/LCK..%s"
# endif
# ifdef NeXT
#  define LOCK "/usr/spool/uucp/LCK/LCK..%s"
# endif
# ifdef linux
#  define LOCK  "/var/lock/LCK..%s"
# endif
#endif
#ifndef LOCK
#define LOCK "/usr/spool/uucp/LCK..%s"
#endif
#define LOCKS_BINARY 0
#define DEFAULT_PORTSPEED       38400
#define MODEM_INIT_STRING       "ATS0=0Q0&D3&C1"
#define MODEM_CMD_SUFFIX "\r\n"
#define MODEM_CHECK_TIME 3600
#define DEFAULT_MODEMTYPE "auto"
#define DO_CHAT_SEND_DELAY 50
#define FAX_COMMAND_DELAY 50
#define FAX_IN_OWNER    "uucp"
#define FAX_FILE_MODE 0660
#define DATA_FLOW       FLOW_HARD
#define FAXREC_FLOW     FLOW_HARD | FLOW_SOFT
#define FAXSEND_FLOW    FLOW_HARD | FLOW_SOFT
#define FAX_LOG         "/usr/spool/fax/Faxlog"
#define FAX_STATION_ID  "49 89 xxxxxxxx"
#define FAX_SEND_BAUD 38400
#define FAX_DIAL_PREFIX "ATD"
#define FAX_SEND_MAX_TRIES 3
#define FAX_MODEM_TTYS  "tty4c:tty4d"
#ifdef SVR4
# define MAILER         "/usr/bin/mailx -s 'Incoming facsimile message'"
#else
# ifdef _AIX
#  define MAILER        "/usr/sbin/sendmail"
#  define NEED_MAIL_HEADERS
# endif
# ifdef M_UNIX          /* SCO */
#  define MAILER        "/usr/lib/mail/execmail"
#  define NEED_MAIL_HEADERS
# endif
#endif
#ifndef MAILER
# define MAILER         "/usr/lib/sendmail"
# define NEED_MAIL_HEADERS
#endif
#define MAIL_TO         "faxadmin"
#define FAX_NOTIFY_PROGRAM "/usr/local/lib/mgetty+sendfax/new_fax"
#define MINFREESPACE 1024

Niisiis, mgetty peaks teil võimaldama sisse logida. Proovige, käivitage kodus minicom ja helistage serveri modemile. Vaadakse
- millise ringi ajal ta vastab ja kas seda saab ettemäärata. Määrake nt. 6 RING modemile
- proovige erinevaid initstringe (tavaliselt on modemitel erinevaid töötavaid võimalusi miljoneid :)
- milline prompt on

jne. Minul oli kord jama sellega ,et mgetty küsis ja sai kasutajanime aga parooli ei küsinud. Siis tegein ilma paroolita kasutaja aga see on väga mitteturvaline ja ajutine lahendus. Mgetty'i annab ikka palju debug'i log faili ja sealt peaks aru saama mis toimub; või vähemalt saate end teaha arusaadavaks teistelt küsides.

Te peaksite saama serveri prompti minicomi aknasse ette. Ühendus peaks katkema kui minicom'is teha hung-up.
 

3. ppp - ühenduse loomine

Järgmine samm on saada käima teie serveri ja kodu arvuti vahel ppp ühendus. ppp tähendab, et teil kodu arvuti mitte ei ole enam terminal vaid on IP aadressiga teistega täiesti võrdväärne arvuti. Selles kas ppp läks tööle saate veenduda käsuga 'route -n' või vaadake lihtsalt log'i (/dev/tty12!).

Ilmselt kodu poolel on teil olemas kõik pppd vaimule vajalikud options failid (kataloogis /etc/ppp).

Serveri poole on vaja sellised pppd vaimule vahalikke opioneid olemasolevate asemele (viimati sätitud ppp'ga seotud failid võimaldasid serverist ppp'd teha kliendina!):

options:

asyncmap 0
proxyarp
lock
crtscts
passive
modem

(kliendi jaoks on see selline options:

lock
defaultroute
noipdefault
modem
/dev/ttySx
115200
crtscts
passive

jah ?

peale selle võib teha iga kasutaja veel oma ~/.ppprc options faili)
 

Sellest mida miski option teeb on väga hea koht lugeda kui tõmmata ära pppd source ja seal on ühes tohutult FAQ ja doc asju!
Seal on ka peatutud turvaküsimustel. Kes ja milliselt numbrilt sisse helistada saab jne.

options.ttySx

192.168.1.173:192.168.1.1
netmask 255.255.255.0

Siin on idee selline, et

- kõige defaultimad optionid on options failis (kõigi serialide kohta)
- pordi spetsiifiised asjad on options.ttySx failis, x asemel on arv
- ja pppd käsurealt saab kah asju kõige lõplikumalt määrata

See fail määrab milliseks saab pppd ühenduse tekkides uue serial võrguseadme IP aadress. Üks on kohalik ja teine kauge (st. klient). Netmask on nagu ikka netmask :) Kui aus olla siis on mulle see koht veidi segane, eriti mis puutub proxyarp'i, aga ta ikkagi töötab!
Nagu ma aru saan on proxiarp'i mõte see, et server teeskleb kogu maailmale et tema on peale selle et ta on server ka teie arvuti ja võtab vastu teile suunatud IP datagrammid. Tegelikult saadab ta need aga teile edasi. Minu juurdepääsetavas serveris on nii, et töötab maskeraad arvutiklassi 192.168.1.0 alamvõrgule ja minu kodune arvuti on efektiivselt ppp ühenduse ajal lihtsalt üks maskeraadi taga olevatest arvutitest. Samuti on nn. ppp ja callback'i server ka ise nimeserveriks.  Kui jamada ppp ja üldse võrguga, siis on tavaliselt ikka mõistlik teha migil tasemel ip filtreerimist või maskeraadi või ip dorwardimist. Nii et neid teemasid tasub uurida.

ja veel on kaks faili mille tähendus on obscure, aga nende olemasolu/mitteolemasoluga võib mängida:

user-options:

asyncmap 1
proxyarp
lock
crtscts
passive
modem
debug

pap-secrets:

*       *       ""

muide, siin on vahel tab'id mitte tühikud ja lõppu on hea nagu ikka sellistes kohtades panna reavahetus!

Niisiis, kui nimetatud conf failid on valmis, siis võiks proovida nagu ennegi sisselogimist ja seejärel anda terminali promtist serverile käsk startida pppd vaim:

pppd debug -detach /dev/ttySx 115200 &

Panna minicom Ctl+A, Q'ga kinni toru hargile panemata. Ja anda kliendile käsk startida omalt poolt pppd vaim sama käsuga (muidugi õigete serial portidega!)

Ja nüüd vahtige logi; sealt peaks nägema mis toimub ja millised vead ilmnevad. Ega ta kohe kah tööle minema alati pea.

Kui aga õnnestub, siis selle tunneb ära logis ridadest:

local IP aadress:  xxx.xxxx.xxx.xxx
remote IP address: xxx.x.x.xx.

ja samuti nagu üteldud 'route -n' ja ifconfig

ja vaadake ka protsesse: 'ps wax'

Õnne korral peaks te ühenduse saama. Teie masinale omistakse ip aadress ja te saate kasutada ja teie suhtes saab kasutada neid teenuseid mida serveri ip filtreerimise reeglid lubavad.

Nautige ja katsuge:

telnet, ping, netscape, traceroute jne.

Muuseas, tõenäoliselt peate te paika seadma ka oma koduse arvuti nameserveri (tegelikult määrab selle ära vist server) ja muud /etc/ võrku puutuvad failid. Oluline on aru saada, et teie masinal on nüüd vähemalt kaks interface'i : localhost ja ppp0. ppp0 peaks olema defaultroute. See et temast saab defaultroute paneb pppd vaimu konf paika. Ja see mis on teie masina nimi kogu maailma jaoks ei ole määratud mitte teie masina /etc/hosts jms failidega vaid sellega mis on kirjas serveri nimeserveri failides. Antud juhul on küll nii, et teie masin istub maskeraadi taga ja terve maailma jaoks on ta ligipääsmatu, põhimõtteliselt. Ja ongi parem, aga võib teha ka teistmoodi - oleneb vajadusest. Muuseas, et saada netscape paremini tööle tuleks talle anda mingi kohalik webi cache. Minu puhul on squid ka samas masinas kus ppp server. Ja email ning new on omaette probleem, aga see pole otseselt seotud ppp'ga.

ppp ühenduse lõpetamine toimub lihtsalt protsessi killimisega:

kill PID

Tavaliselt on olemas peale installimist vastavad shell scriptid /bin kataloogis aga need on toodud ka ppp ühenduse võtmise lehel.
 

Siinkohal on põhjust asju automatiseerida. Et mitte kasutada ppp ühenduse loomisel kogu aeg minicom'i mis on tülikas. Aga automatiseerimine seisneb kliendi poole pealt mitte serveris shell scriptide kirjutamises. Kliendi jutt on sellel teisel ppp lehel olemas ja tõenäoliselt sama mis teil juba niigi ehk töötas nö. päris ISP'sse helistades. Muuseas, asjade sellise käigu puhul peaks te saama serverisse helistada ka NT'st või W95'st.

Automatiseerimise teeb võimalikuks see, et modem annab verbal vastuseid ja ikka annab neid. chat on programm mis käivitatakse pppd connect optioni tagant ja see ootab midagi ja saadab midagi. Samuti chat'ga saab anda modemile konf käske a la atS0=0 jne.

Modemi käskude uurimisel on väga abiks USB modemi puhul 'AT$'.

4. Callback

Ütlematagi peaks olema selge, et kui kõik mis siiamaani kirjutataud pole mingil põhjusel õnnestundu siis vaevalt, et callback tööle läheb. Aga tööle saab ta näiteks talitades selliselt:

mgetty'ga ühes on callback'i sourced ja ka callback binary kompilleeritakse mgetty't kompilleerides. Mina esimese korraga ei saanud aru, et mis värk on. callback lihtsalt ei lähe tööle. Aga asi oli selles, et /usr/bin/callback oli minu serveris juba varem olemas olnud ja see oli hoopis callback'i kliendi poolt automaatselt tegev shell script! Pärsi callback istus mgetty source tree's ja selle pidi käsitsi kuhugi sobivasse kohta kopeerima (nt. /bin). Muuseas, too teine callback oli väga õpetlik script!

Niisiis, et server teile tagasi helistada oskaks on vaja kirjutada mgetty'i login.config'isse juurde selline rida (kokku on nii):

cbtome   -   -   /bin/callback -x 5 -S 484848
*   -   -   /bin/login @

 
  484848 on kodune number ja '-x 5' on debug level /tmp/ kataloogi iseloomuliku nimega faili :)
kusjuures eraldage väljad tabulaatoritega!

ja nüüd peaks ta teile tagasi helistama. Katsetage siiski alguses minicomiga.

Selgitus ja tegevusõpetus:

1. serveris on mgetty sissehelistamist ootamas.
2. kliendis pole üldse mgetty't (!); helistate minicom'iga serveri modemile
3. mgetty vastab ja küsib kasutajanime
4. sisetate erilise kasutajanime (antud juhul cbtome - call back to me)
5. server käivitab callback programm'i mis tegeleb modemiga - ta helistab teile tagasi; callback'i confion mgetty omade juures
6. kui serveri käivitab callback'i siis liinil ühendus katkeb aga sellest pole midagi (kui on siis minicom'is olles võite päris algul anda käsu at&c0, et teie modem liini äralangemist liiga tõsiselt ei võtaks - minicomi alla äärde ilmub Online)
7. Teie telefon heliseb ja sellega kaasneb minicomi aknas RING. vastake ATA (a- ansver) või AT&c1A - nii toote modemi tavalisse rezhiimi tagasi.
8. nüüd on programm callback oma ülesande täitnud ja serveri mgetty jätkeb peaaegu sealt kus ta pooleli jäi. Küsib kasutaja nime ja parooli ja saate prompti ette. Ainult selle vahega, et teie telefoni arve enam ei jookse!
9. Ja nagu ikka, võite edasi käsivitada mõlemalt poolt pppd vaimud ja luua point to point  protocoliga (ppp) ühenduse.

Muuseas, kogu katsetuste vältel on hea vaada ka telefon ikka pandi ära kui te ta enda meeles hargile panite. Samuti an abiks at$'ga nähtud igasugused käsud

Eriti:

ATS0=0 serveris kindlasi, et modem ei võtaks toru kohe ise
ATM0 mõlemal pool, et oleks mute (tumm st. vaikne)
ATLn=saate muuta tugevust
ATZ    reset modem
ATH0      hang up
atdp464474 helista pulss-valimisega
atdt4948484 helista toon-valimisega
atdl  helista viimati valitud numbril
at  kontrollida kas modem ikka reageerib (OK peab tulema vastuseks)

suured või väikesed tähed ei peaks lugema.
 
 

Ja kui callback'i automatiseerida, siis kasutan mina kahte scripti (muuses, /usr/bin/callback'i eeskujul; tõsi scritpe on rohkem). Üks script helistab:

esmalt ppp_cb ja kui toru pandi ära  (mida on logist näha), siis cb_answer
 

/bin/ppp_cb:

  LOCAL_IP=0.0.0.0          # Local IP address if known. Dynamic = 0.0.0.0
  REMOTE_IP=0.0.0.0         # Remote IP address if desired. Normally 0.0.0.0
  NETMASK=255.255.255.252   # The proper netmask if needed
  DIALER_SCRIPT=/etc/ppp/ppp-on-dialer_cb
  /usr/sbin/pppd debug /dev/ttyS1 115200     \
                    $LOCAL_IP:$REMOTE_IP     \
                    connect $DIALER_SCRIPT

/etc/ppp/ppp-on-dialer_cb:

/usr/sbin/chat -v                               \
TIMEOUT         60                              \
ABORT           '\nBUSY\r'                      \
ABORT           '\nNO ANSWER\r'                 \
ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
''              '\rAT'                          \
'OK-+++\c-OK'   'ATL1M0&C1&D2'                  \
OK              ATDP555555                      \
''              'AT'                            \
CONNECT         ''                              \
ogin:    cbtome
 

/bin/cb_answer:

  DIALER_SCRIPT=/etc/ppp/holy1
  exec /usr/sbin/pppd /dev/ttyS1 115200                    \
          $LOCAL_IP:$REMOTE_IP                             \
          connect $DIALER_SCRIPT disconnect /etc/ppp/holy2

/etc/ppp/holy1:

#!/bin/sh
chat -v                      \
TIMEOUT     40               \
RING     'AT&C1A'            \
CONNECT     ''               \
TIMEOUT     30               \
ogin:--ogin:     root        \
TIMEOUT     45               \
assword:     parool          \
'kopka\:\~\#'        '\npppYYY\r'

/etc/ppp/holy2:

#!/bin/sh
/usr/sbin/chat -v \
''    atzh0
 

ppp ühendust ei pea tingimata tegema root'i õigustes, see tõenäoliselt isegi pole soovitav ja pppYYY fail on tegelikult serveris shell script:

#!/bin/sh
exec /usr/sbin/pppd -d -detach
 

Ja veel, asi millest siin täiesti üle libiseti on turvalisus. Kui on üks kasutaja siis pole vast väga lugu aga peab olema teadlik ohtudest. Seega lugege ise juurde nende  pap ja chap security'te kohta!

Ma ise ei ole rahul selle jutuga siin, aga panin ta nii irja nagu ta parasjagu sai, et midagi ikka olemas oleks ja oleks mida pärast edasi teha :)

Hea näide on callback'i kohta Valentin Abramovi kodulehel kusagil www.customs.tartu.ee, otsige!
 

Lõpuks ei ole vist kunagi üle korrata liiga palju:

lugega HOWTO'sid ja man' pagesid.
www.edu.ee/LDP/HOWTO
 

5. USR modemi käsud:

(anda saab neid nt. minicom'ist või chat scriptist)

at$
HELP, Command Quick Reference (CTRL-S to Stop, CTRL-C to Cancel)

&$ HELP, Ampersand Commands                               On n=0 Return Online
A/ Repeat Last Command                                       n=1 Return Online & Retrain
A> Continuously Repeat Command                            P Pulse Dial
AT Command Mode Prefix                                    Qn n=0 Result Codes Sent
A Answer Call                                                n=1 Quiet (No Result Codes)
Bn n=0 V32 Mode/CCITT Answer Seq                             n=2 Verbose/Quiet ON Answer
   n=1 Bell Answer Seq                                    Sr=n Sets Register "r" to "n"
Dn Dial a Telephone Number                                Sr? Query Register "r"
   n=0..9#*TPR,;W@!()-                                    S$ HELP, S Registers
DL Dial Last Phone Number                                 T Tone Dial
DSn Dial Stored Phone Number                              Vn n=0 Numeric Responses
D$ HELP, Dial Commands                                       n=1 Verbal Responses
En n=0 No Command Echo                                    Xn n=0 Basic Result Codes
   n=1 Echo Command Chars                                    n=1 Extended Result Codes
Fn n=0 Online Echo                                           n=2-4 Advanced Result Codes
   n=1 No Online Echo                                     Yn n=0 Next Reset to &W0 settings
Hn n=0 ON Hook (Hang Up)                                     n=1 Next Reset to &W1 settings
   n=1 OFF Hook                                              n=2 Next Reset to &F0 settings
In n=0 Product Code                                          n=3 Next Reset to &F1 settings
   n=1 Checksum                                              n=4 Next Reset to &F2 settings
   n=2 RAM Test                                           Zn n=0 Dip #7 up: Yn
   n=3 Product ID string                                         Dip #7 down: &F0
   n=4 Current Settings                                      n=1 Reset to &W0 settings
   n=5 NVRAM Settings                                        n=2 Reset to &W1 settings
   n=6 Link Diagnostics                                      n=3 Reset to &F0 settings
   n=7 Product Configuration                                 n=4 Reset to &F1 settings
   n=9 PnP Enumeration Screen                                n=5 Reset to &F2 settings
   n=11 Link Diagnostics                                  +++ Escape Code
Ln n=0 Low Speaker Volume                                 $ HELP, Command Summary
   n=1 Low Speaker Volume
   n=2 Med Speaker Volume
   n=3 Hi Speaker Volume
Mn n=0 Speaker OFF
   n=1 Speaker ON Until CD
   n=2 Speaker Always ON
   n=3 Speaker OFF During Dial
 

at&$
HELP, Ampersand Commands (CTRL-S to Stop, CTRL-C to Cancel)

&An n=0 Disable /ARQ Result Codes                         &Pn n=0 N.American Pulse Dial
    n=1 Enable /ARQ Result Codes                              n=1 UK Pulse Dial
    n=2 Enable /Modulation Codes                          &Rn n=1 Ignore RTS
    n=3 Enable /Extra Result Codes                            n=2 RX to DTE/RTS high
&Bn n=0 Floating DTE Speed                                &Sn n=0 DSR Always ON
    n=1 Fixed DTE Speed                                       n=1 Modem Controls DSR
    n=2 DTE Speed Fixed When ARQ                          &Tn n=0 End Test
&Cn n=0 CD Always ON                                          n=1 Analog Loopback (ALB)
    n=1 Modem Controls CD                                     n=3 Digital Loopback (DLB)
&Dn n=0 Ignore DTR                                            n=4 Grant Remote DLB
    n=1 On-Line Command Mode                                  n=5 Deny Remote DLB
    n=2 DTE Controls DTR                                      n=6 Remote Digital Loopback
DTR - Data erminal Ready
DTE - st. arvuti kontrollib .. nii on tavaliselt
    n=3 Reset ON DTR Loss                                     n=7 Remote DLB With Self Test
&Fn n=0 Load Factory 0, no FC                                 n=8 ALB With Self Test
    n=1 Load Factory 1, HW FC                             &Un n=0 Variable link rate floor.
    n=2 Load Factory 2, SW FC                                 n=1 Minimum link rate 300 bps
FC - flow control
HW - hardware
SW - software
modemitel kasutatakse reeglina HW'd
&Gn n=0 No Guard Tone                                         n=2 Minimum link rate 1200 bps
    n=1 550 Hz Guard Tone                                     n=3 Minimum link rate 2400 bps
    n=2 1800 Hz Guard Tone                                    n=4 Minimum link rate 4800 bps
&Hn n=0 Disable TX Flow Control                               n=5 Minimum link rate 7200 bps
    n=1 CTS                                                   n=6 Minimum link rate 9600 bps
    n=2 Xon/Xoff                                              n=7 Minimum link rate 12000 bps
    n=3 CTS and Xon/Xoff                                      n=8 Minimum link rate 14400 bps
&In n=0 Disable RX Flow Control                               n=9 Minimum link rate 16800 bps
    n=1 Xon/Xoff                                              n=10 Minimum link rate 19200 bps
    n=2 Xon/Xoff Chars Filtered                               n=11 Minimum link rate 21600 bps
    n=3 HP Enq/Ack Host Mode                                  n=12 Minimum link rate 24000 bps
    n=4 HP Enq/Ack Terminal Mode                              n=13 Minimum link rate 26400 bps
    n=5 Xon/Xoff for non-ARQ Mode                             n=14 Minimum link rate 28800 bps
&Kn n=0 Disable Data Compression                              n=15 Minimum link rate 31200 bps
    n=1 Auto Data Compression                                 n=16 Minimum link rate 33600 bps
    n=2 Enable Data Compression                           &Wn n=0 Store Configuration 0
    n=3 Selective Data Compression                            n=1 Store Configuration 1
&Mn n=0 Normal Mode                                       &Yn n=0 Destructive
    n=4 ARQ/Normal Mode                                       n=1 Destructive/Expedited
    n=5 ARQ Mode                                              n=2 Nondest./Expedited
&Nn n=0 Highest Link Speed                                    n=3 Nondest./Unexpedited
    n=1 300 bps                                           &Zn=s Store Phone Number
    n=2 1200 bps                                          &Zn? Query Phone Number
    n=3 2400 bps
    n=4 4800 bps
    n=5 7200 bps
    n=6 9600 bps
    n=7 12000 bps
    n=8 14400 bps
    n=9 16800 bps
    n=10 19200 bps
    n=11 21600 bps
    n=12 24000 bps
    n=13 26400 bps
    n=14 28800 bps
    n=15 31200 bps
    n=16 33600 bps

atd$
HELP, Dial Commands (CTRL-S to Stop, CTRL-C to Cancel)

0-9 Digits to Dial
* Auxiliary Tone Dial Digit
# Auxiliary Tone Dial Digit
T Tone Dialing
P Pulse Dialing
R Call an Originate Only Modem
, Pause (Wait for S8 Time)
; Remain in Command Mode After Dialing
W Wait for 2nd Dial Tone (X2,X4)
@ Wait for an Answer (X3-X4)
! Flash Switch Hook
 

ats$
HELP, S Register Functions (CTRL-S to Stop, CTRL-C to Cancel)

S0 Ring to Answer ON S28 V32 Handshake Time (1/10sec)
S1 Counts # of Rings S29 V.21 answer mode fallback timer
S2 Escape Code Char S30 Reserved
S3 Carriage Return Char S31 Reserved
S4 Line Feed Char S32 Connection bit mapped operations.
S5 Backspace Char 1 = V.8 Call Indicate enable
S6 Wait Time/Dial Tone (sec) 2 = Enable V.8 mode
S7 Wait Time/Carrier (sec) 4 = Reserved
S8 Comma Time (sec) 8 = Disable V.34 modulation
S9 Carrier Detect Time (1/10sec) 16 = Disable V.34+ modulation
S10 Carrier Loss Time (1/10sec) 32 = Reserved
S11 Dial Tone Spacing (msec) 64 = Reserved
S12 Escape Code Time (1/50sec) 128 = Reserved
S13 Bit Mapped S33 V.34 & V.34+ Connection setup
1 = Reset ON DTR Loss bit mapped control flags.
2 = Reduced Non-ARQ TX Buffer 1 = Disable 2400 Symbol rate
4 = Set DEL=Backspace 2 = Disable 2743 Symbol rate
8 = Do DS0 ON DTR 4 = Disable 2800 Symbol rate
16 = Do DS0 ON Reset 8 = Disable 3000 Symbol rate
32 = Reserved 16 = Disable 3200 Symbol rate
64 = Disable Quick Retrains 32 = Disable 3429 Symbol rate
128 = Escape Code Hang Up 64 = Reserved
S14 Reserved 128 = Disable Shaping
S15 Bit Mapped S34 V.34 & V.34+ Connection setup
1 = MNP/V.42 Disabled in V.22 bit mapped control flags.
2 = MNP/V.42 Disabled in V.22bis 1 = Disable 8S-2D trellis encoding
4 = MNP/V.42 Disabled in V.32 2 = Disable 16S-4D trellis encoding
8 = Disable MNP Handshake 4 = Disable 32S-2D trellis encoding
16 = Disable MNP Level 4 8 = Disable 64S-4D trellis encoding
32 = Disable MNP Level 3 16 = Disable Non linear coding
64 = Unusual MNP-Incompatibility 32 = Disable TX level deviation
128 = Disable V.42 64 = Disable Pre-emphasis
136 = Disable V.42 Detect Phase 128 = Disable Pre-coding
S16 Test Modes S35 Reserved
1 = Reserved S36 Reserved
2 = Dial Test S37 Reserved
4 = Reserved S38 Disconnect Wait Time (sec)
8 = Reserved S39 Reserved
16 = Reserved S40 Reserved
32 = Reserved S41 Distinctive Ring options
64 = Reserved 1 = Distinctive Ring Enabled
128 = Reserved 2 = Reserved
S17 Reserved 4 = Reserved
S18 &Tn Test Timeout (sec) 8 = Reserved
S19 Inactivity Timeout (min) 16 = Reserved
S20 Reserved 32 = Reserved
S21 Break Length (1/100sec) 64 = Reserved
S22 Xon Char 128 = Reserved
S23 Xoff Char
S24 Reserved
S25 DTR Recognition Time (1/100sec)
S26 Reserved
S27 Bit Mapped
1 = V21 Mode
2 = Disable TCM
4 = Disable V32
8 = Disable 2100hz
16 = Enable V23 Fallback
32 = Disable V32bis
64 = Reserved
128 = Software Compatibility Mode
 

lühend NVRAM - Non Volatile RAM - voolu väljalülitamisel jääb mälus olev data alles ja on voolu tagasitulekul kasutatav

Siin on näide, kuidas minu minucom oma init stringi paneb

Welcome to minicom 1.75

Press CTRL-A Z for help on special keys

AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK
atdp444444
CONNECT 28800/ARQ/V34/LAPM/V42BIS

Annex Command Line Interpreter * Copyright 1991 Xylogics, Inc.

Checking authorization, Please wait...
Annex username: suur_rooma_kuningas_kes_kaabut_ei_kandnud_vannis_teatris_ja_kamina_ees_istudes

kusjuures
- V34 on modulatsiooni standard
- V42BIS pakkimis-standard
- 28800 andmevahetuskiirus bit/s

ja nagu ülalt lugeda võib tähendab see järgmist:

AT on vaja iga käsu ette kirjutada (at - attention)
S7=45  tooni ootamise aeg enne valimist
S0=0  modem ise ei vasta (seda teeb nt. mgetty)
L1 - modemi hääle tugevus
V1 - verbaalsed koodid mida on vaja chat'il
X4 - advanced koodid, kah hea
&C1 - modem kontrollib CD (carrier detect - st. kas liinil midagi tomub või enam ei toimu; see on oluline callback'i puhul)
E1 - echo command chars - näitab mida minicom'i trükite
Q0 - result codes sent - saadetakse ikka rohkem ja verbaalsemalt :)
 

Minicomis toimub helistamine nt.

atdp555555

modemi reset

atz

lihtsalt kontroll

at

kui keegi teile helistab (ekraanlile ilmub sõna 'RING') vastake

ata
 
 
 
 

gggg