• 追加された行はこの色です。
  • 削除された行はこの色です。
[[開発/設計]]

*目的 [#z275707b]
-プロトコルやUAに依存したメッセージを[[FlatSIPメッセージ>開発/設計/オブジェクト/FlatSIPメッセージ]]に変換したり、その逆を行う。


*実装方針 [#n17debe6]
-BNFの最小単位まで、パースし、コントロール可能とする。
-[[Trans/API層>開発/設計/トランスポート部/Trans/API層]]に対して、インジェクション出来るような形とする


*定義方法 [#rd0715a4]
-変換規則BNFを定義できるようにして、パラメータなどを組み立てられるようにする。
--XMLでの定義を想定
-[[メッセージテンプレート>開発/設計/オブジェクト/メッセージテンプレート]]として、実装される

*実装クラス [#j8a3e382]
-[[StackManagerBase:http://www.siprop.org/ja/javadoc/prototype_design/org/siprop/prototype/j2se/stack/StackManagerBase.html]]
-[[StackBase:http://www.siprop.org/ja/javadoc/prototype_design/org/siprop/prototype/j2se/stack/StackBase.html]]

*機能 [#n91b9091]
**システム値の取得 [#y12b3eed]
-サーバのIPアドレス などの値を変数で取得する
--サーバIP
--待ち受けIP


**長さ変換 [#rb94e622]
-最大長制限に合った形にメッセージを変換する
--ヘッダー
--パラメータ
--メッセージ


**エスケープ変換 [#u6fbdbd5]
-エスケープ文字をエンコード・デコードする
--「@」


**認証用パラメータ変換 [#pde695d1]
-認証パラメータを定義できるようにする
--cnonceなどを付加
--MD5などの再計算


**条件式によるパラメータ変更 [#u8e6e3da]
-条件に合わせて、ヘッダーやパラメータを作成する
--非通知変換
--TCP/UDP変換
--rport パラメータ
--RecordRoute ヘッダー


**固定的な値 [#udc5ce25]
-極り文句を定義できるようにする
--user=phone パラメータ


**複数動作のメソッド化 [#z6199064]
-上記の動作の組み合わせを定義する
--c=0 や a=sendonly の変換規則
--E.164表記変換
--非通知変換




*ポイント [#v25b65f3]
-パースした各オブジェクトと新BNFの対応をどうするか?