· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Mgetty-TRANS

MGETTY MANUAL

MGETTY MANUAL

Gert Doering

1999년 5월 15일 토요일 (번역) YOON, Joo-Yung 윤주영 (번역)
mgetty+sendfax application의 tex info중에서 일차로 mgetty와 software ftp place를 번역하였습니다. 추후 빠른 시일에 나머지 부분인 sendfax를 번역하여 올리겠습니다.

1. Introduction

mgetty는 unix환경에서 모뎀과 팩스모뎀을 가장 잘 활용하게 해줍니다. outgoing call들을 방해하지 않고 incoming call들을 다룹니다. 모뎀의 fax class가 2 또는 2.0이면 fax를 받을수 있게 해줍니다.

sendfax는 fax를 보내는 standalone backend program입니다.

이 매뉴얼은 package를 여러 os와 modem에 어떻게 설정하고 설치하며, 프로그램들을 어떻게 사용하는 지를 설명합니다.

1.1 Copying conditions and (lack of) warranty

WARNING: 이 패키지는 아직 BETA software이고, 전혀보증되지 않았으니 귀하의 책임하에 사용하십시오. harddisk에 있는 data가 전부 지워지거나, hardware가 망가지거나, kills your dog하는 것들은 전부 귀하의 문제입니다. 다만, 저와 수많은 다른 사람들에게는 잘 되었습니다.

mgetty+sendfax package는 Copyright (C) 1993-1997 Gert Doering입니다.

귀하께서는 mgetty+sendfax를 다시 배포하고, 고치고, 다른 program에 포함시킬 수 있지만, 밑에서 설명한 바와 같이 mgetty를 판매하여 이익을 보지 마시고, mgetty source를 그대로 포함시키시고, 제 이름을 빼지 마셔야 합니다. 수정본을 배포하시거나 mgetty code를 귀하의 project에 포함시키실 때에는 다음의 문구를 분명히 적어주시기 바랍니다.

``... derived from mgetty+sendfax by Gert Doering.''

program이 잘 실행되고, 제 노고가 값지다고 여기시면, 원하시는 만큼 기부하셔도 됩니다.

위의 "mgetty를 판매하여 이익을 보지 마시고"란 말은 다음과 같습니다. mgetty를 보조수단으로 해서 돈을 벌 수 있고, CD-ROM collection 등에 다른 것들과 함께 mgetty를 포함시켜서 배포할 수는 있지만, mgetty를 faxmodem과 함께 팔면서 "unix fax package""unix software포함"이라고 하거나, 조금 개선하고서 많은 돈을 받고 팔거나 하시면, 저에게 이익을 나누어 주시기 바랍니다. 이해되지 않으시면 저에게 여쭤주십시오.

이 license의 제한사항이 맘에 들지 않으실때 언제든지 연락을 주시면 공동으로 좋은 방책을 찾을 수 있겠습니다.

이 license는 release date이후 5년만에 소멸되어 이 mgetty+sendfax release는 public domain으로 되고, 누구든지 code를 원하는 대로 할 수 있습니다.

1.2 Features of mgetty and sendfax

  • 이 package에는 두개의 주요 program인 mgetty와 sendfax가 들어있습니다.
  • 귀하께서 갖고 계신 fax modem이 standard fax class 2라면 sendfax로 다음과 같은 일들을 하실 수 있습니다.
  • 직접 또는 shell script를 이용해서 fax를 보냅니다.
  • fax polling을 함. 예를 들면, 기상국에 call해서 현재의 기후지도를 fax로 보내게 할 수 있습니다. (모든 modem 제조자가 이 기능을 구현하지는 않습니다.)
  • fax queue를 만들면, 나가는 fax가 자동으로 보내지고 사용자는 그 결과를 메일로 통보받습니다.
  • 단일모뎀선으로 전화를 받고 외부로 걸 수 있습니다.
  • smart modem에 관해서 잘되어 있어서 modem은 언제나 정의된상태로 있습니다. 특정modem초기화가 가능합니다.
  • 들어오는 전화를 수동으로 받을 수 있는데, auto-answer인 ATS0=1대신에, 신호가 울리면 ATA를 치고 받으면 됩니다. 이렇게 하면 시스템이 다운되었거나 login이 되지 않을 때에는 modem이 전화를 받지 않게 할 수 있습니다.
  • uugetty의 모든 특성을 포함함 : uucico 또는 다른 통신프로그램들이 만드는 LCL.*의 파일을 인정하고, 수신중일 때는 걸수 없게하여 다른 program들이 모뎀을 사용하는데 혼동을 일으키지 않습니다.
  • fax를 수신할 수 있습니다. (fax class 2 또는 2.0을 지원하는 modem인 경우)
  • 들어오는 FidoNet call을 인식합니다.
  • 확장되는 logging과 debugging 특성이 있습니다.
  • fax poll sending을 하면 시스템을 fax poll server로 만들어서 fax poll을 요청한 상대방에게 fax를 보낼 수 있게 됩니다. (예로서, 시스템정보, 현재 기후 지도 등을 보냅니다.). 소수의 modem들만이 이 특성을 지원합니다.
  • Callerid가 맞을 때만 응답하게 할 수 있는데, modem이 지원되어야 하고 그 서비스에 가입되어야 합니다. callerID도 log됩니다.
  • disk용량이 부족하면 들어오는 fax를 거부하게 할 수 있습니다. Bug report, 권고사항 등을 gert@greenie.muc.de로 보내주시고, 여의치 않을 때만 gert@space.net로 보내주시기 바랍니다. 문제점과 권고사항 등을 논하기 위해 mgetty mailing list도 만들었습니다. mgetty-request@muc.de로 요청하시면 가입하실 수 있고 (Crynwr.com으로 forward되어서 처리됨), mgetty@muc.de로 기사들을 보내시면 됩니다. 저에게 보내시는 멜주소를 정확히 해주시지 않으면 주소들이 잘못 적용되어 모든 list 멜이 저에게로 bounce back되어 곤란합니다. mailing list는 현재 양쪽으로 gate되어 de.alt.comm.mgetty newsgroup로 보내집니다. 독어계층구조이지만 그 group은 영어를 씁니다. 독어로 보내시면 무시됩니다. mailing list는 WWW에 archive되오니 http://www.elilabs.com/mgarc/index.html를 참조하십시오. (Robert J. Brown, rj@eli.elilabs.com께 감사드립니다.)

1.3 Supported systems and modems

다음의 system에 설치하고 움직이는데 성공했습니다.

         SCO Unix 3.2.1 (ODT 1.0)           (well tested)
         SCO Unix 3.2.4 (ODT 2.0 + 3.0)     (very well tested)
         SCO Open Server 5.0                (well tested)
         Linux (everything from 0.99pl1 up) (very well tested)
         ISC Unix 3.0                       (tested)
         SVR4 Unix                          (well tested)
         SVR4.2 Unix                        (needs more testing)
         AT&T 3B1 3.51m                         (well tested)
         HP-UX 8.x and 9.x                  (well tested)
         AIX 3.2.5, 4.1 and 4.2             (very well tested)
         SunOS 4                            (well tested)
         Solaris 2.x                        (well tested)
         NetBSD / FreeBSD (all versions)    (very well tested)

