[[FrontPage]]


 まずは、メモ書き程度で更新していきます


*Stackの設計の第一歩 [#l55fb04c]
-TU
--リゾルバを入れる
--メッセージの配送先を決定する。
--対 proxy 用
--forking を考慮する必要あり。
--cancel 処理

-stack
--Transport と分離
--Transport リゾルバ
--まずは state machine から実装
--トランザクションはなんの情報を入れるか?
--必要機能
---Route (削る)
---Record Route (つける)
---Via
---From/To Tag
---Max-Forward
---Loop Detect

***support [#u135b502]
-RFC3261

***概念図 [#racbe22b]
   +------------------+ +---+
   | User Agent       | |   |
   +------------------+ |   |
   +------------------+ |   |
   | Transaction User | |   |
   +------------------+ |   |
   +------------------+ |   |
   | Transaction      | |   |
   +------------------+ |   |
   +--------------------+   |
   | Message Parser/Builder |
   +------------------------+
   +------------------------+
   | Transport              |
   +------------------------+


*Transport Powered by MINA [#cab4d50d]
-Transport層を置き換える
***概要 [#d99b0165]
-この辺に、MINAの解説あり。~
http://www-06.ibm.com/jp/developerworks/java/060531/j_j-apacheds1.shtml

-トランスポートのIO(TCP/UDP)はIoAcceptorなるもので抽象化されていて、
これは放置でOKっぽいかんぢ。

-注目するのが、Filterちゃんからの連携。ここからがかなりオモシロ系
--Message(SIPMessage, PIPMessage)のEnc/Decを用意すれば、IoHanderで一発でMessageが取れる
--セッション管理はIoSessionなるインタフェイスを使って、実装すれば問題なっしんぐ、ステートパターンを入れ込んで、基本的な状態管理は実装して、セッションは、よろしく管理してくれる
--NIOが下位レイヤーで実装済


*SVN Repository構成 [#y80d8153]
-雷電用に「raiden」を切った
-開発バージョン用に「testing」を切った