徒然に

徒然に

Asterisk+IAXmodem+Hylafax+Frog FAX@Mail によるFAX環境

2008年03月02日 | Weblog
数週間ぶりに実家に戻ってきました。

FAX使えるようにならない?のお声。
やってみます。

NTTのひかり電話に入っており、RT-200KIで接続されているので、
電話環境とコンピュータシステムの相性はほぼ100%
思ったことはたいていできるという状況ですね。
(テレビなどに比べて、電話は完全にPCからコントロールできる
  その意味で、非常にオープンなインタフェースを提供してくれています。
    テレビのチャネルを勝手にPCから変えたり、画面にテロップ出すなんて
      いまのテレビじゃ望んでもできないですから。)

ということで、目的とするシステムですが、
●要求条件
   1.24時間FAXを受信できる環境を構築する
   2.FAX専用の番号を利用する
   3.PCから簡単にFAXを送受信可能とする
   4.電子メールでFAX受信お知らせとイメージファイルを受信する
   5.FAXが届いたらお知らせ電話を鳴らす

というところでしょうか。

1.、2.については、家の中で24時間稼動しているサーバPCが
あり、Asteriskが立ち上がっていて、ひかり電話にRT-200KIに接続していて、
使っていない追加番号契約があるので、それで満たされます。
 (以前に実験用に追加番号を契約してあった。月100円だし。)
 (2チャネル契約もしてあるし、問題はないですね。)

 なお、ぼくのところは、Vinelinux(4.2)でサーバを構築しています。

 このAsteriskのPBX環境でソフトウェア的にFAXを受信できればよいわけで
  http://voip.gapj.net/index.php?FAX%A4%CE%C1%F7%BC%F5%BF%AE
 を参考にさせていただきました。

 まず、準備としていくつかライブラリを入れてあげる必要があるようです。
 sudo apt-get install libjpeg libjpeg-devel libtiff libtiff-devel

 IAXmodemのインストール
  http://sourceforge.net/projects/iaxmodem
 より最新のソースファイルをダウンロード: iaxmodem-1.1.0.tar.gz
  tar zxvf iaxmodem-1.1.0.tar.gz
 インストールについては、libiax2 と spandsp のライブラリを
 先に作ってから、iaxmodemをbuildするということのようです。

 libiax2 のインストール
  cd iaxmodem-1.1.0/lib/libiax2
  ./configure
  make
  sudo make install

 spandsp のインストール
  cd iaxmodem-1.1.0/lib/spandsp
  ./configure
  make
  sudo make install

 ライブラリは、/usr/local/lib に入るようなので、
  sudo vi /etc/ld.so.conf
 で、/usr/local/libを追加。
  sudo /sbin/ldconfig -v
 ---
  /usr/local/lib:
    libiax.so.0 -> libiax.so.0.0.0
    libspandsp.so.0 -> libspandsp.so.0.0.2
 ---
 となっていれば、ライブラリにリンク。

  cd iaxmodem-1.1.0/   (注: cd ../../ということか)
  ./build
 で、iaxmodemの実行ファイルが作成されるので、
  sudo cp ./iaxmodem /usr/local/sbin
 にでも入れておく。

 iaxmodemの設定については、/etc/iaxmodem/になっているので
  sudo mkdir /etc/iaxmodem
  sudo cp ./iaxmodem-cfg.ttyIAX /etc/iaxmodem/ttyIAX

 ttyIAXの中身の書き方および、Asterisk側の設定については、
  http://voip.gapj.net/index.php?FAX%A4%CE%C1%F7%BC%F5%BF%AE
 を参考に行いました。

 次にHylafaxを入れます。iaxmodemがモデムだったので、
 その裏側で動く、FAX端末を擬似するソフトウェアなのですが、
 多彩なサーバ機能なども持っていて便利です。
  http://www.hylafax.org/content/Main_Page
 にはかなり詳しい説明がありますので、便利です。

 Hylafaxのインストール前に、GhostScriptが入っていたほうが
 良いみたいなので、
  sudo ghostscript ghostscript-devel ghostscript-fonts
 を実行しておきました。(必要ない??)

 それでは、改めて、
  wget ftp://ftp.hylafax.org/source/hylafax-4.4.4.tar.gz
 でソースを持ってきて、
  tar zxvf hylafax-4.4.4.tar.gz
  cd hylafax-4.4.4
  ./configure
 途中で、Configurationを聞いてきますね。
  
  [13] Default page size:      North American Letter

 は、修正したほうがよいでしょう。
  Are these ok [yes]? 13
  Default page size [North American Letter]? A4
 
 次に進んで