그밖의 Unix에서도 termio.h나 termios.h가 있으면 가능합니다. 결과가 가장 좋게 나에게 하려면 select(s) 또는 poll(s) 등의 library function을 쓰시라고 권장합니다. 그러나 system이 여의치 않으면 다른 방법도 있습니다. (Warning: Unix SVR3.1이전의 system에서 poll()을 쓰면 tty device를 작동시키지 못하게 되니 사용하지 마십시오.

fax mode에서는 지금까지 다음의 modem들과 잘 어울렸습니다. (다 적지는 못했습니다.)

         ZyXEL U1496 (various ROM releases)
             (very well tested, a couple of problems remain, depending on the
              ROM release)
  
         ZyXEL 2864/2864I (various ROM releases)
             (very well tested, some firmware versions have problems)
  
         USR Courier/Sportster series
             (well tested, Couriers work great, Sportsters are ok)
  
         MultiTech (various models)
             (tested, works very well, very good fax implementation)
  
         SupraFAX v32bis
             (tested, works well, no fax polling available)
  
         GVC FM144/+
             (tested, works well, no fax polling available)
  
         TKR DM-24VF+ (Deltafax)
             (tested, works quite well)
  
         Zoom V.FAST 24K/28K
             (tested, works, some problems with fax/data distinction)

모든 class 2 faxmodem에 적용됩니다. faxrec.c에 의한 page의 첫부분에서 DC2 character가 보내지는데, (매우 오래된 standard draft를 구현하는) 구식 class 2 modem은 이것을 XON으로 바꿔줘야 합니다. ( modem section 참조)

data mode에서는 Hayes 호환인 modem이면 다 잘됩니다.

1.4 Configuration and installation

compile은 매우 쉽습니다. policy.h-dist를 policy.h로 복사한 후에 그 file에 있는 comment를 보고 편집해서 local policy option을 설정하십시오.

다음에는 Makefile을 편집해서 installation path, system define, 그리고, system에 의존적인 library를 표시하십시오 . (그 파일내에 설명되어 있습니다.)

make로 build하고, make install로 설치하십시오.

compiler가 RCS용으로 넣은 #ident줄때문에 문제가 있다고 하면 make noident로 build하면 될것입니다.

unresolved symboss라는 error message가 link시에 생기면 Makefile에서 -DUSE_SELECT 또는 -DUSE_POLL flag을 정의해줘서 select(s)나 poll(s) 등의 system call이 있다는 것을 package에 알려줘야 합니다. (잘 모르겠으면 error가 없어질 때까지 둘 다 해보십시오.) select나 poll과 상관없으면, 어느 library를 link할 지 systems man page를 참고하여 LIBS에 -l <library>라고 적당히 넣어주세요.

select(s) call이나 poll(s) call 등은 다른 process가 전화를 걸려고 할 때 character를 먹어치우지 않도록 하는 유일한 방법이기 때문에 system에 이들이 둘 다 없으면 완전히 동작하지는 못하게 됩니다.

그렇더라도 -DUSE_READ라고 Makefile에 명시하면 다른 program이 전화를 걸려고 할 때 적어도 한 개의 character를 먹어치우지만 사용할 수는 있습니다. 예를 들어서 만일 CONNECT string이 엉망이 되면 심각하게 나쁜 결과가 되겠지만, 대부분의 경우에 먹어치우는 것은 cr이나 nl 또는 modem이 반향시키는 명령의 일부분입니다.

mgetty와 sendfax를 컴파일하면서 (Unix류의 system에서만 -- MS-DOS 나 Window는 지원되지 않는다.) 어떤 문제가 있으면 제게 연락을 주십시요. 그러나 먼저 이 설명서를 읽으십시오!

1.5 Runtime configuration: Overview

mgetty와 sendfax가 있는 그대로 사용되면, policy.h로부터 default로 compile된 것을 이용합니다.

mgetty.config ( runtime-mgetty section 참조) 과 sendfax.config ( runtime-sendfax section 참조) 등의 설정파일이 있고 읽을 수 있으면, run-time 설정을 거기에서 얻습니다. 거기에 명시되지 않은 항목들은 compile시 입력된 default에서 얻어집니다. 명령행에서 주어지는 switch는 언제나 이들 설정값들을 대체합니다. 설정 file들은 보통 /usr/local/etc/mgetty+sendfax/에 있습니다.

명령행 인수들(자세한 것은 mgetty(1)과 sendfax(8) man pages를 보십시요.)을 명시하면 이것들은 compile된 그리고 설정 file의 default를 대체합니다.

2. Using mgetty

mgetty는 init process로 직접 호출해야만 login이 가능하기 때문에 /etc/rc같은 shell script, 또는 대화적으로 호출할 수 없습니다. 다음의 section에서 어떻게 이것을 하는 지 설명합니다.

2.1 How mgetty works

어떻게 mgetty가 동작하는 지를 이해하기 쉽게하기 위해서 modem이 /dev/tty2a에 연결되어 있다고 가정하고 여러 상황에서 serial line에 연결된 모뎀을 control할 때 무엇이 발생하는 지를 예를 들면서 알아보겠습니다.

computer가 booting될 때 virtual terminal, serial line, 그리고 modem 등 적절한 i/o device들에서 동작하는 getty들을 호출하는 init process를 시작합니다. init은 mgetty에게 /dev/tty2a line을 control하도록 하는 설정file인 /etc/inittab (System V의 경우)을 읽어들입니다. 다음에 /etc/utmp에 입력하고 (login은 이것이 필요하고, 따라서 수동으로 mgetty를 기동하려고 하면 login할 수 없습니다.) 명시된 명령행에 따라서 새 mgetty process를 fork합니다.

mgetty는 시작할 때 먼저 다른 process가 잡고 있는 유효한 lock file이 있는지 점검합니다. 있으면 이 port는 사용중이기때문에 mgetty은 lock file이 사라질 때까지 기다립니다. 존재하지 않는 process들 (stale locks)의 유효하지 않은 lock file들은 무시됩니다.

port가 열리면 mgetty는 자신의 lock file을 만들고, modem을 초기화한 다음에 lock file을 없앱니다. 그리고서는 port에 무엇인가가 발생하기를 기다립니다. character를 읽는 것이 아니고 poll()이나 select()를 이용해서 읽을 만한 것이 있는지 알아볼 분입니다.

character가 도착되면 uucico등 다른 program이 전화를 걸기 시작했거나 아니면 modem이 RING을 보냈거나 하는 두 가지의 가능성이 있습니다. 첫번째 경우, mgetty는 port를 건드리지 않습니다. 이것은 전화거는 프로그램이 유효한 lock file을 만들었으면 쉽습니다. mgetty는 그것을 알아차리고, 사라지기를 기다립니다. (init은 다음 call을 기다리는 새 mgetty process를 시작합니다.)

두번째 경우, lock file이 없으면 mgetty는 전화가 울린다고 여기고, lock file을 만들고 가능한 character를 읽습니다. RING을 찾으면 ATA를 보내서 전화를 들고 CONNECT message를 기다립니다. 상대방이 fax machine이면 FAX_SPOOL_IN (보통 /var/spool/fax/incoming) 디렉토리에 fax를 저장한 후에 나갑니다. modem이면 /etc/issue를 인쇄하고 login prompt를 표시합니다. login string을 받아들였으면 /bin/login을 호출하여 여기서부터의 일들을 처리하게 합니다. login은 password를 읽고 user의 login shell이나 uucico이나 dialup SLIP link 등 무엇이 됐던지 시작하지만, mgetty는 그것에 관여하지 않습니다. 누군가가 login되어 있는 동안에는 다른 program들이 modem을 사용하지 못하도록 lock file이 존재합니다.

(login.config설정file을 사용하면, /bin/login이 아닌 다른 login program을 부를 수도 있습니다. 자세한 것은 밑을 보십시오.)

어떤 이유에서든지 mgetty가 종료되면 init은 해당 port를 reinitialize하고 (이래서 mgetty는 즉시 종료하지 않고 lock file이 없어지기를 기다립니다.) 바로 전의 login이 남겨놓은 lock file을 제거하는 새로운 mgetty process를 시작합니다.

lock file 취급은 까다롭지만 매우 중요합니다. modem을 사용하는 모든 program은 한가지의 locking protocol에 동의하는것이 필수입니다. 그렇지 않으면 program은 modem이 사용중인 줄 모르고 어쨌든 전화를 걸려고 할 것입니다. 전형적인 lock file은 /var/lock/LCK...ttyxx이고 현재 modem을 사용중인 process의 process ID (PID)를 포함합니다. 다른 process들은 그것을 읽어서 현존하는 process에 속하는 지, stale이어서 제거할 수 있는 지를 알 수 있습니다. process가 lock file을 다른 곳에서 찾거나 어떤 것은 ASCII로 PID를 적고, 어떤 것은 binary number로 된 PID를 읽으려 하면 유효하지 않게 됩니다. (mgetty와 sendfax는 외부 lock file이 binary이든지 ascii든지 상관없지만 다른 program들은 상관있습니다. mgetty는 어떤때는 이러한 문제를 알아차려서 warning을 log합니다.)

2.2 The '/etc/inittab' entry

전형적인 mgetty의 inittab 등록은 다음과 같이 합니다. (SystemV-style OS's)

 
   <tt>:rlevel:<respawn|off>:/usr/local/sbin/mgetty [options] <device>

여기서 tt는 init과 내부용의 who가 사용하는 device명의 간략형입니다. 보통 S0 또는 2A 등으로 됩니다.

rlevel은 네번찌 field의 command가 가동되는 runlevel로서 23 또는 56 등으로 되는데 man init과 현존하는 /etc/inittab을 보시기 바랍니다.

다음 field는 init에게 해당항목이 active(respawn)한지 그렇지 않은지 (off) 알려줍니다. 그리고 네번째 field는 가동할 program의 full path를 명시합니다.

다음의 선택사항들이 가능합니다.

-x <level>

이것은 debugging level을 정합니다. 높은 level을 주면 내부작동에 대한 매우 자세한 정보가 log file에 적히기 때문에 문제를 진단하는데 매우 중요합니다.

-s <speed>

이것은 port의 speed를 정합니다. 명시하지 않으면 policy.h (definition DEFAULT_PORTSPEED)에 있는 default가 사용됩니다.

-k <space>

이것은 incoming FAX spool directory에 요구되는 최소 kbyte을 정합니다. spool directory에 이만큼의 space가 없으면 연결은 종료됩니다. default는 1 megabyte입니다.

-m 'expect send ...'

이것은 modem 초기화 sequence를 정합니다.

-r

이것은 직접연결선에 사용합니다. (modem chat이 되지 않습니다.)

-p <login prompt>

이것은 (다양한 escape가 허용되는) login promt를 정합니다.

-n <rings>

이것은 전화를 받기 위한 ATA를 보내기 전에 받아들일 RING message의 수를 정합니다. default는 한개의 RING입니다.

-R <sec>

이것은 ring-back나 ring-twince를 가능하게 합니다. 이렇게 하면 mgetty는 call을 즉시 pick-up하지 않고 전화를 건사람은 첫번째 ring뒤에 전화를 끊었다가 <sec>초 뒤에 다시 걸어야 합니다.

-i '/etc/issue'

이것은 login을 prompt하기 전에 보여줄 issue file을 명시합니다.

-S '<fax_document>'

이것은 (full path를 적어서) polling을 요구하는 fax machine에 보내줄 문서, 또는 (한 줄에 한 file씩) G3 fax file을 list한 text file을 명시합니다.

/etc/inittab의 등록 본보기는 다음과 같습니다.

 F1a:23:respawn:/usr/local/sbin/mgetty -x 3 tty2a

option에 대해 더 자세한 설명을 원하시면 mgetty(1) man page를 보십시오.

2.3 Choosing the right device

serial line마다 별도의 device를 두 개씩 마련하는 operating system들도 있는데, 그중에서 하나는 getty에게 특별히 할당됩니다. 이것은 mgetty와는 잘 맞지 않기때문에 좋은 방법은 아니고 auto-answer mode에 주로 적용됩니다.

밖으로 전화를 거는 device를 같이 사용할 때에만 mgetty가 전화를 수동으로 받게할 수 있습니다. /dev/modem으로 symlink를 만드는 사람들도 있는데, 이때는 모든 comm program들도 똑 같이 적용해야지 그렇지 않으면 lock file name때문에 문제가 생깁니다.

여러 system에 대한 보기는 다음과 같습니다 (역자주: Linux만을 예로 듭니다).

Linux:

/dev/ttyS* 입니다. (/dev/cua*가 아닙니다. Linux Section 을 보십시오.)

2.4 Log files

mgetty는 모든 일을 LOG_PATH.<device>라는 logfile에 적습니다. (LOG_PATH는 policy.h에 정의되어 있습니다.)

예를 들면 /var/log/mgetty.ttyxx에 system에서 일어나는 사항을 볼 수 있습니다. (fatal error가 있으면 console에도 적는데 가능하지 않으면 ADMIN에게 mail을 보냅니다.) log file의 명칭은 policy.h에서 바꿀 수 있습니다.

-DSYSLOG 옵션으로 mgetty를 compile하면 auditing과 error log message를 syslog에도 적습니다. (system이 지원해야 합니다.)

2.5 Denying logins

mgetty가 전화를 받지 않게 하려면 /etc/nologin.<device> (예를 들면 /etc/nologin.tty2a) file을 만듭니다. mgetty가 incoming call을 알아차렸는데 이 file이 있으면 전화를 받지 않습니다. 이렇게 해야 전화를 거는 사람은 login이 허락되지 않는 상황에서 쓸데없는 전화로 돈을 허비하지 않게 됩니다. policy.h에 있는 NOLOGIN_FILE를 변경해서 filename을 바꿀 수 있습니다.)

이렇게 하면 - 낮에는 음성통신으로 쓰는 전화선에 연결된 modem의 경우 등에 - 꽤 세련된 scheduling을 할수 있습니다. modem이 저녁 9시부터 아침 7시까지만 전화를 받게 할 수 있습니다. cron으로 하여금 /etc/nologin.device file을 아침 7시에 만들어서 modem이 낮동안에는 전화를 받지 않게 하고, 저녁 9시에 지워서 밤에는 전화를 받게 하면 됩니다.

자연적으로 확장시킬 수 있습니다. 예를 들면, 주말에만 전화를 받게 한다든지 (비슷한 cron job입니다.), disk의 용량이 5 Mbyte보다 적으면 번화를 받지 않게 한다든지 (주기적으로 process가 free disk space를 검사해서 /etc/nologin.* file을 만들게 합니다.) 등입니다.

2.6 Direct serial lines

두 unix machine 또는 unix machine과 다른 것이 direct serial line으로 연결되어 있고 outgoing traffic과 충돌하지 않는 unix쪽에 getty program을 운영하고자 할 때도 (예를 들면, 두 unix machine이 있어서 모두 getty를 운영하고 있고, 모두 uucp 연결을 기동할 수 있는 경우) mgetty를 쓸 수 있습니다. -r 옵션으로 시작하면 modem을 initialize하지도 RING을 기다리지도 않습니다. 다만 port에서 조용히 기다릴 뿐입니다. 상대편에서는 mgetty가 최소 한 character를 받기 전에는 /etc/issue를 볼 수 없기 때문에 두 mgetty는 서로 예기할 수 없습니다.

이러한 방법은 leased line with modem에 대해여 lease line mode에서도 유효할 것이지만 modem setup에 따를 지도 모릅니다.

2.7 Interaction between mgetty and other programs

보통 전화건 사람이 login name을 넣으면 mgetty는 /bin/login을 불러서 password를 검사하고 system login을 합니다.

특별한 경우로는 /bin/login대신에 다른 program을 부를 수 있습니다. 예를 들면, U*로 시작하는 login name들에게는 (uucico가 authentication을 하는) /usr/lib/uucp/uucico -L <username>을 부르거나 (이 때에는 taylor uucp 1.05나 patches/taylor.pl에 있는 patch를 적용한 taylor uucp 1.04을 같이 사용혜야 합니다.), incoming Fidonet call에 대하여 (Eugene Crosser의 ifmail package에 있는 ifcico를 사용하여) /usr/lib/fnet/ifcico를 부를 수도 있습니다.

mgetty로 이 모든 것을 할 수 있습니다. login.config 설정 file로 조정하는 데, 이것은 보통 (policy.h의 LOGIN_CFG_FILE로 정의된) /usr/local/etc/mgetty+sendfax/에 있습니다. 저는 comment를 많이 사용하여 sample file을 준비했으니 거기에 있는 사용구문을 보아주시기 바랍니다. mgetty는 -DFIDO로 compile되어야 incoming fido call을 알아차릴 수 있습니다.

보안때문에 걱정되시면 다음의 방법을 적용하시기 바랍니다. 신뢰하고 이미 아는 사용자들에 대해서만 /bin/login을 부르고, /bin/false는 다른 login name에 대해서 불러서 login.config에 기재된 사람들만 log in할 수 있도록 합니다.

2.8 Using Caller-ID to selectively accept or reject calls

어떤 전화회사들은 Caller ID라는 service를 가입자들에게 제공하여 전화건사람의 전화번호가 전송되어도록 합니다. 지원여부는 해당회사에 알아보셔야 합니다.

modem이 callerid 정보를 추출할 수 있고, mgetty가 policy.h에 정의된 CNDFILE로 compile되었으면 mgetty는 전화를 받기전에 전화건사람의 번호를 검사할 수 있습니다. (지금 당장은 ZyXEL에만 적용된다고 알고 있습니다. Rockwell용도 만들었지만 아직 feedback을 얻지 못했습니다. 지원자는 나서 주시기 바랍니다.) CNDFILE이 정의되지 않았거나 그 file이 없다면 모든 전화가 허용됩니다.

중요사항 : 대부분의 analog modem들은 (mgetty.config에 'rings 2'라고 설정하여) 대기 RING수를 2개 이상으로 해야 합니다. ID code가 첫번째와 두번째 RING 사이에 보내지기 때문입니다. mgetty가 너무 빨리 전화를 들면 modem은 이 정보를 얻을 수 없습니다.

전화를 받을 지 받지 않을 지는 policy.h의 CNDFILE로 정해진 설정 file로 조정합니다. 보통 /usr/local/etc/mgetty+sendfax/dialin.config가 default입니다. (보기 file은 default에 의거하여 설치되었습니다.)

그 file에는 일련의 token들이 newline, comma, tab, space 등으로 구분되어 있습니다. 맞는 token이 있을 때까지 callerid 숫자는 각각의 token과 차례대로 비교됩니다. callerid 정보가 token의 길이만큼 비교되어 같으면 일치되는 것입니다. token앞에 '!'이 붙어 있으면 전화를 받지말라는 뜻입니다. 'all'은 어떤 전화번호든지 일치시키기 때문에 cndfile을 더이상 scan하지 않습니다. callerid 숫자가 없으면 'none'으로 가정합니다. '#'로 시작되면 comment입니다. file의 맨 끝에는 'all'이 있다고 가정됩니다.

예를 들면 다음과 같습니다.

          # list of my friends' data lines
          3433535, 7445343, 5551212
          # dad's fax
          4164646777
          # disallow [other] calls from numbers matching the following prefix:
          !416
          # disallow that speed dialer that keeps hitting my machine
          !3444444
          # allow all calls with the following prefixes
          832, 555
          # don't allow calls when there's no callerid:
          !none
          # It's okay to accept calls from out of area
          # ("OUT_OF_AREA" token seems ZyXEL specific)
          OUT_OF_AREA
          # disallow all other calls
          !all

앞으로 Chris Lewis가 상대방 전화 번호에 따른 특별한 modem initialization string (예를 들면 2400 bps용, fax용 등)을 더할 계획입니다.

대부분의 경우에는 이러한 정적 설정으로도 충분합니다. 특별히 필요하다면 이것을 결정하기 위해 외적 program을 실행시킬 수도 있습니다. 그 program 이름은 mgetty.config에 있는 cnd-program statement로 설정할 수 있습니다. 그 명령행 인수는 다음과 같습니다.

 
<program> <tty> <CallerID> <Name> <dist-ring-nr.> <Called Nr.> 

CallerID는 알려진다면 상대방전화의 번호이고, 그렇지 않으면 'none'입니다. Name은 상대방의 이름이거나, 알려지지 않았을 경우에는 ' '입니다. dist-ring-nr는 전화선에 독특한 RING이 있고 modem이 이를 지원할 때의 RING type이거나 알려지지 않은 전화에 대해서는 '0'입니다.

Called Nr.는 (ISDN이고, ELSA나 ZyXEL 2864I가 하듯이 modem이 host에 걸려진 전체번호를 signal해야만 의미가 있는) 걸려진 번호입니다.

예를 들면 ISDN을 사용할 때 12345에서 56789로 건 전화가 ttyS3로 왔으면 다음과 같이 어떤 program으로 연결됩니다.

        
check.cnd ttyS3 12345 '' 0 56789 

그 program은 전화를 받아들일 지 결정할 값을 반환하는데, 일반적으로 다음의 값들이 정의되어 있습니다.

        0 - accept call, no specific preferences 
        1 - reject call                          

장래의 version에서는 mgetty/vgetty가 전화를 받도록 되어 있는 방식(data/voice/fax/...)을 외적으로 선택하도록 하겠지만 아직은 구현되지 않았습니다.

주의 : 이것은 전화를 받아들일 것인가 아닌가를 결정하는 데에만 쓰이는 것이 아닙니다. caller ID를 X11 window하에서 외부 LCD screen에 표시하든지, 인쇄하거나 D-Channel Callback을 하든지 간에 Caller ID data를 필요로 하는 것이면 무엇이든지 할 수 있습니다.

주의2 : 부르는 program의 특성에 조심하십시오. user id 0 (root)로 실행되기 때문에 조심하지 않으면 security에 위험할 수도 있습니다.

2.9 Runtime configuration for mgetty: 'mgetty.config'

compile되어진 default만으로도 mgetty는 썩 잘 됩니다. (그것은 오랫동안 유일한 설정방법이었습니다.) 그러나, 그것은 융통성이 그리 많지 않고, 특히 다른 modem type을 쓰고 있으면 매우 불편합니다. 명령행 option으로 built-in default를 바꿔줄 수는 있지만, 이 방법도 /etc/inittab의 기재사항을 너무 길고 읽기 어렵게 만들기 때문에 완전하지는 않습니다.

(policy.h의 MGETTY_CONFIG로 정의된) config file support로 compile되었다면 mgetty는 Taylor UUCP와 매우 유사하게 설정 file을 사용하여 동적설정을 아주 쉽게 할 수 있습니다.

config file은 보통 /usr/local/etc/mgetty+sendfax에 있고 mgetty.config로 되어 있습니다.

그 형식은 매우 쉽습니다. 줄마다 keyword가 있고, 공백으로 구분된 인수가 있을 수 있습니다. 빈줄과 (#로 시작되는) comment line도 허용됩니다.

config file은 port <tty-name> line마다 구분된 port별 section으로 묶여져 있습니다. 첫번째 port line 전에 있는 모든 사항은 global default를 명시하고, 두 port statement의 사이에 있는 모든 사항은 바로 뒤이어 오는 device에만 유효한 설정을 명시합니다. 제가 보기를 들겠습니다.

         # global defaults:                     
         # fax station id is always the same    
         fax-id ++49-89-1234                    
         # per port stuff                       
         port tty1a                             
         # This modem can't fax                 
         modem-type data                        
                                                
         port tty2a                             
         # more verbose logging for this modem  
         debug 9                                

각 줄의 data 부분은 (대부분의 경우) string이거나, (modem talk을 명시하는, whitespace로 구분되어지는 일련의 string으로서 expect로 시작하고 send가 오고 다시 expect를 적는) chat sequence이거나, (leading character인 1-9/O/Ox 등에 따라서 10진수, 8진수, 또는 16진수 등으로 해석되는) 정수이거나, (y(es)나 t(rue), 그 반대인 n(o)나 f(alse)인) boolean입니다. boolean value이외에는 인수를 명시하지 않으면 (허용된다면) 'value not set'로 되거나, (value가 의무사항이면) 'error'로 됩니다. Boolean의 경우에는 'true'로 해석됩니다.

명령행에 적으면 설정항목을 많이 대체할 수 있습니다. 그 때에는 명령행의 option이 설정 file의 설정에 우선합니다. (그리고 built-in default보다 우선합니다.) 보통 built-in default는 policy.h에서 정해집니다.

가능한 설정항목은 다음과 같습니다. (명령행 option이 가능한것은 bracket에 나타냈습니다.)

`speed' [-s] PORT SPEED

사용할 port speed를 정수값으로 명시합니다. Default는 DEFAULT_PORTSPEED입니다. 주어진 speed가 유효하지 않다면 mgetty는 심하게 불평하고 종료합니다.

`switchbd' FAX RECV. SPEED

주로 Rockwell chipset이 그렇지만, 어떤 modem은 fax mode로 될 때 19200 bps로 돌려집니다. 다른 것들은 다른 speed로 바뀔 수도 있습니다. (제가 아는 바는 없습니다.) modem이 Rockwell 기반이고 fax가 잘 수신되지 않으면 switchbd를 19200으로 해보십시오. (Warning: 이것이 잘못 정해지면 fax 수신은 틀림없이 실패합니다. 대부분의 정상적인 modem에는 필요 없습니다.) Default는 FAX_RECV_SWITCHBD입니다.

`direct' YES/NO [-r]

Direct line을 사용할 것이라고 mgetty에게 알립니다. Mgetty는 modem을 초기화하지 않으며, RING을 기다리지도 않을 것입니다. 다만 character를 기다려서 issue file과 login prompt를 내보냅니다. nullmodem cable으로 연결하려면 이 option이 필요합니다. Mgetty는 modem용으로 설계되어서 default는 no입니다.

`blocking' YES/NO [-b]

mgetty가 blocking mode로 device를 열도록 합니다. 이는 carrier detect가 set되기까지는 open() system call은 이루어지지 않음을 말합니다. 이것은 mgetty가 getty로 call되면 set됩니다. 이 기능이 얼마나 유용할 지는 모르겠지만 완전히 하기 위해 포함시켰습니다. Default는 no입니다.

`port-owner' USERNAME/USERID

mgetty가 username에 tty line을 chown하게 합니다. (string이나 integer uid로 명시하여야 하며, 이때 integer는 유효한 수여야 합니다.) 이것은 security목적상 강력하게 권장됩다. modem line을 그릇되게 사용되지 않으려면 오직 신뢰하는 사용자에게만 port access를 주십시오. Default는 PORT_OWNER입니다.

`port-owner' USERNAME/USERID

mgetty가 이 group id에게 tty line을 chgrp하게 합니다. (group name이나 integer gid로 주어질 수 있습니다.) 주어지지 않거나 유효하지 않으면 port owner의 primary group id가 사용됩니다. Default는 PORT_GROUP입니다.

`port-mode' PERMISSONS

device를 chmod할 permission을 명시합니다. 결코 modem device를 전방위접근가능하도록 하지 마시고 0660이나 더 나아가서는 0600을 사용해야 좋습니다. Default는 PORT_MODE입니다.

`toggle-dtr' YES/NO

시작할때 modem을 reset하기 위해서 DTR line을 lower해야 하는지를 mgetty에게 알립니다. Default는 yes이지만 어떤 (소수의) modem들은 알레르기 반응을 하여 crash됩니다.

`toggle-dtr-waittime' MSECS

DTR line을 low로 유지할 시간을 명시합니다. Default는 500 millisecond입니다.

`data-only' YES/NO [-D]

mgetty가 modem의 성능중에서 data 부분만 쓰도록 하고 fax 부분은 쓰지 않도록 합니다. Default는 false입니다. modem이 incoming fax와 data의 call을 구분하지 못할 경우에 유용합니다.

`fax-only' YES/NO [-F]

mgetty가 fax 전용 mode로 됩니다. modem이 incoming fax와 data의 call을 구별하지 못하고, fax가 data보다 더 중요하다고 판단될 때 유용합니다. security 이유로 data call을 멈추고 싶을 때에도 유용합니다. (이것은 login.config로도 할 수 있습니다.)

`modem-type' [-C] MTYPE

port에 연결된 modem의 종류를 명시합니다. Default는 DEFAULT_MODEMTYPE입니다. 유효한 option들은 다음과 같습니다.

auto

mgetty가 알아서 modem type을 찾아냅니다. (이것은 경우에 따라서는 바람직하지 않거나 구식 modem에서는 실패할 지도 모릅니다. Mgetty가 ATI 명령으로 modem type을 찾아내고 그에 따른 적당한 fax class를 선정합니다. (미확인 modem type이라서) 그렇게 할 수 없을 때에는 class 2.0을 먼저 해보고, 그 다음으로는 class 2를 시도합니다.

c2.0

Modem이 class 2.0 fax mode입니다. Class 2보다 더 나은 표준이라서 두개 다 가능하면 class 2.0이 더 잘 작동됩니다. USR, ZyXEL 1496과 2864, 그리고 ELSA 등의 modem에 적용된다고 알려졌습니다.

cls2

Modem이 class 2 fax modem이고 mgetty는 class 2.0을 시도하지 않습니다.

c2.1

Modem이 새로운 ITU T.32 standard (class 2.1)에 부합합니다. 제가 알기로는 아직까지 여기에 맞는 modem은 없지만, class 2.1은 class 2.0과 흡사하므로 쉽게 지원할 수 있을 겁니다.

cls1

Modem은 class 1 fax만 할 수 있습니다. 아직 구현되지 않았습니다. (게다가 조금도 권장하지 않습니다.)

c1.0

Modem이 ITU T.31 standard에 맞는 class 1 fax를 할 수 있습니다. 이것은 class 1보다 많이 좋지는 않지만 (가능하면 class 2나 2.0을 쓰십시오.), 어쨌든 더 좋은 겁니다. 아직 구현되지 않았습니다.

cls2ok

(더이상 쓰이지 않습니다. modem-quirks 02를 사용하십시오)

data

'-D'와 같아서 fax 초기화를 하지 않습니다.

(아직까지는) 이 option으로 mgetty가 fax mode만 하고 data call을 거부하도록 할 수는 없으니꼬 fax-only true statement을 사용토록 하십시오.

`modem-quirks' BITMASK

어떤 모뎀은 fax standard를 특이하게 해석합니다.. mgetty+sendfax의 내부 작동중에는 그런 modem에 적용되는 것입니다. 인수는 fax_lib.h에 있는 값에서 조성된 것으로서 quirk당 한 bit입니다. 이것을 쓰는 modem이 있다면 그것은 자동적으로 검출되어서 적당하게 처리되기 때문에 이 option을 쓸 일은 거의 없을 것입니다.

지금으로서는 다음과 같이 quirk가 정의되어 있습니다.

        0x01  leave the modem in class 2 mode instead of switching      
              to class 0 before sending ATA (you might try this if      
              adaptive fax/data answer doesn't work).                   
        0x02  class 2 bit order is correct (MultiTech) - unimplemented  
        0x04  do not trust +FPTS:x,lc,blc values                        
        0x08  do not wait for XON character when sending pages          
        0x20  old USR Courier V.32 AT+FCC/+FMINSP bug workaround        

`init-chat' [-m] EXPECT SEND EXPECT SEND ...

mgetty에게 modem을 initializing하도록 chat sequence를 알려줍니다. 주의 : 그 sequence는 expect로 시작하는데 대부분의 경우에 '""' (nothing)입니다. UUCP가 이런식으로 하고 저도 혼란을 일으키지 않으려고 순서를 이렇게 정했습니다.

        보기 : 

           init-chat "" ATQ0E1V1H0 OK ATL0M0S0=0 OK AT&K3 OK

`force-init-chat' EXPECT SEND EXPECT SEND ...

modem이 간단한 AT 명령에도 반응하지 않는 mode에서 교착되는 때도 있습니다. 이것은 보통 modem이 DTR drop을 무시하도록 설정되어 있으면서 아직 상대방으로 data 연결이 되어있기 때문에 발생합니다. voice modem을 사용한다면 voice mode에서 교착될 수가 있습니다.

이러한 상황에서는 modem이 적당한 response를 돌려보내지 않기 때문에 정상적인 init-chat은 time-out이 됩니다.

force-init-chat chat sequence를 써서 modem을 정상적인 상태로 돌릴 수가 있습니다. default 설정에서는 DLE ETX character를 보내서 voice modem을 살리고 (pause)+++(pause)ATH0 sequence를 보내서 modem을 data mode에서 command mode로 돌려 놓습니다.

이 sequence를 (아무 불편 없이) init-chat의 앞부분에 붙일 수도 있습니다만 '+++'의 앞뒤에 있는 pause때문에 매우 늦어집니다. .

@minus ????????

어떤 모뎀은 initializing하면서 data mode에서 fax mode로 아니면 그 반대로 될 때 부분적인 설정이 무시되는 경우도 있습니다. 예를 들면, USR model중에는 'Caller ID delivery' (AT#CID=1) 설정이 무시되기 때문에, ELSA modem중에는 voice mode에서 data mode로 바뀔 때 현재의 DTE port speed가 무시되기 때문에, RING message를 틀린 baud rate와 함께 내보내게 합니다.

이런 modem들은 이 명령을 써서 fax와 voice의 initializing이 모두 된 다음에 AT command가 실행되도록 할 수 있습니다. 하지만 조심하십시오! 만약 이때에 ATZ (modem reset)이나 그 비슷한 것을 쓰면 fax/voice 설정 모두가 지워집니다.

`MODEM-check-time' SECONDS

소리도 없이 무너져 내리고는 하는 modem도 있습니다. 이 option을 주면 mgetty는 modem이 아직도 반응하는 지를 간단한 'AT...OK' sequence로 매 수초마다 검사합니다. 반응하지 않으면 mgetty는 재가동하고 전체 modem reset을 합니다. Default는 MODEM_CHECK_TIME입니다.

`rings' [-n] NNN

mgetty가 전화를 받기까지 기다려야 할 RING message 수를 정합니다. Default는 1입니다. 주의: 무슨 이유로든지 modem이 자동으로 전화를 받으면 ATS0=mmm으로 설정한 값과는 다른 것으로 설정하십시오. 그렇게 하지 않으면 modem의 자동전화받기와 mgetty의 수동전화받기가 충돌합니다. (대부분의 modem은 자동전화받기를 하는 중에 명령이 들어오면 전화를 내려놓습니다.)

@minus????????????????????????????

ISDN modem이 전화건 상대방의 번호 (MSN)을 host로 signal해줄 수 있다면 이 option으로 그 MSN을 특별히 지정된 RING에 붙일 수 있습니다. 그 MSN은 list와 비교되어서 첫번째로 맞는 것이 특별히 지정된 RING 번호로 사용됩니다.. 왼쪽에서 오른쪽으로 list를 조사합니다.

이것은 ELSA와 ZyXEL의 ISDN terminal adaptor에서 작동한다고 알려져 있습니다.

`get-cnd-chat' CHAT SEQUENCE

이것은 modem이 'Caller ID' 찾아내기를 지원하지만 특수한 명령을 주어야 CID information을 얻을 때 필요합니다. 지금은 일부 ELINK ISDN adaptors (Elink-ISDN section 잠조)에만 필요하고, 다른 대부분의 CID가능 modem들은 알아서 CID른 보내기때문에 이것이 필요없습니다.

ring을 2 이상으로 설정하십시오. 그렇지 않으면 CID얻기 code가 작동되지 않습니다.

@minus ?????????????

incoming call을 받기전에 가동할 program을 명시합니다. (polich.h의) CNDFILE이서 정적 Caller ID selection이 충분치 않거나 Caller ID data를 다른 목적(예를 들면 displaying)으로 쓰려면 이것을 사용하십시오. Caller-ID section 참조.

`answer-chat' CHAT SEQUENCE

이것은 전화를 받으려고 쓰는 명령 sequence입니다. 보통 default인 '"" ATA CONNECT \c \r '로 하면 되지만 (ATA가 허용되지 않기 때문에) `ATA' 대신에 `ATS0=1'으로 해야하는 modem도 있습니다. 여분의 '\r' expect string을 주어야 code가 전체 CONNECT xyz\r string을 잡을 수 있습니다. \r이 없어도 작동은 되지만 logging information이 자세하지 않을 것입니다. 지금은 \r이 구현되지 않았으므로 작동하지 않습니다. 쓰지 마십시오.

`answer-chat-timeout' SECS

anser-chat동안에는 여기에서 명시한 시간내에 expect string이 보여져야 합니다. Default는 80초입니다. 이 시간은 ATS7=...의 modem 설정명령으로 정한 시간보다 적어도 5초정도 더 길어야 합니다.

`autobauding' YES/NO [-a]

어떤 modem은 연결후에 DTE line speed를 통신선 speed로 전환합니다. 예를 들면 'CONNECT 2400'을 보낸 다음에 modem은 2400 bps로 전환합니다. 새 modem은 보통 DTE baud rate를 lock하는 switch가 있는데 이것을 강력히 권장합니다. modem이 자꾸 이 speed switch를 할 때 autobauding을 true로 설정하면 mgetty는 거기에 따를 것입니다.

`ringback' YES/NO [-R]

modem과 전화를 같은 선에서 사용해야만 할 때 ringback이나 ring-twice를 이용할 수 있습니다. mgetty는 첫번째는 전화를 받지는 않고 기억하고 있다가, (ringback-time으로 명시된 시간내에 다시 걸려오는) 두번째 전화를 받습니다.

`ringback-time' SECS

ringback이 활성화되어 있다면 첫번째와 두번째 전화의 경과시간을 명시합니다. Default는 30초입니다.

`ignore-carrier'

modem이 DCD (carrier detect) line을 표시하지 않거나, serial port나 cable 또는 serial driver가 망가졌으면 CONNECT까지는 잘돼고 나서 mgetty나 login이 block할 수가 있습니다. (이때 모든 것이 잘 작동하다가 갑자기 port로 더이상 아무것도 보내지지 않게 됩니다.) operating system에 따라서 '/etc/issue'를 print하기전이거나 'password:' prompt다음일 수 있습니다. 이것을 풀려면 ignore-carrier를 true로 설정하여 carrier detection의 switch를 끄십시오. Default는 false입니다. 주의: 이렇게 하면 전화한 사람이 깨끗이 logging out하지 않고 그저 전화를 끊으면 system은 그것을 알아채지 못하게 됩니다. 이것은 modem을 hanging하게 만드는 등의 결과가 되게 합니다.

`issue-file' [-i] FILE

이것은 login prompt에 앞서서 print되는 file입니다. Default는 '/etc/issue'입니다. connect speed, date 등등으로 특별한 character를 대체할 수 있습니다. 밑에 있는 (login-prompt) list를 보십시오.

`prompt-waittime' MSECS

이것은 isuue file과 login prompt를 print하기 전에 modem과 선이 조정될 때까지 기다릴 시간을 명시합니다. Default는 500 millisecond입니다.

`login-prompt' [-p] PROMPT

이것은 mgetty가 내보낼 login prompt를 경시합니다. 이 string(과 issue file)에 있는 특별한 character들이 인식되면 다른 것으로 교체됩니다.

  • @ system name
  • \n newline
  • \r carriage return
  • \g bell
  • \b backspace (ascii 010)
  • \f form feed (ascii 013)
  • \t TAB
  • \P (and \L) port name (e.g. ttyS0)
  • \C date and time, in "ctime()" format
  • \I Connection string (e.g. 2400/REL)
  • \N (and \U) number of users currently logged in
  • \S Port speed (e.g. 38400)
  • \D current date in dd/mm/yy format
  • \T current time in hh:mm:ss format
  • \DIGIT character with the specified octal code

login prompt의 최대길이는 (확장후의) 140 character로 제한됩니다.

`login-time' SECS

사용자가 log in할 수 있는 최대 시간입니다. 그 시간내에 login이 이루어지지 않으면 mgetty는 전화를 끊습니다. Default는 policy.h에 있는 MAX_LOGIN_TIME입니다.

`fido-send-emsi' YES/NO

이것은 mgetty가 -DFIDO로 compile됐을 때문 유효합니다. mgetty가 login을 prompt하기 전에 FidoNET style ``EMSI_REQA77E'' packet을 보내야 하는 지를 통제합니다. Default는 on입니다. FIDO 지원으로 compile했어도 PPP client (또는 사용자)가 그 string때문에 혼란스러워 하는 문제를 경험하신다면 이것을 끄십시오.

`fax-id' [-I] LOCAL FAX NUMBER

이것은 fax mode에서 전화건 상대방에게 알릴 fax station ID를 정합니다. (보통 fax 전화번호입니다.) Default는 FAX_STATION_ID입니다.

`fax-server-file' [-S] POLL CONTROL FILE

이것은 누군가 fax polling mode로 전화해왔을 때 상대방이 받을 문서인 fax file입니다.

보통 그 file은 text file로서 전하한 상대방 machine으로 보낼 G3 file을 한 줄에 한 개씩 적습니다. Comment line은 (#로 시작하는데) 무시됩니다. 후진일관성을 위해서 mgetty는 이 file자체가 G3 file인지 검사해서 그렇다면 이 file을 보냅니다. (이때는 한 page만 보낼 수 있습니다.)

모든 modem이 fax poll server mode를 지원하지는 않습니다. ZyXEL과 MultiTech는 지원하고 USR은 그렇지 않다고 알고 있습니다.

`diskspace' [-k] KBYTES

이것은 fax 수신을 허락할 용도로 fax spool directory에서 쓸 수 있는 disk space의 최소량을 mgetty에게 알립니다. Default는 1 Mbyte입니다.

`notify' MAIL ADDRESS

이것은 fax가 수신되었을 때 mail을 받을 주소입니다. 충분히 시험되지 않았습니다.

`fax-owner' USERNAME/UID
`fax-group' GROUPNAME/GID
`fax-mode' PERMS

이것은 port-owner/group/mode와 비슷해서 fax가 들어올 때 mgetty가 쓰기 위해서 owner, group, 그리고 file mode를 명시합니다. Default는 FAX_IN_OWNER, FAX_IN_GROUP, and FAX_FILE_MODE에서 얻어집니다.

`debug' [-x] DEBUG LEVEL

이것은 mgetty가 할 logging량을 정합니다. 4는 적당하고 5는 자세하고 9는 정말이지 지저분합니다. 시험해보십시오! log data는 'policy.h'의 LOG_PATH로 명시하는데 대개 `/var/log/mgetty.ttyxx'입니다.

`gettydefs' GD TAG

이것은 mgetty의 gettydefs feature를 쓴다면, 권장하지 않습니다만, 주어진 line에 사용할 gettydefs tag을 명시합니다. gettydefs manpage, mgettydefs manpage를 참조하십시오.

`term' TERMINAL TYPE

이것은 TERM=xxx terminal type variable을 getty가 정하도록 하는 Linux 또는 이와 비슷한 OS에서 (예를들면 '/etc/profile 또는 '$HOME/.profile'에서) 그것을 정하지 않았으면 mgetty로 하실 수 있습니다. 'term vt100'과 같이 적으십시오. 제가 볼때는 per line base에서 terminal type을 명시하는 것은 좋지 않습니다. (전화거는 사람들마다 다른 terminal type을 쓴다면 어쩌시겠습니까?) 그래서 default는 정해지지 않았습니다.

3. Fax Operations

3.1 Converting fax files

3.2 Receiving faxes

3.3 Basic sendfax usage

3.4 Fax polling using sendfax

3.5 Automated fax queuing

3.6 Additional tools for working with g3 files

3.7 Using an external fax as a scanner

3.8 Runtime configuration for sendfax: `sendfax.config'

4. Voice Operations

5. Common problems and solutions (TROUBLESHOOTING)

5.1 Modems

Problems common to many modem types

ZyXEL

Telelink IMS 08 Faxline+ Modems

Rockwell-based modems, e.g. Supra

Zoom VFP/VFX 24K FaxModem (V.FAST modem, 24,000 bps)

Best 14496 EC fax modem

GVC FM-144Vbis+/1 (Rockwell-based)

CREATIX Modem (Rockwell-Based)

German Telekom approved GVC modems

Dallas Fax 14.4

Everex

Exar 9624 fax modem

Tornado / Lightspeed modems

Zoltrix Platinum Series 14.4

MultiTech modems (MT1432BG and MT2834BG)

US Robotics (now 3com) Courier/Sportster Fax/Data modems

Elink ISDN Terminal Adaptors 293, 310, 393 with X.75 and V.110

Class 1 Faxmodems

5.2 Operating Systems

Generic problems and common mistakes

SCO Unix 3.2.2 (ODT 1.0 / 1.1)

SCO Unix 3.2.4 (ODT 2.0 and ODT 3.0)

Linux

ISC

SVR4 Unix

SVR4.2 - Onsite Unix, UnixWare, ...

BSD-like flavours of Unix

IBM's AIX Operating System

SunOS 4.1.1 and up

Solaris 2.3 and 2.4

AT&T 3b1

The HP-UX operating system

The NEXTSTEP operating system

5.3 General problems

pbmtog3

Lock files

mgetty works, /bin/login hangs

ECU 3.20 or earlier on SCO collides with mgetty

5.4 Sample Log files

mgetty, incoming data call

mgetty, incoming fax call

mgetty, logging into syslog

sendfax, sending a single page

5.5 How to get the mentioned software by FTP?

이 문서에서 언급된 대부분의 software는 대부분의 주요 ftp site에서 얻을 수 있습니다. 그런데도 저는 software에 대해서 많은 질문을 받았기에 여기에 site들을 기재합니다.

게다가 저와는 다른 환경에서 mgetty+sendfax를 쓰고자 할 때 흥미있을 만한 다른 software도 기재합니다.

mgetty+sendfax

현행 release는 보통 다음의 장소에서 찾아집니다.

sunsite.unc.edu:`/pub/Linux/system/serial/getty/mgetty+sendfax*'

tsx-11.mit.edu:`/pub/linux/sources/sbin/mgetty+send-fax*'

alpha.greenie.net:`/pub/mgetty/source/*'

ftp.leo.org:`/pub/comp/os/unix/networking/mgetty/*'

ftp.mathematik.th-darmstadt.de:`/pub/linux/mir-rors/misc/mgetty/*'

linux.nrao.edu:`/pub/src/mgetty/*'

ftp.chem.tue.nl:`/pub/mgetty/*'

http://linux.mit-lab.co.kr/mgetty/*

ftp.uvt.ro:`/pub/mgetty/*'

... 그리고 SunSITE.unc.edu 또는 tsx-11을 mirror하는 모든 site들입니다.

가장 최근의 beta release는 alpha.greenie.net, ftp.leo.org 그리고 mirror site인 th-darmstadt.de과 linux.nrao.edu에서 얻을 수 있습니다.

SunSITE와 TSX-11에서는 (짝수 version 번호로 되어 있고, file명에는 date stamp가 없는) 안정된 release만 있습니다.

자신의 책임하에 beta release를 사용하십시오!

pbmplus

(bitmap 조작 tool인) pbmplus package를 다음의 장소에서 찾았습니다. (X11을 mirror하는 대부분의 다른 site에도 있습니다.)

src.doc.ic.ak.uk:`/computing/graphics/pbmplus10dec91.tar.Z'

wuarchive.wustl.edu:`/packages/X11R5/contrib-pub/pbmplus10dec91.tar.Z'

ftp.germany.eu.net:`/X11/contrib/pbmplus10dec91.tar.Z'

ftp.leo.org:`/pub/comp/os/unix/networking/mgetty/'

pbmplus package는 conversion tool이 더 많은 (bug도 더 많은) NetPBM package로 이어졌습니다. 이것은 같은 site에서 얻어질 수 있습니다. 다음을 알아볼 수 있습니다.

wuarchive.wstl.edu:`/graphics/graphics/packages/NetPBM'

ftp.rahul.net:`/pub/davidsen/source'

ftp.informatik.uni-oldenburg.de:`/???'

fax chapter에서 말씀드린 pbmtodot program은 다른데 없을지라도 ftp.leo.org에 있는 mgetty directory에서 찾을 수 있습니다. (위를 보십시오.)

FAS

SCO Unix와 ISC 등에 쓸 fas serial driver를 갖고 있는 site들은 ...:

ftp.fu-berlin.de:`/pub/unix/driver/fas/fas-2.11.tar.gz'

ftp.germany.eu.net:`/pub/newsarchive/comp.sources.unix/volume27/fas-2.11.0/*'

src.doc.ic.ac.uk:`/usenet/comp.sources.unix/volume27/fas-2.11.0/*' 제가 아는 한 현행 version은 2.12입니다만 2.11과 같은 장소에서 찾을 수 있습니다. 저는 upgrade를 하지 않았는데 2.11이 저에게는 잘 됩니다. :)

GhostScript

postscript interpreter인 GNU GhostScript는 GNU Software를 갖고 있는 모든 site에서 찾을 수 있습니다. 주요 GNU site는 prep.ai.mit.edu입니다.

새 version인 3.x는 더이상 GNU software가 아니지만 특별한 license를 사용합니다. ftp.cs.wisc.edu의 /pub/ghost/aladdin와 (ftp.leo.org 등의) 다른 mirror site에서 찾을 수 있습니다.

hp2pbm

GhostScript는 덩치가 크고 느리기 때문에 다른 목적으로 쓰지 않으신다면 Chris Lewis의 hp2pbm package를 쓰실 수 있습니다. 그 장소는

ftp.uunet.ca:`distrib/chris_lewis/hp2pbm/*'

그리고

ftp.leo.org as `hp2pbm*' (위에서 말씀드린 mgetty directory에 있습니다.)

이 package는 ASCII, LJ PCL4 등을 PBM, GC, PS, X windows, Epson 24 pin 등으로 변환하는 데 필요한 모든 것을 갖추고 있습니다. mgetty의 g32pbm과 같이 사용하시면 ASCII나 HP LJ를 fax로 보내실 수 있고, fax를 X, PS, LJ, Epson 등에서 display하거나 인쇄하실 수 있으며 PBM utility를 거쳐서 display하거나 인쇄하실 수 있습니다.

이것은 비슷한 PBMPLUS utility들보다 더 잘 작동합니다. 사용하시는 application이 LJ와 PS를 만들 수 있다면 LJ를 만들어서 hp2pbm을 거쳐서 G3로 변환하는것이 PS를 만든 다음에 GhostScript를 거쳐서 변환하는 것보다 훨씬 빠릅니다.

[Chris를 인용함: 뜻밖이지만, g32pbm에 저의 pbm2lj를 더하니까 g3tolj보다 많이 빨랐습니다. 왜그런지는 아직 모르겠습니다. g32pbm과 pbm2lj는 하지 않는 scaling과 어떤 관계가 있는 것 같습니다.]

psroff

ftp.uunet.ca:`/distrib/chris_lewis/psroff3.0pl17/*'

[Chris: 이것은 psroff/*로 되어야 하지만, 제 symlink를 고쳐달라고 요청했지만 아직 답을 주지 않습니다.]

ditroff, CAT troff, groff 등에서 PS, LJ, ditroff 등을 만드는 데 필요한 모든 것을 포함하고 있습니다. hp2pbm과 같이 쓰시면 fax를 만들 수 있습니다. 아주 많은 LJ font, font 조작, font scaling utility 등을 갖추고 있습니다.

바로 위의 두 tool만 있으면 pbmplus나 GhostScript나 다른 것들이 없어도 단지 mgetty와 hp2pbm (그리고 Laserjet printer ;-)만으로 fax를 보내고, 받고, print할 수 있습니다.

Ifmail

Ifmail은 Eugene Crosser의 FidoNet (tm)과 호환되는 mailer + gateway software로서 Unix와 Linux용입니다. mgetty와 같이 쓰시면 Unix-login과 fax뿐만 아니라 incoming Fido call을 허용하는 등 완전한 modem solution을 제공합니다. 다음의 장소에서 찾아집니다.

tsx-11.mit.edu:`/pub/linux/sources/usr.bin/ifmail*'

sunsite.unc.edu:`/pub/Linux/system/Fido/ifmail*'

dialog

Dialog는 shell script에서 input/output function을 간단히 하는 매우 좋은 shell tool입니다. mgetty/frontends/dialog에 있는 모든 program들이 이것에 의존합니다. curses library가 있으면 (FreeBSD를 제외한) 대부분의 operating system에서 운영됩니다. source는 다음의 장소에서 찾아집니다.

sunsite.unc.edu:`/pub/Linux/utils/shell/dialog*'

ps2g3

mgetty+sendfax를 NeXTStep operating system에 합치는 조그마한 package입니다. ftp.leo.org/pub/comp/platforms/next/Tools/postscript/ps2g3.s.tar.gz에 있습니다.

dvips5.47

Dvips 5.x와 그 이상의 version은 좀 이상한 postscript를 만들어서, 그것을 Ghostscript 3.x로 변환시킬 때 행폭이 꼭 1728 pixel이 되지 않아서 (modem은 잘 동작하지만) 종이 fax machine으로 보낼 수 없는 fax를 만듦니다. Dvips 5.47은 그렇지 않습니다. 다음의 장소에서 찾아집니다.

`ftp.leo.org:/pub/comp/os/unix/networking/mgetty/dvips*'

`midway.uchicago.edu:pub/tex/dvips/dvips547.tar.Z'

g3vga

(X11이 아니고 standard console mode의) Linux와 SVGALIB에 쓰이는 훌륭하고 빠른 G3 viewer입니다. SunSITE.unc.edu의 모든 mirror사이트에 있는 .../apps/graphics/viewers에서 찾을 수 있습니다.

5.6 How to get the mentioned software by UUCP

FTP access가 없는 분들은 전 section에서 언급한 모든 software를 다음의 UUCP site에서 찾으실 수 있습니다.

GREENIE (저의 system입니다.):

++49-89-35663089, V32bis/V.34, greenie! /green.files.gz을 얻으십시오.

CameloT (Frank Bartels):

++49-89-8948040, V34+,

6. Thanks

다음분들께 감사를 드립니다. (특별한 순서로 되어있지 않습니다.)

  • Peter Bechtold, peter@fns.greenie.muc.de : 저에게 많은 fax를 보내서 mgetty를 시험하셨고, 제가 그분께 sendfax로 fax보내기를 실패한 후에 저에게 전화를 걸어 주셨습니다. 더우기 수신된 fax의 filename에 원격지 fax id를 사용하도록 idea를 주셨습니다.
  • Klaus Weidner, klaus@greenie.muc.de: 최초로 linux로 porting하셨고, pre-release를 많이 시험하셨고, 처음으로 texinfo문서를 작성하셨고, 끝으로, vgetty를 만드셨습니다.
  • Lawrence 'dreamer' Chen, lawrence@combdyn.com: 처음의 ISC porting과 SupraFAX-Modem으로 그 package를 시험해 주신 데 대해 감사드립니다.
  • Kay Schulz, kschulz@gold.t-informatik.ba-stuttgart.de: ISC에서 시험해 주셨고, README file을 전혀 읽지 않았어도 많은 질문을 할 수 있다고 말씀해주셨습니다.
  • Georg Edelmann, georg@alpha.saar.de: Linux에서 시험해 주셨고, 유치한 bug를 많이 찾아주셨습니다.
  • Uwe S. Fuerst, uwe@phiger.com: SCO 3.2v4에서 시험해주셨습니다. (또한 dial-in/dial-out 문제를 좁혀가는데 많이 도와주셨습니다.)
  • Bodo Bauer, bodo@hal.nbg.sub.org: (fax receiver가 동작하지 않는다고 주장해서 저를 많이 헛갈리게 하셨지만) mgetty를 SVR4로 porting해주신데 대해, 그 뒤로는, bodo@suse.de, faxrunqd daemon에 대해 감사드립니다.
  • Christoph Adomeit: fax sending/receiving에서 XON/XOFF를 구현하도록 아주 오랫동안 저에게 bug를 제공해주셨고, 제가 faxing (fax sending)일을 하는 데 쓰도록 그분의 GVC modem중에서 한대를 꽤 오래 빌려 주셨습니다.
  • Christopher M. Ward: 다른 GVC modem으로 SCO에서 시험해주셨습니다.
  • Ralf Stephan: CD를 너무 빨리 lower하는 modem들에 있어서 sendfax의 문제를 찾아주셨습니다.
  • John C. Peterson: mgetty/faxrec에서 비슷한 문제를 바로잡아주셨습니다.
  • Chel van Gennip: pbmscale, g3toxwd, g3tolj program에 대해서 감사드립니다.
  • Glenn Thobe and Chris Lewis: 3B1 port를 해주셨습니다.
  • Chris Lewis: /etc/gettdefs, CallerID, space limiting에 대해서, source를 정말이지 굉장하게 만들어 주신데 대해서 (K&R C 지원), 여러 자그마한 수정들에 대해서, 그리고 어떤때는 그분의 제안에 대해서 짜증을 부린것을 참아주셔서 고맙습니다.
  • Caz Yokoyama: faxpool과 mail-to-fax gateway에 대해 제안해주셨습니다.
  • Martin Husemann: (ESIX가 두통거리인) SVR4 시험을 해주셨고, NetBSD 386에 porting해주셨습니다.
  • Michael A. Meiszl, mam@mamunx.werries.de: 저에게 웃으라고 부탁하셨고, 귀찮지만 작은 것들을 많이 찾아내서 고치셨습니다.
  • Brent Mosbrook, ZyXEL USA, brentm@zyxel.com: ZyXEL 고유의 질문과 일반 fax에 대한 질문은 해결해 주셨습니다.
  • ELSA Computer GmbH, Germany: ELSA 28.8 TQV voice/fax modem을 시험용으로 주셨습니다. (매우 저렴하게 값을 치르고 가졌습니다.)
  • Sam Leffler, sam@sgi.com: 많은 흥미로운 논의와 통찰에 대해서 감사드립니다.
  • Christian Starkjohann, cs@ds1.kph.tuwien.ac.at: NeXT로 porting하는 데 대해서 중요한 부분을 해주셨습니다.
  • Geoffrey Collyer and Henry Spencer: 제가 faxrunq에서 쓰고 있는 newslock.c program을 작성해주셨습니다.
  • Simone ``Neko'' Demmel: 일찍 잠자리에 들어서 제가 시간을 갖고 이 manual을 읽고 모든 지저분한 bug을 고치도록 해주셨습니다.
  • Russel Nelson, nelson@crynwr.com: 1996년 12월부터 mgetty mailing list를 host해주셨습니다.
  • Medat Computer GmbH, Munich: mgetty+sendfax를 사용하셔서 제가 (faxrunqd의 재작성과 수많은 세부작업 등의) 개선을 하도록 해주셨습니다.
  • SpaceNet GmbH, Munich: alpha.greenie.net로의 IP 연결을 후원해주셨습니다. 독일에서 Internet Service Provider가 필요하시다면 http://www.space.net/를 보십시오.
  • Wiebke Baars: 참말로 좋은 친구가 되주었고, 함께 멋진 나날을 보냈습니다.
  • ... 그리고 어떻게든 공헌하신 모든 다른 분들게 감사드립니다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0052 sec