# DMRLink SAMPLE CONFIGURATION FILE # # Rename to dmrlink.cfg and add your information # # minor tweaks to match install for use by DMRGateway # N4IRS # # # GLOBAL CONFIGURATION ITEMS # [GLOBAL] PATH: /opt/IPSC_Bridge/ # NETWORK REPORTING CONFIGURATION # Enabling "REPORT_NETWORKS" will cause a reporting action for # IPSC each time the periodic reporting loop runs, that period is # specified by "REPORT_INTERVAL" in seconds. Possible values # for "REPORT_NETWORKS" are: # # PRINT - a pretty print (STDOUT) of the data structure # "PRINT_PEERS_INC_MODE" - Boolean to include mode bits # "PRINT_PEERS_INC_FLAGS" - Boolean to include flag bits # # NETWORK - This is the right way to do it. Opens a TCP socket # listener. The protocol is still in its infancy, but the # idea is that dmrlink will talk to another application # to send event and status updates. Of course, the big # goal here is a web dashboard that doesn't live on the # dmrlink machine itself. # # PRINT should only be used for debugging; it sends prettily formatted # stuff to STDOUT. The others send the internal data structure of the # IPSC instance and let some program on the other end sort it out. # # REPORT_RCM - If True, and REPORT_NETWORKS = 'NETWORK', will send RCM # Packets to connected reporting clients. This also requires # individual IPSC systems to have RCM and CON_APP both set 'True' # # 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. # [REPORTS] REPORT_NETWORKS: REPORT_RCM: REPORT_INTERVAL: 60 REPORT_PORT: 4321 REPORT_CLIENTS: 127.0.0.1, 192.168.1.1 PRINT_PEERS_INC_MODE: 0 PRINT_PEERS_INC_FLAGS: 0 # SYSTEM LOGGER CONFIGURAITON # This allows the logger to be configured without chaning the individual # python logger stuff in dmrlink.py. LOG_FILE should be a complete # path/filename for *your* system -- use /dev/null for non-file handlers. # LOG_HANDERLS 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/dmrlink.log LOG_HANDLERS: console-timed,file-timed LOG_LEVEL: INFO LOG_NAME: DMRlink # 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 # DMRlink to use, and will NOT be used in DMRlink 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 LOCAL_FILE: 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 STALE_DAYS: 7 # CONFIGURATION FOR IPSC NETWORKS # Please read these closely - catastrophic results could result by setting # certain flags for things DMRlink cannot do. # # [NAME] The name you want to use to identify the IPSC instance (use # something better than "IPSC1"...) # ENABLED: Should we communicate with this network? Handy if you need to # shut one down but don't want to lose the config # RADIO_ID: This is the radio ID that DMRLink should use to communicate # IP: This is the local IPv4 address to listen on. It may be left # blank if you do not need or wish to specify. It is mostly # useful when DMRlink uses multiple interfaces to serve as an # application gateway/proxy from private and/or VPN networks # to the real world. # PORT: This is the UDP source port for DMRLink to use for this # PSC network, must be unique!!! # ALIVE_TIMER: Seconds between keep-alive transmissions # MAX_MISSED: How many missed keep-alives before we remove a peer # PEER_OPER: This signals the master and peers whether or not we are # operational. True is the only thing that makes sense. # IPSC_MODE: May be 'DIGITAL', 'ANALOG', or 'NONE'. Digital is really the # only thing that makes sense. # TSx_LINK: Is this time slot linked? # CSBK_CALL: Should be False, we cannot process these, but may be useful # for debugging. # RCM: Repeater Call Monitoring - don't unable unless you plan to # actually use it, this creates extra network traffic. # CON_APP: Third Party Console App - exactly what DMRlink is, should # be set to True, and must be if you intend to process RCM # packets (like with network-based reporting) # XNL_CALL: Can cause problems if not set to False, DMRlink does not # process XCMP/XNL calls. # XNL_MASTER: Obviously, should also be False, see XNL_CALL. # DATA_CALL: Process data calls. True if you want to process data calls # VOICE_CALL: Process voice calls. True if you want to process voice calls # MASTER_PEER: True if DMRlink will be the master, False if we're a peer # AUTH_ENABLED: Do we use authenticated IPSC? # AUTH_KEY: The Authentication key (up to 40 hex characters) # MASTER_IP: IP address of the IPSC master (ignored if DMRlink is the master) # MASTER_PORT: UDP port of the IPSC master (ignored if DMRlink is the master) # GROUP_HANGTIME: Group hangtime, per DMR configuration # # ...Repeat the block for each IPSC network to join. # [SAMPLE_PEER] ENABLED: False RADIO_ID: 12345 IP: PORT: 50000 ALIVE_TIMER: 5 MAX_MISSED: 20 PEER_OPER: True IPSC_MODE: DIGITAL TS1_LINK: True TS2_LINK: True CSBK_CALL: False RCM: False CON_APP: False XNL_CALL: False XNL_MASTER: False DATA_CALL: True VOICE_CALL: True MASTER_PEER: False AUTH_ENABLED: True AUTH_KEY: 1A2B3C MASTER_IP: 1.2.3.4 MASTER_PORT: 50000 GROUP_HANGTIME: 5 [DEFAULTS] ENABLED: True RADIO_ID: {{IPSC_RADIO_ID}} IP: PORT: 55000 ALIVE_TIMER: 10 MAX_MISSED: 20 PEER_OPER: True IPSC_MODE: DIGITAL TS1_LINK: {{IPSC_TS1}} TS2_LINK: {{IPSC_TS2}} CSBK_CALL: False RCM: False CON_APP: False XNL_CALL: False XNL_MASTER: False DATA_CALL: True VOICE_CALL: True MASTER_PEER: {{IPSC_MASTER_PEER}} AUTH_ENABLED: False AUTH_KEY: # Below not used for a Master MASTER_IP: {{IPSC_MASTER_IP}} MASTER_PORT: {{IPSC_MASTER_PORT}} GROUP_HANGTIME: 5