리눅스가 팩스를 받는다!

배철수 : 리눅스 월드 발행인

 

 

    리눅스에 팩스 모뎀을 연결하여 팩스를 받은 후 팩스 내용을 메일로 받는 방법을 설명한다. 팩스 내용은 gif 파일 형태로 메일에 첨부되므로 네트스케이프나 익스플로러의 메일 화면에서 팩스 내용을 확인 가능하다. 팩스 내용을 메일로만 받을 수 있는게 아니라 팩스가 도착하자마자 프린터로 출력하게 할 수도 있고 사용자가 로긴해 있으면 사용자의 터미널에 팩스가 도착했다는 메시지를 보내게도 할 수 있다.

    리눅스용 팩스 서버 프로그램은 여러가지가 있지만 여기서는 mgetty를 이용하기로한다. mgetty는 특히 모뎀 통신(dial-in)에서 널리 알려진 프로그램이지만 팩스 송수신 기능도 뛰어나다. 여 기서는 일단 팩스를 받는 경우만 설명한다. 보내는 방법은 다음 기회로 미룬다.

    리눅스를 팩스서버(수신)에 사용하면 좋은 점이 많다.

    ·수신한 팩스 내용을 화면으로 확인 가능하다. 따라서 종이 값이 절약된다.
    ·팩스 내용을 레이저프린터로 인쇄하면 팩스머신보다 더 선명하다.  
    ·수신 팩스 내용이 파일에 저장되므로 팩스 내용을 언제든지 불러보거나 재 인쇄할 수 있고
      여러 장을 출력할 수 있다.
    ·팩스 수신이 많다면 리눅스에 멀피포트와 여러 대의 팩스모뎀을 장착하여 동시에 수많은
      팩스 수신을 처리할 수 있으므로 팩스머신을 여러대 구입하는 것 보다 경제적이다.

    여러분의 집에 있는 모뎀은 대부분 팩스 기능도 겸하고 있으므로 아래 방법을 사용해서 팩스 머신 없이도 팩스를 받아 화면에서 보거나 프린터에 인쇄할수 있으므로 지금 시험해 보기 바란다.

 

1. 준비 사항

    1.1 팩스모뎀 : 필자가 시험해 본 일부 저가 팩스모뎀은 팩스머신과 연결되지 않았다. 팩스모뎀을 업무용으로 사용하는 경우 유명업체의 제품을 사용하는게 좋다. 여기서는 3COM USRobotics Sports 56k 외장형을 대상으로 설명한다.

    1.2 외장형 모뎀은 RS-232 케이블이 필요하겠죠. PC 쪽은 9핀 암 커넥터이고 모뎀 쪽은 25핀 숫 커넥터여야 하는데 일부 구형 PC는 PC 쪽에 25핀을 사용하는 경우도 있으니 미리 PC의 시리얼 포트를 확인해야 한다.

    1.3 전화선을 팩스모뎀과 연결하는데는 RJ-11 컨넥터가 사용된다.

 

2. 설치 환경

    2.1 PC : 팩스를 받는데 요구되는 PC 사양은 없다. 외장형 모뎀을 사용하는 경우는 시리얼포트가 한 개 있어야 한다. (시리얼포트 없는 PC는 없겠죠?)
    이 글에서 설치한 PC는 펜티엄 프로 PC이다.

    2.2 리눅스 배포본
    팩스서버에 사용하는 리눅스 배포본은 아무 상관이 없다. 팩스서버에 사용하는 모든 프로그램은 새로 설치하기 때문이다. 여기서는 레드햇 6.0 (영문판, cheapbytes 제품)을 사용했다.

 

3. 팩스서버 설치에 필요한 프로그램

    3.1 mgetty1.1.21-Jul24.tar.gz
    원격지에서 모뎀을 통해 리눅스로의 접근을 허용하는 getty 프로그램으로 유명한 mgetty 프로그램이다. 모든 배포본에 기본으로 설치되어 있으나 배포본마다 버전 및 디렉토리가 다르므로 여기서는 소스를 받아 새로 설치하기로 한다.
    ftp://ftp.leo.org/pub/comp/os/linux/networking/mgetty에서 구할 수 있다.

    3.2 pbmplus
    이 프로그램은 리눅스에서 그래픽 포맷을 변경하는데 많이 사용된다. 팩스 파일(g3 포맷)을 GIF 그래픽 파일로 변환하는데 이 패키지에 있는 g32pbm, pnmscale, ppmtogif  등이 사용된다.

    sunsite.unc.edu 에서 anonymous ftp로 “/pub/linux/apps/
    graphics/convert” 디렉토리에 있는 pbmplus-10dec91-bin.tar.gz 파일을 가져온다.

    3.3 ksh (korn 쉘)
    리눅스에서는 born 쉘을 사용하나 팩스서버의 일부 프로그램에서 ksh를 사용한다. 리눅스 CD에 있다.

 

