Slideshow CK

NoraVR

Nora Virtual Repeater(NoraVR)

 

【概要】

NoraGatewayの機能の一部として提供され、インターネット上に「仮想的」に設置されたDSTARレピータシステムを構築し、無線機やスマートフォン等から、DSTARリフレクタ並びにDSTARネットワーク(レピータ)に接続する機能を提供する

また、公開された仕様から、ユーザー側で自由にソフトウェアを構築可能

 

【仕様】

仕様書 Revision1(2020/02/02 発行) ※NoraGateway v0.1.5a~

仕様書 初版(2019/03/12 発行)

 

【クライアント側実装例】

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

 

【既知の問題】

  • 制御コマンド(       U/       Iなど)のスペースは、アンダーバーに置き換えなければ使えません(_______U/_______I)
  • Android端末により音声が乱れる場合がある、また送信できずに落ちる場合があるようです
  • ショートメッセージにカタカナが入っていると文字化けを起こします

 

【動作環境について】 

NoraVR(NoraGateway)サーバ側必要動作環境

  • RaspberryPi 3B以上
  • 10Mbps以上の安定したネットワーク

NoraVR(NoraGateway)サーバ側推奨動作環境

  • TBD

illg.ddns.net(Port:52161)にてデバッグ用のNoraGateway(NoraVR)が動作しています
パスワードは何を入れても接続可能になっています。動作試験にどうぞ。
※NoraVRは、同じNoraVR(NoraGateway)に接続したユーザー同士で、NoraGatewayを共有しています。送信したデータ・音声は同じNoraVRサーバーに接続されたユーザーに全て送信され、リンクされたリフレクターやゲート超えからのデータ・音声は、同じく接続されたユーザー全てに送信されます。使用する場合には、数分間ワッチしてから使用していない事を確認してお使い下さい。

 

【公開サーバ一覧】

 記事:NoraVR公開サーバ(旧公開サーバーリスト:NoraVR公開サーバ)

上記記事にて、有志により運用されたNoraVR(NoraGateway)一覧がありますので、自由にご利用下さい(NoraVR Client/NoraVR Remote Clientから接続可)

 

【動作確認AMBEサーバー&デバイス】

  

【ダウンロード】

NoraVR Client(Android単独音声端末アプリケーション)

【概要】

NoraGateway(NoraVR)に接続し、Android端末からDSTAR網/リフレクターへ接続するアプリケーション

 

【動作環境】

  • AndroidOS 5.0以降

 

【使用に際しての注意事項】

※必ず、交信開始時に通信経路の確認を行って下さい
互いに交信が成立していても、設定を誤ると片通話などの事故が起きますのでご注意下さい

 
宛先 交信に使用 Your Callsign Use Gateway リンクしているリフレクターに送信されるか ゲート先に送信されるか 同じNoraVRサーバに
接続しているユーザーに送信されるか
備考
山かけCQ はい CQCQCQ OFF いいえ いいえ はい 同じNoraVR(NoraGateway)に接続されているユーザー同士で交信したい場合には、Use GatewayをOFFにする
リフレクターCQ はい CQCQCQ ON はい いいえ はい リフレクターにリンクしている事が条件
コールサイン指定 はい JJ0TPX F ON いいえ はい はい 無線機で行う場合と全く同じく、カーチャンクを2回程行い、UR?を確認して下さい
エリア指定 はい /JQ1ZYCF ON いいえ はい はい  無線機で行う場合と全く同じく、カーチャンクを2回程行い、UR?を確認して下さい
リフレクターリンクコマンド いいえ XLX380ZL ON いいえ いいえ はい MultiForwardも同様(JP1YKRALなど)
※リンクが完了したら、リフレクターCQで交信
リフレクター切断コマンド いいえ _______U ON いいえ いいえ はい  

 

