배철수 : 리눅스 월드 발행인
|
리눅스에 팩스 모뎀을 연결하여 팩스를 받은 후 팩스 내용을 메일로 받는 방법을 설명한다. 팩스 내용은 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는 없겠죠?) 2.2 리눅스 배포본
3. 팩스서버 설치에 필요한 프로그램 3.1 mgetty1.1.21-Jul24.tar.gz 3.2 pbmplus sunsite.unc.edu 에서 anonymous ftp로 “/pub/linux/apps/ 3.3 ksh (korn
쉘)
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 프로그램을 임의의
디렉토리에 넣고 압축을 푼다. · 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 리눅스의 sendmail 프로그램 위치를 지정하는
부분이다. 팩스 내용을 메일로 받으므로 메일 프로그램의 위치가
틀리면 메일이 오지 않는다. ④ make ⑤ make install 이 단계까지 진행 했으면 mgetty 설치가 끝났다. mgetty 실행 파일은 /usr/local/sbin/mgetty 이고 셋업 파일은 /usr/local/etc/mgetty+sendfax/mgetty.config 이다. ⑥ mgetty.config 파일을 수정한다. 1) debug 4 -> debug 9 (보다 상세한
연결정보가 표시된다.) port ttyS0 (위는 모뎀이 com1에 연결된 경우이다. com2라면 ttyS1 com3라면 ttyS2가 된다.) 4) fax-only yes ⑦ mgetty-1.1.21/g3
디렉토리에 있는 g32pbm 파일을 /usr/bin에 옮긴다. ⑧ new_fax
스크립트 설치 이 부분을 자동화하기 위해 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 ⑧-1 new_fax ⑧-2 faxlist 1) mail bae@linuxlab.co.kr 2) write hanbi root 3) print hplj 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” 디렉토리에 있다 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 (내용이 많아 일부 생략했다) 5.3 이제 일반
팩스머신에서 팩스모뎀으로 팩스를 보낸다 (아래는 리눅스
월드 팩스머신에서 해양 고등학교 팩스모뎀으로 보낸 결과다). ① 팩스 수신이 끝날 때 ps ax 명령을 주면 아래처럼 나온다. 516 ttyS0 S 0:00
sh -c /usr/local/lib/mgetty+sendfax/new_fax 0 ‘ ② /var/log/mgetty.ttyS0 파일 끝 부분이 아래처럼 나온다. 10/24 19:04:33 yS0 fax
receiver: hangup & end ③ /etc/aliases 에서 지정한 계정에 아래처럼 메일이 온다. N 7 root@ims.inchon-mah. Sun Oct 24 19:04 37/900 “fax from 82+2+2” Message 7: A fax was successfully received: Modem device: ttyS0 Communication parameters: +FCS:0,3,0,2,0,0,0,0 Reception Time : 00:58 Spooled G3 fax files: regards, your modem subsystem. 1) Sender ID 는 팩스 발신자 전화번호이다 2) /var/spool/fax/incoming/fn812d977S0-82+2+2205+ ④ /var/log/faxlog 파일을 본다. 24.10.99 19:04 fax received (id 82+2+2205+1986,
1 pages) 24.10.99 19:04 module mail 10월 24일 19시에 팩스가 왔고 그 내용이 두 사람에게 메일로 보내졌다. 즉, abc@ns.inchon-mah.ed.inchon.kr, bae@www.linux ⑤ 아래는 bae@www.linuxlab.co.kr 로 온 메일이다. 팩스 내용이 그래픽 파일로 화면에 나타난다.(그래픽 화면은 표시 않았다) 메일 내용을 프린터로 인쇄하면 팩스 내용을 볼수 있고 팩스 내용만 따로 저장할 수도 있다.
6. 실제 사용 예 팩스 송수신이 많은 회사의 경우 여러대의 팩스머신을 설치할 필요가 없이 리눅스의 팩스모뎀을 팩스 수신용으로 전용하고 일반 팩스머신을 팩스 송신 전용으로 하면 이점이 많다. 리눅스에 포트만 추가하면 여러대의 팩스모뎀을 연결해 동시에 팩스 수신이 가능하기 때문이다. 팩스용 전화 라인이 한 개인 경우는 팩스 전화 라인을 먼저 리눅스의 팩스 모뎀의 라인 쪽 콘넥터에 연결하고, 팩스모뎀의 전화 쪽 콘넥터와 팩스머신의 라인 쪽 콘넥터를 양쪽에 RJ-11 콘넥터가 있는 라인으로 연결하면 팩스모뎀은 수신 전용이 되고 팩스머신은 발신 전용이 된다. 이 방법은 팩스모뎀과 팩스머신이 멀리 떨어져 있어도 가능하다.
7. 덤 여기까지 잘 설치해서 사용한 사람을 위해 덤으로
한가지를 추가한다. 수신한 팩스 파일은 /var/spool/fax/incoming
디렉토리에 저장된다. fn812d977S0-82+2+2205+1986.01 1) 두번째의 n은 해상도가 normal 이 파일은 g3 포맷으로 이 파일을 팩스머신으로
보내면 팩스가 수신된다. /usr/local/etc/mgetty+sendfax 디렉토리의
sendfax.config 이제 수신한 팩스 파일을 mgetty 에 있는 sendfax 프로그램을 이용해 다른 팩스머신으로 다시 보내보자. /usr/local/sbin/sendfax -n 2205-1986 fn812d977S0-82+2+2205+1986.01 (1) sendfax 프로그램은 절대 경로를 쓸 것.
리눅스에 다른 sendfax 프로그램이 설치되어 이 방법으로 수신한 팩스 내용을 다른 팩스머신으로 인쇄할 수도 있고, 여러군데의 팩스에 똑같은 팩스를 자동으로 내보낼 수도 있다. |