4. 설치 절차

    이 글은 인천해양과학고등학교에 설치한 내용을 그대로 인용했다.  팩스모뎀은 com1에 연결했다.  com2 나 com3인 경우는 ttySX 에서 X 부분을 바꾼다.  아래에서 팩스머신이라 함은 단독으로 사용하는 일반 팩스 기계를 지칭한다.

    4.1 모뎀 연결

    여기서는 외장모뎀을 com1 포트에 연결했다. 그러나 모뎀은 com2에 연결하는게 보다 바람직하다. 이유는 com2 시리얼 포트가 IRQ가 4이므로 com1(IRQ가 3임) 보다 우선 순위가 빠르기 때문이다.

    내장형 팩스모뎀을 사용한다면 시리얼 마우스 및 랜카드와 IRQ 충돌 여부를 확인해야 한다. 팩스 모뎀이 com3로 셋팅되어 있다면 마우스를 com1에 연결하면 안된다. 또 일부 대만제 대만제 ISA 랜카드는 IRQ 3번을 사용하므로 com2 포트에 외장형 팩스모뎀을 연결하거나 내장 팩스모뎀을 com2나 com4에 셋팅하면 IRQ 충돌이 난다.

    또한 모뎀 중에서 포장이나 매뉴얼에 윈95/98 전용이라 표시되어 있는 모뎀은 리눅스에서 사용할 수 없다. 이는 모뎀 기능의 상당 부분을 PC의 CPU 즉 윈도우에 설치된 드라이버 프로그램에 의존하기 때문이다.

    4.2 mgetty 설치

    mgetty1.1.21-Jul24.tar.gz 프로그램을 임의의 디렉토리에 넣고 압축을 푼다.
    필자는 보통 /apps란 디렉토리에 각종 프로그램을 저장한다.
    아래 명령을 실행한다.

    · tar zxvf mgetty1.1.21-Jul24.tar.gz

    mgetty-1.1.21 란 디렉토리가 만들어 지고 그 안에 mgetty 소스 파일들이 위치한다.

    이제 mgetty를 컴파일해야 한다. 컴파일한다고 C 언어에 대한 지식을 필요로 하지는 않는다. 단지 편집 정도만 할 수 있으면 된다.

      ① cd  mgetty-1.1.21

      ② policy.h-dist 를 policy.h로 복사한다.(cp policy.h-dist policy.h)

      ③ 아래 과정은 꼭 필요하지는 않으나 실제 운영에서 조금 더 편하게 해준다.

      policy.h에서 일부 내용을 수정한다.

      #define MODEM_CHECK_TIME 3600  -> 3600을 -1로 바꾼다.
      (변경 않아도 사용에 지장이 없다)

      #ifndef MAILER
      # define MAILER           “/usr/lib/sendmail”
      # define NEED_MAIL_HEADERS
      #endif

      리눅스의 sendmail 프로그램 위치를 지정하는 부분이다. 팩스 내용을 메일로 받으므로 메일 프로그램의 위치가 틀리면 메일이 오지 않는다.
      ls -l /usr/lib/sendmail 명령으로 확인해 본다. 레드햇이나 데비안, 수세는 문제가 없다.

      ④ make

      ⑤ make install

      이 단계까지 진행 했으면 mgetty 설치가 끝났다. mgetty 실행 파일은 /usr/local/sbin/mgetty 이고 셋업 파일은 /usr/local/etc/mgetty+sendfax/mgetty.config 이다.

      ⑥ mgetty.config 파일을 수정한다.

        1) debug 4 -> debug 9 (보다 상세한 연결정보가 표시된다.)
        2) fax-id 49 115 xxxxxxxx 부분은 팩스 수신시 상대 팩스에 나타나는 번호이다.
            자신의 번호를 넣는다(예 fax-id 032 832 5081).
        3) 아래는 헤이즈 모뎀의 경우에만 필요하다. 로보틱스 모뎀은 필요없다.
            일부 국산 모뎀의 경우 필요하다(팩스모뎀이 팩스머신에서 연결이 된 후 팩스
            수신을 못하면 아래 라인을 넣어 본다).
            제일 마지막 줄에 아래처럼 넣는다.

        port ttyS0
        switchbd 19200

        (위는 모뎀이 com1에 연결된 경우이다. com2라면 ttyS1 com3라면 ttyS2가 된다.)

        4) fax-only yes
            mgetty를 설치하면 다른 PC에서 전화선으로 로긴할 수도 있다. 따라서 다른
            사람이 모뎀으로 연결해서 접근하는걸 방지하고 오직 팩스 수신용으로만
            사용하려면 필요하다. 넣지 않으면 모뎀 및 팩스 양쪽 다 사용한다.

      ⑦  mgetty-1.1.21/g3 디렉토리에 있는 g32pbm 파일을 /usr/bin에 옮긴다.
           chmod 755 g32pbm명령을 준다. 이파일은 팩스파일을 gif로 변환하는데 필요하다.

      ⑧  new_fax 스크립트 설치
           mgetty가 팩스를 받으면 /var/spool/fax/incoming 디렉토리에 g3 팩스 포맷으로
           팩스 내용을 파일로 저장한다. 그러나 이 파일은 g3 포맷이므로 그 내용을 일반적인
           방법으로는 볼 수 없다. 화면에서 볼려면 gif 파일로 바꾸던지 프린터로 인쇄하려면
           postscript 파일로 변환해야 한다.

      이 부분을 자동화하기 위해 mgetty에서는 팩스가 도착시 자동으로 실행되는 스크립트가 지정되어 있다. /usr/local/lib/mgetty+sendfax 에 있는 new_fax이다. mgetty 설치시 이 파일은 자동으로 설치되지 않으므로 수동으로 설치해야한다.

      mgetty-1.1.21/samples/new_fax.all 디렉토리에 파일이 있으므로 이를 일부 수정해 설치한다.

      아래는 파일 목록이다.

      이 파일 전체를 /usr/local/lib/mgetty+sendfax 디렉토리에 복사한다.
      그리고서 아래 파일들을 수정한다.

      -rw-r--r--      1 202   ftp     553   Jul 28  1996 INSTALL
      -rw-r--r--      1 202   ftp     5128 Jul 28  1996 README
      -rw-r--r--      1 202   ftp     238   Jul 28  1996 archive.module
      -rw-r--r--      1 202   ftp     155   Jul 28  1996 delete.module
      -rw-r--r--      1 202   ftp     134   Jul 28  1996 fax.module
      -rw-r--r--      1 202   ftp     966   Jul 29  1996 faxlist
      -rw-r--r--      1 202   ftp     481   Jul 28  1996 faxlist.dist
      -rw-r--r--      1 202   ftp     199   Jul 28  1996 list.module
      -rw-r--r--      1 202   ftp     1125 Jan  2  1997 mail.module
      -rwxr-xr-x      1 202   ftp     1886 Jul 27  1996 new_fax
      -rw-r--r--      1 202   ftp     134   Jul 28  1996 notify.module
      -rw-r--r--      1 202   ftp     368   Jan  2  1997 print.module
      -rw-r--r--      1 202   ftp     272   Jul 28  1996 write.module

      ⑧-1 new_fax
      9번째 줄을 아래처럼 변경한다.
      home=/usr/local/lib/mgetty+sendfax

      ⑧-2 faxlist
      id
      mail  bae@linuxlab.co.kr
      write  hanbi root
      print hplj

        1) mail bae@linuxlab.co.kr
        팩스 내용을 gif 파일로 바꾼 후 bae@linuxlab.co.kr 에게 메일로 보내라는 뜻이다. 여기서는 메일 수신자는 팩스서버에 있는 계정일 필요는 없다. 팩스서버가 인터넷에 연결돼 있다면 전세계 어디에나 보낼 수 있다.

        2) write hanbi root
        팩스가 도착하면 도착했다는 메시지를 hanbi 와 root에게 리눅스의 write 명령으로 보낸다. Login이 되어 있어야 받을 수 있다.

        3) print hplj
        HP 의 레이저 프린터로 팩스 내용을 인쇄하라는 뜻이다. 프린터는 팩스 수신시 꺼져 있어도 상관없다. 팩스 내용은 프린트 스풀에 저장되므로 나중에 피린터를 켜면 인쇄 된다. 단 print를 할려면 프린터 설정이 돼 있어야 하고 pbmplud 에 있는 몇 개의 파일을 추가해야 한다. 자세한 것은 위의   README 파일을 참고하기 바란다.

    4.3 pbmplus 파일 설치

    tar zxvf pbmplus-10dec91-bin.tar.gz 명령을 주면 pbmplus10dec91 디렉토리가 만들어지고 이 안에 파일 들이 들어 있다. 이 중에서 bin 디렉토리에 있는 pnmscale, ppmtogif 두개의 파일을 /usr/bin에 옮긴다.(아래의 4.6에 있는 mail.module에서 사용한다) 이 파일들은 실행모드로 지정해야 한다(chmod 755 파일명)

    4.4 /etc/inittab 파일에 아래 라인을 추가한다.
    팩스모뎀이 연결된 포트를 활성화 시켜주는 절차다.

    s0:2345:respawn:/usr/local/sbin/mgetty ttyS0

    이 줄을 추가 후 init q 명령을 주면 이제 팩스 모뎀이 전화를 받는다. 전화를 못 받게 하려면 맨 앞에 “#”를 넣고 다시 init q 명령을 준다.

    4.5 /etc/aliases 파일 수정
    맨 아래에 다음 줄을 추가한다.

    faxadmin :      hanbi

    이는 팩스프로그램이 팩스를 정상적으로 받았는지를 알려주는 메일을 보내는 계정을 지정한다. 실패한 경우도 메일이 온다. 여기의 메일은 팩스 내용을  담고 있지 않다. 단지 관리를 위한 메일이다.

    4.6 korn shell 설치

      ① 레드햇 6.0은 “Redhat/RPM” 디렉토리에 있다
          ( pdksh-5.2.13-3.i386.rpm).

      rpm  -i  pdksh-5.2.13-3.i386.rpm 명령으로 설치한다.

      ② 데비안이라면 dselect 명령을 실행해서 “Available Standard packages in section shells” 에서 pdksh를 설치한다.

      ③ SuSE의 경우는 1번 CD를 넣고 아래 순서로 설치한다.

        1) YaST를 가동해 Adjustments of installation 메뉴의  select installation medium에서 CD-ROM 을 선택

        2) Choose/Install package 메뉴의 Package information에서 F9를 누른다(맨 위의 Search install media 왼쪽 괄호에 “X”가 표시된다). 검색 입력 라인(청색 라인)에 ksh를 입력해서 F5를 누르면 korn shell 설치 여부를 확인할 수 있다. 이름은 pdksh이다. 설치되어 있다면 맨 앞에 [I]가 나온다. 설치가 안되어 있으면 [space] 키를 눌러 선택 후 F10 키를 누르면 설치된다.

 

