Top > 日記 > 2026-02-07

***ASL3からガイダンス送信-その1[#qb1fcb8e]
ASL3(v.3.6.3) をTGIFとリンクさせてTGIFにカーチャンクした局時に、案内の音声をそのTG内に流すことを試したので
ASL3(v.3.6.3) をTGIFとリンクさせてTGIFにカーチャンクした局に、案内の音声をそのTG内に流すことを試したので
 ( ..)φメモメモ 文中の&color(Blue){''52984''}; はJH1BLT Node です。実際のご自分のノードに置き換えて解釈願います。

【動作環境】
+OS: Bookworm(Debian12) ;Raspberry pi に限らず、PCやノートでもOK。
+ASL3(今回最新のVersion 3.6.3に限る); 3.4.2 以降は、その前よりパラメータや機能が大幅に変化しているため。
+DVSwitch (V.1.6.0-20221023-8) + Analog_Reflector ;バージョン表示するには # apt list <package_name>

【手順・概略】
+TGIFにカーチャンクしてきたら/var/log/mssages.log にその情報が表示されるようにする。
++# asterisk -rvvv でCLI> モードにしてから
++ 次のコマンドでモニター用にparrot node &color(Aqua){''40894''}; にlink しておく。;&color(Aqua){''40894''}; は評価をしてくれるParrotです。
  node&color(Blue){''52984''};*CLI> rpt fun &color(Blue){''52984''}; *340894
>node52984*CLI> rpt fun 52984 *721 ←コールサインIDをCWで内部・外部へ送信する。
{内部:ノード内 外部:ネット側)送信して、外部へも送られていれば、Parrot から返りがありOKですが
 ノード内だけの場合は、[[rpt.conf のパラメータの調整>各種パラメータの調整]]が必要となって、その分手間がかかります。
<
++ 同時に /var/log/asterisk/messages.log を以下の通り監視しておく。
># tail -f /var/log/asterisk/messages.log
・・・・
<
++ASL3+DVSwitch でDMR(TGIF44125)<==>AllStaarLink 通信ができるようにしておく。[[hUCの使い方>hUCの使い方]]参照
++他のClient でTGIF44125に接続して短いカーチャンクをする。
その時にiii.のログをみていて、 "app_rpt.c: Text Message From 52984:CN|J" の文字列があったか?
無ければ、
> # nano /etc/asterisk/logger.conf で編集する。
messages.log => notice,warning,error,dtmf,''&color(Olive){verbose}; ''←verbose を追加してみる。
<
+カーチャンク時の文字列が検出できたら、これをトリガーにして[[音声ファイル>音声ファイルの作り方]](my-id.ulaw)をTGIFへ送信する
scripts say_01.sh を /etc/asterisk/scripts/ に作成する。
># nano /etc/asterisk/scripts/say_01.sh
 -----------------
 #!/bin/bash
 tail -Fn0 /var/log/asterisk/messages.log | while read -r line ; do  # ログを監視
 if echo "$line" | grep -q "Text Message From 52984"; then          # 特定のメッセージを検知
   echo "$line"
   #ダンマリ用ロックファイルを生成する 
   ID_HASH=$(echo "$line" | cut -d' ' -f2)
   echo "$ID_HASH"
   LOCK_FILE="/tmp/cw_lock_${ID_HASH}"
 
   if [ ! -f "$LOCK_FILE" ]; then
      /usr/sbin/asterisk -rx "rpt playback 52984 my-id" # my-id(Voice)の送信
     # このロックファイルを作成し、300秒後に削除(5分間内のカーチャンクには反応しない)
          touch "$LOCK_FILE"
          (sleep 300 && rm -f "$LOCK_FILE") &
    fi
 fi
 done
<
 say_01.sh に実行権を与えるのを忘れないように。 # chmod 755 /etc/asterisk/scripts/say_01.sh
 また、say_01.sh を単独で起動させてテストもできるが、カーチャンクによりすぐロックファイルを作り
 300秒ダンマリ状態となり反応しなくなるので、一時的に以下コメントアウトしておくと良い。
>
 # ID_HASH=$(echo "$line" | cut -d' ' -f2)
 # echo "$ID_HASH"
 # LOCK_FILE="/tmp/cw_lock_${ID_HASH}"
<
 
&color(Red){''<工事中>''};
#clear
----
#comment
#navi(日記)

リロード   新規 下位ページ作成 凍結解除 差分 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS