Unify playback naming on ECHO across CLI (--echo), adn-echo configs, systemd unit, docs, and infrastructure/echo runtime.pull/1/head
parent
a0bf476d6d
commit
04681bab14
@ -0,0 +1,42 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
This page is the summary shipped with the repository; extend your deployment notes locally as needed.
|
||||||
@ -1,42 +0,0 @@
|
|||||||
# Parrot (playback)
|
|
||||||
|
|
||||||
## What it is
|
|
||||||
|
|
||||||
**Parrot** records incoming **group** voice and plays it back (echo / parrot). It runs as a **PEER** 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 --parrot`** with minimal **`adn-parrot.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` | Parrot network identity (often `9990`) |
|
|
||||||
| `LOGGER` | Log file (optional but recommended) |
|
|
||||||
| `SYSTEMS.PARROT` | `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-parrot.example.yaml`** → **`adn-parrot.yaml`** (not committed).
|
|
||||||
- Run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
python adn-server.py --parrot -c adn-parrot.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
Typical production: separate **systemd** unit (see `examples/systemd/adn-parrot.service` in the repo), same binary:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo cp examples/systemd/adn-parrot.service /etc/systemd/system/
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl enable --now adn-parrot
|
|
||||||
```
|
|
||||||
|
|
||||||
## Relation to TG 9990 / ECHO
|
|
||||||
|
|
||||||
The main server may expose an **ECHO** bridge on **TG 9990** for in-band echo. **Parrot** is a **standalone** service with its own config — use one or the other according to your deployment.
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
This page is the summary shipped with the repository; extend your deployment notes locally as needed.
|
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
# Echo (reproducción)
|
||||||
|
|
||||||
|
## Qué es
|
||||||
|
|
||||||
|
**Echo** graba voz de **grupo** entrante y la reproduce en el TG **9990**. Corre como **PEER** conectado al master **ECHO** del peer server principal (bridge TG 9990).
|
||||||
|
|
||||||
|
El runtime de playback forma parte de **`adn-server`**; ejecútalo con **`adn-server.py --echo`** y un **`adn-echo.yaml`** mínimo.
|
||||||
|
|
||||||
|
## Configuración
|
||||||
|
|
||||||
|
Usa un **YAML aparte y mínimo** — solo lo que el PEER necesita para unirse a **ECHO** en `adn-server.yaml`:
|
||||||
|
|
||||||
|
| Campo | Rol |
|
||||||
|
|-------|------|
|
||||||
|
| `GLOBAL.SERVER_ID` | Identidad de red del echo (suele ser `9990`) |
|
||||||
|
| `LOGGER` | Archivo de log (opcional pero recomendado) |
|
||||||
|
| `SYSTEMS.ECHO` | `MODE: PEER`, `IP`/`PORT` local, `MASTER_IP`/`MASTER_PORT`, `PASSPHRASE`, `RADIO_ID`, `CALLSIGN`, `OPTIONS` |
|
||||||
|
|
||||||
|
No hace falta `PROXY`, `ALIASES` ni `REPORTS`. **`MASTER_PORT`** y **`PASSPHRASE`** deben coincidir con **`ECHO`** en el servidor principal.
|
||||||
|
|
||||||
|
- Copia **`adn-echo.example.yaml`** → **`adn-echo.yaml`** (no se commitea).
|
||||||
|
- Ejecuta:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python adn-server.py --echo -c adn-echo.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
En producción suele ir en una unidad **systemd** aparte (ver `examples/systemd/adn-echo.service` en el repo), mismo binario:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo cp examples/systemd/adn-echo.service /etc/systemd/system/
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable --now adn-echo
|
||||||
|
```
|
||||||
|
|
||||||
|
## Relación con TG 9990
|
||||||
|
|
||||||
|
El servidor principal expone un master **ECHO** en **TG 9990** para el bridge de eco. El servicio **echo** independiente es un proceso aparte con su propia config que se conecta a ese master.
|
||||||
|
|
||||||
|
## Documentación
|
||||||
|
|
||||||
|
Esta página es el resumen incluido en el repositorio; amplía las notas de despliegue localmente según necesites.
|
||||||
@ -1,42 +0,0 @@
|
|||||||
# Parrot (reproducción)
|
|
||||||
|
|
||||||
## Qué es
|
|
||||||
|
|
||||||
**Parrot** graba voz de **grupo** entrante y la reproduce (eco / parrot). Corre como **PEER** conectado al master **ECHO** del peer server principal (bridge TG 9990).
|
|
||||||
|
|
||||||
El runtime de playback forma parte de **`adn-server`**; ejecuta **`adn-server.py --parrot`** con un **`adn-parrot.yaml`** mínimo.
|
|
||||||
|
|
||||||
## Configuración
|
|
||||||
|
|
||||||
Usa un **YAML aparte y mínimo** — solo lo que el PEER necesita para unirse a **ECHO** en `adn-server.yaml`:
|
|
||||||
|
|
||||||
| Campo | Rol |
|
|
||||||
|-------|-----|
|
|
||||||
| `GLOBAL.SERVER_ID` | Identidad de red del parrot (suele ser `9990`) |
|
|
||||||
| `LOGGER` | Fichero de log (opcional pero recomendado) |
|
|
||||||
| `SYSTEMS.PARROT` | `MODE: PEER`, `IP`/`PORT` local, `MASTER_IP`/`MASTER_PORT`, `PASSPHRASE`, `RADIO_ID`, `CALLSIGN`, `OPTIONS` |
|
|
||||||
|
|
||||||
No hace falta `PROXY`, `ALIASES` ni `REPORTS`. **`MASTER_PORT`** y **`PASSPHRASE`** deben coincidir con **`ECHO`** en el servidor principal.
|
|
||||||
|
|
||||||
- Copiar **`adn-parrot.example.yaml`** → **`adn-parrot.yaml`** (no versionada).
|
|
||||||
- Ejecutar:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
python adn-server.py --parrot -c adn-parrot.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
En producción: unidad **systemd** aparte (plantilla `examples/systemd/adn-parrot.service`):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo cp examples/systemd/adn-parrot.service /etc/systemd/system/
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl enable --now adn-parrot
|
|
||||||
```
|
|
||||||
|
|
||||||
## Relación con TG 9990 / ECHO
|
|
||||||
|
|
||||||
El servidor principal puede exponer un bridge **ECHO** en **TG 9990** para eco en banda. **Parrot** es un **servicio independiente** con su propia config — usa uno u otro según el despliegue.
|
|
||||||
|
|
||||||
## Documentación
|
|
||||||
|
|
||||||
Esta página es el resumen incluido en el repositorio; amplía las notas de despliegue localmente si hace falta.
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# ADN DMR Peer Server - tests parrot playback send loop
|
# ADN DMR Peer Server - tests echo playback send loop
|
||||||
#
|
#
|
||||||
# Copyright (C) 2026 Rodrigo Pérez, CE5RPY <ce5rpy@qmd.cl>
|
# Copyright (C) 2026 Rodrigo Pérez, CE5RPY <ce5rpy@qmd.cl>
|
||||||
#
|
#
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# ADN DMR Peer Server - tests parrot recording timers
|
# ADN DMR Peer Server - tests echo recording timers
|
||||||
#
|
#
|
||||||
# Copyright (C) 2026 Rodrigo Pérez, CE5RPY <ce5rpy@qmd.cl>
|
# Copyright (C) 2026 Rodrigo Pérez, CE5RPY <ce5rpy@qmd.cl>
|
||||||
#
|
#
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# ADN DMR Peer Server - tests parrot rekey playback
|
# ADN DMR Peer Server - tests echo rekey playback
|
||||||
#
|
#
|
||||||
# Copyright (C) 2026 Rodrigo Pérez, CE5RPY <ce5rpy@qmd.cl>
|
# Copyright (C) 2026 Rodrigo Pérez, CE5RPY <ce5rpy@qmd.cl>
|
||||||
#
|
#
|
||||||
Loading…
Reference in new issue