HylaFAX configuration parameters (part 2 of 2) are:

[15] Location of getty program: /sbin/agetty
[16] Location of voice getty program: /bin/vgetty
[17] Location of sendmail program: /usr/sbin/sendmail
[18] Location of TIFF tools: /usr/bin
[19] Location of SysV init scripts: /etc/rc.d/init.d
[20] Location of SysV start scripts: ../rc2.d ../rc3.d ../rc4.d ../rc5.d
[21] Location of SysV stop scripts: ../rc0.d ../rc1.d ../rc6.d
[22] Name of SysV start script: S97hylafax
[23] Name of SysV stop script: K05hylafax
[24] Init script starts faxq: yes
[25] Init script starts hfaxd yes
[26] Start old protocol: no
[27] Start paging protocol: no

 これは、このままで問題ないと判断。
 ./configureが終了するので
  make
  sudo make install
 します。
 /etc/init.d/hylafaxができているので、
  sudo /sbin/chkconfig hylafax on
 それから、Hylafaxの設定が必要です。
  sudo /usr/local/sbin/faxsetup
 次くらいの変更でよいと思います。あとは全部デフォルトでリターンのみ。
  Country code [1]? 81
  Area code []? 3   (東京など、0を除いた番号?)
  Long distance dialing prefix [1]? 0
  International dialing prefix [011]? 010
 これで、あとはリターンで、Hylafaxのサーバが起動します。
 
 Asterisk <-----> iaxmodem <-----> Hylafax
 の構成で接続されるわけですが、
  Asterisk <---IAX---> iaxmodem <---ttyIAX---> Hylafax と接続されます。

 まず、iaxmodemを起動し、ttyIAXを出力とします。
  sudo /usr/local/sbin/iaxmodem ttyIAX > /dev/null 2>&1 &
 これで、iaxmodemが起動した形になります。
 次に、Hylafaxですが、すでにfaxsetupの際に起動していると思います。
 起動スクリプトは、/etc/init.d/hylafax です。
 そこで、hylafaxにiaxmodemと接続するために、ttyIAXをつかませます。
  sudo /usr/local/sbin/faxgetty /dev/ttyIAX &

 以上でFaxが受け取れるようになりました。
 /var/spool/hylafax をSambaなどで共有すると便利です。

 なお、faxsetupの途中で、作業アカウントに対して、Fax受信メールを
 送るような設定になっているので受信した場合にメールが届きます。

 次にWindowsマシンから、FAXを送信するためのアプリケーションを
 Windowsマシンにインストールします。
 Frog FAX@MailなるアプリケーションがHylafaxのページで紹介されており、
 使い勝手もよさそうです。
  http://www.frogfax.com/modules/spxnews/
 Frogfax - Lite版は、Freeとのことなので、Downloadページからダウンロードします。
 インストールは、ドキュメントに従って入れればよいので簡単です。
  http://www.frogfax.com/modules/spxsection/category.php?categoryid=4

 Frog FAX@mailは、次のような構成で接続されます。
  PC上のアプリ <--印刷--> Frog FAX@Mail <--Hylafaxの通信プロトコル--> Hylafaxサーバ
 インストール手順で、順次出来上がりますが、Hylafaxサーバへのユーザ名、パスワードの
 登録が必要なようです。
  sudo /usr/local/sbin/faxadduser -u (username) (password)
 で、サーバ側に登録すれば、出来上がりです。

 送りたい文書を、印刷するときにFrogを選択し、起動して送信先を
 登録して、送信するだけで発信できます。

