- 追加された行はこの色です。
- 削除された行はこの色です。
[[開発/設計/議論]]
*議論の目的 [#af9bb3f7]
パケットをどのようにNormalize化するかを議論します。
-議論を委譲しました。
*メッセージ変換部の位置付け [#bfb51e95]
ここでは、下記の機能を提供します。
-メッセージのNormalize化
-メッセージのテンプレートによる出力
-トランスポート層(API含む)の制御
**メッセージのNormalize化 [#f14bcc0e]
メッセージ変換部 から スクリプト へ 送信される「FlatSIP」メッセージとな
り、パケットを抽象化したメッセージに変換することを想定しているものです。
~
ただし、コントロールメッセージも必要になると思いますので、[[トランスポ
ート層の制御>]]と合わせて、ご覧ください。
具体的な内容としては、パケットとして構成されるべきであろう最小公倍数的に
ヘッダーなどを定義します。~
対象としては、下記のようなものとなります。
-IP、TCP、UDPのヘッダー
-SIPのヘッダー
-SDPなど上記Bodyとして使用されるもの
例えば、下記のようなSIPメッセージがあった場合
UDP x.x.x.x y.y.y.y
INVITE yyy@yyy SIP/2.0\r\n
To: xxx@xxx;tag=xxx
From: yyy@yyy
メッセージ変換部のメッセージのNormalize化処理を行うと
proto:UDP
srcIP:x.x.x.x
dstIP:y.y.y.y
METHOD:INVITE
FROM:xxx@xxx
TO:yyy@yyy
というようなものになります。~
※SIPropの現バージョンにおいては、SIPのみの対応となるため、Stringを渡す
のみという単純な構造とすることも検討しても良いかと思います。~
これをどうするかを議論したいと思います。
これをどうするかを議論したいと思います。~
※Velocityを用いるか、ただのクラスとするかも検討したいです。
***より柔軟性を持たせるために [#q345fb71]
パケットの層構造に合わせて、数層構造に分けて、Normalize化処理をすること
も視野に入れていますが、今回の実装では見送るかもしれません。~
上記の例で言えば、IP層NormalizerとSIP層Normalizerを作成して、2段階でNormalize化処理を行うことを想定しています。
**メッセージのテンプレートによる出力 [#q06ad5d3]
上記のNormalize化されたメッセージを、具体的なパケット(SIP)に変換するもの
となります。~
ただし、コントロールメッセージも必要になると思いますので、[[トランスポ
ート層の制御>]]と合わせて、ご覧ください。~
上記のNormalize化されたメッセージに対して、下記のようなものを用意してお
くと
-出力テンプレート
INVITE {dstIP} SIP/2.0\r\n
From: {FROM}
To: {TO};tag=xxx
↓のように出力されるものとなります
-出力イメージ
INVITE y.y.y.y SIP/2.0\r\n
From: xxx.@xxx
To: yyy@yyy;tag=yyy
※Velocityを使用する場合は、もっと違う形となりますので、そのVelocityのテ
ンプレートの形を議論したいと思います。
**トランスポート層(API含む)の制御 [#n54c0bcd]
外界との接続部分と通信をさせるためにコントロールするための部分となります。
~
具体的には、TCP/UDPを生成したりする部分となり、それをメッセージ内にある
パラメータのみで制御させることを目的としています。~
ここに関しては、まだ、具体的に考慮していない部分です。すみません。
※この制御用のメッセージの種類を議論したいと思います。
*議論の論点 [#b8556349]
**「FlatSIP」メッセージ(Normalizeメッセージ)の内容 [#l83cf72e]
**出力テンプレートの内容 [#zfb61e24]
**トランスポート層(API含む)の制御種類 [#d1588c05]
*結論 [#y451a6c2]
-[[sakukawa]]さんが、実装中。
※現在、議論中です。