-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
120 lines (103 loc) · 4.62 KB
/
Copy pathconfig.example.yaml
File metadata and controls
120 lines (103 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# =============================================================================
# rumble-py — example configuration
# =============================================================================
#
# Copy to `config.dev.yaml` (gitignored) or `config.yaml` and edit. Run with:
#
# python -m rumble --config config.dev.yaml
#
# Layout notes:
#
# * Audio, ident, and web settings are shared across all banks (they describe
# *this* node, not a particular destination).
# * Each bank is a fully-independent set of Mumble servers + DTMF channel
# mappings. The DTMF command `#N**` (where N is 0-9) swaps to bank N at
# runtime without restarting the program.
# * Channel mappings reference servers by `name`, so the same channel-map
# shape can be reused for staging vs. production by editing only the
# server entries.
# =============================================================================
# ---------------------------------------------------------------------------
# Operator identity
# ---------------------------------------------------------------------------
# Required. Your amateur radio callsign — spoken in TTS announcements and
# used as the default Mumble username if a server entry doesn't override it.
callsign: "AE9S"
# Bank loaded at program start. Must be one of the keys under `banks:` below.
initial_bank: 0
# ---------------------------------------------------------------------------
# Audio I/O (shared across banks)
# ---------------------------------------------------------------------------
audio:
# Use `null` (or omit) for system default. A string is treated as a
# substring match against sounddevice device names. Run
# `python -m rumble --list-audio-devices` to see what's available.
input_device: null
output_device: null
# Sample rate the radio audio is captured at. 8 kHz is plenty for DTMF and
# matches narrowband VOIP, so no resampling is needed.
sample_rate: 8000
# Minimum Goertzel magnitude (after N-normalization) to count a tone as
# present. 0.05 catches half-scale signals comfortably; lower it if your
# line-level input is quiet, raise it if you're seeing false detections.
dtmf_min_magnitude: 0.05
# ---------------------------------------------------------------------------
# Station identification (shared across banks)
# ---------------------------------------------------------------------------
# Per FCC §97.119, you must ID at least every 10 minutes while transmitting.
ident:
wav_path: null # path to a pre-recorded CW or voice WAV
interval_seconds: 540 # 9 minutes — comfortably under the 10-minute rule
# ---------------------------------------------------------------------------
# Local web UI (shared across banks)
# ---------------------------------------------------------------------------
web:
enabled: true
host: "127.0.0.1" # bind only to localhost unless you really know
port: 8080
# ---------------------------------------------------------------------------
# Banks
# ---------------------------------------------------------------------------
# Each bank is a snapshot of (servers + DTMF→channel map). The DTMF command
# `#N**` swaps the active bank to N. To switch banks back, type `#M**`.
banks:
# ---- Bank 0: default / local development -----------------------------------
0:
servers:
# Each server gets a short `name` that channel mappings reference.
- name: "local-dev"
host: "127.0.0.1"
port: 64738
username: "AE9S"
# password: "" # optional; omit for open servers
# certfile: "./client.pem" # optional; for cert auth
# keyfile: "./client.key"
channels:
# DTMF "#001#1*" → connect to server "local-dev", channel "Root", and
# TTS-announce "local lobby".
#
# server_number and channel_number are kept as STRINGS so leading zeros
# are preserved — quote them, or the YAML parser may swallow the zero.
- server_number: "001"
channel_number: "1"
server_ref: "local-dev"
channel_path: "Root"
nickname: "local lobby"
# ---- Bank 1: example production --------------------------------------------
1:
servers:
- name: "example-repeater-net"
host: "mumble.example.org"
port: 64738
username: "AE9S"
channels:
- server_number: "001"
channel_number: "1"
server_ref: "example-repeater-net"
channel_path: "Root/Repeaters/Midwest"
nickname: "Midwest"
- server_number: "001"
channel_number: "2"
server_ref: "example-repeater-net"
channel_path: "Root/Repeaters/Mountain"
nickname: "Mountain"