5. 테스트

    프로그램 정상 작동 여부를 확인하기 위해 서버를 리부팅한다(리부팅은 필수는 아니나 확실히 하기 위해서 이다).

    5.1 root 로 로긴해 ps ax 명령을 실행하면 아래 라인이 있어야한다.

      475 ?       S   0:00 /usr/local/sbin/mgetty ttyS0

    5.2 /var/log/mgetty.ttyS0 파일을 본다.

    10/24 18:52:20 yS0      mgetty: experimental test release 1.1.21-Jul24
    10/24 18:52:20 yS0      check for lockfiles
    10/24 18:52:20 yS0      checklock: stat failed, no file
    10/24 18:52:20 yS0      locking the line
    10/24 18:52:20 yS0      makelock(ttyS0) called
    10/24 18:52:20 yS0      do_makelock: lock=’/var/lock/LCK..ttyS0’
    10/24 18:52:20 yS0      lock made
    10/24 18:52:21 yS0      tio_get_rs232_lines: status: RTS CTS DSR DTR
    10/24 18:52:21 yS0      lowering DTR to reset Modem
    10/24 18:52:22 yS0      tss: set speed to 38400 (017)
    10/24 18:52:22 yS0      tio_set_flow_control( HARD )
    10/24 18:52:22 yS0      waiting for line to clear (VTIME), read:
    10/24 18:52:22 yS0      send: \dATQ0V1H0[0d]
    10/24 18:52:22 yS0      waiting for ``OK’’
    10/24 18:52:22 yS0      got: ATQ0V1H0[0d]
    10/24 18:52:22 yS0      CND: ATQ0V1H0 [0d][0a]OK ** found **
    10/24 18:52:22 yS0      send: ATS0=0Q0&D3&C1[0d]
    10/24 18:52:22 yS0      waiting for ``OK’’
    10/24 18:52:22 yS0      got: [0d]
    10/24 18:52:22 yS0      CND: OK[0a]ATS0=0Q0&D3&C1[0d]
    10/24 18:52:22 yS0      CND: ATS0=0Q0&D3&C1[0d][0a]OK
                                      ** found **
    10/24 18:52:23 yS0      USR Courier/Sportster 56k detected
    10/24 18:52:23 yS0      mdm_gis: string 1: ‘U.S. Robotics 56K FAX
                                      EXT Rev. 11.1.14’
    10/24 18:52:23 yS0      got:[0a][0d][0a]OK[0d]
    10/24 18:52:23 yS0      additional info: ‘U.S. Robotics 56K FAX EXT
                                      Rev. 11.1.14’
    10/24 18:52:23 yS0      mdm_send: ‘AT+FCLASS=2.0’
    10/24 18:52:23 yS0      got:[0a]AT+FCLASS=2.0[0d]
    10/24 18:52:23 yS0      mdm_command: string ‘AT+FCLASS=2.0’
    10/24 18:52:23 yS0      got:[0d][0a]OK[0d]
    10/24 18:52:23 yS0      mdm_command: string ‘OK’ -> OK
    10/24 18:52:24 yS0      mdm_send: ‘AT+FLI=”032 832 5081”’
    10/24 18:52:24 yS0      got:[0a]AT+FLI=”032 832 5081”[0d]
    10/24 18:52:24 yS0      mdm_command: string ‘AT+FLI=”032 832 5081”’
    10/24 18:52:24 yS0      got:[0d][0a]OK[0d]
    10/24 18:52:24 yS0      mdm_command: string ‘OK’ -> OK
    10/24 18:52:24 yS0      mdm_send: ‘AT+FCC=1,5,0,2,0,0,0,0’
    10/24 18:52:24 yS0      got:[0a]AT+FCC=1,5,0,2,0,0,0,0[0d]
    10/24 18:52:24 yS0      mdm_command: string ‘AT+FCC=1,5,0,2,0,0,0,0’
    10/24 18:52:24 yS0      got:[0d][0a]OK[0d]
    10/24 18:52:24 yS0      mdm_command: string ‘OK’ -> OK
    10/24 18:52:24 yS0      waiting for line to clear (VTIME), read:
    10/24 18:52:24 yS0      removing lock file
    10/24 18:52:24 yS0      waiting...

    (내용이 많아 일부 생략했다)

    5.3 이제 일반 팩스머신에서 팩스모뎀으로 팩스를 보낸다 (아래는 리눅스 월드 팩스머신에서 해양 고등학교 팩스모뎀으로 보낸 결과다).

      ① 팩스 수신이 끝날 때 ps ax 명령을 주면 아래처럼 나온다.

      516 ttyS0   S   0:00 sh -c /usr/local/lib/mgetty+sendfax/new_fax 0 ‘
      517 ttyS0   S   0:00 ksh /usr/local/lib/mgetty+sendfax/new_fax 0 
                           82+
      519 ?        S   0:00 in.comsat
      537 ttyS0   S   0:00 ksh /usr/local/lib/mgetty+sendfax/new_fax 0
                           82+
      552 ttyS0   S   0:00 ksh /usr/local/lib/mgetty+sendfax/new_fax 0
                           82+
      553 ttyS0   S   0:00 tee /var/log/faxmail
      554 ttyS0   S   0:00 /usr/sbin/sendmail -t
      558 ttyS0   S   0:00 g32pbm /var/spool/fax/incoming/fn812d977S0
                           -82+2+2205+
      559 ttyS0   R   0:00 pnmscale 0.5
      560 ttyS0   S   0:00 ppmtogif
      561 ttyS0   S   0:00 uuencode page1.gif

      ②  /var/log/mgetty.ttyS0 파일 끝 부분이 아래처럼 나온다.

      10/24 19:04:33 yS0   fax receiver: hangup & end
      10/24 19:04:33 yS0   fax_notify_mail: sending mail to: faxadmin
      10/24 19:04:34 yS0   notify:‘/usr/local/lib/mgetty+sendfax/new_fax 0
      ‘82+2+2205+1986’ 1 /var/spool/fax/incoming/fn812d977S0- 82+2+2205+1986.01 >/dev/console 2>&1 </dev/null’
      10/24 19:04:34  #####  fax dev=ttyS0, pid=475, caller=’none’, name=’’, id=’      82+2+2205+1986’, +FHNG=000, pages=1/0, time=00:00:58

      ③ /etc/aliases 에서 지정한 계정에 아래처럼 메일이 온다.

      N  7  root@ims.inchon-mah.  Sun Oct 24 19:04  37/900   “fax from          82+2+2”

      Message 7:
      From root  Sun Oct 24 19:04:34 1999
      Date: Sun, 24 Oct 1999 19:04:33 +0900
      Subject: fax from       82+2+2205+1986
      To: faxadmin@ims.inchon-mah.ed.inchon.kr
      From: root@ims.inchon-mah.ed.inchon.kr (Fax Getty)

      A fax was successfully received:
      Sender ID:         82+2+2205+1986
      Pages received: 1

      Modem device: ttyS0

      Communication parameters: +FCS:0,3,0,2,0,0,0,0
      Resolution : normal
      Bit Rate   : 9600
      Page Width : 1728 pixels
      Page Length: unlimited
      Compression: 0 (1d mod Huffman)
      Error Corr.: none
      Scan Time  : 0

      Reception Time : 00:58

      Spooled G3 fax files:
      /var/spool/fax/incoming/fn812d977S0-82+2+2205+1986.01

      regards, your modem subsystem.

        1) Sender ID 는 팩스 발신자 전화번호이다
        ( 2205-1986은 리눅스 월드 팩스 번호임).

        2) /var/spool/fax/incoming/fn812d977S0-82+2+2205+
        1986.01 는 수신 팩스 파일 이름이며 g3 포맷이다(이 파일을 mgetty의 sendfax 명령으로 팩스 모뎀을 통해 다른 팩스머신에 보내면 팩스 내용이 나타난다).

      ④ /var/log/faxlog 파일을 본다.

      24.10.99 19:04 fax received (id 82+2+2205+1986, 1 pages)
      24.10.99 19:04 module archive
      24.10.99 19:04 module delete
      24.10.99 19:04 module fax
      24.10.99 19:04 module list

      24.10.99 19:04 module mail
      24.10.99 19:04 module notify
      24.10.99 19:04 module print
      24.10.99 19:04 module write
      24.10.99 19:04 default section
      24.10.99 19:04 id 82+2+2205+1986 matches section
      24.10.99 19:04 mail to abc@ns.inchon-mah.ed.inchon.kr
      pnmscale: promoting from PBM to PGM
      ppmtogif: computing colormap...
      ppmtogif: 3 colors found
      24.10.99 19:04 mail to bae@www.linuxlab.co.kr
      pnmscale: promoting from PBM to PGM
      ppmtogif: computing colormap...
      ppmtogif: 3 colors found

      10월 24일 19시에 팩스가 왔고 그 내용이 두 사람에게 메일로 보내졌다.

      즉, abc@ns.inchon-mah.ed.inchon.kr, bae@www.linux
      lab.co.kr 두 사람이다.

      ⑤ 아래는 bae@www.linuxlab.co.kr 로 온 메일이다. 팩스 내용이 그래픽 파일로 화면에 나타난다.(그래픽 화면은 표시 않았다) 메일 내용을 프린터로 인쇄하면 팩스 내용을 볼수 있고 팩스 내용만 따로 저장할 수도 있다.

     

