2019年1月7日月曜日

新ゲートウェイ管理者向け ラストハード表示アプリ(C/PHPとD-STARを勉強する)

Back



=MEMO= 2024年1月現在のゲートウェイ・アプリケーション仕様変更(2023年の法改正による)に伴い、xchangeへの接続方法も変更になりました。 間もなくリリースされる次期D-STAR仕様書に現行6.0aより更に詳しく記載される模様ですが、初期化パケットがxchange起ち上げ時発行され、 それに返答する事によって継続的にポートが利用できます。未だ確定では無く仕様が変更される可能性は有りますが、今回そのプロトコルに対応した lastheard v2.0.0 を公開しました。以下のインストール手順には変更有りません。  (2024.01.18 追記)
=MEMO= Last Heard v.2.0.2にアップデートしました。 主な変更点は接続ユーザのデータをログからではなくmulti_forward WEBのデータから取得し、スキャン接続など瞬間の接続・切断で接続が残るのを解消しました。なお現在アプリの運用確認はRaspbian(Pi OS)のみとなっています。(2024.5.29 追記)



実際のWEBはこちらから


  D-STAR リピータも年が明けて、155ヶ所ほどが新ゲートウェイ採用となりました。今までのゲートウェイ(アイコム社製 dsgwd )は文字通り、コントローラ(ID-RP2C)とインターネットの間に入ってRF側とインターネット側の行き来を制御していました。
  今回はその機能として、JARL管理サーバのアドレス指定に、IPアドレスではなく名前(FQDN)として trust.d-star.info を指定するように変更され、これによって2台のサーバ(IPアドレスは違う)が一つの名前で参照され、安全性が向上しました。
  また、今まで UDP:40000 と言うポートに制限されていた、コールサインルーティングの復路も、ホールパンチ対応となり、往路が使用したポートを使って戻ってくるように仕様変更されました。ターミナル/アクセスモードでの 40000 ポート制限も、この方法で間もなくクリアされると思います。

その他に特筆すべきは、今回のプログラム構成の大きな変更です。図のようにコントローラとゲートウェイソフトの間に xchange と言う物が割って入っています。このためご存じのように各設定ファイルに、インターネット側、コントローラ側以外にローカルホストを使った橋渡しの設定が必要になりました。これらについては別途開設に委ねるとして、新設されたxchangeのポート分配機能を今回利用させて戴いて、ユーザサイド利用規程に則ったポート UDP:52000 から通信データを受信して、そのアクセス履歴(ラストハード)をWEB表示するようにしてみました。

=MEMO= v.2.0.0でxchageからのデータ取得でハンドシェイクに対応しました。そのためxchange WEBにてlastheardがOK表示となりました。(2024.1.19 追記)
ソフトウェアのダウンロード
ソフトウェアはあくまで、自分自身の勉強の為にC言語、PHPを使って書いてあります。著作権は保持していますが、CC-BY-NC-SA(クリエイティブ・コモンズ・ライセンス)に従って、自己責任で自由にお使いください。
  1. ゲートウェイサーバのCentOSでgit cloneします。

  2. # git clone https://github.com/ytodo/lastheard.git
    # cd lastheard
    # make
    

    これで、ラストハードをログへ出力するアプリ「lastheard」が作成されました。PHPのWEB表示プログラムはフォルダhtmlに同梱されています。

  3. httpd(apache2)を自動起動設定します。

  4. # systemctl enable httpd.service
    # systemctl start httpd.service
    

    再起動した時に、自動的に起動するよう設定した上で、手動で起動します。標準ではポート80でゲートウェイPCのIPアドレスをブラウザーで見るとテストパターンが見えます。

  5. ダウンロードしたアプリケーションを各フォルダーに置きます。

  6. # \mv lastheard /usr/local/bin
    # \cp -f html /var/www
    

    コマンドの mv と cp の前に付いている「\」は、エイリアスのお陰でコマンド通りの挙動にならないため、エイリアスをキャンセルするための物です。

  7. ラストハードアプリ自体の自動起動を設定します。

  8. # nano /etc/systemd/system/lastheard.service
    
      GNU nano 2.3.1        File: /etc/systemd/system/lastheard.service
    [Unit]
    Description = lastheard daemon
    After = xchange.service
    
    [Service]
    ExecStart = /usr/local/bin/lastheard
    Restart = always
    Type = simple
    
    [Install]
    WantedBy = multi-user.target
    

    ユニットファイルが作成できたら、自動起動を有効にします。

    # systemctl enable lastheard.service
    # reboot
    
    これで、立ち上がればブラウザーでラストハードが見られるはずです。カーチャンクしてみてください。

  9. 環境設定ファイルの編集をします

  10. # nano /var/www/html/conf/db.conf
    
      GNU nano 2.3.1        File: /var/www/html/conf/db.conf
    #
    #   D-STAR Dashboard configuration file
    #
    #   2018.12.22  Yosh Todo/JE3HCZ
    #
    
    # 自局設定
    RPTNAME=xxxx D-STAR GATEWAY --> 漢字も使えますがこのファイル自体をShift_JISで保存してください
    RPTCALL=JPnxxx A
    
    # LASTHEARD 行数
    LINES=10
    
    # リフレッシュ間隔(秒)
    INTERVAL=2
    
    # ヘッダーに表示するグラフィックスのファイル名
    # (名前は的下ですが、images に入れるファイルと一致させてください)
    #   ファイル形式はjpg gif png 幅400px 高さ200px程度
    #   ファイル容量 数十キロバイト推奨
    HEAD_PIC=header_picture.jpg
    
    # ヘッダー画像の左右/上下位置と繰り返し表示有無
    #   left/center/right  top/bottom  repeat/no-repeat
    PIC_POSx=right
    PIC_POSy=top
    REPEAT=no-repeat
    
    # バックグラウンドカラーの変更が出来ます。
    #   例 グリーン: #55AA55  名称標記も可能: white
    #   指定しない又は行そのものがない場合、規定値となります。--> シックなオレンジ
    
    BGCOLOR=
    
    

    設定値のイコール(=)前後はスペースを入れないでください。


Back


73
Yosh Todo/J E 3 H C Z

ご意見等は当ブログトップメニューページの「FORUM」リンクからお願いします。

2 件のコメント:

  1. 返信
    1. 有り難うございます。駆け出しで不備も多いと思います。またご指導ください。

      削除