You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ADN-DMR-Peer-Server/docs/en/server/user-guide/special-numbers.md

9.2 KiB

Special numbers (TG / IDs)

Several destination IDs are reserved for control or services. They are handled in protocol layers and/or the bridge router, not as normal group traffic.

Server voice source ID (configurable, not “announcement TG”)

Important: The server uses a configurable DMR ID (VOICE.DMR_ID in adn-voice.yaml). Default: 1000001. Each announcement/TTS row may set its own DMR_ID; when omitted, it inherits VOICE.DMR_ID. Callsign comes from the subscriber DB for that ID.

Traffic Destination in the DMR packet Notes
Scheduled AMBE (ANNOUNCEMENTS) Whatever TG you set in adn-voice.yaml Item DMR_ID or VOICE.DMR_ID (default 1000001).
TTS (TTS_ANNOUNCEMENTS) Same — configured TG Same.
On-demand (TG 9991–9999) TG 9 Short info clips; configurable source (see Voice, announcements, and TTS).
Disconnected / reflector prompts TG 9 Same.
Voice ident All-call (16777215) or OVERRIDE_IDENT_TG if set Same.

You do not “monitor” the server voice ID to hear scheduled announcements: you monitor the configured announcement TG (e.g. 2, 9, 26811). The configured ID appears as the transmitter on those calls.

The legacy local ID 5000 is still recognised on some on-demand playback paths for compatibility, but the new default is 1000001 (avoids SUB_ACL: DENY:0-1000000 blocks on OBP).

Destination TG 5000 (inbound group)

If a group call arrives with destination TG 5000 and there is no existing BRIDGES entry, the server does not auto-create a user-activated bridge for that TG (same class as IDs 0–4, 9, 4000). To carry traffic to TG 5000 you need an explicit bridge row.

TG 9 — local service lane (prompts and bridge plumbing)

TG 9 is used in two different ways: what operators hear from short server prompts, and how internal bridge rows are wired.

What you hear (outbound server voice)

For on-demand playback (after you key 9991–9999) and for disconnected / reflector voice lines, the server transmits group packets with:

  • DMR ID = item DMR_ID or VOICE.DMR_ID (default 1000001)
  • Destination TG 9
  • Timeslot 2 (the code drives the TS2 slot for that hotspot)

That follows a common HomeBrew / conference convention: keep short local service audio on TG 9 / TS2 so it stays separate from normal QSO traffic on your main TG (often on TS1). Hotspots must pass TS2 and be on a configuration where TG 9 is not blocked, or those prompts will not be heard.

Red vs local: On OpenBridge, inbound group traffic to TG 9 is in the ≤ 79 “local / repeater” range and is not brought into the bridge from the IP mesh (it is dropped at ingress). Server prompts use the local HBP path to the hotspot/repeater, not a wide-area bridged TG. Exception: only if you explicitly add BRIDGES rows that forward TG 9 could that traffic be sent elsewhere — not the default.

Scheduled announcements and TTS use the TG you set in adn-voice.yaml — they are not forced to TG 9 unless you configure that TG yourself.

Router behaviour (reserved TG)

  • No automatic user-activated bridge if someone transmits to TG 9 and no BRIDGES row exists (same class as 0–4, 4000, 5000, etc.).
  • With GEN_STAT_BRIDGES, automatic STAT bridge creation from OpenBridge does not apply to destination TG 9 (it is excluded on purpose).
  • The bridge debug loop removes invalid conference bridges keyed 9 (and 0–8) so single-digit stray bridges do not accumulate.

Bridge table (advanced)

Many reflector / dial rows store TGID = 9 on TS2 as the leg destination used internally to attach the dynamic path to the real talkgroup — that is wiring inside BRIDGES, not something you “call” like a normal national TG.

In-band VTERM rules that affect TG 9 / reflector behavior

