# 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: 5 MAX_MISSED: 3 USE_ACL: True REG_ACL: PERMIT:ALL SUB_ACL: DENY:1 TGID_TS1_ACL: PERMIT:ALL TGID_TS2_ACL: PERMIT:ALL # 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 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: /tmp/gps_data.log LOG_HANDLERS: console-timed LOG_LEVEL: DEBUG LOG_NAME: HBlink3 GPS/Data # 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 STALE_DAYS: 1 ##################################################################### # GPS/Data Application - by KF7EEL # Configure the settings for the DMR GPS to APRS position application here. # # DATA_DMR_ID - This is the DMR ID that users send SMS and GPS data. # CALL_TYPE - group, unit, or both. Group if you want users to send data to a talkgroup, # unit if you want users to send data as a private call, or both if you want both options. # UNIT_SMS_TS - Default timeslot for private SMS, where the subscriber's last TS is not known. # UNIT_SMS_TS can be 1 or 2 [GPS_DATA] DATA_DMR_ID: 9099 CALL_TYPE: unit UNIT_SMS_TS: 2 # APRS configuration # This section contains APRS configuration for the gateway. # USER_APRS_SSID - Default APRS SSID assigned to user APRS positions. # USER_APRS_COMMENT - Default Comment attached to user APRS positions. # APRS_LOGIN_CALL, PASSCODE, SERVER, and PORT - Gateway login settings for APRS-IS. USER_APRS_SSID: 15 USER_APRS_COMMENT: HBLink3 D-APRS - # Setting APRS_LOGIN_CALL to N0CALL will cause the gateway to not upload packets to APRS server. # Set to N0CALL if you wish to disable APRS. APRS_LOGIN_CALL: N0CALL APRS_LOGIN_PASSCODE: 12345 APRS_SERVER: rotate.aprs2.net APRS_PORT: 14580 # The APRS filter below is used for receiving messages. #See http://www.aprs-is.net/javAPRSFilter.aspx for details about APRS filters. APRS_FILTER: r/47/-120/500 t/m # The following configuration options are for uploading a position of the gateway itself. # When the gateway uploads a position, APRS software such as aprs.fi will see it as an Igate, # this is useful if you want aprs.fi to keep statistics. # Time in minutes. Set IGATE_BEACON_TIME to 0 to disable Igate beaconing. IGATE_BEACON_TIME = 45 IGATE_BEACON_COMMENT = HBLink3 D-APRS Gateway IGATE_BEACON_ICON = /I IGATE_LATITUDE = 0000.00N IGATE_LONGITUDE = 00000.00W # The following settings are for the static positions only, for hotspots or repeaters connected to MASTER stanzas. # Implementation by IU7IGU # REPORT_INTERVAL in Minute (ALLOW only > 3 Minutes) # MESSAGE: This message will print on APRS description together RX and TX Frequency APRS_STATIC_REPORT_INTERVAL: 15 APRS_STATIC_MESSAGE:Connected to HBLink ###### Removing Soon ################### # The email gateway settingns below are OPTIONAL. They are NOT REQUIRED if you don't want # http://www.aprs-is.net/javAPRSFilter.aspx# to enable the email gateway. Leave as is to disable. EMAIL_SENDER: test@example.org EMAIL_PASSWORD: letmein SMTP_SERVER: smtp.gmail.com SMTP_PORT: 465 ######################################## # The options below are required for operation of the dashboard and will cause errors if configures incorrectly. # Leave them as default unless you know what you are doing. # If you do change, you MUST use absolute paths. LOCATION_FILE: /tmp/gps_data_user_loc.txt BULLETIN_BOARD_FILE: /tmp/gps_data_user_bb.txt MAILBOX_FILE: /tmp/gps_data_user_mailbox.txt EMERGENCY_SOS_FILE: /tmp/gps_data_user_sos.txt # REQUIRED TO CHANGE # User settings file, MUST configure using absolute path. USER_SETTINGS_FILE: /path/to/user_settings.txt # API Configuration # MY_SERVER_SHORTCUT - Short abbreviation, must match other users access. # Server name - can be different than dashboard title, used to identify this network/server. # AUTHORIZED_TOKENS_FILE, OK to leave as default. This is the file where one time tokens are saved. # MY_SERVER_SHORTCUT, should be something short, ideally 3 or 4 letters. This is used in the authentication and # sending process. Should be unique from other servers, especially if you plan on allowing public access. # SERVER_NAME, the name of your server or network. This is used to identify your server with some external applications. # USE_PUBLIC_APPS, Allow your users to use publically accessible external applications. # PUBLIC_APPS_LIST, URL to list of public external applications. Leave as default. USE_API: True AUTHORIZED_TOKENS_FILE: /tmp/hblink_auth_tokens.txt MY_SERVER_SHORTCUT: ABC SERVER_NAME: Regional HBLink3 Server USE_PUBLIC_APPS: True PUBLIC_APPS_LIST: https://raw.githubusercontent.com/kf7eel/hblink_sms_external_apps/main/public_systems.txt # REQUIRED TO CHANGE RULES_PATH: /path/to/rules.py # The following options are used for the dashboard. The dashboard is optional. # Title of the Dashboard DASHBOARD_TITLE: HBLink3 D-APRS Dashboard # Used for API, RSS feed link, etc. This MUST be accessible. # Do not add a trailing / # You must set this if you are using the API. DASHBOARD_URL: http://localhost:8092 # Logo used on dashboard page LOGO: https://raw.githubusercontent.com/kf7eel/hblink3/gps/HBlink.png # Port to run server DASH_PORT: 8092 # IP to run server on DASH_HOST: 127.0.0.1 #Description of dashboard to show on main page DESCRIPTION: Welcome to the dashboard. # Gateway contact info displayed on about page. CONTACT_NAME: your name CONTACT_CALL: N0CALL CONTACT_EMAIL: email@example.org CONTACT_WEBSITE: https://hbl.ink # Time format for display TIME_FORMAT: %%H:%%M:%%S - %%m/%%d/%%y # Center dashboard map over these coordinates MAP_CENTER_LAT: 47.00 MAP_CENTER_LON: -120.00 ZOOM_LEVEL: 7 # List and preview of some map themes at http://leaflet-extras.github.io/leaflet-providers/preview/ # The following are options for map themes and just work, you should use one of these: “OpenStreetMap”, “Stamen” (Terrain, Toner, and Watercolor). MAP_THEME: Stamen Toner ##################################################################### # 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. # Proper OpenBridge passes all traffic on TS1. # HBlink can extend OPB to use both slots for unit calls only. # Setting "BOTH_SLOTS" True ONLY affects unit traffic! # Otherwise ACLs work as described in the global stanza [OBP-1] MODE: OPENBRIDGE ENABLED: True IP: PORT: 62035 NETWORK_ID: 3129100 PASSPHRASE: password TARGET_IP: 1.2.3.4 TARGET_PORT: 62035 BOTH_SLOTS: True USE_ACL: True SUB_ACL: DENY:1 TGID_ACL: PERMIT:ALL # 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 [MASTER-1] MODE: MASTER ENABLED: False STATIC_APRS_POSITION_ENABLED: False REPEAT: True MAX_PEERS: 10 EXPORT_AMBE: False IP: PORT: 54000 PASSPHRASE: password GROUP_HANGTIME: 5 USE_ACL: True REG_ACL: DENY:1 SUB_ACL: DENY:1 TGID_TS1_ACL: PERMIT:ALL TGID_TS2_ACL: PERMIT:ALL # PEER INSTANCES - DUPLICATE SECTION FOR MULTIPLE PEERS # There are a LOT of errors in the HB Protocol specifications on this one! # MOST of these items are just strings and will be properly dealt with by the program # The TX & RX Frequencies are 9-digit numbers, and are the frequency in Hz. # Latitude is an 8-digit unsigned floating point number. # Longitude is a 9-digit signed floating point number. # Height is in meters # Setting Loose to True relaxes the validation on packets received from the master. # This will allow HBlink to connect to a non-compliant system such as XLXD, DMR+ etc. # # ACLs: # See comments in the GLOBAL stanza [REPEATER-1] MODE: PEER ENABLED: False LOOSE: False EXPORT_AMBE: False IP: PORT: 54001 MASTER_IP: 172.16.1.1 MASTER_PORT: 54000 PASSPHRASE: homebrew CALLSIGN: W1ABC RADIO_ID: 312000 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: This is a cool repeater URL: www.w1abc.org SOFTWARE_ID: 20170620 PACKAGE_ID: MMDVM_HBlink GROUP_HANGTIME: 5 OPTIONS: USE_ACL: True SUB_ACL: DENY:1 TGID_TS1_ACL: PERMIT:ALL TGID_TS2_ACL: PERMIT:ALL [ECHO] MODE: PEER ENABLED: True LOOSE: False EXPORT_AMBE: False IP: PORT: 54073 MASTER_IP: localhost MASTER_PORT: 54072 passphrase: passw0rd CALLSIGN: ECHO RADIO_ID: 9999 RX_FREQ: 000000000 TX_FREQ: 000000000 TX_POWER: 0 COLORCODE: 1 SLOTS: 1 LATITUDE: 00.0000 LONGITUDE: 000.0000 HEIGHT: 0 LOCATION: This Server DESCRIPTION: Echo Server URL: www.github.com/kf7eel/hblink3 SOFTWARE_ID: 20170620 PACKAGE_ID: MMDVM_HBlink GROUP_HANGTIME: 5 OPTIONS: USE_ACL: True SUB_ACL: DENY:1 TGID_TS1_ACL: PERMIT:ALL TGID_TS2_ACL: PERMIT:ALL [XLX-1] MODE: XLXPEER ENABLED: False LOOSE: True EXPORT_AMBE: False IP: PORT: 54002 MASTER_IP: 172.16.1.1 MASTER_PORT: 62030 PASSPHRASE: passw0rd CALLSIGN: W1ABC RADIO_ID: 312000 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: This is a cool repeater URL: www.w1abc.org SOFTWARE_ID: 20170620 PACKAGE_ID: MMDVM_HBlink GROUP_HANGTIME: 5 XLXMODULE: 4004 USE_ACL: True SUB_ACL: DENY:1 TGID_TS1_ACL: PERMIT:ALL TGID_TS2_ACL: PERMIT:ALL