간단한 팩스 서버 : HylaFax

필자 : 서정룡 (dreamsoh@orgio.net)
원문 : http://linuxfocus.org/English/March2001

 

     

소개

    이 기사는 Hylafax 4.0pl2.rjc11 과 맨드레이크 7.1 배포판을 이용한 간단한 팩스 서버 설정 방법에 대해 설명한다.

    서버쪽에서 Hylafax 는 세 개의 데몬으로 이루어져 있다:

    ·faxq - 메인서버
    ·hfaxd - 네트워크 접속 관리
    ·faxgetty - 모뎀과의 교신 관리

    클라이언트 쪽에서는 다음 프로그램들이 있을 것이다. 물론 서버에 존재할 수도 있다.

    ·sendfax - 팩스 전송
    ·faxstat - 큐 검사
    ·faxrm - 큐로부터 작업 제거

    관련된 설정 파일은 /var/spool/fax/etc/ 디렉토리에서 찾을 수 있다.

 

설치

    맨드레이크 7.1 배포판에 포함되어 있는 다음 패키지들을 설치할 것을 권한다:

    ·ghostscript (ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/)
    ·libtiff (ftp://rufus.w3.org/linux/redhat/)

    위 패키지들은 또한 http://www.hylafax.org/links.html 공식 사이트에서도 얻을 수 있다.

    Hylafax 가 디폴트로 설치되어 있지 않다면, 간단히 필요한 RPM 패키지들을 다음과 같이 설치해야 한다:

    rpm -ivh hylafax-common-4.0pl2.rjc11-3mdk
    rpm -ivh hylafax-client-4.0pl2.rjc11-3mdk
    rpm -ivh hylafax-server-4.0pl2.rjc11-3mdk

 

Hylafax 설정

    서버를 설정하기 위해서 다음 명령을 루트 권한으로 실행시킨다:

    faxsetup -server

    디폴트 설정은 다음을 제외한 거의 모든 질문에 대해 동의하는 것이다:

    ·Country code [1]? enter 33 for France (국가 코드 [1]? 프랑스인 경우 33)
    ·Area code []? enter 1 for Paris (지역 코드 []? 파리인 경우 1)
    ·Long distance dialing prefix [1]? enter 0 (장거리 전화인 경우 국번[1]? 0)
    ·International dialing prefix [011]? enter 00 (국제 전화인 경우 국번[011]? 00)
    ·Dial string rules file [etc/dialrules]? enter /etc/dialrules.europe
      (다이얼 문자열 규칙 파일 [etc/dialrules]? 유럽인 경우 /etc/dialrules.europe)
    ·Serial port that modem is connected to []? enter ttyS0 (for COM1) or ttyS1 (for COM2)
      (모뎀이 연결된 포트 []? COM1 및 COM2 인 경우 각각 ttyS0 및 ttyS1)

    Hylafax 는 faxgetty 를 디폴트로 시작하지 않는데 이는 다음과 같이 수작업으로 해야 한다:

    1 - /etc/inttab 파일을 편집해서 파일의 마지막에 다음 라인을 추가한다:

    mo:2345:respawn:/usr/sbin/faxgetty -D ttyS0

    faxgetty 를 재시작하기 위해 kill -HUP 1 명령을 실행시킨다

    또는 rc.local 파일을 사용하려면

    2 - /etc/rc.d/rc.local 파일에 다음 라인을 추가한다:

    /usr/sbin/faxgetty -D /dev/ttyS0

    다음 faxgetty 명령을 실행시킨다:

    faxgetty -D /dev/ttyS0

    Note: faxaddmodem 명령을 사용하여 추후 하나 또는 그 이상의 모뎀을 추가할 수 있다.

    1 또는 2 의 과정 후 faxgetty 를 위한 /var/spool/fax/etc/config.ttyS0 파일이 생성된다. 이 파일은 /dev/ttyS0 에 대한 모뎀 설정을 포함하고 있다. /usr/share/fax/hfaxd.conf 파일은 hfaxd 데몬 설정을 포함하고 있는데 여기서 언급하지는 않을 것이다.

 

문제해결

    모뎀을 검색하기 위해서는 probemodem 명령을 사용하는데 /var/spool/fax/config/ 디렉토리 내에서 전형적인 설정 파일을 얻을 수 있다.

    저자의 모뎀은 3Com US Robotics 56k 로 usr-2.0 파일을 선택하여 config.ttyS0 로 재명명 한 후 수정하여 다음과 같이 /var/spool/fax/etc/ 디렉토리 밑으로 복사하였다:
     

# Configuration for using the Class 2.0 command interface
# with a USR v.34 Courier or Sporster modem.
#
# CONFIG : CLASS2.0 :         USRobotics*_*
#CountryCode :                    33
AreaCode :                           1
#FAXNumber :                      팩스 넘버( 예 : 프랑스인 경우) : 0134123412
LongDistancePreefix :            0
InternationalPrefix :                00
DiadStrimgRules :                  etc/dialrules.europe(europe 확장자가 중요)
ServerTracing :                      1
SessionTracing :                   11
RecvFileMode :                     0600(수신 파일 모드)
LogFileMode :                      0600(로그 파일 모드)
DeviceMode :                       0600(디바이스 모드)
RingsBeforeAnswer :             1
SpeakerVolume :                   off
GettyAgs :                            "-h \l dx_ \s"
#LocalIdentifier :                   "회사 이름"(주석처리 제거시 회사이름이 함께 전송)
#TagLineFont :                     etc/lutRS18.pcf (idem)
#TagLineFormat:                   "De \\1|\c|Page \\p sur \\t" (idem)
#MaxRecvPages :                 25 (최대 수신 페이지)
ModemType :                        Class2.0            # class 2.0 인터페이스
ModemRate :                         57600               # 38400 DCE-DTE communication rate
ModemFlowControl :              rtscts                # XON/XOFF flow control assumed
ModemDialCmd :                   ATDT0%s          # I added 0 because I go through a PABX !!
#ModemNoFlowCmd :           AT&H0&10&R1   # setup modem for no flow control
ModemHardFlowCmd :           AT&H1&10&R2   # setup modem for hardware flow control
#ModemsoftFlowCmd :          AT&H2&12&R1   # setup modem for software flow control
#ModmSetupDTRCmd :         ATS13=1&D2      # setup so DTR drop resets modem
#ModmSetupDCDCmd :         AT&C1              # setup so DCD reflects carrier (or not)
ModemResultCodesCmd :      ATQ0X4             # enable extended result codes
#ModmSetupAACmd :           AT+FAA = 1
#ModmSetVolumeCmd :        "ATM0 ATM1 ATM1 ATM1 ATM1"
Class2BUGCmd :                  AT+FBU=0
Class2CQQueryCmd :            ! (0), (0)            # override modem response
Class2NRCmd :                     AT + FNR = 1,1,1,0 

     

    다음 라인들이 /var/spool/fax/etc/host 파일에 추가된다:

    localhost
    192.168.1

    192.168.1.0 도메인상의 모든 머신들은 팩스를 사용할 수 있다.

 

Hylafax 시작하기

    컴퓨터 시동시에 자동적으로 Hylafax 를 작동시키기 위해서는 맨드레이크 및 레드햇 배포판의 경우 각각 drakxservices 와 setup 명령을 사용한다. 그 후 다음 명령을 직접 실행시킨다:

    /etc/rc.d/init.d/hylafx start

    faxgetty 가 프로세스 목록(이는 ps -e 명령을 사용하여 확인할 수 있다) 에 없다면 다음 명령을 실행시킨다:

    /usr/sbin/faxgetty -D /dev/ttyS0

 

Hylafax 사용하기

    팩스를 보내기 위해서는 다음 명령을 실행시킨다:

    send -n -d number file1 file2 ..

    결과를 확인하기 위해서는 다음 명령을 실행시킨다:

    faxstat -s(전송 대기 중인 큐내의 팩스를 보여준다)
    faxstat -d(전송된 팩스를 보여준다)
    faxstat -r(수신된 팩스를 보여준다)

    팩스를 큐에서 제거하기 위해서는 다음 명령을 실행시킨다:

    faxrm number_of_job

    스풀을 청소하기 위해서는 다음 명령을 실행시킨다:

    faxclean

    통계를 보기 위해서는 다음 명령을 실행시킨다:

    faxcron

 

네트워크상에서 Hylafax 사용하기

    서버설정

    네트워크상에서 사용하기 위해 http://www.hylafax.org/links.html
    로부터 얻을 수 있는 프로그램들을 선택한다.
    특히, Printfax 와 Respond 는 http://www.boerde.de/~horstf/ 에서 얻을 수 있다:

    다음 세 파일을 다운로드한다:

    printfax.pl (펄 스크립트)
    respond.zip (respond.exe)
    smb_conf.add(/etc/smb.conf에 추가되는 모듈)

    printfax.pl 스크립트를 /usr/bin 디렉토리에 복사한 후 hylafax 와 함께 작동될 수 있도록 수정한다:
     

    ### 커맨드 라인 포맷
    #    $cmdlinefmt = 'mgetty' ;   
          $cmdlinefmt = 'hylafax' ;   

    ### 팩스 스풀 프로그램
    ###   mgetty 와 sendfax를 사용하는 경우
    #        $faxspool = '/usr/bin/faxspool' ;
    ###   hylafax를 사용하는 경우
              $faxspool = '/usr/bin/sendfax' ; 

    ###   추가 팩스 스풀 인수 (예, 헤더, 커버페이지)
    ###   인수가 없는 경우 :
              @faxspool_args = qw(-n) ;
    ###   특별한 헤더를 갖는 mgetty 와 sendfax를 사용하는 경우
    #        @faxspool_args = qw(-h /usr/local/etc/mgetty+sendfax/faxheader.smb) ;
    ###   작업이 종료되거나 다시 대기(requeue) 및 A4용지를 사용할 때 이메일을 보내는
    ###   hylafa를 사용하는 경우
    ###   a4 sized paper :
    #        @faxspool_args = qw(-D -R -s a4) ;


    Note: printfax.pl 스크립트가 수정되었을 수 있기 때문에 이 버전을 대조 확인해라.

    복사/붙여 넣기를 사용하여 /etc/smb.conf 파일에 smb_conf.add 모듈을 추가한다:

      [Fax] comment = Fax Printer
      public = yes
      postscript = yes
      print command = ( /usr/bin/printfax.pl \I \s \U  rm \s ) &
      printable = yes
      writable = no
      path = /var/spool/samba 

    특히 윈도우 2000 과 함께 사용하기 위해서는 print command 라인을 확인한다.

    삼바가 다음과 같이 재시작되어야 한다:

       /etc/rc.d/init.d/smb restart

    클라이언트 설정

    윈도우 95, 98, NT 및 2000 에 대한 전형적인 클라이언트 설정이 설명되는데 config.exe 와 respond.exe 파일을 포함하는 Respond.zip 을 설치한다:

    ·c:\windows (또는 다른) 디렉토리에 두 파일을 복사한다.
    ·시작->프로그램->시작프로그램 메뉴에 respond.exe 파일 링크를 만든다.
    ·respond.exe를 실행시키거나 컴퓨터를 재시작한다.

    다음은 네트워크 프린터를 설치한다:

    ·시작->설정->프린터->프린터추가를 클릭한다.
    ·네트워크 프린터를 선택한다.
    ·찾아보기를 선택하여 네트워크상의 팩스 프린터를 선택한다(삼바 프린터).
    ·HP->HP Lajerjet 4/4m postscript 드라이버를 선택한다.
    ·테스트 페이지를 인쇄하지 않는다.
    ·프린터가 설치된 후 시작->설정->프린터 메뉴에서 팩스 프린터의 등록정보를 클릭한다.
    ·등록정보에서 자세히로 간 후 스풀설정을 클릭한다.
    ·마지막 페이지까지 스풀한 후 인쇄 시작을 선택한다.

    이것으로 클라이언트 설정은 끝났고 워드패드를 열어 아무 텍스트나 타이핑한 후 이를 팩스 프린터에 인쇄 해본다. respond.exe를 실행시켰다면 팩스 넘버를 묻는 응답 박스가 나타나는데 팩스 넘버를 쳐넣고 Ok 버튼을 누른다. 팩스가 hylafax 팩스 서버에 전송될 것이다.

    정확하게 동작하는지를 확인하기 위해 서버에 가서 faxstat -s 명령을 실행시키면 전송한 팩스가 나타날 것이다.

    리눅스 클라이언트 설정을 위해서는 Hylafax 사이에서 얻을 수 있는 유틸리티를 사용해라.

 

Fax 메일링

    팩스 메일링은 스타오피스를 사용하여 서버에서 지역적으로 이루어진다.

    한편, 데이터베이스는 네트워크상의 어느 곳이라도 있을 수 있으며 스타오피스(ODBC, JDBC 등) 를 사용하여 접근할 수 있다. spadmin 유틸리티를 사용하고 telefax output 을 설정한다: faxspool (PHONE) (TMP)

    보낼 문서 안의 @@#num_tel_fax@@ 에 num_tel_fax 대신 데이터베이스 필드 이름을 넣는다.

    스타오피스 도움말을 읽기 바란다. 알아야 할 모든 내용이 설명되어 있다.

    이 방법은 팩스 서버에 스타오피스를 설치해야 한다는 것이 단점이다. respond 를 사용하여 네트워크를 통해 팩스를 우송하는 것은 모든 수령자에 대한 팩스 넘버를 수작업으로 입력해야 하기 때문에 스타오피스를 사용하는 것은 그다지 간단하지 않다. 아마도 다른 대안이 있을 것이다.

 

출 처

    http://www-phase.c-strasbourg.fr/inform/faxdoc/expose_fax/fonctionnement.html
    http://www.hylafax.org




▲ top

home으로...