Top > 日記 > 2026-03-07

***接続局読み上げ [#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 "T[0-9]")
 LINKED_NODES=$(echo "$RAW_NODES" | sed 's/T//g' | sed 's/,//g')
 
 # 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 linked."
 
    # 待ち時間をさらに短縮 (0.8 -> 0.4)
    sleep 0.4
 
    for CALL in "${CALL_LIST[@]}"
    do
        # 【改良】カンマを消して「スペースのみ」に。これでポーズが最小限になります。
        SPACED_CALL=$(echo "$CALL" | tr '[:lower:]' '[:upper:]' | sed 's/./& /g')
 
        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
#navi(日記)
#comment

#navi(日記)

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