teejuht
1. Sissejuhatus
2. Serveri ja koduarvuti tööleseadmine
3. ppp - ühenduse loomine
4. callback
5. US Robotics 34V käsud
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.
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.
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$'.
Ü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
(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