以上長くなりました。
結構便利です。

ALIX (PC Engines) への Vinelinux のインストール (まとめ その3)

2008年03月01日 | Weblog
■3.起動した後の調整

 ・3-1  起動して、初期configuration
   GRUBの選択画面が出ますが、そのままリターンで十分でしょう。
   起動すると、カーネルイメージを読み込み
   起動時のメッセージがたくさん出ます。
   そうすれば成功です。

GNU GRUB version 0.97 (640K lower / 261120K upper memory)

+-------------------------------------------------------------------------+
| Vine Linux (Current Kernel) |
| Vine Linux (Previous Kernel) |
| Vine Linux (vmlinuz-2.6.16-0vl76.27 Kernel) |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+-------------------------------------------------------------------------+
Use the ^ and v keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line.


   途中で、システム構成が変わったとして、
   メッセージが出ますので、
   必要ないデバイスのconfigurationは、removeしてしまいました。
   また、LAN端子などが、Add されますので、同じくconfigurationで
   追加していきます。
   すべてデフォルトをリターンし続ければ十分だと思います。

   起動途中で、カーネルモジュールがエラーしますが気にしませんでした。

   LANも起動しません。

  ・3-2 Kernelのrpmを上書きする
   rootでログインして、手順2で入れた、kernelをインストールします。
   (すでに、i686のが入っているので強制インストールを敢行します)

   rpm -ihv --force kernel-2.6.16-0vl76.27.i586.rpm
   
   エラーが出てしまいましたが、この際無視しました。(大丈夫か?....)

   これで、さらに再起動してLANなどが動くことを確かめました。


  ・3-3 kernel-develおよびglibcのパッケージの強制変更
   rootでログインして、手順2で入れたkernel-develおよびglibcを
   交換しました。

   rpm -ihv --force kernel-devel-2.6.16-0vl76.27.i586.rpm
   rpm -ihv --force glibc-2.3.4-2vl3.3.i386.rpm


  ・3-4 時刻がおかしいので、apt-get updateが利かないので時刻あわせ
    時刻は、電源を抜くたびに、2000年1月1日に戻ってしまうようです。

   ntpdate time.nist.gov (←プロバイダなどが提供しているNTPサーバを指定)
    面倒なので、rc.localの最後に書き込んで、起動時に時刻あわせをさせます。


  ・3-5 Vineのパッケージのアップデート
    時刻設定が終了したら、パッケージのアップデートを実施して、
    インストールは終了です。

   apt-get update
   apt-get upgrade

    rebootして、Current Kernelで立ち上がるか、確認しました。
    よかった、起動しました。

以上で、インストールは終了。
お疲れ様でした。

ちゃんと筐体に設置して作業は全部終了。
(シリアルの固定ネジは一度はずす必要がありました。)
(ヤマモトさんで、購入しています。)

ALIX (PC Engines) への Vinelinux のインストール (まとめ その2)

