proxyサンプルについて
 
1. 機能概要

Proxyサンプルはプロキシサーバとして動作します。下記の機能を提供します。

  1. INVITEリクエストをプロキシする。
  2. JNDIからバインディング情報を取得して、それによりINVITEリクエストを転送します。
  3. プロキシを経由する通話履歴を保存して、ブラウザで確認する機能を提供します。
 
2. ソースファイルリスト

Proxyサンプルに下記のファイルがあります。

ProxyServer.java SIPサーブレットです。doInvite()/doSuccessResponse()/doAck()/doBye()を実装します。
INVITEリクエストを転送します。後続のSIPメッセージの処理に、通話情報をServletContextにMapとして保存します。
CallRecord.java 通話情報を保存するクラスです。
リソースファイル JSPのためのリソースファイル(ProxyResources_*.properties)です。
日本語と英語をサポートします。
list_calls.jsp プロキシを経由する通話履歴をリストするJSPです。
ServletContextから通話情報を取得して、表示します。
 
3. sip.xmlの設定

サーブレットProxyServerに関して、下記の設定は変更できます。

servlet-mapping ProxyとredirectサンプルはINVITEリクエストを処理できます。この二つサンプルは同じなSIPコンテナで動けるために、servlet-mappingでrequest.uri.hostによりUACからのINVITEリクエストを分けます。
サーブレットProxyServerのservlet-mappingに、request.uri.hostの既定値はcompany.comになります。

※通話元のx-liteのDomainはサーブレットProxyServerの[servlet-mapping - request.uri.host]と合わせてください。

 
4. 配備したproxyアプリケーションを使ってみます

※proxyサンプルを利用すると、registrarサンプルも同時に配備しなければなりません。

一、Webブラウザを起動し以下のURLへアクセスします:
http://localhost/proxy
proxyを経由した通話がない場合、テーブルに内容はありません。

 

 図 1. 通話履歴がない
 

二、二つx-liteを用意して、X-Liteの使い方を参照してアカウントを設定します。
Domainはsip.xmlにサーブレットProxyServerの[servlet-mapping - request.uri.host]と合わせてください。
sip.xmlの設定変更がない場合、既定のcompany.comに設定してください。

 

 図 2. x-liteの設定
 

三、アカウント設定完了した二つのx-liteを起動して、以下のURIでx-liteのアドレスをregistrarに登録するか確認します:
http://localhost/registrar

 

 図 3. x-liteのアドレス登録
 

四、x-lite1がx-lite2に電話をかけて、x-liteが電話を受信すると、以下のURLで通話の状態を確認します:
http://localhost/proxy
x-lite1とx-lite2は通話中です。

 

 図 4. 通話中
 

五、x-lite1或いはx-lite2が電話を切ると、以下のURLで通話の状態を確認します:
http://localhost/proxy
x-lite1とx-lite2は通話完了です。

 

 図 5. 通話完了
 

 

Copyright (C) 1998 - 2008 NEC Corporation. All rights reserved.