From fbcb27eec97d73056b27abde70221d367e83803a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Pe=CC=81rez?= Date: Sun, 12 May 2024 21:21:06 -0400 Subject: [PATCH] Changes for Parrot/Loro --- config/ADN-MINIMAL.cfg | 32 +++++ config/ADN-SAMPLE.cfg | 39 +++++- config/{loro.cfg => parrot.cfg} | 27 ++-- config/playback_file.cfg | 233 -------------------------------- data/.empty | 0 5 files changed, 82 insertions(+), 249 deletions(-) rename config/{loro.cfg => parrot.cfg} (92%) delete mode 100644 config/playback_file.cfg create mode 100644 data/.empty diff --git a/config/ADN-MINIMAL.cfg b/config/ADN-MINIMAL.cfg index 957b5dd..645ef0b 100755 --- a/config/ADN-MINIMAL.cfg +++ b/config/ADN-MINIMAL.cfg @@ -41,3 +41,35 @@ ALLOW_UNREG_ID: False PROXY_CONTROL: False OVERRIDE_IDENT_TG: +[ECHO] +MODE: PEER +ENABLED: True +LOOSE: False +EXPORT_AMBE: False +IP: 127.0.0.1 +PORT: 54916 +MASTER_IP: 127.0.0.1 +MASTER_PORT: 54915 +PASSPHRASE: passw0rd +CALLSIGN: ECHO +RADIO_ID: 9990 +RX_FREQ: 449000000 +TX_FREQ: 444000000 +TX_POWER: 25 +COLORCODE: 1 +SLOTS: 1 +LATITUDE: 00.0000 +LONGITUDE: 000.0000 +HEIGHT: 0 +LOCATION: 9990 Parrot +DESCRIPTION: ECHO +URL: adn.systems +SOFTWARE_ID: 20170620 +PACKAGE_ID: MMDVM_ADN-Systems +GROUP_HANGTIME: 5 +OPTIONS: +USE_ACL: True +SUB_ACL: DENY:1 +TGID_TS1_ACL: PERMIT:ALL +TGID_TS2_ACL: PERMIT:ALL +ANNOUNCEMENT_LANGUAGE: en_GB diff --git a/config/ADN-SAMPLE.cfg b/config/ADN-SAMPLE.cfg index 7d877aa..e8add2a 100755 --- a/config/ADN-SAMPLE.cfg +++ b/config/ADN-SAMPLE.cfg @@ -22,10 +22,10 @@ REPORT_PORT: 4321 REPORT_CLIENTS: 127.0.0.1 [LOGGER] -LOG_FILE: freedmr.log +LOG_FILE: adn.log LOG_HANDLERS: console-timed LOG_LEVEL: INFO -LOG_NAME: FreeDMR +LOG_NAME: ADN [ALIASES] TRY_DOWNLOAD: True @@ -68,7 +68,7 @@ SUB_ACL: DENY:1 TGID_ACL: PERMIT:ALL RELAX_CHECKS: True ENHANCED_OBP: True -PROTO_VER: 2 +PROTO_VER: 5 [SYSTEM] MODE: MASTER @@ -96,3 +96,36 @@ GENERATOR: 100 ALLOW_UNREG_ID: False PROXY_CONTROL: False OVERRIDE_IDENT_TG: + +[ECHO] +MODE: PEER +ENABLED: True +LOOSE: False +EXPORT_AMBE: False +IP: 127.0.0.1 +PORT: 54916 +MASTER_IP: 127.0.0.1 +MASTER_PORT: 54915 +PASSPHRASE: passw0rd +CALLSIGN: ECHO +RADIO_ID: 9990 +RX_FREQ: 449000000 +TX_FREQ: 444000000 +TX_POWER: 25 +COLORCODE: 1 +SLOTS: 1 +LATITUDE: 00.0000 +LONGITUDE: 000.0000 +HEIGHT: 0 +LOCATION: 9990 Parrot +DESCRIPTION: ECHO +URL: adn.systems +SOFTWARE_ID: 20170620 +PACKAGE_ID: MMDVM_ADN-Systems +GROUP_HANGTIME: 5 +OPTIONS: +USE_ACL: True +SUB_ACL: DENY:1 +TGID_TS1_ACL: PERMIT:ALL +TGID_TS2_ACL: PERMIT:ALL +ANNOUNCEMENT_LANGUAGE: en_GB diff --git a/config/loro.cfg b/config/parrot.cfg similarity index 92% rename from config/loro.cfg rename to config/parrot.cfg index 63eed1f..0628cdf 100644 --- a/config/loro.cfg +++ b/config/parrot.cfg @@ -103,19 +103,21 @@ LOG_NAME: HBlink # STALE_DAYS is the number of days since the last download before we # download again. Don't be an ass and change this to less than a few days. [ALIASES] -TRY_DOWNLOAD: False -PATH: ./ +TRY_DOWNLOAD: True +PATH: ./data PEER_FILE: peer_ids.json SUBSCRIBER_FILE: subscriber_ids.json TGID_FILE: talkgroup_ids.json -PEER_URL: https://www.radioid.net/static/rptrs.json -SUBSCRIBER_URL: https://www.radioid.net/static/users.json -TGID_URL: http://downloads.freedmr.uk/downloads/talkgroup_ids.json -LOCAL_SUBSCRIBER_FILE: local_subscriber_ids.json -STALE_DAYS: 7 +PEER_URL: https://adn.systems/files/peer_ids.json +SUBSCRIBER_URL: https://adn.systems/files/subscriber_ids.json +TGID_URL: https://adn.systems/files/talkgroup_ids.json +LOCAL_SUBSCRIBER_FILE: local_subcriber_ids.json +STALE_DAYS: 1 SUB_MAP_FILE: -SERVER_ID_URL: http://downloads.freedmr.uk/downloads/FreeDMR_Hosts.csv +SERVER_ID_URL: https://adn.systems/files/server_ids.tsv SERVER_ID_FILE: server_ids.tsv +CHECKSUM_URL: https://adn.systems/files/file_checksums.json +CHECKSUM_FILE: file_checksums.json # OPENBRIDGE INSTANCES - DUPLICATE SECTION FOR MULTIPLE CONNECTIONS @@ -142,7 +144,7 @@ IP: PORT: 62044 NETWORK_ID: 1 PASSPHRASE: mypass -TARGET_IP: +TARGET_IP: TARGET_PORT: 62044 USE_ACL: True SUB_ACL: DENY:1 @@ -169,7 +171,7 @@ REPEAT: True MAX_PEERS: 1 EXPORT_AMBE: False IP: 127.0.0.1 -PORT: 54915 +PORT: 54916 PASSPHRASE: passw0rd GROUP_HANGTIME: 5 USE_ACL: True @@ -181,11 +183,10 @@ DEFAULT_UA_TIMER: 10 SINGLE_MODE: True VOICE_IDENT: False TS1_STATIC: -TS2_STATIC: +TS2_STATIC: DEFAULT_REFLECTOR: 0 GENERATOR: 1 -ANNOUNCEMENT_LANGUAGE:es_ES +ANNOUNCEMENT_LANGUAGE: en_GB ALLOW_UNREG_ID: True PROXY_CONTROL: False OVERRIDE_IDENT_TG: - diff --git a/config/playback_file.cfg b/config/playback_file.cfg deleted file mode 100644 index 89f269d..0000000 --- a/config/playback_file.cfg +++ /dev/null @@ -1,233 +0,0 @@ -# PROGRAM-WIDE PARAMETERS GO HERE -# PATH - working path for files, leave it alone unless you NEED to change it -# PING_TIME - the interval that peers will ping the master, and re-try registraion -# - how often the Master maintenance loop runs -# MAX_MISSED - how many pings are missed before we give up and re-register -# - number of times the master maintenance loop runs before de-registering a peer -# -# ACLs: -# -# Access Control Lists are a very powerful tool for administering your system. -# But they consume packet processing time. Disable them if you are not using them. -# But be aware that, as of now, the configuration stanzas still need the ACL -# sections configured even if you're not using them. -# -# REGISTRATION ACLS ARE ALWAYS USED, ONLY SUBSCRIBER AND TGID MAY BE DISABLED!!! -# -# The 'action' May be PERMIT|DENY -# Each entry may be a single radio id, or a hypenated range (e.g. 1-2999) -# Format: -# ACL = 'action:id|start-end|,id|start-end,....' -# --for example-- -# SUB_ACL: DENY:1,1000-2000,4500-60000,17 -# -# ACL Types: -# REG_ACL: peer radio IDs for registration (only used on HBP master systems) -# SUB_ACL: subscriber IDs for end-users -# TGID_TS1_ACL: destination talkgroup IDs on Timeslot 1 -# TGID_TS2_ACL: destination talkgroup IDs on Timeslot 2 -# -# ACLs may be repeated for individual systems if needed for granularity -# Global ACLs will be processed BEFORE the system level ACLs -# Packets will be matched against all ACLs, GLOBAL first. If a packet 'passes' -# All elements, processing continues. Packets are discarded at the first -# negative match, or 'reject' from an ACL element. -# -# If you do not wish to use ACLs, set them to 'PERMIT:ALL' -# TGID_TS1_ACL in the global stanza is used for OPENBRIDGE systems, since all -# traffic is passed as TS 1 between OpenBridges -[GLOBAL] -PATH: ./ -PING_TIME: 10 -MAX_MISSED: 3 -USE_ACL: True -REG_ACL: PERMIT:ALL -SUB_ACL: DENY:1 -TGID_TS1_ACL: PERMIT:ALL -TGID_TS2_ACL: PERMIT:ALL -GEN_STAT_BRIDGES: False -ALLOW_NULL_PASSPHRASE: False -ANNOUNCEMENT_LANGUAGES: es_ES -SERVER_ID: 9990 -DATA_GATEWAY: False -VALIDATE_SERVER_IDS: False - - - -# NOT YET WORKING: NETWORK REPORTING CONFIGURATION -# Enabling "REPORT" will configure a socket-based reporting -# system that will send the configuration and other items -# to a another process (local or remote) that may process -# the information for some useful purpose, like a web dashboard. -# -# REPORT - True to enable, False to disable -# REPORT_INTERVAL - Seconds between reports -# REPORT_PORT - TCP port to listen on if "REPORT_NETWORKS" = NETWORK -# REPORT_CLIENTS - comma separated list of IPs you will allow clients -# to connect on. Entering a * will allow all. -# -# ****FOR NOW MUST BE TRUE - USE THE LOOPBACK IF YOU DON'T USE THIS!!!**** -[REPORTS] -REPORT: False -REPORT_INTERVAL: 60 -REPORT_PORT: 4821 -REPORT_CLIENTS: 127.0.0.1 - - -# SYSTEM LOGGER CONFIGURAITON -# This allows the logger to be configured without chaning the individual -# python logger stuff. LOG_FILE should be a complete path/filename for *your* -# system -- use /dev/null for non-file handlers. -# LOG_HANDLERS may be any of the following, please, no spaces in the -# list if you use several: -# null -# console -# console-timed -# file -# file-timed -# syslog -# LOG_LEVEL may be any of the standard syslog logging levels, though -# as of now, DEBUG, INFO, WARNING and CRITICAL are the only ones -# used. -# -[LOGGER] -LOG_FILE: /dev/null -LOG_HANDLERS: console-timed -LOG_LEVEL: DEBUG -LOG_NAME: HBlink - -# DOWNLOAD AND IMPORT SUBSCRIBER, PEER and TGID ALIASES -# Ok, not the TGID, there's no master list I know of to download -# This is intended as a facility for other applcations built on top of -# HBlink to use, and will NOT be used in HBlink directly. -# STALE_DAYS is the number of days since the last download before we -# download again. Don't be an ass and change this to less than a few days. -[ALIASES] -TRY_DOWNLOAD: False -PATH: ./ -PEER_FILE: peer_ids.json -SUBSCRIBER_FILE: subscriber_ids.json -TGID_FILE: talkgroup_ids.json -PEER_URL: https://www.radioid.net/static/rptrs.json -SUBSCRIBER_URL: https://www.radioid.net/static/users.json -TGID_URL: http://downloads.freedmr.uk/downloads/talkgroup_ids.json -LOCAL_SUBSCRIBER_FILE: local_subscriber_ids.json -STALE_DAYS: 7 -SUB_MAP_FILE: -SERVER_ID_FILE: -SERVER_ID_URL: - -#Read further repeater configs from MySQL -[MYSQL] -USE_MYSQL: False -USER: hblink -PASS: mypassword -DB: hblink -SERVER: 127.0.0.1 -PORT: 3306 -TABLE: repeaters - -# OPENBRIDGE INSTANCES - DUPLICATE SECTION FOR MULTIPLE CONNECTIONS -# OpenBridge is a protocol originall created by DMR+ for connection between an -# IPSC2 server and Brandmeister. It has been implemented here at the suggestion -# of the Brandmeister team as a way to legitimately connect HBlink to the -# Brandemiester network. -# It is recommended to name the system the ID of the Brandmeister server that -# it connects to, but is not necessary. TARGET_IP and TARGET_PORT are of the -# Brandmeister or IPSC2 server you are connecting to. PASSPHRASE is the password -# that must be agreed upon between you and the operator of the server you are -# connecting to. NETWORK_ID is a number in the format of a DMR Radio ID that -# will be sent to the other server to identify this connection. -# other parameters follow the other system types. -# -# ACLs: -# OpenBridge does not 'register', so registration ACL is meaningless. -# OpenBridge passes all traffic on TS1, so there is only 1 TGID ACL. -# Otherwise ACLs work as described in the global stanza -[OBP-TEST] -MODE: OPENBRIDGE -ENABLED: False -IP: -PORT: 62044 -NETWORK_ID: 1 -PASSPHRASE: mypass -TARGET_IP: -TARGET_PORT: 62044 -USE_ACL: True -SUB_ACL: DENY:1 -TGID_ACL: PERMIT:ALL -RELAX_CHECKS: False - -# MASTER INSTANCES - DUPLICATE SECTION FOR MULTIPLE MASTERS -# HomeBrew Protocol Master instances go here. -# IP may be left blank if there's one interface on your system. -# Port should be the port you want this master to listen on. It must be unique -# and unused by anything else. -# Repeat - if True, the master repeats traffic to peers, False, it does nothing. -# -# MAX_PEERS -- maximun number of peers that may be connect to this master -# at any given time. This is very handy if you're allowing hotspots to -# connect, or using a limited computer like a Raspberry Pi. -# -# ACLs: -# See comments in the GLOBAL stanza -[PARROT] -MODE: MASTER -ENABLED: False -REPEAT: True -MAX_PEERS: 1 -EXPORT_AMBE: False -IP: bmproject.freedmr.uk -PORT: 54915 -PASSPHRASE: passw0rd -GROUP_HANGTIME: 5 -USE_ACL: True -REG_ACL: DENY:1 -SUB_ACL: DENY:1 -TGID_TS1_ACL: PERMIT:ALL -TGID_TS2_ACL: PERMIT:ALL -DEFAULT_UA_TIMER: 10 -SINGLE_MODE: True -VOICE_IDENT: False -TS1_STATIC: -TS2_STATIC: -DEFAULT_REFLECTOR: 0 -GENERATOR: 1 -ANNOUNCEMENT_LANGUAGE:es_ES -ALLOW_UNREG_ID: True -PROXY_CONTROL: False - - -[PLAY] -MODE: PEER -ENABLED: True -LOOSE: False -EXPORT_AMBE: False -IP: -PORT: 54002 -MASTER_IP: localhost -MASTER_PORT: 54001 -PASSPHRASE: homebrew -CALLSIGN: M0XFD -RADIO_ID: 2340210 -RX_FREQ: 449000000 -TX_FREQ: 444000000 -TX_POWER: 25 -COLORCODE: 1 -SLOTS: 1 -LATITUDE: 38.0000 -LONGITUDE: -095.0000 -HEIGHT: 75 -LOCATION: Anywhere, USA -DESCRIPTION: play_file.py -URL: www.w1abc.org -SOFTWARE_ID: 20170620 -PACKAGE_ID: MMDVM_FreeDMR -GROUP_HANGTIME: 5 -OPTIONS: -USE_ACL: True -SUB_ACL: DENY:1 -TGID_TS1_ACL: PERMIT:ALL -TGID_TS2_ACL: PERMIT:ALL -ANNOUNCEMENT_LANGUAGE: en_GB - diff --git a/data/.empty b/data/.empty new file mode 100644 index 0000000..e69de29