Slideshow CK

公開NoraVRサーバー設定法

NoraVRが設定されたNoraGatewayを公開NoraVRとして、公開NoraVRサーバーリストに掲載させるには下記の設定が必要です

  1. Gatewayのscopeをscope="private"からscope="public"へ変更
  2. Repeater(type="Internal")のscopeをscope="private"からscope="public"へ変更
  3. Modem(type="NoraVR")のscopeをscope="private"からscope="public"へ変更
  4. 【オプション】Modem(type="NoraVR")のNoraVRPublicServerAddressをインターネット側から参照可能なドメイン名に設定
  5. 【オプション】Modem(type="NoraVR")のNoraVRPublicServerPortをルーターのポート開放設定を行ったポート番号に設定(※通常、設定の必要はありません)

 

<Gateway
	callsign="JQ1ZYC G"
	port="0" g2ProtocolVersion="1"
	useProxyGateway="true"
	proxyGatewayAddress="kdk.ddns.net"
	proxyPort="56513"
	disableHeardAtReflector="true"
	announceVoice="KizunaAkari"
	disableWakeupAnnounce="false"
	scope="public"                            ・・・・・・*1
	name="JQ1ZYC 圏央道友会 公開G/W(2)"
	location="Hidaka, Saitama, Japan"
	latitude="+35.90779"
	longitude="+139.339069"
	description1="サンプル公開サーバ ご自由にお使い下さい"
	description2=""
	url="https://kdk.ddns.net/"
>

<Repeaters>
	<Repeater
			enable="true" type="Internal" callsign="JQ1ZYC H"
			defaultRoutingService="JapanTrust" routingServiceFixed="true"
			allowDIRECT="false"
			autoDisconnectFromReflectorOnTxToG2Route="true"
			autoDisconnectFromReflectorOutgoingUnusedMinutes="30"
			scope="public"            ・・・・・・*2
			name="JQ1ZYC Public NoraVR Node"
			location="Hidaka, Saitama, Japan"
			latitude="35.90779"
			longitude="139.339069"
			agl="0"
			description1="NoraVR 公開NoraVR"
			description2="使われないリフレクターへの接続は30分で自動切断"
			url="https://kdk.ddns.net/kdk/"
			range="0"
			frequency="0"
			frequencyOffset="0"
	>
			<Modem type="NoraVR" allowDIRECT="false" scope="public">・・・・・・*3
					<ConfigurationProperties>
							<DV3KInterfaceType>Network</DV3KInterfaceType>
							<DV3KServerAddress>localhost</DV3KServerAddress>
							<DV3KServerPort>2460</DV3KServerPort>
							<NoraVRPort>52161</NoraVRPort>
							<NoraVRLoginPassword></NoraVRLoginPassword>

							<NoraVRPublicServerAddress>illg.ddns.net</NoraVRPublicServerAddress>・・・・・・*4
							<NoraVRPublicServerPort>52161</NoraVRPublicServerPort>
					</ConfigurationProperties>
			</Modem>
	</Repeater>
</Repeaters>

NoraGateway v0.1.5a

【ダウンロード】

https://k-dk.net/nora-release/alpha/NoraGateway_v0.1.5a.zip

 

【変更点】

※このバージョンから、RaspberryPi Zeroでの動作検証を行っていません。Raspberry Piにて新たにシステム構築を行う場合には、Raspberry Pi 3以上で動作させるようにお願い致します。

