라즈베리파이에 팩스서버 설치하기

 

들어가는 글

 

    라즈베리 파이는 기본적으로 Faxmodem 칩을 가지고 있지는 않습니다. 하지만, USB 포트들이 있으므로, 리눅스 운영체제에서 지원하는 USB 팩스모뎀을 구해서 연결만 해 주면 훌륭한 팩스기기로 변신합니다. 저렴하게는 5만원 안쪽에서 팩스시스템을 구축할 수 있는 것이지요. 오늘은 USB 팩스모뎀을 라즈베리 파이에 설치하고 팩스서버 어플리케이션을 설치 및 설정하여 팩스 서비스를 실행하는 것에 관하여 포스팅합니다.

     ※준비물

  • 리눅스 운영체제가 설치된 라즈베리파이 (이 글에서는 Raspbian 가정)

  • USB 팩스모뎀 (리눅스 호환 칩을 가진 모델일 것)

  • 개통 완료된 전화 1회선 (전화기는 필요 없습니다.)

    라즈베리파이는 네트워크 접속만 할 수 있고, USB 슬롯이 있는 모델이라면 어떠한 것도 상관 없습니다. 마찬가지로 Orangepi 및 각종 Pi류 다 괜찮습니다. 당연한 이야기지만 PC도 됩니다. 운영체제도 리눅스 운영체제라면 Arch linux, Ubuntu 계열도 모두 괜찮습니다. 다만, 리눅스 커널은 USB 팩스모뎀이 인식되도록 범용으로 컴파일된 것이어야 합니다.

    USB팩스모뎀은 시중에 4~5만원대 제품도 있고, 10만 원이 넘어가는 고급 제품도 있는 것으로 알고 있지만, eBay나 aliexpress에서 무료 배송에 우리 돈으로 1만 원 가량하는 제품도 괜찮습니다. 물론 도를 닦는 심정으로 한 달 이상을 기다려야... 단, 상품상세 설명에 지원하는 운영체제로 Linux가 반드시 기재 되어 있어야 합니다.

USB 팩스모뎀제가 파이 팩스서버를 구축하기 위해 Aliexpress에서 구입한 중국산 팩스모뎀제품입니다. 당시 (2016년 1월) 구입가는 USD8.56이었습니다.

 

USB팩스모뎀의 설치 및 확인

 

    전화선의 경우 팩스 전용의 회선이 따로 있다면 자동수신으로 설정해 놓고 사용할 수 있습니다. 그렇지 않고 전화용 회선에서 끌어다가 팩스를 쓴다면, 수동수신으로 설정해서 사용하는 것이 좋겠지요. 아무튼, 전화선을 국선 라인에 연결해 주고 USB 커넥터도 라즈베리파이의 USB 슬롯에 연결해 줍니다.

    이제 라즈베리 파이에 ssh로 접속하여(혹은 데스크톱환경에 접속 후 터미널을 열어) 아래와 같이 입력해 줍니다.[각주:1]

1
$ lsusb 
cs

    위 명령의 결과, 아래와 같이 faxmodem 장치가 잡혀 있다면 라즈베리파이 리눅스에 하드웨어가 잘 장착된 것입니다[각주:2]. 당연히 Bus와 Device 번호, ID는 다를 수 있겠지요.

    하드웨어 디바이스의 폴더도 아래와 같이 살펴 봅니다.[각주:3]

1
$ ls -la /dev/ttyA* 
cs

    아래와 같이 장치가 잡혀 있으면 됩니다. 이때, tty로 시작하는 장치의 이름을 대소문자 및 숫자 구분하여 반드시 기억하거나 메모해 둡니다.

 

 

애플리케이션의 설치

 

    우리의 라즈베리파이에 메일 서버가 설치되어 있지 않은 경우, 수신 메일을 메일로 포워딩하는 기능을 활용하기 위해 MTA(Mail Transfer Agent)를 설치할 필요가 있습니다. hylafax-server를 설치하면 mailutils까지 함께 설치되고 이렇게 되면 기본 MTA프로그램인 Exim이 설치되기 때문에, MTA로 Exim이 아닌 postfix를 설치하여 간단하게 gmail의 SMTP를 통한 relay가 가능하도록 설정해 줄 필요가 있습니다. 이 과정은 아래의 링크로 대신합니다.

<Gmail SMTP Server를 사용하여 발송전용 Postfix 메일 서비스 구축하기> 바로가기

    이제 팩스서버 어플리케이션을 설치합니다. 리눅스에서는 팩스서버-클라이언트 패키지인 hylafax를 많이 씁니다. 서버를 설치하면 클라이언트도 함께 설치됩니다.

1
$ sudo apt-get install hylafax-server 
cs

 

 

hylafax 팩스모뎀 설정

 

    애플리케이션 설치가 완료되면 아래와 같이 팩스모뎀에 대한 설정에 들어 갑니다.

1
$ sudo faxsetup 
cs

    hylafax의 설정 스크립트가 시작되어 특별한 에러가 없으면 아래와 같은 부분에서 사용자 입력을 대기하게 됩니다.

        HylaFAX configuration parameters are:

        [1] Init script starts faxq:            yes
        [2] Init script starts hfaxd            yes
        [3] Start old protocol:                 no
  Are these ok [yes]? 엔터

Can I terminate this faxq process (3804) [yes]? 엔터
Should I restart the HylaFAX server processes [yes]? 엔터

 