[Last Heard]には、[LOCAL]や[GW]などのルートが表示されますが、下記の意味合いとなっています

  • [LOCAL  ]
    同じNoraVRサーバーに接続されたユーザーから発報されています
    山かけCQで交信可能です

  • [  GW  ]
    リフレクター、もしくはゲート超え(コール指定・エリア指定)で発報されています
    相手からの経路情報を聞き取り、リフレクターCQ・コール指定・エリア指定で交信可能です

  • [ CALL ]
    あなたをコール指定で呼び出した場合に表示されます
    コールサイン指定で呼び出して交信可能です

 

マイクレベルは下記くらいがピークになるように調整すると、無線機(純正マイク)から送信した時のレベルとおおよそ等しくなります
※MAXレベルに張り付くような過大入力をしますと、変調が歪みますのでご注意下さい

  

【ダウンロード】

2019/07/28 NoraVR Client Sample⑭

https://1drv.ms/u/s!Alt6WCVd8Pgfomlu4Mlvwj0l_htx

  • タッチによるPTT操作に対応した(CONFIG→EnableTouchPTT)※誤操作に注意して下さい
  • 低速データに埋めていたヘッダのCRCに誤りがあった問題を修正
  • iTalkieに対応したかも(thanks Smart Reach LLC)※動作未検証

※CONFIG→Codec Typeにて音質と専有帯域を調整できますので、環境により設定してご使用下さい
特に200kb/s以下の低速回線の場合には、Opus64k以下を設定することをオススメします

  1. PCM
     音質:高/帯域:高(概ね154kb/s)
  2. Opus64k
     音質:高/帯域:中(最大89.6kb/s)
  3. Opus24k
     音質:中/帯域:中(最大49.6kb/s)
  4. Opus8k
     音質:低/帯域:低(最大33.6kb/s)

 

2019/05/12 NoraVR Client Sample⑫

https://1drv.ms/u/s!Alt6WCVd8PgfoWe31VPuMS5gwfB6

  • PTT登録の削除機能を追加
  • 端末本体のスワイプボタンを操作して送信した際に、表示が乱れる問題を修正

 

2019/05/11 NoraVR Client Sample⑪

https://1drv.ms/u/s!Alt6WCVd8PgfoU-oYM5_HMyRCBWM

  • 外部PTTに対応した
    ◯Bluetoothキーボード(リモートシャッターを含む)
     →1回押すと送信、再度押すと停止します
    ◯Dellking系Bluetoothハンドマイク[H3-B/H2/U109など](※動作未検証)
     →押している間だけ送信します
     →動作検証していないので動作するかどうかは不明です

    ダイソーのリモートシャッターを使用する場合、小さい方のボタンで登録することをオススメします
    大きい方のボタンで登録しますと、リモートシャッターが接続されていない状態でも、端末本体のVOL-を押すと送信してしまいます

    上記以外でお持ちのマイクが動作しない場合、Android端末をデバッグモードにして記録したlogcatを下記まで送りつけて下さい
     →kenoh_doyu=アットマーク=txb.sakura.ne.jp
     ※Bluetoothのペアリングを済ませてからlogcatの記録を開始し、何回かPTTを押してlogcatを取得して下さい
     ※極普通のBluetoothハンズフリーマイクのボタンには対応出来ません(VOL+/VOL-/HOMEボタンのみのタイプ)
      専用のPTTボタンがあるタイプのBluetoothマイクに対応します

 

2019/04/06 NoraVR Client Sample⑩

https://1drv.ms/u/s!Alt6WCVd8PgfoQPaBw__v4VbK_U4

  • 受信したGPS位置情報の地図表示に対応した
  • 受信したGPS位置情報の地図ポップアップ表示のON/OFFをConfig画面に追加
  • Android7以前のバージョンでCONNECTを押した瞬間に落ちる問題を修正

 

2019/04/04  NoraVR Client Sample⑨

https://1drv.ms/u/s!Alt6WCVd8PgfoH7gg_cyEidWIs7s

