partysip は、GPL(コア部分はLGPL)のSIPサーバです。容量が小さいのが利点です (install size = 1208Kbytes)。SIP proxy と registrar の役目をします。ユーザディレクトリをローカルで持つため、他のレジストラとの協調動作はできませんが、SIPのテストには十分です。
hgw003.ddo.jp:15060 でSIPサーバをテスト運用してますので、SIPクライアントを持っている方は、試しに電話をかけてきてください。宛先は、0500031111@hgw003.ddo.jp です。 (認証テストのため休止中)
partysipのHGW用バイナリはダウンロードページにあります。バイナリを入手したら、partysipの設定から始めます。
パッケージを入手して、クロスコンパイルします。
% tar xvfz libosip-0.9.1.tar.gz
% mkdir build-libosip
% cd build-libosip
% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' ../libosip-0.9.1/configure --host=ppc-linux2.4 --prefix=/usr/local/ppc-linux2.4 --disable-debug
% make
# make install
HGWに転送する準備をします。シンボリックリンクをすべてコピーにします。
# 以下をビルドPCのrootで実行。
rm -rf /mnt/local
mkdir /mnt/local
mkdir /mnt/local/lib
cd /mnt/local/lib
cp /usr/local/ppc-linux2.4/lib/libfsmtl*.so* .
cp /usr/local/ppc-linux2.4/lib/libosip*.so* .
パッケージを入手して、クロスコンパイルします。
% tar xvf partysip-0.5.1.tar.gz
% mkdir build-partysip
% cd build-partysip
% CC=ppc-linux2.4-gcc CFLAGS='-msoft-float -O2' CPPFLAGS=-DOLD_NAMESER ../partysip-0.5.1/configure --host=ppc-linux2.4 --prefix=/mnt/local --disable-debug
% make
# make install
HGWに転送する準備をします。シンボリックリンクをすべてコピーにします。
# 以下をビルドPCのrootで実行。
cd /mnt/local
rm -rf include
mv lib lib.bak
mkdir lib
mkdir lib/partysip
cp lib.bak/*.so* lib
cp lib.bak/partysip/*.so* lib/partysip
rm -rf lib.bak
できあがったソフトウェアをHGWに転送します。
% tar cvfPz partysip-0.5.1-binary-ppc-linux2.4.tar.gz /mnt/local
--- tar.gz ファイルを FTP などで HGW に転送 ---
beta2# tar xvfPz partysip-0.5.1-binary-ppc-linux2.4.tar.gz
HGW で、/mnt/local/etc/partysip/partysip.conf を編集します。変更する行は、以下の通りです。サーバの待ち受けポート番号は、5060 にしたいところですが、HGWのSIPクライアントが5060で待ち受けしているので、サーバのほうは 15060 にします。5061はpartysipがUDP送信専用ポートとして使うので、待ち受けポートとしては使えません。サーバのIPアドレスは、LAN側で待ち受けるならLAN側のIPアドレス、WAN側で待ち受けるならWAN側のIPアドレスにしますが、とりあえずLAN側でテストしましょう。
serverip = 192.168.0.1
servername = beta2
serverport_udp = 15060
serverrealm = hgw003.ddo.jp
共有ライブラリを見付けられるように、LD_LIBRARY_PATH を設定します。root の ‾/.profile を編集して次の1行を追加します。再起動した時にも有効にする方法は、設定方法を見てください。
LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/local/lib
LD_LIBRARY_PATH を有効にするには、次のコマンドを実行します。
beta2# . ‾/.profile
とりあえずLAN側でテストします。
partysip をトレースモードで起動します。
beta2# /mnt/local/bin/partysip -i -d 6
HGWにもう1枚ログオンして、sipクライアントを起動します。
beta2# killall sip-br0
beta2# killall sip-ppp0
beta2# killall sip-eth0
beta2# sip-br0 -r 0500031111@beta2:15060
HGWにもう1枚ログオンして、rmsdevを再起動します。
beta2# /etc/rc.d/scripts/rmsdev stop
beta2# /etc/rc.d/scripts/rmsdev start
Windows XP で、Windows Messenger (V4.6) を起動します。オプション−アカウントに下のように設定します。
Windows Messengerでサインインします。
Windows Messenger で、音声チャットを選択し、宛先(電子メールアドレス)に、0500031111 を指定します。HGWのSIPクライアントに着信します。
HGWのSIPクライアントから、0500032222 に発信すると、Windows Messenger に着信します。
1024番以降の着信UDPパケットを全て受け入れるようにするため、IPv4フィルタ設定に追加します。
/mnt/local/etc/partysip/partysip.conf を編集して、servername をWAN側のホスト名に変更します。
servername = hgw003.ddo.jp
/mnt/local/bin/sipd を作成します。
/etc/rc.d/scripts/voip を作成します。
実行属性にします。
# chmod +x /etc/rc.d/scripts/voip
/etc/ppp/ip-up の最後に下の2行を追加します。
/mnt/local/bin/sipd start /etc/rc.d/scripts/voip start
/etc/ppp/ip-down の最後に下の2行を追加します。
/etc/rc.d/scripts/voip stop /mnt/local/bin/sipd stop
/etc/rc.d/rc3 を編集して、voip と rmsdev を起動しないようにします(ip-upで起動されるため)。
今すぐ起動します。ログは/var/log/partysipに書き出されます。
# /mnt/local/bin/sipd start # /etc/rc.d/scripts/voip start
/etc/sysconfig/crontab に、下の1行を追加します。(1時間に1回、REGISTERし直す必要があるため。通話中でも毎時33分になると切断されてしまいます。)
33 * * * * /etc/rc.d/scripts/voip restartcrontab を有効にします。
# crontab /etc/sysconfig/crontabHGW起動時に毎回有効にするためには、/etc/rc.d/scripts/crond のstart()関数に、以下の記述しておきます。
start() { if [ -x /usr/sbin/crond ]; then /usr/sbin/crond crontab $CONF fi }
(0500031111@hgw003.ddo.jpは、Digest認証テストのため休止中です。)
SIPクライアントをお持ちの方は、以下の情報を設定してください。Windows Messenger と HGWのSIPクライアントの具体的な設定方法は、後で説明します。
設定ができたら、SIPクライアントから、0500031111@hgw003.ddo.jp に電話をかけてください。うまくいけばうちの留守番電話が応答します。
Windows Messenger (V4.6) を起動し、以下のように設定します。
Windows Messengerでサインインします。
Windows Messenger で、音声チャットを選択し、宛先(電子メールアドレス)に、0500031111 を指定します。うまくいけばうちの留守番電話が応答します。
クライアントのテストをするだけなら、自分でSIPサーバを用意する必要はありません。
以下のようにVoIP設定します。
今すぐ起動します。
# /etc/rc.d/scripts/rmsdev stop
# /etc/rc.d/scripts/voip stop
# /etc/rc.d/scripts/voip start
# /etc/rc.d/scripts/rmsdev start
電話機から、0500031111# とダイヤルします。うまくいけばうちの留守番電話が応答します。
留守番電話に録音されたメッセージを聞くことができます。