ASL3からガイダンス送信-その1
ASL3(v.3.6.3) をTGIFとリンクさせてTGIFにカーチャンクした局時に、案内の音声をそのTG内に流すことを試したので
( ..)φメモメモ 文中の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 40894 にlink しておく。;40894 は評価をしてくれるParrotです。
node52984*CLI> rpt fun 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の使い方参照
- 他のClient でTGIF44125に接続して短いカーチャンクをする。
その時にiii.のログをみていて、 "app_rpt.c: Text Message From 52984:CN|J" の文字列があったか?
無ければ、
# nano /etc/asterisk/logger.conf で編集する。
messages.log => notice,warning,error,dtmf,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}"
<工事中>