2008年03月01日 | Weblog
■2.CFカードへのVinelinuxのインストール
 ・2-1 VinelinuxのインストールCDからCFカードにインストール
   VinelinuxのインストールCDからブートアップして、
   CFカードのターゲットにインストールを行います。

 [モニタの設定]
  モニタター未検出 としました

 [インストール種類]
  サーバ を選択しました

 [ディスクパーティションの設定]
  Disk Druidを使用して手動でパーティションを設定 としました。

 [パーティション設定]
  ターゲットのCFカードに、SWAPなしで、 / (ルート)を作成(CFは1パーティション)して、
  ext3ファイルタイプで、フォーマットとしました。

 [ブートローだの設定]
  [ブートローダを変更]にて、ブートローダをインストールしない としました

 (セキュリティ設定で、ファイヤーウォールは後にwebminを利用して設定したいこと
  から、とりあえず、OFF)
 以上でインストール開始。


 ・2-2 CFカードのVinelinuxをALIXでブートアップできるように調整
   シリアルのコンソールを用いて、最初の設定を行わなくてはならないので、
   CFカードのVinelinuxをALIXでブートして、シリアルでコンソール接続できるように
   調整します。

  ディスクトップPCでVinelinuxを起動して、CFカードをmountします。
  mount /dev/hdc1 /mnt/CF (ぼくの環境)

  VinelinuxをインストールしたPCがPentium4なので、ALIXでは使えない
  アーキテクチャのkernelが入ってしまっています。
  まずは、ブート時のkernelイメージを取り替えてしまうことにします。

  なお、i686のアーキテクチャで入ってしまっているパッケージは、
  /mnt/CF/root/install.log (CFカードの/rootに保存されたインストール時のログ)
  から確認します。
    glibc-2.3.4-2vl3.3.i686.rpm
    kernel-2.6.16-0vl76.27.i686.rpm
    kernel-devel-2.6.16-0vl76.27.i686.rpm
  がi686のアーキテクチャで入ってしまっています。

  まずは、後でパッケージを交換するときのことを考えて、
  CFカードの中に必要なパッケージをダウンロードしました。
  (※VinelinuxのインストールCDでは、これらのパッケージのバージョンが
     入っていましたが、インストールされているパッケージのバージョンに
     合致するように、install.logの確認が必要だと思います。)
    cd /mnt/CF/root
    wget http://www.ring.gr.jp/pub/linux/Vine/Vine-4.2/i386/Vine/RPMS/kernel-2.6.16-0vl76.27.i586.rpm
    wget http://www.ring.gr.jp/pub/linux/Vine/Vine-4.2/i386/Vine/RPMS/kernel-devel-2.6.16-0vl76.27.i586.rpm
wget http://www.ring.gr.jp/pub/linux/Vine/Vine-4.2/i386/Vine/RPMS/glibc-2.3.4-2vl3.3.i386.rpm

  ブートファイルを取り替えます。
  作業用のディレクトリで
  cd /tmp
  rpm2cpio /mnt/CF/root/kernel-2.6.16-0vl76.27.i586.rpm | cpio -id
  として、ファイルを取り出します。(注 決して / (ルート)などで行わないこと)
  cp ./boot /mnt/CF
  で、必要なブートデータが上書きされます。

  次に、ブートローダの中身の設定を行います。
  cd /mnt/CF/boot/grub
  menu.lstのファイルを修正します。

-----menu.lst-----------
serial --speed=57600
terminal serial
#
default 0
timeout 10
#
title Vine Linux (Current Kernel)
root (hd0,0)
kernel /boot/vmlinuz ro root=/dev/hda1 console=ttyS0,57600
initrd /boot/initrd.img
savedefault

title Vine Linux (Previous Kernel)
root (hd0,0)
kernel /boot/vmlinuz.old ro root=/dev/hda1 console=ttyS0,57600
initrd /boot/initrd.old.img
savedefault

title Vine Linux (vmlinuz-2.6.16-0vl76.27 Kernel)
root (hd0,0)
kernel /boot/vmlinuz-2.6.16-0vl76.27 ro root=/dev/hda1 console=ttyS0,57600
initrd /boot/initrd-2.6.16-0vl76.27.img
----------end of menu.lst-------------

  同じフォルダにあるdevice.mapも編集しておきます。
  PCの環境にもよりますが

-----device.map-----
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/hdb
(hd2) /dev/hdc
---end of device.map---

  とぼくは書きました。

  次に、/etc/fstabの内容確認と、/etc/inittabの修正です。

  /etc/fstabでは、swapなどが、ディスクトップPCの環境に影響されていないか
  確認します。必要ない行は抜いてしまいます。
  ぼくの/etc/fstabは次のとおり

----/etc/fstab----
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
-----------------

  inittabでは、起動時にconsoleが有効なように書き込みます。
Run gettysの部分で、ttyは無効にして、ttyS0のみ有効とします。

