# 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/dmrlink/ # NETWORK REPORTING CONFIGURATION # Enabling "REPORT_NETWORKS" will cause a reporting action for # IPSC each time the periodic reporting loop runs, that period is # specifiec by "REPORT_INTERVAL" in seconds. Possible values # for "REPORT_NETWORKS" are: # PICKLE - a Python pickle file of the network's data structure # (JSON DOES NOT WORK RNIGHT NOW) JSON - a JSON file of the network's data structure # (REDIS DOES NOT WORK RIGHT NOW) REDIS - send JSON format data structure to a local|remote # redis server # 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 # # PRINT is the odd man out because 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_INTERVAL - Seconds between reports # REPORT_PATH - Absolute path save data (pickle and json) # [REPORTS] REPORT_NETWORKS: REPORT_INTERVAL: 60 REPORT_PATH: 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: /var/log/dmrlink/dmrlink.log LOG_HANDLERS: file LOG_LEVEL: INFO LOG_NAME: DMRlink # 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 communiate 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 gatway/proxy from private and/or VPN networks # to the real world. # PORT: This is the UDP source port for DMRLink to use for this # IPSC 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 craetes extra network traffic. # CON_APP: Third Party Console App - exactly what DMRlink is, should # be set to True. # 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 DMRlinkn is the master) # # ...Repeat the block for each IPSC network to join. # [SAMPLE_PEER] ENABLED: True RADIO_ID: 12345 IP: 127.0.0.1 PORT: 50000 ALIVE_TIMER: 5 MAX_MISSED: 20 PEER_OPER: True IPSC_MODE: DIGITAL TS1_LINK: True TS2_LINK: True CSBK_CALL: False RCM: True CON_APP: True 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 [SAMPLE_MASTER] ENABLED: False RADIO_ID: 54321 IP: 192.168.1.1 PORT: 50000 ALIVE_TIMER: 5 MAX_MISSED: 20 PEER_OPER: True IPSC_MODE: DIGITAL TS1_LINK: True TS2_LINK: True CSBK_CALL: False RCM: True CON_APP: True XNL_CALL: False XNL_MASTER: False DATA_CALL: True VOICE_CALL: True MASTER_PEER: True AUTH_ENABLED: True AUTH_KEY: 1A2B3C # Below not used for a Master # MASTER_IP: 1.2.3.4 # MASTER_PORT: 50000