開発/コミュニティー/定例ミーティング

内容

SIProp

SIProp新構造(予定)

変更理由

  • 諸般の事情により、雷電から、MultiProtocol処理部分を切り離すことになったたため。

構造解説

(新追加)App層

  • B2BUAを直接使う層。
    • 実質、UAとして動作し、別のアプリとの仲介を行う。
  • 基本的には、プロトコルかイベントレベルで操作を行う。
    • セッションの管理などはしない方向。必要な場合は、B2BUA層を使うのが、好ましいが簡易的なDialogは用意する
  • 本質的には、B2BUA層と同じものであるが、特殊パターンとして別層化した。本来は、無くても問題ない層である。

(新構造)B2BUA層

  • 下位のUA層(コマンド)を利用して、複雑なシーケンス処理を行う層。
    • 例えば、下記のようなもの。
  1. SIP-UA to SIP-UA の B2BUA処理(SingleProtocolB2BUA)
    1. ごく普通のB2BUA
  2. 対SIP-UA のみなどの UA処理(SingleProtocolUA)
    1. 上記からRelationInfo処理をのぞいて、UA to UAで動くようにしたもの。
  3. SIP-UA to Jabber-UA の B2BUA処理(MultiProtocolB2BUA)
    1. 雷電でやる予定だったもの。一部は、App層へ。この対応のため、構造が変わっています。

(今まで通り)UA層

  • プロトコルを処理する。ヘッダーなどの変更変換。
    • 今まで通りの位置づけ。
    • 実体は、パケット処理関数の集合体で、全然UAじゃないので、さらに、名前の微妙感が加速中。。。(w

新B2BUA層の詳細

  • 大きな変更点の解説。
    • B2BUAは、EngineとStateCalculatorとModuleの3つの構造になりました。

(新追加)B2BUAEngine

  • SIP的なDialogやUAのリレーション(どこのUAとどこのUAが接続状態か?)を処理・管理する。
    • これが、上記で記述したものの処理ごとに用意されています。これを差し替えると、B2BUAの基本動作として、どう動作するかが変化します。
  1. SIP-UA to SIP-UA の B2BUA処理
  2. 対SIP-UA のみなどの UA処理
  3. SIP-UA to Jabber-UA の B2BUA処理

(新追加)B2BUAStateCalculator

  • ステート分岐をチェックして、必要なbit立てを行う。
    • B2BUAは、ステートマシンなわけですが、ステート分岐のifとswitch と実際のステート処理(これは次のModuleが担当)を、分けたかったの用意したものです。

(今まで通り)B2BUAModule

  • ステート処理、シーケンス処理をする部分。(上記2つのものは、この中で呼び出す部分を追加。)
    • 例:Call状態で、Inviteが来たら、486 Busy Hereを返す処理。とかいうのを記述する部分です。