---/etc/inittabの一部------------
# Run gettys in standard runlevels
#1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
co:2345:respawn:/sbin/agetty ttyS0 57600 vt100-nav
-------------------------------

  そして、grubをインストールします。

  grub-install --root-directoty=/mnt/CF /dev/hdc

  環境にあわせて、パラメータの変更は必要です。
  以上で、CFカードが出来上がります。

(つづく)

ALIX (PC Engines) への Vinelinux のインストール (まとめ その1)

2008年03月01日 | Weblog
ALIX (PC Engines) への Vinelinux のインストールについて、
まとめて書きます。

利用したもの:
 ALIX.2C3 (PC Engines) + CFカード(4G)(2Gでも十分か) + 12V(1A) DCアダプタ
 クロスシリアルケーブル
 デスクトップPC(Pentium4で、WindowsXPとVinelinux4.2のデュアルブート、CFカードが読めるスロット)
   (Tera Term Professional / Linux側でCOMポートを読めばよいのですが、
    よくわかっていなくて、Windows側の方が簡単だと勝手に思い込んだので...)
 Vinelinux4.2のインストールCD

以下手順を記載しますが、ぼくが行った手順ですので、
必要ないものや、間違っている記載もあると思います。

■0.概要
 デスクトップPC(別にノートでもよいですが)を用いて、VinelinuxのインストールCDから
 CFカードにVinelinuxをインストールし、必要な設定(ブート設定)をディスクトップPCに
 インストールされているVinelinuxから行うことで、ALIXで動作するCFカードを作成する。

■1.前準備
 Windows上からシリアルケーブルでALIXのコンソールに接続する。
 通信速度の設定や、ALIXのBIOSメニューの設定。

 1-1 COMポートでALIXと接続
  WindowsXPの[コントロール パネル]→[管理ツール]→[コンピュータの管理]
  ここで、COMポートのスピード設定を行います。(添付画像参照/右クリックでプロパティ)
  ALIXの通信スピードのデフォルトが38400bpsなので「ポートの設定」のビット/秒を
  「38400」に設定します。添付画像参照

 1-2 Tera Term Professional を起動して待ち受け
  Tera Termを起動し、New Connectionで、「Serial」を選択して、
  「COM1」に接続します。(COM1かどうかは1-1の手順の際にわかります)
  接続後、スピード設定を行います。
  「Setup」メニュータブの中から「Serial port」を選択して、
  Baud rate:を38400とします。

 1-3 ALIXを起動(BIOSバージョンのチェック、通信スピードの設定)
  ALIXの電源を入れると
   -----
   PC Engines ALIX.2 v0.99
   640 KB Base Memory
   261120 KB Extended Memory
   -----
  と表示されますが、その表示が終わる前のメモリーチェックの段階で、
  (つまり、ALIXの電源を入れたらすぐに、)
  WindowsXP上のTera Termを通じてキーボードから「s」を入力して、
  BIOS Setupに入ります。
   -----
   01F0 Master 044A CF 4GB
   Phys C/H/S 7866/16/63 Log C/H/S 983/128/63
   
   BIOS setup:
   
   (9) 9600 baud (2) 19200 baud *3* 38400 baud (5) 57600 baud (1) 115200 baud
   *C* CHS mode (L) LBA mode (W) HDD wait (V) HDD slave (U) UDMA enable
   (M) MFGPT workaround
   (P) late PCI init
   *R* Serial console enable
   (E) PXE boot enable
   (X) Xmodem upload
   (Q) Quit
   -----
  ぼくは、通信速度を「5」を押して、57600に変更しました。
  この変更後、「q」によりQuitして、再起動ですが、1-1および1-2の手順で、
  通信速度を57600にする必要があります。

  以上で、前準備が終了です。

■余談
  BIOS設定で、「e」で、PXE Bootを選択して、Vinelinuxを入れようと試みて、
  PXEブート用のブートファイルをVineのインストールCDから取得して、
  ftp://ftp.kernel.org/[..]ux/utils/boot/syslinux/syslinux-3.61.zip
  を使って、
  [PXE-boot]
   |- vmlinuz
   |- initrd.img
   |- pxelinux.0
   |-[pxelinux.cfg]
     |- default
  その「default」ファイルの中身は、
   -----
   serial 0 57600
   default install
   prompt 1
   timeout 150
   
   label install
   kernel vmlinuz
   append text serial console=ttyS0,57600 load initrd=initrd.img devfs=nomount
   -----
  として、実行して、セットアップの途中までは進んだのですが、
  anacondaの実行がスタートしたところで、止まってしまいました。

