日記/2026-03-07
をテンプレートにして作成
ホーム
検索
最終更新
テスト
リンク
ヘルプ
新規
pukiwiki-official
pukiwiki-dev
ヘルプ
プラグインヘルプ
開始行:
***接続局読み上げ [#w9cb3a1e]
自ノード(53197) に接続している局名を読み上げる。←これは内...
【概要】
AllStarLinkは、自ノードに直接接続しているノードがたとえ1...
その接続局リストも自ノードまでノード番号が流れてくる仕組...
そのリスト(ノード番号)から/var/lib/asterisk/astdb.txtを...
++list_links.sh
$ sudo nano /etc/asterisk/scripts/list_links.sh
>
#!/bin/bash
# --- 設定項目 ---
TARGET_NODE="53197"
AST_DB="/var/lib/asterisk/astdb.txt"
# 1. リンク中のノード番号一覧を取得
RAW_NODES=$(asterisk -rx "rpt nodes $TARGET_NODE" | grep...
LINKED_NODES=$(echo "$RAW_NODES" | sed 's/T//g' | sed 's...
# 2. コールサインを抽出し、2000以下を除外して重複を消す
declare -A SEEN_CALLS
CALL_LIST=()
for NODE in $LINKED_NODES
do
[ "$NODE" == "$TARGET_NODE" ] && continue
[ "$NODE" -le 2000 ] && continue
CALLSIGN=$(grep "^${NODE}|" "$AST_DB" | cut -d'|' -f2)
[ -z "$CALLSIGN" ] && CALLSIGN="$NODE"
if [ -z "${SEEN_CALLS[$CALLSIGN]}" ]; then
CALL_LIST+=("$CALLSIGN")
SEEN_CALLS[$CALLSIGN]=1
fi
done
TOTAL_COUNT=${#CALL_LIST[@]}
# 3. 音声アナウンス開始
if [ "$TOTAL_COUNT" -eq 0 ]; then
asl-tts -n "$TARGET_NODE" -t "No links."
else
# 冒頭文を短くしてテンポアップ
asl-tts -n "$TARGET_NODE" -t "$TOTAL_COUNT stations l...
# 待ち時間をさらに短縮 (0.8 -> 0.4)
sleep 0.4
for CALL in "${CALL_LIST[@]}"
do
# 【改良】カンマを消して「スペースのみ」に。これ...
SPACED_CALL=$(echo "$CALL" | tr '[:lower:]' '[:up...
echo "Announcing: $CALL"
# 標準オプションのみ使用
asl-tts -n "$TARGET_NODE" -t "$SPACED_CALL"
# 次の局までの待ち時間を最短に (0.8 -> 0.4)
sleep 0.4
done
fi
<
++list_links.sh をDTMF で実行
/etc/asterisk/rpt.conの[functions] に以下のように追加する。
[functions]
;;;;;;;;;;;;;;;;;;; functions stanza ;;;;;;;;;;;;;;;;;;;
; Prefix Functions
; *1 Disconnect Link
; *2 Monitor Link
83 = cmd,/etc/asterisk/scripts/list_links.sh
++DTMFの実行
*83 でノード内に現在の接続ノード数とコールサインを読み...
#clear
#comment
#navi(日記)
終了行:
***接続局読み上げ [#w9cb3a1e]
自ノード(53197) に接続している局名を読み上げる。←これは内...
【概要】
AllStarLinkは、自ノードに直接接続しているノードがたとえ1...
その接続局リストも自ノードまでノード番号が流れてくる仕組...
そのリスト(ノード番号)から/var/lib/asterisk/astdb.txtを...
++list_links.sh
$ sudo nano /etc/asterisk/scripts/list_links.sh
>
#!/bin/bash
# --- 設定項目 ---
TARGET_NODE="53197"
AST_DB="/var/lib/asterisk/astdb.txt"
# 1. リンク中のノード番号一覧を取得
RAW_NODES=$(asterisk -rx "rpt nodes $TARGET_NODE" | grep...
LINKED_NODES=$(echo "$RAW_NODES" | sed 's/T//g' | sed 's...
# 2. コールサインを抽出し、2000以下を除外して重複を消す
declare -A SEEN_CALLS
CALL_LIST=()
for NODE in $LINKED_NODES
do
[ "$NODE" == "$TARGET_NODE" ] && continue
[ "$NODE" -le 2000 ] && continue
CALLSIGN=$(grep "^${NODE}|" "$AST_DB" | cut -d'|' -f2)
[ -z "$CALLSIGN" ] && CALLSIGN="$NODE"
if [ -z "${SEEN_CALLS[$CALLSIGN]}" ]; then
CALL_LIST+=("$CALLSIGN")
SEEN_CALLS[$CALLSIGN]=1
fi
done
TOTAL_COUNT=${#CALL_LIST[@]}
# 3. 音声アナウンス開始
if [ "$TOTAL_COUNT" -eq 0 ]; then
asl-tts -n "$TARGET_NODE" -t "No links."
else
# 冒頭文を短くしてテンポアップ
asl-tts -n "$TARGET_NODE" -t "$TOTAL_COUNT stations l...
# 待ち時間をさらに短縮 (0.8 -> 0.4)
sleep 0.4
for CALL in "${CALL_LIST[@]}"
do
# 【改良】カンマを消して「スペースのみ」に。これ...
SPACED_CALL=$(echo "$CALL" | tr '[:lower:]' '[:up...
echo "Announcing: $CALL"
# 標準オプションのみ使用
asl-tts -n "$TARGET_NODE" -t "$SPACED_CALL"
# 次の局までの待ち時間を最短に (0.8 -> 0.4)
sleep 0.4
done
fi
<
++list_links.sh をDTMF で実行
/etc/asterisk/rpt.conの[functions] に以下のように追加する。
[functions]
;;;;;;;;;;;;;;;;;;; functions stanza ;;;;;;;;;;;;;;;;;;;
; Prefix Functions
; *1 Disconnect Link
; *2 Monitor Link
83 = cmd,/etc/asterisk/scripts/list_links.sh
++DTMFの実行
*83 でノード内に現在の接続ノード数とコールサインを読み...
#clear
#comment
#navi(日記)
ページ名: