投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2019年3月16日土曜日

【Linux CentOS 7】iaxmodem 1.3.0のインストールとsystemctlによる操作【IAXmodem 1.3.0】

以下は、特権で動作するDockerコンテナのCentOS 7システムにiaxmodemを導入した記録である。

通常の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
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]# ./build static
[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 file
[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ユーザーが登録されていないため起動に失敗していることがわかった。


○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日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad