■概要 HOTARUプロジェクトは産学官連携「IMS/SIP参照ソフトウェア研究開発プロジェクト」の通称です。 HOTARUの成果物である本ソフトウェア(3GPP IMSの各CSCF/テストUE)の動作方法を以下に示します。 プロジェクトの詳細についてはhttp://www.luciola.net/を参照下さい。 尚、HOTARUの主な参照勧告は以下の通りです。 3GPP TS 22.228, TS 23.002, TS 23.228, TS 24.228, TS 24.229, TS 29.162, TS 29.228, TS 29.229, TS 33.102, TS 33.105, TS 33.203, TS 33.210, TS 35.205, TS 35.206, TS 35.207, TS 35.208 IETF RFC3261, RFC3262, RFC3264, RFC3265, RFC3310, RFC3312, RFC3313, RFC3323, RFC3325, RFC3327, RFC3329, RFC3455, RFC3608, RFC4028, RFC5407 ■動作条件 LINUX ■実行方法 HOTARUの実行ファイルは、コンフィグレーションファイルの設定によって、 各CSCF(P/I/S-CSCF(IMS/SIPサーバ))及びテストUE(IMS/SIPクライアント)の 各々のノードとしての動作を切り分けることが可能です。 下記手順では、具体的にP-CSCFとして実行させる場合の手順を示しますが、 その他のノードについても同様の手順で各ノードの実行環境の構築が可能です。 1. 環境設定 a. HOTARUソースコードの解凍 b. ライブラリインストール 下記Make関連ファイルを参照し必要なライブラリを準備して下さい。 また、ライブラリパスを下記Make関連ファイルに設定してください。 ./hotaru_mejiro/etc/hotaru_base.mk LIBS = ・・・ -lm -lglib-2.0 -lrt -lc -lopensigcomp -lmd5 尚、HOTARUではsigcomp機能の実現にopensigcompライブラリを活用しています。 sigcomp機能を利用しない場合には、コンパイルオプションの指定により、    opensigcompライブラリの組み込みを行わないようにすることが出来ます。 c. ツール類のインストール(setkey) setkeyの最新バージョンをHOTARUを稼働させるサーバ上にインストールさせて下さい。 HOTARUではipsecの制御にsetkeyコマンドを活用しています。 d. 環境変数設定(HOTARU_ROOT) #export HOTARU_ROOT=/home/hotaru/mejiro/pcscf/hotaru_mejiro (bashの場合) ※/home/hotaru/mejiro/pcscfはHOTARUソースコードの展開先の任意のディレクトリ 2. Make a. HOTARUライブラリの作成 HOTARUソースコードの展開先(./hotaru_mejiroディレクトリ配下)でmakeを実行して下さい。 #cd /home/hotaru/mejiro/pcscf/hotaru_mejiro #make この結果 ./hotaru_mejiro/libs配下にHOTARUライブラリが作成されます。    尚、このライブラリはHOTARUの各機能部毎に作成されます。 b. HOTARU実行ファイルの作成 #cd /home/hotaru/mejiro/pcscf/hotaru_mejiro/test #make この結果、sampleという名称でHOTARU実行ファイルが作成されます。 必要があればHOTARU実行ファイルの名称はMakefileの設定で適宜変更して下さい。 3. コンフィグレーションファイルの設定 a. ./hotaru_mejiro/conf/hotaru.cfg 本コンフィグレーションファイルでは、主にサービスポートの指定や、IMS/SIPルーティングに 関する情報の指定を行います。各CSCFの役割に応じて参照されるパラメータやその属性値は 異なりますが、ここでは共通的なパラメータの設定を中心に説明します。 その他のパラメータについてはサンプルファイルを参照願います。 (hotaru.cfg_XCSCF,hotaru.cfg_UE) [CSCF] MODE=PCSCF 許容される属性値:UE/PCSCF/ICSCF/SCSCF(HOTARU実行ファイルの動作モードを指定) [TRANSACTION] T1=20000 RFC3261規定のT1タイマを指定 [TRANSPORT] USE_RECV_MIRROR_MODE=disable  デバッグ用(通常はdisableを指定):SIPなど受信メッセージ情報を 下記パラメータ指定の外部ポートに出力することが可能 RECV_MIRROR_PORT=5000 RECV_MIRROR_HOST=192.168.0.210 SEND_MIRROR_PORT=5001 SEND_MIRROR_HOST=192.168.0.210 USE_SEND_MIRROR_MODE=disable   デバッグ用(通常はdisableを指定):SIPなど送信メッセージ情報を 上記パラメータ指定の外部ポートに出力することが可能 UDP_PORT=6060  SIPサーバポートを指定(UDP) TCP_PORT=6061  SIPサーバポートを指定(TCP) TRANSPORT_PROTO=DUAL 通常はDUALを指定(IPv4/IPv6のデュアルスタック指定) USE_UDP_BIDIRECTION_MODE=disable 通常はdisableを指定 USE_TCP_BIDIRECTION_MODE=enable  通常はenableを指定 (リクエスト受信ソケット経由でレスポンスを返却するためのモード) USE_MULTISOCKET_MODE=enable PCSCFで動作させる場合はenable,その他ノードではdisableと指定 (PCSCFにおいて3GPP TS 33.203準拠のソケット制御を行うための設定) SIGCOMP_MODE=disable PCSCFにおいてsigcomp機能を動作させる場合にはenableを指定 (sigcomp機能を動作させる場合には別途opensigcompライブラリのインストールが必要)   その他ノードでは一律disableと指定 NONCOMP_ADDR=192.168.0.210|scscf.luciola.net|icscf.luciola.net 上記SIGCOMP_MODEパラメータがenableの場合に参照される。 通常sigcomp機能はUE-PCSCF間で必要。 PCSCFのバックエンドサーバとの通信メッセージのシグナリング圧縮を行わせないように バックエンドサーバのIPアドレス、若しくはFQDNの文字列を設定する。 [RESOLVER] NEXT_ICSCF=192.168.0.210 PCSCFが所属する自ドメインのICSCFのIPアドレスを指定(IPv4) NEXT_ICSCF=2001:e38:2030:0:20c:29ff:fea6:ef9f  PCSCFが所属する自ドメインのICSCFのIPアドレスを指定(IPv6) NEXT_ICSCF_PROTO=UDP NEXT_ICSCF_PORT=5060 ICSCF1=192.168.0.210 機能拡張用パラメータ(NEXT_ICSCFのIPv4アドレス情報と同値を設定) [MESSAGEROUTER] [MESSAGEFACTORY] 下記パラメータではVia/Route/Record-Route等SIPメッセージ上に挿入する自経路情報を指定 FQDN=pcscf.luciola.net IPV4_ADDR=192.168.0.210 IPV6_ADDR=2001:e38:2030::20c:29ff:fea6:ef9f [AAA] 認証情報設定用パラメータ (基本的にはテストUE向け。但し、DOMAINはrealm情報として各CSCFにて参照される) USERNAME=1000 DOMAIN=luciola.net DISPLAYNAME=1000 PASSWORD=1000 AUTH_METHOD=md5 [APP] PORT=50003 デバッグ用、テストUE操作用コマンドポート b. ./hotaru_mejiro/conf/messaging.cfg オプションパラメータの付与指定(主に3GPP拡張ヘッダ(P-Header))や その属性値を指定をするためのコンフィグ。各ノードのパラメータ設定については サンプルファイルを参照願います(messaging.cfg_XCSCF,messaging.cfg_UE) ※サンプルのコンフィグレーションファイルでは、同一サーバ上に各ノードを同居させる  イメージになっています。  (192.168.0.210上にPCSCF(4060),ICSCF(5060),SCSCF(6060)のプロセスを同居)。  各ノードを別々のサーバに分離したりポート番号を変更することは可能ですので  利用環境に応じて適宜修正願います。   4. 実行方法 a. HOTARU実行ファイルの実行 #cd /home/hotaru/mejiro/pcscf/hotaru_mejiro/test #./sample これでPCSCFの起動が完了します。 同様にICSCF,SCSCFも起動させIMSコアネットワークの準備を完了して下さい。 3GPP IMS準拠UE(或いは通常のRFC3261 SIP端末)には PCSCFのSIPサーバポートを通知して下さい。その他UEと共有すべき情報には、 ユーザ名、パスワード、realm情報等が存在します。     上記コンフィグレーションファイルの設定情報から必要な情報をUEと共有して下さい。 尚、初版のHOTARU実装では、各UEのパスワード情報等のユーザ情報を厳密には管理 していません。パスワードはユーザ名(username部分)と同じ情報を 認証アルゴリズムの引数として利用します。また、AKA認証の場合に必要となる AMF/OPCパラメータ情報はオール0をハードコーディングしています。 この条件(パスワードはユーザ名と同一に設定する等)をUEに通知して下さい。 b. テストUEの操作方法(UE動作モード時に本手順を参照) #telnet localhost 40000 上記コンフィグレーションファイル[APP]PORTで指定したコマンドポートを指定 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. ************************************************************** * hotaru console how to use : ****************************** * * format: > [cmd],[ipproto],[proto] * * - [cmd]: 1=REGISTER,2=reREGIST,3=INVITE,4=ANSWER * 5=deREGIST, 6=CANCEL, 7=BYE, 8=SUBSCRIBE * 10=DUMP AGL TREE, 11=DUMP HOCKTBL,12=DUMP PEERTBL * 13=DUMP SOCKTBL 14=DUMP SECSOCKTBL 15=SEND DUMMY MSG * - [ipproto]: 4=IPv4, 6=IPv6 (default=IPv4)(opt) * [proto]: 0=TCP, 1=UDP (default=UDP)(opt) ************************************************************** >1,4,1 (REGISTER/IPv4/UDPで送信する場合) >8,4,1 (SUBSCRIBE/IPv4/UDPで送信する場合) >3,4,1 (INVITE/IPv4/UDPで送信する場合) ※発側UE (発呼に相当)、宛先はmessage.cfg(Toヘッダ)設定で指定可能 >4,4,1 (200OK(INVITE)/IPv4/UDPで送信する場合) ※着側UE(応答に相当) >7,4,1 (BYE/IPv4/UDPで送信する場合) >5,4,1 (DEREGISTER/IPv4/UDPで送信する場合) HOTARU テストUEはIMS/SIPシグナリングを疑似するツールです。    RTPの送受信については処理しません。    また、SIPサーバ情報の指定などは、上記コンフィグレーションファイルの設定により、    各CSCFの場合と同様に行うことが出来ます。     ■履歴 2010.3.31 HOTARU初版公開