6. 실제 사용 예

    팩스 송수신이 많은 회사의 경우 여러대의 팩스머신을 설치할 필요가 없이 리눅스의 팩스모뎀을 팩스 수신용으로 전용하고 일반 팩스머신을 팩스 송신 전용으로 하면 이점이 많다. 리눅스에 포트만 추가하면 여러대의 팩스모뎀을 연결해 동시에 팩스 수신이 가능하기 때문이다.

    팩스용 전화 라인이 한 개인 경우는 팩스 전화 라인을 먼저 리눅스의 팩스 모뎀의 라인 쪽 콘넥터에 연결하고, 팩스모뎀의 전화 쪽 콘넥터와 팩스머신의 라인 쪽 콘넥터를  양쪽에 RJ-11 콘넥터가 있는 라인으로 연결하면 팩스모뎀은 수신 전용이 되고 팩스머신은 발신 전용이 된다. 이 방법은 팩스모뎀과 팩스머신이 멀리 떨어져 있어도 가능하다.

     

7. 덤

    여기까지 잘 설치해서 사용한 사람을 위해 덤으로 한가지를 추가한다. 수신한 팩스 파일은 /var/spool/fax/incoming 디렉토리에 저장된다.
    이파일 이름은 아래와 같다.

    fn812d977S0-82+2+2205+1986.01

    1) 두번째의 n은 해상도가 normal
    2) 3 ~ 9 숫자는 일련번호
    3) 10 ~ 11은 tty 번호(S0 는 com1 포트)
    4) “82+2+2205+1986”은 보낸 팩스의 ID
        (법에의해 모든 팩스머신은 팩스번호를 입력하게 되어 있음)
    5) 끝의 01은 페이지 번호

    이 파일은 g3 포맷으로 이 파일을 팩스머신으로 보내면 팩스가 수신된다.
    방법은 다음과 같다.

    /usr/local/etc/mgetty+sendfax  디렉토리의 sendfax.config
    파일에서 아래 라인을  수정한다.
    fax-devices ttyS0
    (팩스모뎀이 com1 포트에 있을 경우)

    이제 수신한 팩스 파일을 mgetty 에 있는 sendfax 프로그램을 이용해 다른 팩스머신으로 다시 보내보자.

    /usr/local/sbin/sendfax -n 2205-1986 fn812d977S0-82+2+2205+1986.01

    (1) sendfax 프로그램은 절대 경로를 쓸 것. 리눅스에 다른 sendfax 프로그램이 설치되어
         있을 수 있음
    (2) -n 은 normal 해상도
    (3) 2205-1986은 전화번호
    (4) 끝은 보낼 파일 이름

    이 방법으로 수신한 팩스 내용을 다른 팩스머신으로 인쇄할 수도 있고, 여러군데의 팩스에 똑같은 팩스를 자동으로 내보낼 수도 있다.




▲ top

home으로...