Do you want to run faxaddmodem to configure a modem [yes]?엔터
Serial port that modem is connected to [ttyS0]? ttyACM0

 

※ 위에서 암기하거나 메모해 둔 팩스모뎀의 디바이스명을 정확히 입력해 줍니다.

    [ ] 안의 기본값 yes를 그대로 적용한다는 의미로 엔터를 입력하면 계속해서 사용자의 설정값을 받도록 대화모드가 이어집니다. 아래에 기술한 항목에 대하여는 각자의 환경에 맞는 값을 입력해 주어야 하며, 특별히 언급이 없는 항목에 대하여는 기본값대로 엔터를 입력하며 넘어가 줍니다.

Country code [1]? 82
Area code [415]? 2 <- 지역번호에 0을 빼고 입력합니다. ex 서울 2, 경기 31, 인천 32
Phone number of fax modem [+1.999.555.1212]? +82.2.1234.5678  <-실제 전화번호입력
Local identification string (for TSI/CIG) ["NothingSetup"]? Truerain's Home Fax <-각자 변경
Protection mode for received facsimile [0600]? 644
Protection mode for session logs [0600]? 644
Protection mode for ttyACM0 [0600]? 666
Rings to wait before answering [1]? 1   <- 발신 전용일 경우 0 입력
Modem speaker volume [off]? 엔터    <- 기본값 외에 QUIET LOW MEDIUM HIGH 가능 Max consecutive bad lines to accept during copy quality checking [5]? 3  <-줄여도 무방
Max number of pages to accept in a received facsimile [25]? 엔터    <- 늘려도 무방

Are these ok [yes]? 엔터  

   이제 스크립트는 모뎀 속도를 체크한 뒤, 가능한 모뎀 Class를 확인한 후 어떤 클래스를 사용할 것인지 물어 옵니다. 이때 구형 팩스를 포함한 모든 팩스기기와 호환되기 위해서 반드시 1을 입력해야 합니다.

This modem looks to have support for Class 1.0, 1 and 2.
How should it be configured [1.0]? 1

     아래의 문구가 나올 때 까지 몇 번 더 기본 값을 승인하는 엔터를 입력한 후 아래의 문구대로 다른 팩스모뎀을 더 설정할 것이 없다면(팩스모뎀 단 하나를 설치한 우리도) no를 입력하고 엔터를 입력합니다.

Do you want to run faxaddmodem to configure another modem [yes]? no

    마지막으로 아래 물음에 엔터로 승인하면 팩스모뎀 설정이 완료됩니다.

Should I run faxmodem for each configured modem [yes]?  엔터

    이제 스크립트가 알아서 지금까지의 모든 설정을 저장하며 Bash쉘로 돌아옵니다. 새로이 저장된 설정을 반영하기 위해 아래와 같이 hylafax 서비스를 재시작 해 줍니다.[각주:4]

1
$ sudo systemctl restart hylafax.service 
cs

    팩스서비스가 설정대로 잘 재시작되었는지 상태를 점검하기 위해 아래 명령으로 확인합니다.

1
$ sudo faxstat -s
cs

    그 결과가 아래 그림과 같이 나오면 잘 설정되어 실행중에 있으며 대기상태에 있음을 알 수 있습니다.

 

나오는 글

    지금까지 데비안 Jessie 계열 운영체제가 설치된 라즈베리파이에 USB팩스모뎀을 설치하고 hylafax 애플리케이션을 설치하여 팩스서버로 작동하도록 구성하는 절차를 진행하였습니다. 지금까지 설정한 것 이외에도 별도의 클라이언트 프로그램을 설치하여 내부네트워크의 다른 단말기에서도 팩스를 수신 및 발신 할 수 있도록 추가 설정이 가능합니다. 하지만, 이보다는 avantfax 웹애플리케이션을 웹서버에 설치하여 hylafax와 연동하도록 구성하고 인터넷으로 접속하여 라즈베리파이 팩스서버를 관리하는 것이 훨신 효율적이고 편리하므로, hylafax 서버의 설정은 이 정도 선에서 마무리하도록 하겠습니다.

 

 

 

 

  1. 기본적으로 제가 구입한 conexant 제품은 Plug & Play를 지원하기 때문에 재부팅이 필요 없었습니다. 구매한 팩스모뎀 제품에 따라 재부팅을 필요로하거나 수동 설정을 필요로하는 경우가 있을 수 있습니다. 이 경우 제품 메뉴얼을 참조하시기 바랍니다. [본문으로]
  2. 제가 Aliexpress에서 구입한 제품은 벌크제품으로서 Conexant Systems (Rockwell), Inc.의 모뎀 칩을 사용하는 TRENDnet TFM-561U이거나 그 카피 제품으로 보입니다. 해당 모델은 리눅스와 호환성이 매우 좋은 것으로 알려져 있습니다. [본문으로]
  3. 제 경우와 달리, USB팩스모뎀의 종류에 따라 ttySL0 등의 이름으로 잡히는 모델이 있으므로 ls -la /dev/tty* 라는 명령으로 살펴볼 필요가 있습니다. [본문으로]
  4. 만약, Debian(Raspbian) Jessie 이전 배포판을 사용하고 있다면 sudo service hylafax restart 라는 명령을 통해 재시작하여야 합니다. [본문으로]
Posted by truerain