Bden Ver 2.00

概要
インストール/アンインストール方法
事前準備
モジュール構成
設定ファイル
押下者通話制限
補足説明
改版履歴
連絡先など

拡張子(7z,zip)展開後は同一!フォルダを適宜、移動させましょう
レジストリ登録をバッチでおこなう等、ご不便をおかけしますが、
レジストリにゴミを作らず、見える操作によるインストールが個人的には好みです
※Program Filesにインストールする場合は特別な手順を踏まなければなりません
アプリの直接書き込み(ログ書き込み)が制限を受けます、外付けZ:配置をおすすめします
  Program Files↓権限変更↓手順
  →https://dev.macha795.com/windows-folder-access-permissions/
  →ChatGPTにきく

★
概要
主な内容物
・カスタムプロトコル(bden:)登録スクリプト
・常駐アプリ
  →カスタムプロトコル,コマンド操作で指示を受け、機能を実行する
  →音声データの送受信を進める
・設置者専用アプリ
  →ログインが要らなくなります!PCだけで電話を待てる

自宅等、常時接続環境
  貸借ルーターを使っての普通のインターネット接続を指します

ソフト環境
  実行形式は64bits用です。Windows7以上
  開発環境はWin7、テストは7,10,11でおこなっています。
  不具合等あればご報告いただけると助かります。

★
インストール/アンインストール方法
インストール方法

  モジュール展開)
    圧縮ファイル(BdenXXX.7z)を適当なフォルダーで解凍してください。
    7-Zip > ここへ展開 をします、BdenXXX を Bden に変えた前提で話を進めます。
    zip だと解凍日時になるので 7-Zip にしました

  \Bdenを移動
    C:\Tempで展開したとします、どこへ配置するか?
    注意1)展開パスに全角文字を含めない(_install_のレジストリ登録で文字化けする) NG)Z:\仕事\Bden
    注意2)展開フォルダー下に「ログ・録音ファイル」等が溜まります、外付HDDトップへの配置がおすすめ)Z:\Bden 等

  先ずは設定ファイルを作る)
    1)configure.exeをダブルクリックします。
    2)serialnumber と \_install_\bden.reg が生成されます。

  カスタムプロトコル'bden:'を作る)
    必須作業!アプリ、ブラウザから通話機能をキックできるようにします。
    1)\_install_へ入ってください。
    2)install.batをダブルクリックします。一般ユーザー可能
      HKCU\Software\Classes\bdenが生成されます。
      続行するには何かキーを押してください…[改行]等を押し無事完了
      ↑\_install_\bden.reg↑は作業後に消えます、レジストリ操作は当該のみ

  スタートアップへ登録する)
    必須作業!Aリンク指示通りに作業する本体。
    1)bden.exeを右クリック→ショートカットの作成(S)を選択します。
    2)C:\Users\(あなた)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupへ置きます。
      AppDataフォルダーは隠れているかもしれません

  デスクトップへ)
    押下者は全く関係ありません!設置者専用アプリ(WinBden.exe)を使われる方用です!
    認証情報を引数に加え…自動ログインさせます!Webログインよりずっと楽!
    Win11は Microsoft Edge WebView2 Runtime なしで、動きます、Win10は未確認!Win7では動きません。
    1)ショートカットを作る
      WinBden.exeを右クリック→ショートカットの作成(S)を選択します。
      WinBden.exeを右クリック→プロパティ(R)→リンク先(T)を適宜、修正します。
      例)"Z:\Bden\WinBden.exe" ログインID パスワード 2   ←(2:大きく表示)
    2)デスクトップへ置きます。
      ダブルクリックすると、大画面(800×600)で
      ※画面を大きくしないと↓作業↓できません
    3)ココは予想ですが…確認ダイアログが出ます。一発目なので…
      一発目の実行が意味すること!ブラウザに外部アプリ(que2.exe)を認識してもらう!です。
      しっかり応えないと頻繁に確認ダイアログが出ます。
      チェックを入れて、[OK]を押下してください
      ※お手数をかけますが…始めに意志をしっかり示す流れ
      ※小画面でクリックできずに終わると近いうちにまた尋ねられます
      ※確認ダイアログの発火は確実ではありませんが↓アンインストール その他を削除)2)↓も参考にしてください
      ※将来、デジタル署名するかもしれません
    {{ココまでは導入時のみ}}
    4)通常使用のかたちに戻す。
      右クリック→プロパティ(R)→リンク先(T)を適宜、修正します。
      例)"Z:\Bden\WinBden.exe" ログインID パスワード   ←(2を消す)
      ※実は1もあります!在席通知が消えてさらに小さくなります([0]普通|1:最小|2:最大)

  ブラウザからログインする)
    既に↑を済ませたのであれば読み飛ばしてください
    自分は専用アプリしか使いませんが、PCアプリが好みでなければそれも構いません
    1)ココは予想ですが…確認ダイアログが出ます。一発目なので…
      一発目の実行が意味すること!ブラウザに外部アプリ(que2.exe)を認識してもらう!です。
      しっかり応えないと頻繁に確認ダイアログが出ます。
      チェックを入れて、[OK]を押下してください
      ※ブラウザによって考え方が大きく異なります
        Edgeはチェックを入れても毎回訊かれます、↓ユーザープロファイル↓が参考になると思います
    {{ココまでは導入時のみ}}
    2)Chromeであれば…一度のみ!再度きかれずに済みます