【NoraGateway v0.1.5a-PR17からの変更点】

  • 最小設定ファイル(NoraGateway_IcomAccessPointMode.xml.default/NoraGateway_IcomTerminalMode.xml.default)にて動作しない問題を修正
  • 公開NoraVRリスト(https://k-dk.net/nora_publicvr_list.php)に対応
    ※Gateway→Repeater→Modem(NoraVR)の各scopeをPublicにすることで、上記ページに表示されるようになります
    (公開する必要の無いRepeaterやModemはscopeをPrivateにすることで今まで通り公開されません)
  • 公開自動応答リスト(※製作中)に対応
    ※Gateway→Repeater(VoiceroidAutoReplyもしくはEchoAutoReply)の各scopeををPublicにすることで、製作中のページに表示されるようになります
  • 設定ファイル内Gatewayに、name(ゲートウェイ名称)/location(ゲートウェイ設置場所)/dashboardUrl(公開ダッシュボードURL)を追加
  • 設定ファイル内Repeaterに、name(レピータノード名称)/location(レピータノード設置場所)を追加
    ※nameに設定したレピータノード名称は、scope(公開範囲)がPrivateの場合においてもhttp://k-dk.net:8080/jp_dstarnow/に表示されますのでご注意下さい
  • 定形自動応答レピータノード(VoiceroidAutoReply)のショートメッセージを自由に設定可能にした
    また、最終アクセスレピータ更新要求(=テーブル書き換え要求)を送出する間隔を設定可能にした
  • 録音自動応答レピータノードで返答される音声内のスローデータ(ショートメッセージを含む)を、ユーザーから送信されたスローデータをそのまま返すようにした
    また、最終アクセスレピータ更新要求(=テーブル書き換え要求)を送出する間隔を設定可能にした
  • InternalRepeaterに設定可能なModemを複数設定可能にした
    ※<Modems></Modems>の中に複数のModemを記述することで、単一のレピータノードに複数のModem(MMDVMやアクセスポイント)を動作させることが可能です
  • RPT1/RPT2にレピータコールサインが入っていて、かつコマンド(_______U)を送信した場合において、http://k-dk.net:8080/jp_dstarnow/等にそのまま表示されてしまう問題を修正
  • NoraVRプロトコルバージョン2(仕様書)に対応した
  • NoraVRを設定した状態で、ネットワークエラーが発生した場合においてアプリケーションが落ちる問題を修正
  • NoraDStarProxyGatewayを使用するように設定された環境において、ゲート超えを行った場合に、NoraDStarProxyGateway経由でログを転送するようにした
    ※NoraDStarProxyGatewayが古いバージョンの場合には、今までと変わらずに直接転送します

 

【上記に加えてNoraGateway v0.1.4aからの変更点】

  • リフレクターブラックリストの追加(Incoming/Outgoing接続で特定のコールサインとの接続を拒否します)
    設定ファイル内232行目~246行目
  • 使用されないリフレクターへの接続(Outgoing)を自動で切断する機能の追加(デフォルトは無効になっています)
    設定ファイル内各Repeaterセクション(autoDisconnectFromReflectorOutgoingUnusedMinutes)
    ※切断コマンドを忘れても使用されなければ(=リフレクターへ送信しなければ)自動で切断しますので、公開ノードには特に有効にする事をオススメ致します
  • 停止したリフレクターのデータが残り続けてデータが更新されなくなってしまい、新しいリフレクターに対する接続が出来ない問題を修正
    これに伴い、hosts.output.txtのフォーマットを変更し、コールサインの重複を認めることにした
  • 基本使用プロトコル設定、使用プロトコル設定を追加(設定ファイル内248行目~280行目)
    ※特定のリフレクターにはDPlusを使用する等のコントロールが可能になります
  • 自局同士で互いにリンクしないようにブロックする処理を追加した
  • ダッシュボードのホストリストを別窓に表示するようにした
  • ダッシュボードからのリフレクターリンクコントロールの有効無効を切り替えられるようにした
    dashboard/js/config.js内isEnableRepeaterReflectorLinkControl
    ※デフォルトは無効になっています
  • ターミナルモード時に切れやすい問題を修正
  • 終端パケット周りの修正
  • エラー訂正周りの修正
  • マルチフォワードにおいて実際にリンクした際にメッセージを送出するようにした
    (==REPEATER LINKED==とメッセージが埋め込まれた短い無音音声を送出します)
  • マルチフォワードのレピータリストの取得先を、当社団管理のサーバに変更した
    →JARL管理サーバからデータを中継して負荷を肩代わりするカタチになりますので、最新情報から最大1時間程度遅れが生じます
     (レピータのmulti_forwardを起動もしくはIPorポートが変更されても、最終的にNoraGatewayに反映されるまで最大1時間程度の遅れが発生する可能性があります)
  • ダッシュボードからリフレクターのリンク状態を変更可能にした
  • マルチフォワードの接続局一覧を追加
  • ダッシュボードの表示内容を増強
  • マルチフォワードのレピータリスト取得時間を短縮(起動後5→1分/間隔180→30分)
  • ホストファイル自動ダウンロード&反映機能の追加(設定ファイルの最後尾)
  • 無線機の自動応答機能を使用可能にした
  • (海外の)4文字コールサイン(**3*など)を全般的にブロックしていた問題を修正した
  • マルチフォワードの新仕様に対応した(Twitter限定公開のPR9で対応済)
  • 動態管理情報送信機能の追加
  • その他、UR?RPT?時のショートメッセージに顔文字を埋め込んだ等の軽微な修正

 

Read more: NoraGateway v0.1.5a

NoraVRクライアント実装チュートリアル

このチュートリアルでは、例としてWindows上のコンソールからマイクとスピーカを使用してQSO可能で、最も原始的なNoraVRクライアント側を開発する為の手順を示します

尚、クライアント実装例として、Java言語で記述しましたので、開発環境はJava用を整備します

昔の開発環境は高額な物もありましたが、選択肢が多い現在は開発する為の金銭は一切かかりません

 

【開発環境】

  • Windows7-10 64bit(RAM 8GB以上)
  • Eclipse
  • NoraGateway(AMBEサーバーが設定されたNoraVR)

 

【ダウンロード】

 

 【手順】

【1. ダウンロード】

○NoraVRクライアントサンプル(実装サンプル本体)
https://kdk.ddns.net/nora-release/alpha/NoraVRClientExample.zip
ダウンロードし、適当なフォルダ(このチュートリアルでは、ダウンロードフォルダに保存したものとします)に保存して下さい

○Eclipse
https://mergedoc.osdn.jp/
※Pleiades All in One 最新版→Windows 64bit→Java Full Versionをダウンロードして下さい

ダウンロードし、適当なフォルダ(このチュートリアルでは、ダウンロードフォルダに保存したものとします)に保存して下さい

 

【2. インストール】

ダウンロードしたEclipseをCドライブ直下に解凍してください
(※Windows付属の解凍ツールではなく、7-Zip等の他のソフトウェアで解凍して下さい)

 

 

【3. 開発環境の起動】

2項にて解凍したEclipseのフォルダ(C:\pleiades\eclipse)を開き、「eclipse.exe -clean.cmd」を実行します
(※eclipseの起動2回目からは、「eclipse.exe」から起動して下さい)

結構な時間がかかりますが、しばし待機して下さい

ワークスペースは、デフォルトのままでOKを押します

 

【4. NoraVRクライアントプロジェクトをインポート】

左上のメニューから、ファイル→インポートを選択します
また、インポート・ウィザードの選択から、「一般」→「既存プロジェクトをワークスペースへ」を選択します

アーカイブ・ファイルの選択を選択し、右側の参照を押し、先にダウンロードフォルダに保存した「NoraVRClientExample.zip」を指定します

 

【5. 接続先サーバー等の設定】

左側のパッケージエクスプローラーから、下記の図のように「NoraVRClientSample.java」を探し出して、ダブルクリックします
右側にソースコードが現れますので、接続先設定などを記述し、左上メニューのファイル→保存をクリックし、変更内容を保存して下さい

 

【6. デバッグ】

5項にて探しだした「NoraVRClientSample.java」を右クリックし、デバッグ→Javaアプリケーションを選択、サンプルプログラムを実行します

すると、左下のコンソールに下図のような文字が現れます


使い方は、「NoraVRClientSample.java」内を参照して下さい
概ね下記のような使用法になっています

  1. 送信開始・終了
    →スペースキー→ENTER
  2. LocalCQCQCQにセット
    →lキー→ENTER
  3. Use Reflectorにセット
    →rキー→ENTER
  4. リフレクター切断(_______U)にセット
    →uキー→ENTER
  5. 接続インフォメーション(_______I)にセット
    →iキー→ENTER
  6. アプリケーション終了
    →qキー→ENTER

 

【7. 最後に】

以上でチュートリアルは終了ですが、クライアント側に必要な全てのソースコードが同梱されていますので、イジって遊ぶ他アプリケーションに組み込む等、お好きにお使い下さい

 

 

【8. TIPS】

  • ログレベルを変更したい
    →src/main/resourcesに「logback_stdconsole.xml」がありますので、その中の<root level="INFO">を指定のレベルに変更して下さい
    尚、ログレベルはクラス個別に指定可能です。詳細は、logbackのマニュアルを参照下さい

  • 使用しているライブラリが分からない
    →Mavenプロジェクトになっていますので、左側パッケージエクスプローラーから「pom.xml」内に、依存しているライブラリ一覧が記述されています

  • Linux上でも開発可能?
    →可能です

 

 

multi_forwardへ多数の接続がされている際にケロる等の不具合が出る場合がある問題について

コチラでも言及されていますが、レピータサイトにインストールされているmulti_forwardに多数のクライアント(NoraGateway等)が接続された場合に、レピータサイトの設置環境によっては、レピータサイト内外で音声がケロる等の問題が出る事があるようです。
今まではゲート超え時に一定の負荷が掛かるのみでしたが、multi_forwardに接続された接続局数が増えるだけN倍の負荷がレピータサイトにかかる為に、多くのクライアントが接続されると問題が表面化する場合があると考えられます。
尚、multi_forwardは全てUDPプロトコルを使用していますので、ゲートウェイPCに太古の時代の機材を使用していない限り遅い回線に接続されていても足を引っ張ることはなく、全体的に損失(ドロップ)するだけで総接続局数によるものです。

multi_forwardがソフトウェア的に正しくAPIを叩いていると仮定しますと、下記のいずれかの原因が考えられます

  1. レピータサイト側インターネット回線の帯域不足(例としてポケットWifiやADSL/ISDN/ダイヤルアップ回線)
  2. レピータサイト側ゲートウェイPCの性能不足
  3. レピートサイト側ルーターの性能不足

 この原因に対して、ユーザー側で現実的に選択可能な対策は下記のようなものがあると考えられます

  1. レピータサイト側のインターネット回線増強(光回線に変更する等)
  2. レピータサイト側ゲートウェイPCの増強
  3. multi_forwardをレピータサイトの外部に設置
  4. レピータサイト側のルーター増強
    →昔のルーターですとパケットがドロップする可能性があります。multi_forwardの接続方式的に、NATセッション数が多い機種をオススメします

上記対策は一例であり、対策を取る前に各々の環境固有の原因を特定する必要があります。問題が顕著に出ている場合、各々でデータを記録し分析、現実的な対策案の立案をし、必要な対策を実行する事をオススメ致します。
(データを記録・分析せずに、なんとなく…で実行しますと、例外なく改善しませんのご注意下さい)

 

 

最も効果的で単純な対策は、接続数制限を行うことですが、接続方式的にユーザー側で制限する事は困難です。個人的な推奨対策案は、実現可能などうかはともかくとして、NoraExternalConnectorと同様にmulti_forwardをレピータサイトの外部に設置する事です。
multi_forwardを外部の安定した回線・PCを利用できる場所に設置を行えば、多くのクライアントが接続されてもレピータサイトにかかる負荷は一定になり、影響しにくくなります。外部設置は推奨されるものではないとは思われますが、多くのクライアントが接続されているレピータサイトにおいては検討の価値があると思われます。
(外部に設置されたNoraExternalConnectorにおいては、50~60局程度の接続局数では、レピータサイトへの影響が出ない実績があります)

 

最後にNoraGatewayでは、NoraExternalConnector稼働レピータサイトではNoraExternalConnectorに優先的に接続し、稼働していないレピータサイトにはmulti_forwardに接続するように自動的に切り替えておりますので、ユーザー側で意識する必要はありません。特定のレピータサイトに特定のプロトコルで接続したい場合には、設定ファイル内のリフレクター使用プロトコル設定にて自由に設定可能です。

 

Page 2 of 18