Merge branch 'master' into key

key
Simon 3 years ago
commit 1661f740e0

@ -2637,7 +2637,7 @@ class routerHBP(HBSYSTEM):
self.STATUS[_slot]['LOOPLOG'] = True self.STATUS[_slot]['LOOPLOG'] = True
self.STATUS[_slot]['LAST'] = pkt_time self.STATUS[_slot]['LAST'] = pkt_time
if CONFIG['SYSTEMS'][self._system]['ENHANCED_OBP'] and '_bcsq' not in self.STATUS[_slot]: if 'ENHANCED_OBP' in CONFIG['SYSTEMS'][self._system] and CONFIG['SYSTEMS'][self._system]['ENHANCED_OBP'] and '_bcsq' not in self.STATUS[_slot]:
systems[self._system].send_bcsq(_dst_id,_stream_id) systems[self._system].send_bcsq(_dst_id,_stream_id)
self.STATUS[_slot]['_bcsq'] = True self.STATUS[_slot]['_bcsq'] = True
return return

@ -24,13 +24,11 @@ services:
mem_reservation: 600m mem_reservation: 600m
volumes: volumes:
- '/etc/freedmr/freedmr.cfg:/opt/freedmr/freedmr.cfg' - '/etc/freedmr/freedmr.cfg:/opt/freedmr/freedmr.cfg'
- '/var/log/freedmr/freedmr.log:/opt/freedmr/freedmr.log' - '/var/log/freedmr/:/opt/freedmr/log/'
- '/etc/freedmr/rules.py:/opt/freedmr/rules.py' - '/etc/freedmr/rules.py:/opt/freedmr/rules.py'
#Write JSON files outside of container #Write JSON files outside of container
- '/etc/freedmr/json/talkgroup_ids.json:/opt/freedmr/talkgroup_ids.json' - '/etc/freedmr/json/:/opt/freedmr/json/'
- '/etc/freedmr/json/subscriber_ids.json:/opt/freedmr/subscriber_ids.json'
- '/etc/freedmr/json/peer_ids.json:/opt/freedmr/peer_ids.json'
- '/etc/freedmr/json/sub_map.pkl:/opt/freedmr/sub_map.pkl'
ports: ports:
- '62031:62031/udp' - '62031:62031/udp'
#Change the below to inlude ports used for your OBP(s) #Change the below to inlude ports used for your OBP(s)
@ -62,12 +60,9 @@ services:
volumes: volumes:
#This should be kept to a manageable size from #This should be kept to a manageable size from
#cron or logrotate outisde of the container. #cron or logrotate outisde of the container.
- '/var/log/FreeDMRmonitor/lastheard.log:/opt/FreeDMRmonitor/log/lastheard.log' - '/var/log/FreeDMRmonitor/:/opt/FreeDMRmonitor/log/'
- '/var/log/FreeDMRmonitor/hbmon.log:/opt/FreeDMRmonitor/log/hbmon.log'
#Write JSON files outside of container #Write JSON files outside of container
- '/etc/freedmr/json/talkgroup_ids.json:/opt/FreeDMRmonitor/talkgroup_ids.json' - '/etc/freedmr/json/:/opt/FreeDMRmonitor/json/'
- '/etc/freedmr/json/subscriber_ids.json:/opt/FreeDMRmonitor/subscriber_ids.json'
- '/etc/freedmr/json/peer_ids.json:/opt/FreeDMRmonitor/peer_ids.json'
#Override config file #Override config file
# - '/etc/freedmr/config.py:/opt/FreeDMRmonitor/config.py' # - '/etc/freedmr/config.py:/opt/FreeDMRmonitor/config.py'

@ -37,14 +37,7 @@ chmod 755 /etc/freedmr &&
echo make json directory... echo make json directory...
mkdir -p /etc/freedmr/json && mkdir -p /etc/freedmr/json &&
chown 54000:54000 /etc/freedmr/json &&
echo get json files...
cd /etc/freedmr/json &&
curl http://downloads.freedmr.uk/downloads/local_subscriber_ids.json -o subscriber_ids.json &&
curl http://downloads.freedmr.uk/downloads/talkgroup_ids.json -o talkgroup_ids.json &&
curl https://www.radioid.net/static/rptrs.json -o peer_ids.json &&
touch /etc/freedmr/json/sub_map.pkl &&
chmod -R 777 /etc/freedmr/json &&
echo Install /etc/freedmr/freedmr.cfg ... echo Install /etc/freedmr/freedmr.cfg ...
cat << EOF > /etc/freedmr/freedmr.cfg cat << EOF > /etc/freedmr/freedmr.cfg
@ -70,21 +63,21 @@ REPORT_PORT: 4321
REPORT_CLIENTS: * REPORT_CLIENTS: *
[LOGGER] [LOGGER]
LOG_FILE: freedmr.log LOG_FILE: log/freedmr.log
LOG_HANDLERS: file-timed LOG_HANDLERS: file-timed
LOG_LEVEL: INFO LOG_LEVEL: INFO
LOG_NAME: FreeDMR LOG_NAME: FreeDMR
[ALIASES] [ALIASES]
TRY_DOWNLOAD: False TRY_DOWNLOAD: True
PATH: ./ PATH: ./json/
PEER_FILE: peer_ids.json PEER_FILE: peer_ids.json
SUBSCRIBER_FILE: subscriber_ids.json SUBSCRIBER_FILE: subscriber_ids.json
TGID_FILE: talkgroup_ids.json TGID_FILE: talkgroup_ids.json
PEER_URL: https://www.radioid.net/static/rptrs.json PEER_URL: https://www.radioid.net/static/rptrs.json
SUBSCRIBER_URL: http://downloads.freedmr.uk/downloads/local_subscriber_ids.json SUBSCRIBER_URL: http://downloads.freedmr.uk/downloads/local_subscriber_ids.json
TGID_URL: TGID_URL: http://downloads.freedmr.uk/downloads/talkgroup_ids.json TGID_URL: TGID_URL: https://freedmr.cymru/talkgroups/talkgroup_ids_json.php
STALE_DAYS: 7 STALE_DAYS: 1
LOCAL_SUBSCRIBER_FILE: local_subcriber_ids.json LOCAL_SUBSCRIBER_FILE: local_subcriber_ids.json
SUB_MAP_FILE: sub_map.pkl SUB_MAP_FILE: sub_map.pkl