ですので、今回は、CFカードに対して、別のPC上でインストールすることとしました。

-----
  Traceback (most recent call last):
File "/usr/bin/anaconda", line 1184, in ?
intf.run(id, dispatch, configFileData)
File "/usr/lib/anaconda/text.py", line 519, in run
dispatch.gotoNext()
File "/usr/lib/anaconda/dispatch.py", line 171, in gotoNext
self.moveStep()
File "/usr/lib/anaconda/dispatch.py", line 239, in moveStep
rc = apply(func, self.bindArgs(args))
File "/usr/lib/anaconda/packages.py", line 280, in checkMonitorOK
if xsetup.xhwstate is not None:
AttributeError: 'NoneType' object has no attribute 'xhwstate'
  

ALIX に Vinelinux4.2 インストール成功

2008年02月26日 | Weblog
利用したもの: WindowsXPの入ったPC
          VineLinux4.2の入ったPC
          ALIX.2C3

VineLinux4.2のCDROMから、普通にCFカードにインストール。
サーバインストール(Xなし、その他お好み、sshあると便利)、GRUBインストールなし
VineLinuxのPCから、CFカード内の設定を変更
####CF/boot/grub/menu.lst####
serial --speed=57600
terminal serial
#
default 0
timeout 10
#
title Vine Linux
root (hd0,0)
kernel /boot/vmlinuz-2.6.16-0vl76.28 ro root=/dev/hda1 console=ttyS0,57600
initrd /boot/initrd-2.6.16-0vl76.28.img
savedefault

####CF/etc/inittab####
# Run gettys in standard runlevels
##1:2345:respawn:/sbin/mingetty tty1
##2:2345:respawn:/sbin/mingetty tty2
##3:2345:respawn:/sbin/mingetty tty3
##4:2345:respawn:/sbin/mingetty tty4
##5:2345:respawn:/sbin/mingetty tty5
##6:2345:respawn:/sbin/mingetty tty6
co:2345:respawn:/sbin/agetty ttyS0 57600 vt100-nav
#T0:2345:respawn:/sbin/mingetty ttyS0 57600 vt100
(最初、T0の行で書いておいたが、起動後自動設定で上記に書き換えられました)

これで、VineLinux4.2の入ったPC側の作業で、/mnt/CFが、/dev/hdcがCFとすると
(なお、CFでは/のみで、/bootを分けていない)
  grub-install --root-directory=/mnt/CF /dev/hdc

 これが入らなくて、エラーの場合
  ####CF/boot/grub/device.map####
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/hdb
(hd2) /dev/hdc

ここをfd0やhd1,2は必要ないと思いますが...
 をちゃんと書いておかないとだめ、CDからインストールしたときの環境で
 変更されているから。

 なお、もうひとつ、インストール時に利用するPCが、i686を選択すると
 だめなので、i586のkernelに、上記作業の途中で、入れ替える必要がある。

 また、これらの作業に先立って、シリアルで、スピードは、57600に変更している。

 今日はもう朝になるので、手順、再度まとめたら、
 どこかに掲載しましょう。

珊瑚

2008年02月24日 | Weblog
<script type="text/javascript" src="http://sango.goo.ne.jp/tag?T=hExWFiSSZ7GKBL6kLffeqgy5vahzrl3MFZRhLQWmvCK8ht8cebp8jVhj8DZhIazmrsGH7Wcw5pms0gkHcC3tYCYULowlEPL7gMukWGsBEB0wtiUHkF6qp03Z8FVS7KyucRt-GRlMXtEId6N4WUV3Jg__&C=20071112163922_hitosang&sangoId=846"></script><noscript>gooホームPROJECT</noscript>