SIP サーブレット 1.0 仕様において、 最も複雑だと思われる箇所が、 この SipSession クラスと SipApplicationSession クラスです。
このクラスは、ともに便利な使い方をすることができ、 分散環境または HA 環境向けに設計されたアプリケーションの、 主要なデータ保管場所として機能します。
SipSession クラスは、2 つの エンティティー間の特定の Point-to-Point 通信を 最も適切に表しており、HttpSession オブジェクトに最も近いものです。 HTTP サーブレットの HTTP 要求では、 これまでプロキシーや fork が存在しなかったため、 単一の Point-to-Point セッションより 高度なものは求められていませんでした。 しかし、ポートレットによる HTTP 要求の fork が 原則として開始されてからは、 HTTP ユーザーであっても、 この種の機能に対するニーズは高まっています。 プロキシーと fork アクティビティーには、 複数の層にわたる SIP セッション管理が必要になるだろうと、 SIP ユーザーは予想しています。 SipSession クラスは、Point-to-Point 層の最下層になります。
SipApplicationSession クラスは、SIP セッション管理の高位層を表しています。 1 つの SipApplicationSession クラスは、1 つ 以上の SipSession オブジェクトを所有できます。 しかし、SipSession クラスは、 それぞれ 1 つの SipSession オブジェクトにしか関連付けることができません。 SipApplicationSession クラスは、 任意の数のプロトコル・セッションの接続もサポートしています。 現在、あらゆる実装でサポートされているのは、HTTP セッションのみです。 SipApplicationSession クラスには、getSessions メソッドがあります。 このメソッドは、要求されたプロトコル・タイプを引数として取ります。
HTTP と SIP を結合すると、多くのアプリケーションで役立てることができます。 例えば、この方法を使用して、HTTP セッションと SIP セッションを結合して、 電話呼び出しをモニターすることもできますし、 豊富な HTTP グラフィカル・ユーザー・ インターフェースを介して、電話呼び出しを開始することもできます。