検索
AND検索
OR検索
トップ
|
リロード
|
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
開発/サブプロジェクト/MultiPacketer をテンプレートにして作成
Main Menu
TOP
Readme
Contents
Download
最新の20件
2008-07-09
支援団体
2007-12-12
SIProp/PJ体制
2007-09-09
ダウンロード
2007-08-30
開発/コミュニティー/勉強会
過去ニュース
FrontPage
2007-08-28
開発/イベント
2007-08-16
yusuke
hirotaka
sakukawa
masaxmasa
yamaz
ikeda
noritsuna
連絡帳
掲示板
2007-07-16
開発/コミュニティー/勉強会/2007/07/15
2007-05-25
開発/コミュニティー/勉強会/2007/05/25
2007-05-11
メンバー
2007-05-07
開発/サブプロジェクト
Total:0/Today:0
開始行:
[[開発/サブプロジェクト]]
*MultiPacketerとは [#oee416ab]
簡単に言えば、汎用的なパケット送受信ツールです。~
JavaScriptでシーケンスとパケットを定義することにより、ど...
この特性を利用して、簡単なシミュレーションやテストに使用...
*使用法 [#w25d0aa6]
+[[取得先>#l9c1685f]]から、MultiPacketerを取得します。
+[[必要なライブラリ>#t4f251ca]]を取得します。
+上記を、適当なディレクトリに展開します。
+[[JavaScriptファイルの作り方>#ve1de087]]を参考にして、実...
+[[実行法>#hf1eba12]]に従って実行します。
**必要なライブラリ [#t4f251ca]
-J2SE5.0以上
-[[rhino1_6R2:http://www.mozilla-japan.org/rhino/index.ht...
-[[junit-3.8:http://www.junit.org/index.htm]]
-[[log4j-1.2.8:http://logging.apache.org/log4j/docs/]]
**ビルドに必要なツール [#w6a21124]
-[[Maven2:http://maven.apache.org/]]
**取得先 [#l9c1685f]
***ソースファイル [#q087d0c8]
//-SVNリポジトリ:https://svn.sourceforge.net/svnroot/sip...
-ファイル:[[MultiPacketer1.0.src.zip:http://www.siprop.o...
***バイナリファイル [#se2e089c]
-[[MultiPacketer1.0.zip:http://www.siprop.org/ja/1.0/down...
**実行法 [#hf1eba12]
***コマンドライン [#hc900303]
+下記のライブラリに対して、classpathを通します。
++[[必要なライブラリ>#t4f251ca]]のライブラリ
++./lib/内のライブラリ
++./target/multiPacketer.jar
+./js/init.js のパラメータを環境に合わせて変更します。
++このファイルの代わりにコマンドの引数として渡すことも出...
+コマンドラインから、下記のコマンドを実行します。
++java org.siprop.simulator.multiPacketer.ConsoleMain -Dm...
***Maven2 [#d7f6105e]
+Maven2をインストールします。
+./install-path.xxx を参考に、必要なライブラリをMaven2に...
+./build.properties を作成して、必要なパラメータを設定し...
++localIP="ローカルIP(待ち受けIP)"
++localPort="ローカルポート(待ち受けポート)"
++remoteIP="リモートIP(送信先IP)"
++remotePort="リモートポート(送信先ポート)"
++transportType="トランスポートタイプ:[TCP|UDP]"
++ipType="IP種別:[IP4|IP6]"
++js="実行したいJavaScriptファイル"
+コマンドラインから、下記のコマンドを実行します。
++mvn install
**ディレクトリ構造 [#u241f9a9]
-conf
-multipacket.properties ・・・log4jなどのシステム用...
-js ・・・サンプルJavaScriptフ...
-init.js ・・・初期パラメータ設定用
-func_lib_call.js ・・・SIPメッセージ生成用関...
-basic_var.js ・・・基本的なSIPヘッダー変...
-basic_message.js ・・・基本的なSIPメッセージ...
-standard_reg_uac_auth.js ・・・一般的なREGISTERシー...
-standard_call_uac.js ・・・一般的なUAC通話シーケ...
-standard_call_uac_auth.js ・・・一般的なUAC通話シーケ...
-standard_call_uas.js ・・・一般的なUAS通話シーケ...
-lib
-JainSipApi1.1.jar ・・・Jain-SIPライブラリ
-nist-sdp-1.0.jar ・・・Jain-SIPライブラリ
-nist-sip-1.2.jar ・・・Jain-SIPライブラリ
-log ・・・log4j用のログファイル...
-src
-main ・・・本体のソースファイル
-test ・・・test用ソースファイル
-pom.xml ・・・Maven2用設定ファイル
-build.xml ・・・実行用設定ファイル(an...
-install-path.bat ・・・Maven2用の外部ライブ...
-install-path.sh ・・・Maven2用の外部ライブ...
**JavaScriptファイルの作り方 [#ve1de087]
+必要となるメッセージやヘッダーを作成し、変数にセットしま...
++ヘッダーやパラメータ(変数)の定義:RequestURIの例~
下記のように定義します。jsEngine.setVar(String,String)で...
下記例では、requestLine は、「INVITE sip:req@siprop.org S...
また、システムが最初から保持している、[[システム変数>#ece...
var requestUri = "sip:req@siprop.org";
jsEngine.setVar("REQUEST_URI", requestUri);
var requestLine = "INVITE {REQUEST_URI} SIP/2.0\r\n";
jsEngine.setVar("REQUEST_LINE", requestLine);
++メッセージの定義:INVITEリクエストの例~
上記のヘッダーやパラメータを設定し、下記のような形で定義...
下記のすべての変数は、事前に定義しておく必要がありますが...
var INVITE_REQUEST = "INVITE {REQUEST_URI} SIP/2.0\r\n" +
"Call-ID:{CALL_ID}\r\n" +
"CSeq:{CSEQ_NUM} {METHOD}\r\n" +
"VIA:SIP/2.0/{TRANSPORT_TYPE} {LOC...
"From:\"{FROM_DISPLAYNAME}\" <{FRO...
"To:\"{TO_DISPLAYNAME}\" <{TO_URI}...
"Contact:<sip:{LOCAL_IP}:{LOCAL_PO...
"Allow: INVITE,ACK,CANCEL,BYE,NOTI...
"Max-Forwards:70\r\n" +
"Content-Type: application/sdp\r\n...
"Content-Length:{CONTENT_LENGTH}\r...
"{STANDARD_SDP}";
+続いて、シーケンスを定義します。~
下記例は、「INVITE送信-200OK受信-ACK送信」という一般的なS...
※jsEngine.importScript()で、外部で定義したJavaScriptを呼...
このほかにも、[[JavaScript内で使用可能なシステム関数>#p73...
// createACK()関数が定義されたライブラリの呼び出し
jsEngine.importScript("./js/func_lib_call.js");
// INVITEを送信
jsEngine.send(INVITE_REQUEST);
// 200OKを受信して、OK_RESPONSEにその内容をセットする。
var OK_RESPONSE = jsEngine.receive();
// 200OKから、ACKリクエストを生成する。
var ACK_REQUEST = createACK(OK_RESPONSE);
// 上記で、生成したACKを送信する。
jsEngine.send(ACK_REQUEST);
+以上で、終了です。あとは、実行してください。~
+Tips~
++上記例では、ほとんど、JavaScriptの関数などを利用してい...
このように、JavaScriptの関数や機能を使うことにより、さま...
// 200OKパケットであるかをチェック。
var OK_RESPONSE = new String();
while(OK_RESPONSE.indexOf("SIP/2.0 200") != 1) {
OK_RESPONSE = jsEngine.receive();
}
**JavaScript内で使用可能なシステム関数 [#p7377b8c]
JavaScript内で使用できるシステム関数です。最新情報は、[[...
|CENTER:メソッド|CENTER:意味|
|[[void jsEngine.send(String);:http://www.siprop.org/ja/1...
|[[String jsEngine.receive();:http://www.siprop.org/ja/1....
|[[void jsEngine.importScript(String);:http://www.siprop....
|[[void jsEngine.print(String);:http://www.siprop.org/ja/...
|[[String1 jsEngine.replaceVariables(String2);:http://www...
|[[void jsEngine.setVar(String1,String2);:http://www.sipr...
|[[String1 jsEngine.getVar(String2);:http://www.siprop.or...
|[[void jsEngine.setVariablesForSIPByPacket(String);:http...
|[[void jsEngine.sleep(int);:http://www.siprop.org/ja/1.0...
|[[String jsEngine.calcAuth(String authResponse, String r...
|[[void jsEngine.setReceiveMode(Boolean b);:http://www.si...
**システム変数 [#ece60a8e]
システムが最初から用意している変数一覧です。最新情報は、[...
|CENTER:変数名|CENTER:意味|
|[[ORIGINAL_PACKET:http://www.siprop.org/ja/1.0/javadoc/M...
|[[CURRENT_PACKET:http://www.siprop.org/ja/1.0/javadoc/Mu...
|[[RECEIVE_PACKET:http://www.siprop.org/ja/1.0/javadoc/Mu...
|[[SEND_PACKET:http://www.siprop.org/ja/1.0/javadoc/Multi...
|[[LOCAL_IP:http://www.siprop.org/ja/1.0/javadoc/MultiPac...
|[[LOCAL_PORT:http://www.siprop.org/ja/1.0/javadoc/MultiP...
|[[REMOTE_IP:http://www.siprop.org/ja/1.0/javadoc/MultiPa...
|[[REMOTE_PORT:http://www.siprop.org/ja/1.0/javadoc/Multi...
|[[RECEIVE_IP:http://www.siprop.org/ja/1.0/javadoc/MultiP...
|[[RECEIVE_PORT:http://www.siprop.org/ja/1.0/javadoc/Mult...
|[[TRANSPORT_TYPE:http://www.siprop.org/ja/1.0/javadoc/Mu...
|[[IS_RECEIVE_MODE:http://www.siprop.org/ja/1.0/javadoc/M...
|[[TIMEOUT:http://www.siprop.org/ja/1.0/javadoc/MultiPack...
**拡張するには [#t7785419]
[[JSControllerクラス:http://www.siprop.org/ja/1.0/javadoc...
〜〜〜〜〜いろいろな処理〜〜〜〜〜
String result = "いろいろな処理の結果";
String jsCode = "jsEngine.setVar(\"RESULT\","\" + result...
"jsEngine.importScript(\"./mainFunc.js\")...
JSController jsCon = new JSController();
jsCon.execByText(jsCode);
とすることにより、アプリ上からJavaScriptを実行することが...
mainFunc.jsには、変数RESULTを処理する内容が書かれているも...
*各種資料 [#j66d3bc8]
**ドキュメント [#wa25e047]
-[[Javadoc:http://www.siprop.org/ja/1.0/javadoc/MultiPack...
**Maven2コマンド [#de249136]
|CENTER:コマンド|CENTER:意味|
|mvn compile|ソースをコンパイルします。|
|mvn test|テストを実行します。|
|mvn package|jarファイルを作成します。|
|mvn install|build.xmlに沿って、実行します。|
|mvn site|javadocを作成します。|
終了行:
[[開発/サブプロジェクト]]
*MultiPacketerとは [#oee416ab]
簡単に言えば、汎用的なパケット送受信ツールです。~
JavaScriptでシーケンスとパケットを定義することにより、ど...
この特性を利用して、簡単なシミュレーションやテストに使用...
*使用法 [#w25d0aa6]
+[[取得先>#l9c1685f]]から、MultiPacketerを取得します。
+[[必要なライブラリ>#t4f251ca]]を取得します。
+上記を、適当なディレクトリに展開します。
+[[JavaScriptファイルの作り方>#ve1de087]]を参考にして、実...
+[[実行法>#hf1eba12]]に従って実行します。
**必要なライブラリ [#t4f251ca]
-J2SE5.0以上
-[[rhino1_6R2:http://www.mozilla-japan.org/rhino/index.ht...
-[[junit-3.8:http://www.junit.org/index.htm]]
-[[log4j-1.2.8:http://logging.apache.org/log4j/docs/]]
**ビルドに必要なツール [#w6a21124]
-[[Maven2:http://maven.apache.org/]]
**取得先 [#l9c1685f]
***ソースファイル [#q087d0c8]
//-SVNリポジトリ:https://svn.sourceforge.net/svnroot/sip...
-ファイル:[[MultiPacketer1.0.src.zip:http://www.siprop.o...
***バイナリファイル [#se2e089c]
-[[MultiPacketer1.0.zip:http://www.siprop.org/ja/1.0/down...
**実行法 [#hf1eba12]
***コマンドライン [#hc900303]
+下記のライブラリに対して、classpathを通します。
++[[必要なライブラリ>#t4f251ca]]のライブラリ
++./lib/内のライブラリ
++./target/multiPacketer.jar
+./js/init.js のパラメータを環境に合わせて変更します。
++このファイルの代わりにコマンドの引数として渡すことも出...
+コマンドラインから、下記のコマンドを実行します。
++java org.siprop.simulator.multiPacketer.ConsoleMain -Dm...
***Maven2 [#d7f6105e]
+Maven2をインストールします。
+./install-path.xxx を参考に、必要なライブラリをMaven2に...
+./build.properties を作成して、必要なパラメータを設定し...
++localIP="ローカルIP(待ち受けIP)"
++localPort="ローカルポート(待ち受けポート)"
++remoteIP="リモートIP(送信先IP)"
++remotePort="リモートポート(送信先ポート)"
++transportType="トランスポートタイプ:[TCP|UDP]"
++ipType="IP種別:[IP4|IP6]"
++js="実行したいJavaScriptファイル"
+コマンドラインから、下記のコマンドを実行します。
++mvn install
**ディレクトリ構造 [#u241f9a9]
-conf
-multipacket.properties ・・・log4jなどのシステム用...
-js ・・・サンプルJavaScriptフ...
-init.js ・・・初期パラメータ設定用
-func_lib_call.js ・・・SIPメッセージ生成用関...
-basic_var.js ・・・基本的なSIPヘッダー変...
-basic_message.js ・・・基本的なSIPメッセージ...
-standard_reg_uac_auth.js ・・・一般的なREGISTERシー...
-standard_call_uac.js ・・・一般的なUAC通話シーケ...
-standard_call_uac_auth.js ・・・一般的なUAC通話シーケ...
-standard_call_uas.js ・・・一般的なUAS通話シーケ...
-lib
-JainSipApi1.1.jar ・・・Jain-SIPライブラリ
-nist-sdp-1.0.jar ・・・Jain-SIPライブラリ
-nist-sip-1.2.jar ・・・Jain-SIPライブラリ
-log ・・・log4j用のログファイル...
-src
-main ・・・本体のソースファイル
-test ・・・test用ソースファイル
-pom.xml ・・・Maven2用設定ファイル
-build.xml ・・・実行用設定ファイル(an...
-install-path.bat ・・・Maven2用の外部ライブ...
-install-path.sh ・・・Maven2用の外部ライブ...
**JavaScriptファイルの作り方 [#ve1de087]
+必要となるメッセージやヘッダーを作成し、変数にセットしま...
++ヘッダーやパラメータ(変数)の定義:RequestURIの例~
下記のように定義します。jsEngine.setVar(String,String)で...
下記例では、requestLine は、「INVITE sip:req@siprop.org S...
また、システムが最初から保持している、[[システム変数>#ece...
var requestUri = "sip:req@siprop.org";
jsEngine.setVar("REQUEST_URI", requestUri);
var requestLine = "INVITE {REQUEST_URI} SIP/2.0\r\n";
jsEngine.setVar("REQUEST_LINE", requestLine);
++メッセージの定義:INVITEリクエストの例~
上記のヘッダーやパラメータを設定し、下記のような形で定義...
下記のすべての変数は、事前に定義しておく必要がありますが...
var INVITE_REQUEST = "INVITE {REQUEST_URI} SIP/2.0\r\n" +
"Call-ID:{CALL_ID}\r\n" +
"CSeq:{CSEQ_NUM} {METHOD}\r\n" +
"VIA:SIP/2.0/{TRANSPORT_TYPE} {LOC...
"From:\"{FROM_DISPLAYNAME}\" <{FRO...
"To:\"{TO_DISPLAYNAME}\" <{TO_URI}...
"Contact:<sip:{LOCAL_IP}:{LOCAL_PO...
"Allow: INVITE,ACK,CANCEL,BYE,NOTI...
"Max-Forwards:70\r\n" +
"Content-Type: application/sdp\r\n...
"Content-Length:{CONTENT_LENGTH}\r...
"{STANDARD_SDP}";
+続いて、シーケンスを定義します。~
下記例は、「INVITE送信-200OK受信-ACK送信」という一般的なS...
※jsEngine.importScript()で、外部で定義したJavaScriptを呼...
このほかにも、[[JavaScript内で使用可能なシステム関数>#p73...
// createACK()関数が定義されたライブラリの呼び出し
jsEngine.importScript("./js/func_lib_call.js");
// INVITEを送信
jsEngine.send(INVITE_REQUEST);
// 200OKを受信して、OK_RESPONSEにその内容をセットする。
var OK_RESPONSE = jsEngine.receive();
// 200OKから、ACKリクエストを生成する。
var ACK_REQUEST = createACK(OK_RESPONSE);
// 上記で、生成したACKを送信する。
jsEngine.send(ACK_REQUEST);
+以上で、終了です。あとは、実行してください。~
+Tips~
++上記例では、ほとんど、JavaScriptの関数などを利用してい...
このように、JavaScriptの関数や機能を使うことにより、さま...
// 200OKパケットであるかをチェック。
var OK_RESPONSE = new String();
while(OK_RESPONSE.indexOf("SIP/2.0 200") != 1) {
OK_RESPONSE = jsEngine.receive();
}
**JavaScript内で使用可能なシステム関数 [#p7377b8c]
JavaScript内で使用できるシステム関数です。最新情報は、[[...
|CENTER:メソッド|CENTER:意味|
|[[void jsEngine.send(String);:http://www.siprop.org/ja/1...
|[[String jsEngine.receive();:http://www.siprop.org/ja/1....
|[[void jsEngine.importScript(String);:http://www.siprop....
|[[void jsEngine.print(String);:http://www.siprop.org/ja/...
|[[String1 jsEngine.replaceVariables(String2);:http://www...
|[[void jsEngine.setVar(String1,String2);:http://www.sipr...
|[[String1 jsEngine.getVar(String2);:http://www.siprop.or...
|[[void jsEngine.setVariablesForSIPByPacket(String);:http...
|[[void jsEngine.sleep(int);:http://www.siprop.org/ja/1.0...
|[[String jsEngine.calcAuth(String authResponse, String r...
|[[void jsEngine.setReceiveMode(Boolean b);:http://www.si...
**システム変数 [#ece60a8e]
システムが最初から用意している変数一覧です。最新情報は、[...
|CENTER:変数名|CENTER:意味|
|[[ORIGINAL_PACKET:http://www.siprop.org/ja/1.0/javadoc/M...
|[[CURRENT_PACKET:http://www.siprop.org/ja/1.0/javadoc/Mu...
|[[RECEIVE_PACKET:http://www.siprop.org/ja/1.0/javadoc/Mu...
|[[SEND_PACKET:http://www.siprop.org/ja/1.0/javadoc/Multi...
|[[LOCAL_IP:http://www.siprop.org/ja/1.0/javadoc/MultiPac...
|[[LOCAL_PORT:http://www.siprop.org/ja/1.0/javadoc/MultiP...
|[[REMOTE_IP:http://www.siprop.org/ja/1.0/javadoc/MultiPa...
|[[REMOTE_PORT:http://www.siprop.org/ja/1.0/javadoc/Multi...
|[[RECEIVE_IP:http://www.siprop.org/ja/1.0/javadoc/MultiP...
|[[RECEIVE_PORT:http://www.siprop.org/ja/1.0/javadoc/Mult...
|[[TRANSPORT_TYPE:http://www.siprop.org/ja/1.0/javadoc/Mu...
|[[IS_RECEIVE_MODE:http://www.siprop.org/ja/1.0/javadoc/M...
|[[TIMEOUT:http://www.siprop.org/ja/1.0/javadoc/MultiPack...
**拡張するには [#t7785419]
[[JSControllerクラス:http://www.siprop.org/ja/1.0/javadoc...
〜〜〜〜〜いろいろな処理〜〜〜〜〜
String result = "いろいろな処理の結果";
String jsCode = "jsEngine.setVar(\"RESULT\","\" + result...
"jsEngine.importScript(\"./mainFunc.js\")...
JSController jsCon = new JSController();
jsCon.execByText(jsCode);
とすることにより、アプリ上からJavaScriptを実行することが...
mainFunc.jsには、変数RESULTを処理する内容が書かれているも...
*各種資料 [#j66d3bc8]
**ドキュメント [#wa25e047]
-[[Javadoc:http://www.siprop.org/ja/1.0/javadoc/MultiPack...
**Maven2コマンド [#de249136]
|CENTER:コマンド|CENTER:意味|
|mvn compile|ソースをコンパイルします。|
|mvn test|テストを実行します。|
|mvn package|jarファイルを作成します。|
|mvn install|build.xmlに沿って、実行します。|
|mvn site|javadocを作成します。|
ページ名: