nishio-dens's diary

Railsとかプログラミング関連の備忘録

IP電話サービスのためのSIPサーバの実装と解説 - SIPソフトフォン(X-Lite4)による通話テスト

通話テストに必要なもの
  • パソコン2台
  • SIPフォン(X-lite4などのソフトウェアで可)
  • Ruby
通話テスト手順

SIPサーバ(http://github.com/nishio-dens/sip-server-sample)を使って通話テストを行ってみます。今回は無料で利用できるX-lite4と呼ばれるSIPソフトフォンを使って通話を行ってみます。余談ですが、X-lite4はパソコン上で利用可能なIP電話機です。ひかり電話等のIP電話を既に使っている方は、このX-lite4を使うことでパソコンから電話をかけられて便利です。

まずはX-lite4の公式ページ(http://www.counterpath.com/x-lite.html)からソフトをダウンロードし、インストールを行ってください。
インストールが完了したら、SIPサーバを起動しておきましょう。サンプルのSIPサーバはrubyで書かれているため、以下のコマンドをターミナルから入力してください。

ruby sip_server.rb サーバのIPアドレス

今回の実験ではサーバのIPアドレスは192.168.1.50、クライアントは192.168.1.50, 192.168.1.101を使うことにします。この辺りはお使いのパソコンのIPアドレスに置き換えてサンプルを実行してください。
なお、サンプルのSIPサーバはNATを越えて接続することはできません。ローカルネットワーク内で実験を行ってください。また、SIPサーバはデフォルトで5060番のポート番号を利用します。

プログラム起動後、2台のパソコンでX-lite4を起動し、SIPサーバに電話の情報を登録(Register)してみましょう。

X-lite4を起動後、アカウントの設定を行ってください。Windows版X-lite4を用いている方は、メニューバーからSoftphone → Account Settingsからアカウントの登録ができます。
AccountタブのUser Details内のUser ID及びDomainという部分の編集を行います。User IDは登録する電話番号です。またDomainはSIPサーバのIPアドレスです。


実験に使うクライアント毎に、このアカウント設定を行ってください。なお、今回はクライアント1(192.168.1.50)の電話番号を1, クライアント2の電話番号を2(192.168.1.101)としました。

登録が完了できたら、SIPサーバのプログラムになんらかのログが出力されているはずです。Register New Address(Number: 何々) と出力されていれば登録が完了しています。
もしサーバに何の情報も出力されていない場合は、プログラムが正しく動いていないか、ファイアーウォールによって通信が正しくできていないなどの可能性が考えられます。

登録完了後、クライアント1(電話番号1)からクライアント2(電話番号2)に向かって電話をかけてみます。
クライアント1は、ダイアルパッドから2番を入力し、緑色のCallボタンを押してください。相手側に電話がかかるはずです。
相手が電話にでたあとにマイクで話しかけて、相手側に音声がきちんと届いているかを確認してください。