通常のCentOS 7でも問題なく同じ手順でインストール可能だと思う。
下記で用いているDockerコンテナは、次のページで作成したイメージをベースにしている。
【Linux CentOS 7】(ベースコンテナの作成)SSH接続可能なDockerコンテナでの日本用ロケールの有効化と検証(man,dateの日本語表示)【Docker-ce 18.06.1.ce】
sshで接続して、以下のようにインストール作業を行った。
■ 必要な前提パッケージをインストール
○コンパイラ類の導入
[root@233ca92a899f iaxmodem]# yum install gcc gcc-c++
Installed:
gcc.x86_64 0:4.8.5-36.el7 gcc-c++.x86_64 0:4.8.5-36.el7
Dependency Installed:
cpp.x86_64 0:4.8.5-36.el7 glibc-devel.x86_64 0:2.17-260.el7_6.3 glibc-headers.x86_64 0:2.17-260.el7_6.3 kernel-headers.x86_64 0:3.10.0-957.5.1.el7
libgomp.x86_64 0:4.8.5-36.el7 libmpc.x86_64 0:1.0.1-3.el7 libstdc++-devel.x86_64 0:4.8.5-36.el7 mpfr.x86_64 0:3.1.1-4.el7
Dependency Updated:
glibc.x86_64 0:2.17-260.el7_6.3 glibc-common.x86_64 0:2.17-260.el7_6.3
Complete!
○makeコマンドの導入
[root@233ca92a899f libiax2]# yum install make
Installed:
make.x86_64 1:3.82-23.el7
Complete!
○必要なパッケージのインストール1
[root@233ca92a899f iaxmodem]# yum install libjpeg libjpeg-devel libtiff libtiff-devel
Installed:
libjpeg-turbo.x86_64 0:1.2.90-6.el7 libjpeg-turbo-devel.x86_64 0:1.2.90-6.el7
libtiff.x86_64 0:4.0.3-27.el7_3 libtiff-devel.x86_64 0:4.0.3-27.el7_3
Dependency Installed:
jbigkit-libs.x86_64 0:2.0-11.el7
Complete!
○必要なパッケージのインストール2
[root@233ca92a899f iaxmodem]# yum install ghostscript ghostscript-devel ghostscript-fonts sox
Installed:
ghostscript.x86_64 0:9.07-31.el7_6.9
ghostscript-devel.x86_64 0:9.07-31.el7_6.9
ghostscript-fonts.noarch 0:5.50-32.el7
sox.x86_64 0:14.4.1-6.el7
Dependency Installed:
alsa-lib.x86_64 0:1.1.6-2.el7
avahi-libs.x86_64 0:0.6.31-19.el7
cups-libs.x86_64 1:1.6.3-35.el7
dejavu-fonts-common.noarch 0:2.33-6.el7
dejavu-sans-fonts.noarch 0:2.33-6.el7
flac-libs.x86_64 0:1.3.0-5.el7_1
fontconfig.x86_64 0:2.13.0-4.3.el7
fontpackages-filesystem.noarch 0:1.44-8.el7
freetype.x86_64 0:2.8-12.el7_6.1
gsm.x86_64 0:1.0.13-11.el7
lcms2.x86_64 0:2.6-3.el7
libICE.x86_64 0:1.0.9-9.el7
libSM.x86_64 0:1.2.2-2.el7
libX11.x86_64 0:1.6.5-2.el7
libX11-common.noarch 0:1.6.5-2.el7
libXau.x86_64 0:1.0.8-2.1.el7
libXext.x86_64 0:1.3.3-3.el7
libXi.x86_64 0:1.7.9-1.el7
libXt.x86_64 0:1.1.5-3.el7
libXtst.x86_64 0:1.2.3-1.el7
libao.x86_64 0:1.1.0-8.el7
libasyncns.x86_64 0:0.8-7.el7
libfontenc.x86_64 0:1.1.3-3.el7
libogg.x86_64 2:1.3.0-7.el7
libpng.x86_64 2:1.5.13-7.el7_2
libsndfile.x86_64 0:1.0.25-10.el7
libtool-ltdl.x86_64 0:2.4.2-22.el7_3
libvorbis.x86_64 1:1.3.3-8.el7.1
libxcb.x86_64 0:1.13-1.el7
poppler-data.noarch 0:0.4.6-3.el7
pulseaudio-libs.x86_64 0:10.0-5.el7
urw-fonts.noarch 0:2.4-16.el7
wavpack.x86_64 0:4.60.1-9.el7
xorg-x11-font-utils.x86_64 1:7.5-21.el7
Complete!
■iaxmodem-1.3.0 のビルド
○次のページから、iaxmodem-1.3.0.tar.gz を取得した。
https://sourceforge.net/projects/iaxmodem/files/
[root@233ca92a899f iaxmodem]# ls
iaxmodem-1.3.0.tar.gz
○展開を行った。
[root@233ca92a899f iaxmodem]# tar zxvf iaxmodem-1.3.0.tar.gz
[root@233ca92a899f iaxmodem]# cd iaxmodem-1.3.0
○ビルドの方法は2種類あるのでいずれか適切な方を選ぶ。
1、スタティックビルド
バイナリサイズが大きくなるため複数モデムインスタンスでメモリを圧迫するかもしれない。
2、ダイナミックリンクでビルド
★スタティックビルドの場合は次のようにビルドする。
[root@eea26ba1e777 iaxmodem-1.3.0]# ls
CHANGES VERSION iaxmodem-cfg.ttyIAX iaxmodem.init.fedora[root@eea26ba1e777 iaxmodem-1.3.0]# ./build static
FAQ build iaxmodem.1 iaxmodem.init.suse
Makefile.in compat iaxmodem.c iaxmodem.spec
README config.ttyIAX iaxmodem.inf lib
TODO configure iaxmodem.init.debian termpkg-ttydforfax.patch
[root@eea26ba1e777 iaxmodem-1.3.0]# ls iaxmodem -l
-rwxr-xr-x 1 root root 1127296 Mar 15 17:00 iaxmodem ←スタティックビルドでは、サイズが1MBを超えている。
★ダイナミックリンクの場合は次のようにビルドする。
・一つ目のライブラリのインストール
[root@233ca92a899f iaxmodem-1.3.0]# cd lib/libiax2/
[root@233ca92a899f libiax2]# ./configure
[root@233ca92a899f libiax2]# make
[root@233ca92a899f libiax2]# make install
[root@233ca92a899f libiax2]# cd ../..
・二つ目のライブラリのインストール
[root@233ca92a899f iaxmodem-1.3.0]# cd lib/spandsp/
[root@233ca92a899f spandsp]# ./configure
[root@233ca92a899f spandsp]# make
[root@233ca92a899f spandsp]# make install
[root@233ca92a899f libiax2]# cd ../..
・ライブラリを利用できるようにする。
[root@233ca92a899f iaxmodem-1.3.0]# touch /etc/ld.so.conf.d/iaxmodem-i386.conf
[root@233ca92a899f iaxmodem-1.3.0]# echo '/usr/local/lib' >> /etc/ld.so.conf.d/iaxmodem-i386.conf
[root@233ca92a899f iaxmodem-1.3.0]# cat /etc/ld.so.conf.d/iaxmodem-i386.conf
/usr/local/lib[root@233ca92a899f iaxmodem-1.3.0]# ldconfig
・ダイナミックリンクでビルドを行う。
[root@233ca92a899f iaxmodem-1.3.0]# ./build
-rwxr-xr-x 1 root root 81328 Mar 17 16:37 iaxmodem ←ダイナミックリンクでビルドすると81KB程度となった。
○ビルドしたバイナリをコピーした。
[root@233ca92a899f iaxmodem-1.3.0]# cp -p iaxmodem /usr/local/sbin/
■iaxmodemの起動スクリプトと設定ファイルの準備
○起動スクリプトの準備
[root@233ca92a899f iaxmodem-1.3.0]# cp -p iaxmodem.init.fedora /etc/init.d/iaxmodem
[root@233ca92a899f iaxmodem-1.3.0]# chmod +x /etc/init.d/iaxmodem
○オリジナル設定ファイルのコピー
[root@233ca92a899f iaxmodem-1.3.0]# mkdir /etc/iaxmodem
[root@233ca92a899f iaxmodem-1.3.0]# cp iaxmodem-cfg.ttyIAX /etc/iaxmodem
○設定ファイルの編集
ここでは、IAXmodemがASTERISKのIAXアカウントにレジストするための設定や、
IAXmodem自身であるデバイスファイル名の設定などを行う。
[root@233ca92a899f iaxmodem-1.3.0]# vi /etc/iaxmodem/iaxmodem-cfg.ttyIAX
■iaxmodemサービスをserviceもしくはsystemctlで始動
○旧serviceコマンドを使えるようにする。
[root@233ca92a899f iaxmodem-1.3.0]# yum install initscripts
Installed:
initscripts.x86_64 0:9.49.46-1.el7
Dependency Installed:
sysvinit-tools.x86_64 0:2.88-14.dsf.el7
Complete!
○状態の確認を行った。
まだ始動していない。
[root@233ca92a899f iaxmodem-1.3.0]# service iaxmodem status
● iaxmodem.service - SYSV: IAXModem for asterisk <-> Hylafax gateway
Loaded: loaded (/etc/rc.d/init.d/iaxmodem; bad; vendor preset: disabled)
Active: inactive (dead)
Docs: man:systemd-sysv-generator(8)
○LOGをとれるようにしておく。
[root@233ca92a899f iaxmodem-1.3.0]# mkdir /var/log/iaxmodem
[root@233ca92a899f iaxmodem-1.3.0]# touch /var/log/iaxmodem/iaxmodem
○始動試行1
service iaxmodem start もしくは、systemctl start iaxmodemを実行した。
そして、次のようにしてLOGを確認した。
[root@233ca92a899f iaxmodem-1.3.0]# cat /var/log/iaxmodem/iaxmodem
[2019-03-15 16:45:46.303632] Fatal error: uucp user not found in passwd fileuucpユーザーが登録されていないため起動に失敗していることがわかった。
[2019-03-15 16:45:46.304002] iaxmodem process 16812 terminated on Unknown signal 255.
[2019-03-15 16:45:46.304021] respawning process for config: iaxmodem-cfg.ttyIAX.
[2019-03-15 16:45:46.304043] waitpid returned: -1
[2019-03-15 16:45:46.304051] Terminating...
○uucpユーザーを追加した。
[root@233ca92a899f iaxmodem-1.3.0]# useradd --system uucp
○起動
[root@233ca92a899f iaxmodem-1.3.0]# systemctl start iaxmodem
LOGの確認を行った。
[2019-03-15 16:50:34.016139] Process 16881 started for config iaxmodem-cfg.ttyIAX.設定ファイルに対応するモデムのデバイスファイルが作成された。
[2019-03-15 16:50:34.016215] Modem started
[root@233ca92a899f iaxmodem-1.3.0]# ls /dev/ttyIAX
/dev/ttyIAX
<参考>
・IAXmodem / Okay, now what?
< http://iaxmodem.sourceforge.net/howto.php > 2019年3月16日
・【Linux CentOS 5.7】 iaxmodemとhylafaxのインストールと基本設定作業
CentOS 5.7(64bit)に、iaxmodemとhylafaxをインストールする手順
< http://akira-arets.blogspot.com/2011/09/linux-centos56-iaxmodemhylafax.html > 2019年3月16日