アンインストール方法

  デスクトップから削除)
    1)以前置いたショートカットリンクを削除します。

  スタートアップから削除)
    1)C:\Users\(あなた)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupへ入ってください。
    2)以前置いたショートカットリンクを削除します。

  プロトコル'bden:'を削除)
    1)\_install_へ入ってください。
    2)uninstall.batをダブルクリックします。
      HKCU\Software\Classes\bdenが削除されます。

  その他を削除)
    1)展開したZ:\Bden
      アプリは展開フォルダー配下にしかファイルを生成しません!音声ファイル,ログ等
      Z:\Bden\...
    2)ユーザープロファイル
      秘匿フォルダー(AppData)に溜められるアプリの入力情報です、うちのアプリ(WinBden.exe)も使っています
      当該は小さなEdgeブラウザだと思ってください!「Edgeから分離した単独アプリ」として動作するので、
      ユーザープロファイルは(※A)になります、消せばやり直せます、WinBden.exeを薦める理由です
      Chrome)
        chrome://version → プロフィール パス C:\Users\(あなた)\AppData\Local\Google\Chrome\User Data\Default
        ∴..\User Data\Default\Preferences <<< ファイルです!フォルダーではない
        影響範囲
        ・ブラウザ設定:初期化される
        ・サイトごとの権限:初期化されることが多い
        ・「この種類のリンクは常にこのアプリで開く」などの設定:リセットされる可能性が高い
        ・拡張機能の一部設定:初期化・再設定が必要になる場合がある
      Edge)
        edge://version
      WinBden.exe)
        C:\Users\(あなた)\AppData\Local\Bden\WebView2\... ※A
        影響範囲
        ・画像ファイル
          過去に取得したURLであれば「更新日付,サイズ,内容」に関わらず、キャッシュを使う
        ・チェックボックス
          一度済ませば二度目は出ない!只…※Aを消すと、確認ダイアログから再度はじめられます

★
事前準備
機器・装置)
  本アプリを利用するにあたり以下を前もってご用意ください
  ・Windows-7以上のPC機(プライベートアドレスが割り当てられている)
  ・LAN内にルーターを置く(相手PCとNAT越えで通信する)
  ・音声入出力機器(USB,AUX接続)(サイト記事を一読願う)
  ※念のためですが…グローバルIPへ直に置くようなWAN環境からの接続は想定外です
  ※音声装置の差し込み具合を確認しましょう

★
モジュール構成
       Z:\Bden\logs   ---- log.txt)流れ状況,PC&ルータ状態,que2.exeの実行結果 ※排出量:少
                           error.txt)設定ミス,プログラムエラー
                           warning.txt)設定ミス,異常操作,サーバ異常等
              \man    ---- ご覧のhtml文書
              \recorded -- 1通話につき"受信","送信"の2Filesが生成されます ※排出量:多
              \resource -- 設定ファイル(適宜、手作業で修正します)
              \_install_ - プロトコル'bden:'の追加|削除
              \configure.exe ---- 導入ファイル生成コマンド
              \que2.exe      ---- 要求受付アプリ
              \bden.exe -- 常駐アプリ
              \WinBden.exe ------ 設置者専用待ち受けアプリ
              \serialnumber ----- インストール過程で生成される有償サービスで必要な情報

