diff --git a/INSTALL.md b/INSTALL.md index ab59991..a1f0edc 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -64,8 +64,6 @@ Every system named in `rules.py` must exist and be enabled in `hblink.cfg`. **Up source venv/bin/activate python bridge.py -c hblink.cfg -r rules.py # conference-bridge router (main app) # or -python bridge_all.py -c hblink.cfg # forward-everything proxy -# or python hblink.py -c hblink.cfg # protocol core, standalone server/outbound ``` @@ -96,4 +94,4 @@ sudo systemctl restart hblink3 ## Notes -- The legacy voice utilities (`playback.py`, `play_ambe.py`) are **not** migrated to asyncio and will not run against the current core. +- Legacy, unmaintained code lives in [`archive/`](archive/) and is excluded from packaging. It includes the Twisted-era voice utilities (`playback.py`, `play_ambe.py`, `mk_voice.py`, `voice_lib.py`), the old opcode reporting constants (`reporting_const.py`), and `bridge_all.py` (a forward-everything proxy that was never ported to the asyncio core). None of it runs against the current core. diff --git a/README.md b/README.md index b142e2b..ba26d36 100755 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ HBlink3 is an open-source implementation of the DMR **HomeBrew Repeater Protocol | Program | Purpose | |---|---| | `bridge.py` | The main application: a configurable conference-bridge call router with dynamic on/off triggering, timeouts, and private (unit) call routing. | -| `bridge_all.py` | A simple proxy that forwards all traffic between every configured system — makes several repeaters appear as one. | | `hblink.py` | The protocol core. Runs standalone as a server/outbound system for testing, and is the module the applications are built on. | ## Features diff --git a/archive/README.md b/archive/README.md new file mode 100644 index 0000000..b40c7da --- /dev/null +++ b/archive/README.md @@ -0,0 +1,17 @@ +# archive/ + +Legacy, unmaintained code kept for reference. **None of it runs against the +current asyncio core**, and it is excluded from packaging (`pyproject.toml`). +Nothing in the live code path imports anything here. + +| File | What it was | Why it's here | +|---|---|---| +| `bridge_all.py` | A "forward-everything" proxy (every system bridged to every other). | Never ported to the asyncio core — still imports the Twisted-era `reportFactory`, so it fails at import. | +| `playback.py` | A talkback/parrot app: connected like a repeater and played a call stream back so users could hear themselves. | Twisted-based. **Earmarked to return as an OmniLink adapter** — running it as a separate process that connects like a repeater (tied to a system or bridge) keeps the repeat-back off the routing hot path, which is why it was standalone here too. | +| `play_ambe.py` | Played canned AMBE/voice sequences into a system for testing. | Twisted-based; depends on the voice utilities below. | +| `mk_voice.py` | Built synthetic voice/AMBE packet sequences. | Only used by `play_ambe.py`. | +| `voice_lib.py` | Word/AMBE sample library for the voice utilities. | Only used by `mk_voice.py` / `play_ambe.py`. | +| `reporting_const.py` | `REPORT_OPCODES` for the old pickle/opcode reporting protocol. | Superseded by the newline-delimited-JSON reporting feed; no longer referenced. | + +If any of these is revived, port it to the asyncio core and the NDJSON reporting +feed first. diff --git a/bridge_all.py b/archive/bridge_all.py similarity index 100% rename from bridge_all.py rename to archive/bridge_all.py diff --git a/mk_voice.py b/archive/mk_voice.py similarity index 100% rename from mk_voice.py rename to archive/mk_voice.py diff --git a/play_ambe.py b/archive/play_ambe.py similarity index 100% rename from play_ambe.py rename to archive/play_ambe.py diff --git a/playback.py b/archive/playback.py similarity index 100% rename from playback.py rename to archive/playback.py diff --git a/reporting_const.py b/archive/reporting_const.py similarity index 100% rename from reporting_const.py rename to archive/reporting_const.py diff --git a/voice_lib.py b/archive/voice_lib.py similarity index 100% rename from voice_lib.py rename to archive/voice_lib.py diff --git a/bridge.py b/bridge.py index b06d6cf..d898812 100755 --- a/bridge.py +++ b/bridge.py @@ -38,7 +38,7 @@ import importlib.util import asyncio # Things we import from the main hblink module -from hblink import HBSYSTEM, OPENBRIDGE, systems, hblink_handler, ReportServer, config_reports, REPORT_OPCODES, mk_aliases, run_periodic +from hblink import HBSYSTEM, OPENBRIDGE, systems, hblink_handler, ReportServer, config_reports, mk_aliases, run_periodic from dmr_utils3.utils import bytes_3, int_id, get_alias from dmr_utils3 import decode, bptc, const import config diff --git a/dashboard/FIELDS.md b/dashboard/FIELDS.md index 7cec33b..cb9e8ed 100644 --- a/dashboard/FIELDS.md +++ b/dashboard/FIELDS.md @@ -114,8 +114,8 @@ for a non-local dashboard or a feed interruption). ## Conference Bridges One table per conference bridge defined in `rules.py`, with a row per member -system. (Empty if you're running `bridge_all` or standalone `hblink.py`, which -have no conference-bridge rules.) +system. (Empty if you're running standalone `hblink.py`, which has no +conference-bridge rules.) | Column | Meaning | |---|---| diff --git a/dashboard/KS-DMR.png b/dashboard/KS-DMR.png new file mode 100644 index 0000000..b8ed797 Binary files /dev/null and b/dashboard/KS-DMR.png differ diff --git a/dashboard/KS-DMR_sm.png b/dashboard/KS-DMR_sm.png new file mode 100644 index 0000000..1a3c33a Binary files /dev/null and b/dashboard/KS-DMR_sm.png differ diff --git a/hblink.py b/hblink.py index 760f37c..287adf5 100755 --- a/hblink.py +++ b/hblink.py @@ -49,7 +49,6 @@ from dmr_utils3.utils import int_id, bytes_4, try_download, mk_id_dict # Imports for the reporting server import json -from reporting_const import * # The module needs logging logging, but handlers, etc. are controlled by the parent import logging diff --git a/hblink3.service b/hblink3.service index 9f63368..2afb7a0 100644 --- a/hblink3.service +++ b/hblink3.service @@ -7,8 +7,8 @@ # # Adjust User/Group and the paths below to your install. bridge.py defaults to # hblink.cfg and rules.py in its own directory; pass -c/-r in ExecStart to use -# other files. To run a different app (e.g. the plain proxy), point ExecStart at -# bridge_all.py or hblink.py instead. +# other files. To run the protocol core standalone, point ExecStart at hblink.py +# instead. [Unit] Description=HBlink3 DMR Conference Bridge Router diff --git a/pyproject.toml b/pyproject.toml index 3086ef3..5cd6aac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,4 +44,4 @@ Homepage = "https://github.com/n0mjs710/hblink3" # The core routing modules. Listed explicitly because they are top-level modules # rather than a package, so a `pip install .` resolves them correctly. [tool.setuptools] -py-modules = ["hblink", "bridge", "bridge_all", "config", "const", "log", "reporting_const"] +py-modules = ["hblink", "bridge", "config", "const", "log"]