Liberty 上の Session Initiation Protocol (SIP) での一致しないメッセージの受信

UnmatchedMessageListener API を使用して、SIP コンテナーが処理できない着信 Session Initiation Protocol (SIP) 要求メッセージまたは応答メッセージを受信します。

始める前に

server.xml ファイルで、sipServlet-1.1 フィーチャーをインストールおよび構成します。詳しくは、『Liberty での Session Initiation Protocol (SIP) の管理』を参照してください。

このタスクについて

SIP コンテナーでは、どの既存のダイアログにも一致さ せることができないすべての着信要求メッセージまたは応答メッセージを アプリケーションが受信できるようにするインターフェースが提供されています。既存のどのダイアログにも一致させ ることができない要求メッセージまたは応答メッセージは、一致しないメ ッセージと呼ばれます。

一致しない要求とは、 To タグと From タグはあるが、関連し たダイアログが作成されなかったか、このダイアログが無効状態であるために、SIP コンテナー内で見つからない要求です。一致しない着信要求が SIP コンテナーによって受信されると、コンテナーは 481 Call/Transaction Does Not Exist 応答を送信し、その着信要求をリスナー・クラスに転送します。この着信要求は、com.ibm.websphere.sip.unmatchedMessages.events パッケージに定義されている UnmatchedRequestEvent イベントの一部として転送されます。このイベントには、一致しない着信要求、およびこのイベントを受信するアプリケーションに関連した ServletContext を取得するためのインターフェースが含まれています。アプリケーションは、ServletContext を使用して新しい SIP アクティビティーを作成できます。リスナーは、受信した一致しない要求の応答を作成したり、この要求を代理で処理したりすることはできません。この状態が発生すると、SIP コンテナーで IllegalStateException 例外が発生します。

一致しない応答は、SIP コンテナーで受信されるが、どの発信要求にも一致しない応答です。SIP コンテナーが一致しない応答を破棄する前に、一致しない応答は、UnmatchedResponseEvent イベントの一部として UnmatchedMessageListener リスナーに送信されます。一致しない要求と同様に、アプリケーションは、一致しない応答および関連するアプリケーション ServletContext にアクセスできます。

アプリケーションに複数の定義済み UnmatchedMessageListener リスナーがある場合、各リスナーは互いに独立して開始されます。単一アプリケーション・サーバー上に複数のアプリケーションがあり、複数のアプリケーションに UnmatchedMessageListener リスナーがある場合、すべてのリスナーはランダムの順序で開始されます。あるアプリケーションが、アプリケーション構成の一部として同じサーバー上の別のアプリケーションに要求を送信し、SIP コンテナーが、この要求は、SIP コンテナーによって処理できない要求であると判断すると、そのサーバー上のすべての UnmatchedMessageListener リスナーがアクティブになります。

UnmatchedMessageListener API は、com.ibm.websphere.sip.unmatchedMessages パッケージ内の com.ibm.websphere.appserver.api.sipServlet ファイルに定義されています。

手順

アプリケーション・コードで次のいずれかの方法を使用して、UnmatchedMessageListener API にアクセスできます。


トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_sip_unmatchedmsg_api.html