★
設定ファイル
resource配下のcsvファイルの説明です。
各項目は 録音ファイル,コーデック,音量等を指し設置者も押下者も変わりありません。

  1.基本設定(base.csv)
    →音声通話ノ範囲(初期値:0)
      0(WAN),1(LAN)
    →パイプ完了待ち時間(初期値:30)
      指示はque2.exeが受け取り、プロセス間通信(NamedPipe)で常駐アプリ(bden.exe)へ渡されます、待てる最大値を意味します。
      超えてしまうとNamedPipeは作られず、要求は届かなくなります。WinBdenだと赤丸になりますし、ブラウザログインではそもそも
      可能性が低い!手動ログインで手間取っている間に過ぎる時間だから!error.txtには出ます。
      該当するのは概ねUPnP準備です、値の大小はお使いPCを含むネット環境に依存します。我がPC+非力ルーターでも10秒前後
    →期限(固定値:1800)
      設置者は気にしてください。席の有効期間です、500ミリ秒単位なので1800=900秒
      サーバー時刻と使用PC時刻の間で差が出始め…限界を超えると「タイマー」出現!何もできなくなります。
      ※許容範囲は±15秒
      1)一旦、返却する
      2)時刻あわせをする
      3)再度、設置する
    →コーデック種類(初期値:0)
      現在はひとつしか組み込まれていません。よって、順番(0)を得るのみです。
    →選択したLANアダプタ(0〜)(初期値:0)
      0(先頭ネカ),1(次ネカ),2(次次ネカ),,,です。
    →呼び出し停止(0:Cancel)(固定値:60)
      相手を呼び出し始めてから、指定値を経過すると自動切断します(Cancelリ送出 by 押下者)。500ミリ秒単位なので60=30秒
    →通話制限識別子(初期値:none)
      RTP通信を確立してから五分後に自動切断します、無音になります。
      制限解除は有償サービスです。興味のある方はサイト「押下者通話制限」を一読願います。
    →受信音量(初期値:1)
      音量をソフトウェア的に変更します。つまりデータ値が変わります。
      ※大値にするとノイズが増大します、初期値のままで音量も十分です、変えない方がいい。
      ※rcvファイルに書き込まれる音量です、聴く音量は出力デバイス音量へ
      ※相手から得た音声データの音量をどうするか。
      1:小(変化なし)
      3:中
      9:大
    →送信音量(初期値:1)
      音量をソフトウェア的に変更します。つまりデータ値が変わります。
      ※大値にするとノイズが増大します、初期値のままで音量も十分です、変えない方がいい。
      ※sndファイルにはマイク音をそのまま書き込みます、送信データは設定値に従う
      ※相手に送る音声データの音量をどうするか。
      1:小(変化なし)
      3:中
      9:大
    →出力デバイス音量(初期値:0x20002000)
      waveOutSetVolume関数でスピーカー(出力デバイス)のボリュームレベルを設定します。
      マイク入力の音量調整はOS操作でおこない確認できるのも相手側のみ。
      なので「マイク入力はいじらず、スピーカーでどうにかする」のが本質だと思います。
      スピーカーの上げ下げだけで十分な感触を得られます。
      ※初期値は設置者と質問者における最適値と思われる値。
      ※上位と下位ビット、それぞれの設定範囲:0x0000(無音)〜0xFFFF(ボリューム全体)
      ※上位ワード=右チャネルのボリューム設定値
       下位ワード=左チャネルのボリューム設定値
      ※会話音は当該によるもの!呼び出し音(設置者が聞く)はJavascript::play();
    →録音ファイル(初期値:true)
      recorded\配下に生成する(true),しない(false)
      ※無圧縮のAUファイル(容量に注意)
    →RTP送信(初期値:true)
      送信する(true),しない(false)
    →スピーカー位置(初期値:100)
      デバイスには端子接続やUSB接続があり、両方差し込んでいたりします。通常、同時再生すると一方だけ音が出て混在して聴こえます。
      スピーカーを分けてそれぞれで聞きたければデバイス識別子(0以上)を与えます。尚…0が端子?USB?かは判らない。
      ※log.txt:SPK=2 → 0,1を設定できる
      ※値(100):MS社サンプルソースに沿ったもので良ければいじらない
    →マイク位置(初期値:100)
      デバイスには端子接続やUSB接続があり、両方差し込んでいたりします。通常、同時録音すると一方だけの入力が使われ同じ音が入ります。
      マイクを分けてそれぞれで入力したければデバイス識別子(0以上)を与えます。尚…0が端子?USB?かは判らない。
      ※log.txt:MIC=2 → 0,1を設定できる
      ※値(100):MS社サンプルソースに沿ったもので良ければいじらない
  2.UPnP設定(upnp.csv)
    →経由ポート番号(初期値:12346)
      発信元ポート番号の登録=bind();で使われます。
      PCが音声データを待つポート番号です。WANポートで受けた音声データの転送先と一致します。

★
押下者通話制限
5分制限を解除されたい方がお読みください
  https://www.bden.net/issue/ から進めてください

★
補足説明
  ・ルータ
    1.UPnPに対応していないルータはほとんどないと思うも
      初期状態でonになっているのが普通!そうでない場合もあるかもしれません。
      必ず有効(on)にしておいてください。
    2.通常、同一のネットワークに複数台ルータが設置される事はありませんがどれを掴んだかはlog.txtで確認できます。
      もし意向に沿わない場合は「選択したLANアダプタ」を適宜修正願います。

★
改版履歴
Ver1.00
  ここから開始です。Windows系PCで動作する、RFC3261準拠のIP通話常駐アプリとしてスタート。
Ver1.10
  サービス管理での起動からスタートアップに切り替わった最初のバージョンとお考え下さい。
Ver1.20
  試用バージョンの初版
Ver1.30
  試用バージョンの第二版
Ver1.40
  公開バージョンの初版
Ver1.50
  SIPサーバー機能をWebサーバーへ統合化
Ver1.51
  HTTPリクエストを導入し設定作業の軽減化
Ver1.52
  理論上不可能な自身へ電話する!を弾く
Ver1.60
  ポートマッピングを自動でします!変動値を使用
Ver2.00
  WinBden.exeを追加!VBScript起動を止めコマンド実行へ

★
連絡先など
最新版の入手先
 ・Bden のホームページ
  https://www.bden.net/

運用グループ