https://1drv.ms/u/s!Alt6WCVd8PgfoH_V0E9i2TN3pUTv(上記で起動しないなど芳しくなかった場合)

  • GPS(DV-G)位置情報送信機能を追加
  • 定期的にリフレクターのリンク状態を問い合わせるように変更
  • ショートメッセージの表示を追加
    (NoraGateway v0.1.4a-dev5以上が必要です)

 

2019/04/03  NoraVR Client Sample⑧

https://1drv.ms/u/s!Alt6WCVd8PgfoHywQrhhIHX8eFjL

  • ショートメッセージの送信に対応
  • ビープ音のON/OFFを追加
  • ビープ音のポップノイズを改修
  • ヘッダ情報を埋め込むようにした

 

2019/03/26 NoraVR Client Sample⑦

https://1drv.ms/u/s!Alt6WCVd8PgfoHo1Ai4qwZ-qDAhW

  • MIC GAINを追加

 

2019/03/25 NoraVR Client Sample⑥

https://1drv.ms/u/s!Alt6WCVd8PgfoHjR8cqoKWA0yic0

https://1drv.ms/u/s!Alt6WCVd8PgfoHkbkEepLMCFDdSQ(音割れする場合はコチラ)

  • HISTORY画面のOK/CANCELボタンが画面外に消える問題を修正
  • Bluetoothヘッドセットに対応
  • ビープ音の音量を減音
  • その他微修正

 

NoraVR RemoteClient(Windows/Linux無線ホットスポット構成アプリケーション)

【概要】

NoraVR(NoraGateway)に接続し、MMDVM/アクセスポイントモード・ターミナルモード/アナログ無線機を使用したホットスポットを形成するアプリケーション

 

【動作環境】

  • Windows Vista/7/8/8.1/10(Oracle JRE8)(※AnalogModemPiGPIOは動作不可)
  • RaspberryPi 3B/ZeroWH(Zeroでも問題なく動作します)

 

【ダウンロード】

2019/05/13 NoraVR Remote Client①

https://1drv.ms/u/s!Alt6WCVd8PgfoW3Bc9KyJ9RlEHTu
※MMDVM/TM/APを使用する場合には、NoraGatewayもv0.1.4a-dev6以上にバージョンアップして下さい


※このアプリケーションでは、ホットスポットのコールサインとして、ログインコールサイン(loginCallsign)を使用します。よって、ホットスポットに対するアクセスを行う無線機には、ログインコールサインをレピータコールサインとして設定し、アクセスする必要があります(DRモードの場合)。この時、接続先のNoraVR(NoraGateway)に設定されたレピータコールサインは関係ありません

【アナログ無線機を使用する場合の注意事項】

  1. ダッシュボードを動作させる為に、/opt/NoraVRRemoteClient/config/NoraVRRemoteClient.xml内のwebRemoteControlをtrueに変更して下さい
  2. ダッシュボードを動作させないと、宛先・自局コールサインを変更出来ません
    (デフォルトではリフレクター宛になっており、自局コールサインはログインコールサインになっています)
  3. RaspberryPi(BananaPi含む)専用
  4. サウンドカードが別途必要です(USBサウンドカード可)
  5. アナログ無線機とのインターフェース回路の自作が必要です
  6. ユーザーnoraなどの専用ユーザーを使用して動作させる場合には、dialoutの他、audio、gpioグループに属する必要があります
  7. 現状では、UR?/RPT?をアナログ無線機側で知る手段がありませんので、リフレクターやローカル(山かけ)で使用して下さい
    (効果音を出力するなど検討中)
  8. アナログノード用の無線機には、必ずトーンまたはデジタルコードなどのスケルチを必ず設定して下さい