In-band bridge activation/deactivation is applied on voice terminator (VTERM) with this scope:

  • It runs only for call types group and vcsbk (not for unit/private VTERM).
  • For reflector bridges (#...), in-band handling is evaluated only when the destination is TG 9.
  • This is why reflector prompts and dial wiring are tied to TG 9 while private calls do not trigger that bridge-timer logic.

TG / ID 4000 — deactivate dynamic bridges

Purpose: Clear user-activated (dynamic) state for the hotspot that keys 4000. TG 4000 is not a talkgroup to monitor or persist — it is a reset command.

Behaviour (group voice header):

  • Clears per-peer UA sessions in memory (all slots for that peer).
  • Deletes matching rows from peer_dynamic_tgs (MariaDB).
  • Clears stale STATUS RX fields so a later RPTO does not re-seed the old TG.
  • Runs in-band bridge deactivation on the slot (same as legacy).
  • Sends GROUP VOICE,INGRESS,RX,…,4000 to the monitor (not START) so SINGLE=0 multi-dynamic chips clear without lighting a live TX chip.
  • On inject-only MASTER, pushes updated CONFIG_SND to the monitor.

Inject-only vs global: With integrated PROXY, reset is per peer (only that hotspot’s dynamics). Without inject-only filtering, legacy deactivate_all_dynamic_bridges still runs for the whole system.

TG 4000 must never appear as a dynamic UA chip on the monitor or in peer_dynamic_tgs.

SINGLE_MODE impact on in-band deactivation

When in-band rules evaluate deactivation on a MASTER slot:

  • SINGLE_MODE: true: deactivation is aggressive. A bridge leg can be turned off by OFF/RESET triggers, TG 4000, or traffic that does not match the leg TG.
  • SINGLE_MODE: false: deactivation is conservative. TG 4000 is the primary forced-deactivate trigger; static TG rows and reflector rows are preserved according to current bridge checks.

Operationally: if users report “bridges drop too easily” after OPTIONS updates, verify the current SINGLE_MODE value and hotspot OPTIONS payload.

TG 9991–9999 — information / on-demand audio

Purpose: Play back pre-generated AMBE (“ondemand”) files (e.g. station info, help).

Behaviour:

  • Triggers playFileOnRequest-style handling: maps the last digits to a file name under the configured audio tree.
  • Trigger path is private VTERM for destination 9991–9999, then async playback generation.
  • Works from MASTER and PEER paths.

The audio is sent with the configured source ID and destination TG 9 in the generated stream. File layout: Voice, announcements, and TTS.

TG 9990 — echo (in-band)

Purpose: Bridge rows for echo often use 9990 with the ECHO system (see BRIDGES and options in your YAML).

SINGLE=1: Keying 9990 does not create an exclusive listen session (same as 4000). Downlink echo always returns to the calling hotspot even when another TG holds the SINGLE lock. See Hotspot proxy and Voice routing and contention — SINGLE exceptions.

Note: A standalone echo is also available as a separate process — Echo.

Private call to ID 4000

A unit call to 4000 is treated as disconnect dynamics only; it is not routed as a normal private call.

OpenBridge ingress — group TG filters

On OpenBridge (DMRD v1 and DMRE), non-unit group traffic to certain TGs may be dropped before bridging (with BCSQ where applicable). Rules differ slightly between DMRD and DMRE; they include low-number TGs (e.g. ≤ 79), 9990–9999, 900999, ranges 92–199 (vs source server), and MCC-related ranges (80–89, 800–899). Details: OpenBridge protocol.

Prohibited / reserved TGs (bridge creation)

Many small IDs (0–5, 9, etc.) and the 999x service range are excluded from certain automatic bridge-creation paths; 5000 and 4000 are in the “no auto UA bridge” set when no row exists. Exact sets are defined in the bridge router and options handling in source.

Summary table

ID / range Role
VOICE.DMR_ID (source) Server-generated voice — caller ID on receivers (default 1000001)
5000 (destination) No auto user-activated bridge if missing from BRIDGES
4000 (group) Deactivate dynamic bridges
4000 (unit) Disconnect dynamics; not routed as PC
9991–9999 On-demand / information audio (trigger TG); playback uses VOICE.DMR_ID → TG 9 (TS2)
9 Service/prompt lane (short server audio); reserved for auto-bridges; internal TGID on TS2 legs
9990 Echo bridge TG (with ECHO system)
16777215 All-call (default voice-ident destination unless overridden)

Powered by TurnKey Linux.