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/echo.md

63 lines
2.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Echo (playback)
## What it is
**Echo** records incoming **group** voice and plays it back on TG **9990**. It runs as a **PEER** process that connects to the **ECHO** master on the main peer server (TG 9990 bridge).
The playback runtime is part of **`adn-server`**; run **`adn-server.py --echo`** with minimal **`adn-echo.yaml`**.
## Configuration
Use a **small separate YAML** — only what the PEER needs to attach to **ECHO** in `adn-server.yaml`:
| Field | Role |
|-------|------|
| `GLOBAL.SERVER_ID` | Echo network identity (often `9990`) |
| `LOGGER` | Log file (optional but recommended) |
| `SYSTEMS.ECHO` | `MODE: PEER`, local `IP`/`PORT`, `MASTER_IP`/`MASTER_PORT`, `PASSPHRASE`, `RADIO_ID`, `CALLSIGN`, `OPTIONS` |
No `PROXY`, `ALIASES`, or `REPORTS` required. **`MASTER_PORT`** and **`PASSPHRASE`** must match **`ECHO`** on the main server.
- Copy **`adn-echo.example.yaml`** → **`adn-echo.yaml`** (not committed).
- Run:
```bash
python adn-server.py --echo -c adn-echo.yaml
```
Typical production: separate **systemd** unit (see `examples/systemd/adn-echo.service` in the repo), same binary:
```bash
sudo cp examples/systemd/adn-echo.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now adn-echo
```
## Relation to TG 9990
The main server exposes an **ECHO** master on **TG 9990** for the echo bridge. The standalone **echo** service is a separate process with its own config that connects to that master.
## Multi-hotspot behaviour (inject-only proxy)
When hotspots attach through the **integrated proxy** (`PROXY`), several radios
may share the same MASTER as peers. In legacy `adn-dmr-server` each MASTER had
a single peer, so echo naturally returned only to the caller. The multi-peer
inject-only proxy enforces the same explicitly:
- **Point-to-point delivery.** Echo playback (TG 9990) and on-demand service
TGs (**9991–9999**) are delivered **only** to the exact peer that originated
the call (`RX_PEER` on the active slot), **never** to other hotspots of the
same user. There is no fuzzy matching on the source DMR ID.
- **Single-peer fallback.** When only one peer is connected, the packet is
delivered to it (legacy single-peer behaviour).
- This applies to both the **data plane** (audio routing) and the **report
plane** (`BRDG_EVENT` sent to the monitor): the monitor shows the echo chip
on the originating hotspot, not on a sibling.
See [Voice routing and contention — Downlink gate](../development/routing-and-contention.md#downlink-gate-does-a-peer-receive-the-packet)
and [Hotspot proxy — Multi-hotspot behaviour](hotspot-proxy.md#multi-hotspot-behaviour).
## Documentation
This page is the summary shipped with the repository; extend your deployment notes locally as needed.

Powered by TurnKey Linux.