parent
4460df713e
commit
44b8bb7527
@ -1,46 +0,0 @@
|
|||||||
#This empty config file will use defaults for everything apart from OBP and HBP config
|
|
||||||
#This is usually a sensible choice.
|
|
||||||
|
|
||||||
|
|
||||||
[GLOBAL]
|
|
||||||
SERVER_ID: 0000
|
|
||||||
DEBUG_BRIDGES: True
|
|
||||||
|
|
||||||
[REPORTS]
|
|
||||||
|
|
||||||
[LOGGER]
|
|
||||||
|
|
||||||
[ALIASES]
|
|
||||||
|
|
||||||
[ALLSTAR]
|
|
||||||
|
|
||||||
[SYSTEM]
|
|
||||||
MODE: MASTER
|
|
||||||
ENABLED: True
|
|
||||||
REPEAT: True
|
|
||||||
MAX_PEERS: 1
|
|
||||||
EXPORT_AMBE: False
|
|
||||||
IP: 127.0.0.1
|
|
||||||
PORT: 54000
|
|
||||||
PASSPHRASE:
|
|
||||||
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: 60
|
|
||||||
TS1_STATIC:
|
|
||||||
TS2_STATIC:
|
|
||||||
DEFAULT_DIAL_TS1: 0
|
|
||||||
DEFAULT_DIAL_TS2: 0
|
|
||||||
DEFAULT_REFLECTOR: 0
|
|
||||||
SINGLE_MODE: True
|
|
||||||
DIAL_A_TG: True
|
|
||||||
DYNAMIC_TG_ROUTING: True
|
|
||||||
VOICE_IDENT: True
|
|
||||||
ANNOUNCEMENT_LANGUAGE: en_GB
|
|
||||||
GENERATOR: 100
|
|
||||||
ALLOW_UNREG_ID: False
|
|
||||||
PROXY_CONTROL: True
|
|
||||||
OVERRIDE_IDENT_TG:
|
|
||||||
@ -1,215 +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: True
|
|
||||||
ANNOUNCEMENT_LANGUAGES:
|
|
||||||
SERVER_ID: 0000
|
|
||||||
|
|
||||||
# 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: True
|
|
||||||
REPORT_INTERVAL: 60
|
|
||||||
REPORT_PORT: 4321
|
|
||||||
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
|
|
||||||
# TRACE - Low-Level logging and packet data
|
|
||||||
# DEBUG - self explanatory
|
|
||||||
# INFO - normal log level
|
|
||||||
# WARNING - only abnormal states
|
|
||||||
# ERROR - only errors
|
|
||||||
# CRITICAL - only serious events
|
|
||||||
|
|
||||||
[LOGGER]
|
|
||||||
LOG_FILE: /tmp/hblink.log
|
|
||||||
LOG_HANDLERS: console-timed
|
|
||||||
LOG_LEVEL: DEBUG
|
|
||||||
LOG_NAME: FreeDMR
|
|
||||||
|
|
||||||
# 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: True
|
|
||||||
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_subcriber_ids.json
|
|
||||||
STALE_DAYS: 1
|
|
||||||
SERVER_ID_URL: http://downloads.freedmr.uk/downloads/FreeDMR_Hosts.csv
|
|
||||||
SERVER_ID_FILE: server_ids.tsv
|
|
||||||
|
|
||||||
|
|
||||||
#Control server shared allstar instance via dial / AMI
|
|
||||||
[ALLSTAR]
|
|
||||||
ENABLED: False
|
|
||||||
USER:llcgi
|
|
||||||
PASS: mypass
|
|
||||||
SERVER: my.asl.server
|
|
||||||
PORT: 5038
|
|
||||||
NODE: 0000
|
|
||||||
|
|
||||||
|
|
||||||
#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
|
|
||||||
ENHANCED_OBP: False
|
|
||||||
PROTO_VER: 2
|
|
||||||
|
|
||||||
# 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
|
|
||||||
[G9XYZ]
|
|
||||||
MODE: MASTER
|
|
||||||
ENABLED: False
|
|
||||||
REPEAT: True
|
|
||||||
MAX_PEERS: 1
|
|
||||||
EXPORT_AMBE: False
|
|
||||||
IP:
|
|
||||||
PORT: 54001
|
|
||||||
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: True
|
|
||||||
DIAL_A_TG: True
|
|
||||||
DYNAMIC_TG_ROUTING: True
|
|
||||||
#the next three lines no longer have any effect
|
|
||||||
TS1_STATIC:
|
|
||||||
TS2_STATIC:
|
|
||||||
DEFAULT_DIAL_TS1: 0
|
|
||||||
DEFAULT_DIAL_TS2: 0
|
|
||||||
DEFAULT_REFLECTOR: 0
|
|
||||||
ANNOUNCEMENT_LANGUAGE: en_GB
|
|
||||||
GENERATOR: 1
|
|
||||||
ALLOW_UNREG_ID: False
|
|
||||||
PROXY_CONTROL: True
|
|
||||||
@ -1,102 +0,0 @@
|
|||||||
[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: True
|
|
||||||
ALLOW_NULL_PASSPHRASE: True
|
|
||||||
ANNOUNCEMENT_LANGUAGES:
|
|
||||||
SERVER_ID: 0000
|
|
||||||
DATA_GATEWAY: False
|
|
||||||
VALIDATE_SERVER_IDS: True
|
|
||||||
|
|
||||||
|
|
||||||
[REPORTS]
|
|
||||||
REPORT: True
|
|
||||||
REPORT_INTERVAL: 60
|
|
||||||
REPORT_PORT: 4321
|
|
||||||
REPORT_CLIENTS: 127.0.0.1
|
|
||||||
|
|
||||||
[LOGGER]
|
|
||||||
LOG_FILE: freedmr.log
|
|
||||||
LOG_HANDLERS: console-timed
|
|
||||||
LOG_LEVEL: INFO
|
|
||||||
LOG_NAME: FreeDMR
|
|
||||||
|
|
||||||
[ALIASES]
|
|
||||||
TRY_DOWNLOAD: True
|
|
||||||
PATH: ./
|
|
||||||
PEER_FILE: peer_ids.json
|
|
||||||
SUBSCRIBER_FILE: subscriber_ids.json
|
|
||||||
TGID_FILE: talkgroup_ids.json
|
|
||||||
PEER_URL: https://freedmr-lh.gb7fr.org.uk/json/peer_ids.json
|
|
||||||
SUBSCRIBER_URL: https://freedmr-lh.gb7fr.org.uk/json/subscriber_ids.json
|
|
||||||
TGID_URL: https://freedmr-lh.gb7fr.org.uk/json/talkgroup_ids.json
|
|
||||||
LOCAL_SUBSCRIBER_FILE: local_subcriber_ids.json
|
|
||||||
STALE_DAYS: 1
|
|
||||||
SUB_MAP_FILE:
|
|
||||||
SERVER_ID_URL: https://freedmr-lh.gb7fr.org.uk/json/server_ids.tsv
|
|
||||||
SERVER_ID_FILE: server_ids.tsv
|
|
||||||
CHECKSUM_URL: https://freedmr-lh.gb7fr.org.uk/file_checksums.json
|
|
||||||
CHECKSUM_FILE: file_checksums.json
|
|
||||||
|
|
||||||
|
|
||||||
#Control server shared allstar instance via dial / AMI
|
|
||||||
[ALLSTAR]
|
|
||||||
ENABLED: False
|
|
||||||
USER:llcgi
|
|
||||||
PASS: mypass
|
|
||||||
SERVER: my.asl.server
|
|
||||||
PORT: 5038
|
|
||||||
NODE: 0000
|
|
||||||
|
|
||||||
[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: True
|
|
||||||
ENHANCED_OBP: True
|
|
||||||
PROTO_VER: 2
|
|
||||||
|
|
||||||
[SYSTEM]
|
|
||||||
MODE: MASTER
|
|
||||||
ENABLED: True
|
|
||||||
REPEAT: True
|
|
||||||
MAX_PEERS: 1
|
|
||||||
EXPORT_AMBE: False
|
|
||||||
IP: 127.0.0.1
|
|
||||||
PORT: 54000
|
|
||||||
PASSPHRASE:
|
|
||||||
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: 60
|
|
||||||
SINGLE_MODE: True
|
|
||||||
VOICE_IDENT: True
|
|
||||||
DIAL_A_TG: True
|
|
||||||
DYNAMIC_TG_ROUTING: True
|
|
||||||
TS1_STATIC:
|
|
||||||
TS2_STATIC:
|
|
||||||
DEFAULT_DIAL_TS1: 0
|
|
||||||
DEFAULT_DIAL_TS2: 0
|
|
||||||
DEFAULT_REFLECTOR: 0
|
|
||||||
ANNOUNCEMENT_LANGUAGE: en_GB
|
|
||||||
GENERATOR: 100
|
|
||||||
ALLOW_UNREG_ID: False
|
|
||||||
PROXY_CONTROL: True
|
|
||||||
OVERRIDE_IDENT_TG:
|
|
||||||
@ -1,187 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo FreeDMR Docker installer...
|
|
||||||
|
|
||||||
echo Installing required packages...
|
|
||||||
apt-get -y install docker.io &&
|
|
||||||
#apt-get -y install docker-compose &&
|
|
||||||
apt-get -y install conntrack &&
|
|
||||||
|
|
||||||
echo Set userland-proxy to false...
|
|
||||||
echo '{ "userland-proxy": false}' > /etc/docker/daemon.json &&
|
|
||||||
|
|
||||||
echo Restart docker...
|
|
||||||
systemctl restart docker &&
|
|
||||||
|
|
||||||
echo Pull FreeDMR latest image...
|
|
||||||
docker pull hacknix/freedmr:latest &&
|
|
||||||
|
|
||||||
echo Make config directory...
|
|
||||||
mkdir /etc/freedmr &&
|
|
||||||
chmod 755 /etc/freedmr &&
|
|
||||||
|
|
||||||
echo Install /etc/freedmr/freedmr.cfg ...
|
|
||||||
cat << EOF > /etc/freedmr/freedmr.cfg
|
|
||||||
[GLOBAL]
|
|
||||||
PATH: ./
|
|
||||||
PING_TIME: 10
|
|
||||||
MAX_MISSED: 3
|
|
||||||
USE_ACL: True
|
|
||||||
REG_ACL: DENY:0-100000
|
|
||||||
SUB_ACL: DENY:0-100000
|
|
||||||
TGID_TS1_ACL: PERMIT:ALL
|
|
||||||
TGID_TS2_ACL: PERMIT:ALL
|
|
||||||
GEN_STAT_BRIDGES: True
|
|
||||||
ALLOW_NULL_PASSPHRASE: True
|
|
||||||
ANNOUNCEMENT_LANGUAGES:
|
|
||||||
SERVER_ID: 0
|
|
||||||
DATA_GATEWAY: False
|
|
||||||
|
|
||||||
[REPORTS]
|
|
||||||
REPORT: True
|
|
||||||
REPORT_INTERVAL: 60
|
|
||||||
REPORT_PORT: 4321
|
|
||||||
REPORT_CLIENTS: *
|
|
||||||
|
|
||||||
[LOGGER]
|
|
||||||
LOG_FILE: freedmr.log
|
|
||||||
LOG_HANDLERS: file-timed
|
|
||||||
LOG_LEVEL: INFO
|
|
||||||
LOG_NAME: FreeDMR
|
|
||||||
|
|
||||||
[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: TGID_URL: http://downloads.freedmr.uk/downloads/talkgroup_ids.json
|
|
||||||
STALE_DAYS: 1
|
|
||||||
SERVER_ID_URL: http://downloads.freedmr.uk/downloads/FreeDMR_Hosts.csv
|
|
||||||
SERVER_ID_FILE: server_ids.tsv
|
|
||||||
|
|
||||||
|
|
||||||
#Control server shared allstar instance via dial / AMI
|
|
||||||
[ALLSTAR]
|
|
||||||
ENABLED: False
|
|
||||||
USER:llcgi
|
|
||||||
PASS: mypass
|
|
||||||
SERVER: my.asl.server
|
|
||||||
PORT: 5038
|
|
||||||
NODE: 0000
|
|
||||||
|
|
||||||
|
|
||||||
[MYSQL]
|
|
||||||
USE_MYSQL: False
|
|
||||||
USER: hblink
|
|
||||||
PASS: mypassword
|
|
||||||
DB: hblink
|
|
||||||
SERVER: 127.0.0.1
|
|
||||||
PORT: 3306
|
|
||||||
TABLE: repeaters
|
|
||||||
|
|
||||||
[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: True
|
|
||||||
ENHANCED_OBP: True
|
|
||||||
PROTO_VER: 4
|
|
||||||
|
|
||||||
|
|
||||||
[SYSTEM]
|
|
||||||
MODE: MASTER
|
|
||||||
ENABLED: True
|
|
||||||
REPEAT: True
|
|
||||||
MAX_PEERS: 1
|
|
||||||
EXPORT_AMBE: False
|
|
||||||
IP: 127.0.0.1
|
|
||||||
PORT: 54000
|
|
||||||
PASSPHRASE:
|
|
||||||
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: True
|
|
||||||
TS1_STATIC:
|
|
||||||
TS2_STATIC:
|
|
||||||
DEFAULT_DIAL_TS1: 0
|
|
||||||
DEFAULT_DIAL_TS2: 0
|
|
||||||
DEFAULT_REFLECTOR: 0
|
|
||||||
ANNOUNCEMENT_LANGUAGE: en_GB_2
|
|
||||||
GENERATOR: 100
|
|
||||||
|
|
||||||
[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: 1000001
|
|
||||||
RX_FREQ: 449000000
|
|
||||||
TX_FREQ: 444000000
|
|
||||||
TX_POWER: 25
|
|
||||||
COLORCODE: 1
|
|
||||||
SLOTS: 1
|
|
||||||
LATITUDE: 00.0000
|
|
||||||
LONGITUDE: 000.0000
|
|
||||||
HEIGHT: 0
|
|
||||||
LOCATION: Earth
|
|
||||||
DESCRIPTION: ECHO
|
|
||||||
URL: www.freedmr.uk
|
|
||||||
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_2
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo Install rules.py ...
|
|
||||||
echo "BRIDGES = {'9990': [{'SYSTEM': 'ECHO', 'TS': 2, 'TGID': 9990, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []},]}" > /etc/freedmr/rules.py &&
|
|
||||||
|
|
||||||
echo Set perms on config directory...
|
|
||||||
chown -R 54000 /etc/freedmr &&
|
|
||||||
|
|
||||||
echo Setup logging...
|
|
||||||
mkdir -p /var/log/freedmr &&
|
|
||||||
touch /var/log/freedmr/freedmr.log &&
|
|
||||||
chown -R 54000 /var/log/freedmr &&
|
|
||||||
|
|
||||||
echo Run FreeDMR container...
|
|
||||||
docker run --name=freedmr -d --read-only -v /etc/freedmr/freedmr.cfg:/opt/freedmr/freedmr.cfg \
|
|
||||||
-v /var/log/freedmr/freedmr.log:/opt/freedmr/freedmr.log \
|
|
||||||
-v /etc/freedmr/rules.py:/opt/freedmr/rules.py -p 62031:62031/udp -p 62036-62046:62036-62046/udp \
|
|
||||||
-p 4321:4321/tcp hacknix/freedmr:latest &&
|
|
||||||
|
|
||||||
echo Set to restart on boot and when it dies...
|
|
||||||
docker update --restart unless-stopped freedmr &&
|
|
||||||
|
|
||||||
echo Download update script for future use...
|
|
||||||
curl https://raw.githubusercontent.com/hacknix/FreeDMR/master/docker-configs/update_freedmr.sh -o update_freedmr.sh &&
|
|
||||||
chmod 700 ./update_freedmr.sh
|
|
||||||
|
|
||||||
echo FreeDMR setup complete!
|
|
||||||
|
|
||||||
Loading…
Reference in new issue