@ -769,6 +769,8 @@ class HBSYSTEM(DatagramProtocol):
remove_list.append(peer) remove_list.append(peer)
for peer in remove_list: for peer in remove_list:
logger.info('(%s) Peer %s (%s) has timed out and is being removed', self._system, self._peers[peer]['CALLSIGN'], self._peers[peer]['RADIO_ID']) logger.info('(%s) Peer %s (%s) has timed out and is being removed', self._system, self._peers[peer]['CALLSIGN'], self._peers[peer]['RADIO_ID'])
#First, MSTCL the peer
self.transport.write(b''.join([MSTCL, peer]),self._CONFIG['SYSTEMS'][self._system]['PEERS'][peer]['SOCKADDR'])
# Remove any timed out peers from the configuration # Remove any timed out peers from the configuration
del self._CONFIG['SYSTEMS'][self._system]['PEERS'][peer] del self._CONFIG['SYSTEMS'][self._system]['PEERS'][peer]
if 'PEERS' not in self._CONFIG['SYSTEMS'][self._system] and 'OPTIONS' in self._CONFIG['SYSTEMS'][self._system]: if 'PEERS' not in self._CONFIG['SYSTEMS'][self._system] and 'OPTIONS' in self._CONFIG['SYSTEMS'][self._system]:
@ -1385,12 +1387,13 @@ def try_download(_path, _file, _url, _stale,):
result = 'ID ALIAS MAPPER: \'{}\' successfully downloaded'.format(_file) result = 'ID ALIAS MAPPER: \'{}\' successfully downloaded'.format(_file)
except IOError: except IOError:
result = 'ID ALIAS MAPPER: \'{}\' could not be downloaded due to an IOError'.format(_file) result = 'ID ALIAS MAPPER: \'{}\' could not be downloaded due to an IOError'.format(_file)
try: else:
with open(_path+_file, 'wb') as outfile: try:
outfile.write(data) with open(_path+_file, 'wb') as outfile:
outfile.close() outfile.write(data)
except IOError: outfile.close()
result = 'ID ALIAS mapper \'{}\' file could not be written due to an IOError'.format(_file) except IOError:
result = 'ID ALIAS mapper \'{}\' file could not be written due to an IOError'.format(_file)
else: else:
result = 'ID ALIAS MAPPER: \'{}\' is current, not downloaded'.format(_file) result = 'ID ALIAS MAPPER: \'{}\' is current, not downloaded'.format(_file)

@ -71,6 +71,10 @@ class Proxy(DatagramProtocol):
if self.clientinfo and _peer_id != b'\xff\xff\xff\xff': if self.clientinfo and _peer_id != b'\xff\xff\xff\xff':
print(f"{datetime.now().replace(microsecond=0)} Client: ID:{str(int_id(_peer_id)).rjust(9)} IP:{self.peerTrack[_peer_id]['shost'].rjust(15)} Port:{self.peerTrack[_peer_id]['sport']} Removed.") print(f"{datetime.now().replace(microsecond=0)} Client: ID:{str(int_id(_peer_id)).rjust(9)} IP:{self.peerTrack[_peer_id]['shost'].rjust(15)} Port:{self.peerTrack[_peer_id]['sport']} Removed.")
self.transport.write(b'RPTCL'+_peer_id, (self.master,self.peerTrack[_peer_id]['dport'])) self.transport.write(b'RPTCL'+_peer_id, (self.master,self.peerTrack[_peer_id]['dport']))
#Tell client we have closed the session - 3 times, in case they are on a lossy network
self.transport.write(b'MSTCL',(self.peerTrack[_peer_id]['shost'],self.peerTrack[_peer_id]['sport']))
self.transport.write(b'MSTCL',(self.peerTrack[_peer_id]['shost'],self.peerTrack[_peer_id]['sport']))
self.transport.write(b'MSTCL',(self.peerTrack[_peer_id]['shost'],self.peerTrack[_peer_id]['sport']))
self.connTrack[self.peerTrack[_peer_id]['dport']] = False self.connTrack[self.peerTrack[_peer_id]['dport']] = False
del self.peerTrack[_peer_id] del self.peerTrack[_peer_id]

Loading…
Cancel
Save

Powered by TurnKey Linux.