【ダッシュボードのインストール方法(概要)】

  1. nginx(sudo apt install nginx)をインストールします(Apacheでも可)
  2. /etc/nginx/sites-available/defaultを編集し、下記にように変更します
    # Default server configuration
    #
    upstream websocket {
        server localhost:3000;
    }
    
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
    server {
            listen 80 default_server;
            listen [::]:80 default_server;
    
            # SSL configuration
            #
            # listen 443 ssl default_server;
            # listen [::]:443 ssl default_server;
            #
            # Note: You should disable gzip for SSL traffic.
            # See: https://bugs.debian.org/773332
            #
            # Read up on ssl_ciphers to ensure a secure configuration.
            # See: https://bugs.debian.org/765782
            #
            # Self signed certs generated by the ssl-cert package
            # Don't use them in a production server!
            #
            # include snippets/snakeoil.conf;
    
            root /opt/NoraVRRemoteClient/dashboard/;
    
            # Add index.php to the list if you are using PHP
            index index.html index.htm index.nginx-debian.html;
    
            server_name _;
    
            location / {
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ =404;
            }
    
            location /socket.io/ {
                proxy_pass http://websocket;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
            }
    
            # pass PHP scripts to FastCGI server
            #
            #location ~ \.php$ {
            #       include snippets/fastcgi-php.conf;
            #
            #       # With php-fpm (or other unix sockets):
            #       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            #       # With php-cgi (or other tcp sockets):
            #       fastcgi_pass 127.0.0.1:9000;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #       deny all;
            #}
    }​​
  3. /opt/NoraVRRemoteClient/dashboard/js/config.jsを編集し、serverAddressをダッシュボードを見る端末から見た時の、IPアドレスを入力します
  4. デバイスの外部からブラウザにてアクセスし、下記のようにGateway/Repeatersが正常に表示されれば動作しています

 

【設定パラメータ】

  1. AMBEサーバのIPアドレス
    <DV3KServerAddress>XXX.XXX.XXX.XXX</DV3KServerAddress>
    AMBEサーバが動作しているデバイスのIPアドレスを入力してください(localhost可)

  2. AMBEサーバの待受ポート
    <DV3KServerPort>2460</DV3KServerPort>
    AMBEサーバのポート番号を入力してください(変更していなければ2460です)

  3. ログインパスワード(クライアント側が接続する時に入力するパスワード)
    <NoraVRLoginPassword></NoraVRLoginPassword>
    このNoraVRに接続する際の認証に必要なパスワードを自由に決めて下さい(未入力可)

  4. RFノードを許可するか
    <NoraVRAllowRFNode>false</NoraVRAllowRFNode>
    このNoraVRに実際にRFが出力されるクライアントの接続可否を設定して下さい
  5. NoraVRに接続するユーザーの制限数
    <NoraVRClientConnectionLimit>100</NoraVRClientConnectionLimit>
  6. AMBEパススルーを使用するか
    <NoraVRUseCodecAMBE>true</NoraVRUseCodecAMBE>

  7. PCMコーデックを使用するか(音質:最良/通信帯域専有:高)
    <NoraVRUseCodecPCM>true</NoraVRUseCodecPCM>

  8. Opus(64k VBR)コーデックを使用するか(音質:良/通信帯域専有:中)
    <NoraVRUseCodecOpus64k>true</NoraVRUseCodecOpus64k>

  9. Opus(24k VBR)コーデックを使用するか(音質:中/通信帯域専有:小)
    <NoraVRUseCodecOpus24k>true</NoraVRUseCodecOpus24k>

  10. Opus(8k VBR)コーデックを使用するか(音質:悪/通信帯域専有:最小)
    <NoraVRUseCodecOpus8k>true</NoraVRUseCodecOpus8k>

 

【注意事項】

  • 各コーデックを全てリアルタイムでエンコードする為、NoraGateway(NoraVR)を実行するデバイスは処理能力が必要です。
  • 構成上、AMBEのエンコード・デコードを同時に行います。よって、AMBEサーバとNoraGateway(NoraVR)間のネットワークにおいては帯域に十分な余裕が必要です
  • ユーザーアプリケーションによっては、法制上の問題で運用不可能な構成も構築可能ですので、運用する構成には十分な注意をお願い致します