Incorporate Loop Control !!
Squashed commit of the following: commit da52307f858da5ef4f23950ff94c3c1dd78650a2 Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 18:14:42 2021 +0000 Revert "Log UA Timer when logging bridge timer events" This reverts commit 8e1e96d9202afdbd2d88c73bba2abe7000718d89. commit 79a2efcd03c736fd8f3a0187fd0b7c0033b43604 Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 18:14:41 2021 +0000 Revert "Tidy up commented out code" This reverts commit c54353bddc3cb9f424a1b9087e30308b1da0f083. commit 5081af43a9ed6a1ff62300876d089f18aeaec09f Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 18:14:36 2021 +0000 Revert "No UA timer on STAT bridges" This reverts commit 97f84c97e583ef45b5eaa57c60da24b2546a537f. commit b605432e0fa2107928274bf848c094d5ec2bf919 Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 18:14:31 2021 +0000 Revert "One missing" This reverts commit a479882017a9637107bb51e971402bf20b55d592. commit a479882017a9637107bb51e971402bf20b55d592 Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 18:11:14 2021 +0000 One missing commit 97f84c97e583ef45b5eaa57c60da24b2546a537f Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 18:06:38 2021 +0000 No UA timer on STAT bridges commit c54353bddc3cb9f424a1b9087e30308b1da0f083 Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 18:01:21 2021 +0000 Tidy up commented out code commit 8e1e96d9202afdbd2d88c73bba2abe7000718d89 Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 17:45:53 2021 +0000 Log UA Timer when logging bridge timer events commit 869fa90277bb72a104d0e4eb0bf91a54671f55b2 Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 09:25:05 2021 +0000 RX_STREAM_ID keyerror commit 6777f5892c0e64899372758a408d240ebae79704 Merge: 4bf055e415346f
Author: Simon <simon@gb7fr.org.uk> Date: Wed Mar 24 09:05:27 2021 +0000 Merge branch 'master' into loopy commit 4bf055ede46b6cf31269def0b59ae6db738d3e8c Author: Simon <simon@adlem.net> Date: Mon Feb 22 11:36:22 2021 +0000 Revert "Log packet time" This reverts commit 59de64990df5cbdaf91d487254e4f0a08c3b7e73. commit 59de64990df5cbdaf91d487254e4f0a08c3b7e73 Author: Simon <simon@adlem.net> Date: Mon Feb 22 11:07:26 2021 +0000 Log packet time commit df4b8ff525f7e6611ed1f1cfc006469695974b5e Author: Simon <simon@adlem.net> Date: Mon Feb 22 10:51:53 2021 +0000 Raise KeyError level for streamid to warning commit 66c82257cf9f795efb6c68f077ade90681dc52cb Author: Simon <simon@adlem.net> Date: Sun Feb 21 23:22:11 2021 +0000 Only log once commit 9989a3d06f106519dbabd4e5b83edd90205cc7ed Author: Simon <simon@adlem.net> Date: Sun Feb 21 23:10:10 2021 +0000 L commit e61255ea761f084e20be3c0d943a8d1385695e1e Author: Simon <simon@adlem.net> Date: Sun Feb 21 22:45:32 2021 +0000 Try again commit 7824304884d075a2ea99b2f56aa8d006b69aa979 Author: Simon <simon@adlem.net> Date: Sun Feb 21 22:23:48 2021 +0000 compare streamid correctly commit de23e7a1536306c7523fa1ff0638d84986809b2b Author: Simon <simon@adlem.net> Date: Sun Feb 21 22:15:29 2021 +0000 Disgard if stream was sourced from this system via HBP commit 2a5e51b3c16fabd63b6ec69709ff52b734f025c3 Author: Simon <simon@adlem.net> Date: Sun Feb 21 19:36:19 2021 +0000 Revert "Tidy up from loop control work" This reverts commit 3f43d86c71ac30b997c11a0dbd75dbe0a0be699d. commit 3f43d86c71ac30b997c11a0dbd75dbe0a0be699d Author: Simon <simon@adlem.net> Date: Sun Feb 21 19:23:37 2021 +0000 Tidy up from loop control work commit e7d25b2b1c40ab488d42d57b3bf1abbe10828955 Author: Simon <simon@adlem.net> Date: Sun Feb 21 18:44:43 2021 +0000 Fix what I broke - voice commit 01f8620ee5068bc58c7c2e53ecb891cb25648423 Author: Simon <simon@adlem.net> Date: Sun Feb 21 16:55:39 2021 +0000 lop commit 234e528547641e017525c5c6d56e79f0a3f74ae1 Merge: d71d7c12f1b128
Author: Simon <simon@adlem.net> Date: Sun Feb 21 16:30:42 2021 +0000 Merge branch 'master' into loopy commit d71d7c10799706439c9fd32c7e955ef3cbfbc840 Author: Simon <simon@adlem.net> Date: Sat Feb 20 21:05:02 2021 +0000 Fix speech issue commit f5f354592e2dc2099db3576a3e93eba0d25c281b Author: Simon <simon@adlem.net> Date: Mon Feb 15 10:40:16 2021 +0000 LoopHold should be an integer commit 5455b3920876bfc41f9e48ef9605fddbbb7772c7 Author: Simon <simon@adlem.net> Date: Mon Feb 15 10:35:14 2021 +0000 5 packet loophold for rebound packets commit 7aa8c65cef58bdebb37361fc1ca3ac5198fb3aab Author: Simon <simon@adlem.net> Date: Mon Feb 15 10:28:47 2021 +0000 No square brackets in loophold commit 096fae4dc99ac6f20fa1430fe8cbebc240099a3b Author: Simon <simon@adlem.net> Date: Mon Feb 15 10:27:01 2021 +0000 Loophold top stop rebound packets commit c6284ea4c1d1f301b5112a11f0a71144224d71ad Author: Simon <simon@adlem.net> Date: Mon Feb 15 10:10:43 2021 +0000 Further typo in last change commit 1ef70d4bdd8bc465a101aa2ab46dd275634a75d8 Author: Simon <simon@adlem.net> Date: Mon Feb 15 10:08:37 2021 +0000 Typo in keyerror string commit ac76346cbd60ee56c622912fe7addda9751de880 Author: Simon <simon@adlem.net> Date: Mon Feb 15 01:25:47 2021 +0000 TGID commit f9a654aa9069dd29e9e921516e81033e1e3b81d8 Author: Simon <simon@adlem.net> Date: Mon Feb 15 00:18:33 2021 +0000 1st commit 19060a430d350a16611816bed789246c00c58cd5 Author: Simon <simon@adlem.net> Date: Mon Feb 15 00:14:24 2021 +0000 Whitespace! commit e682f6924125242b5846123d0c031f99733b5a30 Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:37:33 2021 +0000 Revert "Revert "b+"" This reverts commit 312483086181c3f9cd1136e29c6574781e637e60. commit c6b7863ab34c6aceeaae8c39d00c9ef7a12bd62c Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:36:59 2021 +0000 Revert "Revert "TGID2"" This reverts commit d10091ff5e1f09c88da38f2a7fbe4e4e58d85dfa. commit ecae036c4cb193940137bb157778969986817bf4 Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:36:46 2021 +0000 Revert "Revert "tgid"" This reverts commit 1059c0c552e2db4bf74de539dd618bd2b4fc3a18. commit 4466c029d9e04715e879ffb8b82b57c62464bbb6 Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:36:36 2021 +0000 Revert "Revert "f"" This reverts commit b7c60f4dd3281273aa67d5e6c9e2f8137f6e69cf. commit b7c60f4dd3281273aa67d5e6c9e2f8137f6e69cf Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:32:02 2021 +0000 Revert "f" This reverts commit 35a10397e92b634b56cd6c4631ee36b12c87d8df. commit 1059c0c552e2db4bf74de539dd618bd2b4fc3a18 Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:30:58 2021 +0000 Revert "tgid" This reverts commit b427a63584d2715900ee8a599181ef7332267bb2. commit d10091ff5e1f09c88da38f2a7fbe4e4e58d85dfa Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:30:38 2021 +0000 Revert "TGID2" This reverts commit 0da3a895a1c8941f135798a4f8728916ae01a630. commit 312483086181c3f9cd1136e29c6574781e637e60 Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:30:19 2021 +0000 Revert "b+" This reverts commit 3e62cd48d60adb3e9d39960e2e6a54b813e03075. commit 3e62cd48d60adb3e9d39960e2e6a54b813e03075 Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:29:04 2021 +0000 b+ commit 0da3a895a1c8941f135798a4f8728916ae01a630 Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:26:01 2021 +0000 TGID2 commit b427a63584d2715900ee8a599181ef7332267bb2 Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:24:31 2021 +0000 tgid commit 35a10397e92b634b56cd6c4631ee36b12c87d8df Author: Simon <simon@adlem.net> Date: Sun Feb 14 23:11:23 2021 +0000 f commit 46c33c1aa92071e364af2f87f5f612bb01513242 Author: Simon <simon@adlem.net> Date: Sun Feb 14 22:52:02 2021 +0000 lo
This commit is contained in:
parent
415346f458
commit
bec116337e
@ -384,7 +384,7 @@ def stream_trimmer_loop():
|
||||
if systems[system].STATUS[stream_id]['LAST'] < _now - 5:
|
||||
remove_list.append(stream_id)
|
||||
except:
|
||||
logger.debug("(%s) Keyerror - stream trimmer Stream ID: %s Start: %s Contention: %s RFS: %s TGID: %s",stream_id,systems[system].STATUS[stream_id]['START'],systems[system].STATUS[stream_id]['CONTENTION'],systems[system].STATUS[stream_id]['RFS'],int_id(systems[system].STATUS[stream_id]['TGID']))
|
||||
logger.warning("(%s) Keyerror - stream trimmer Stream ID: %s",system,stream_id)
|
||||
systems[system].STATUS[stream_id]['LAST'] = _now
|
||||
continue
|
||||
|
||||
@ -1062,7 +1062,10 @@ class routerOBP(OPENBRIDGE):
|
||||
'TGID': _dst_id,
|
||||
}
|
||||
# Generate LCs (full and EMB) for the TX stream
|
||||
dst_lc = b''.join([self.STATUS[_stream_id]['LC'][0:3], _target['TGID'], _rf_src])
|
||||
try:
|
||||
dst_lc = b''.join([self.STATUS[_stream_id]['LC'][0:3], _target['TGID'], _rf_src])
|
||||
except:
|
||||
return
|
||||
_target_status[_stream_id]['H_LC'] = bptc.encode_header_lc(dst_lc)
|
||||
_target_status[_stream_id]['T_LC'] = bptc.encode_terminator_lc(dst_lc)
|
||||
_target_status[_stream_id]['EMB_LC'] = bptc.encode_emblc(dst_lc)
|
||||
@ -1209,14 +1212,15 @@ class routerOBP(OPENBRIDGE):
|
||||
if _call_type == 'group':
|
||||
# Is this a new call stream?
|
||||
if (_stream_id not in self.STATUS):
|
||||
|
||||
# This is a new call stream
|
||||
self.STATUS[_stream_id] = {
|
||||
'START': pkt_time,
|
||||
'CONTENTION':False,
|
||||
'RFS': _rf_src,
|
||||
'TGID': _dst_id,
|
||||
'1ST': True
|
||||
}
|
||||
|
||||
|
||||
# If we can, use the LC from the voice header as to keep all options intact
|
||||
if _frame_type == HBPF_DATA_SYNC and _dtype_vseq == HBPF_SLT_VHEAD:
|
||||
@ -1231,6 +1235,45 @@ class routerOBP(OPENBRIDGE):
|
||||
|
||||
logger.info('(%s) *CALL START* STREAM ID: %s SUB: %s (%s) PEER: %s (%s) TGID %s (%s), TS %s', \
|
||||
self._system, int_id(_stream_id), get_alias(_rf_src, subscriber_ids), int_id(_rf_src), get_alias(_peer_id, peer_ids), int_id(_peer_id), get_alias(_dst_id, talkgroup_ids), int_id(_dst_id), _slot)
|
||||
|
||||
|
||||
else:
|
||||
|
||||
# Loop Control
|
||||
|
||||
#if 'LOOPHOLD' in self.STATUS[_stream_id]:
|
||||
#if self.STATUS[_stream_id]['LOOPHOLD'] < 5:
|
||||
#logger.debug ('(%s) Avoid packet due to loophold: %s',self._system,self.STATUS[_stream_id]['LOOPHOLD'])
|
||||
#self.STATUS[_stream_id]['LOOPHOLD'] = self.STATUS[_stream_id]['LOOPHOLD'] + 1
|
||||
#else:
|
||||
#try:
|
||||
#self.STATUS.pop('LOOPHOLD')
|
||||
#except:
|
||||
#pass
|
||||
#return
|
||||
|
||||
for system in systems:
|
||||
if system == self._system:
|
||||
continue
|
||||
if CONFIG['SYSTEMS'][system]['MODE'] != 'OPENBRIDGE':
|
||||
for _sysslot in systems[system].STATUS:
|
||||
if 'RX_STREAM_ID' in systems[system].STATUS[_sysslot] and _stream_id == systems[system].STATUS[_sysslot]['RX_STREAM_ID']:
|
||||
if 'LOOPLOG' not in self.STATUS[_stream_id] or not self.STATUS[_stream_id]['LOOPLOG']:
|
||||
logger.warning("(%s) OBP LoopControl - call originated from HBP %s, stream id: %s, TG: %s, TS: %s, disgarding stream",self._system, system, int_id(_stream_id), int_id(_dst_id),_sysslot)
|
||||
self.STATUS[_stream_id]['LOOPLOG'] = True
|
||||
self.STATUS[_stream_id]['LAST'] = pkt_time
|
||||
return
|
||||
else:
|
||||
#if _stream_id in systems[system].STATUS and systems[system].STATUS[_stream_id]['START'] <= self.STATUS[_stream_id]['START']:
|
||||
if _stream_id in systems[system].STATUS and '1ST' in systems[system].STATUS[_stream_id] and systems[system].STATUS[_stream_id]['TGID'] == _dst_id:
|
||||
if 'LOOPLOG' not in self.STATUS[_stream_id] or not self.STATUS[_stream_id]['LOOPLOG']:
|
||||
logger.warning("(%s) OBP LoopControl - system %s is first system for stream id: %s on TG %s, disgarding stream from this system",self._system, system, int_id(_stream_id), int_id(_dst_id))
|
||||
self.STATUS[_stream_id]['LOOPLOG'] = True
|
||||
self.STATUS[_stream_id]['LAST'] = pkt_time
|
||||
return
|
||||
|
||||
#Move this here to stop messing up the dash - we only want to log a QSO if we allow it
|
||||
if (_stream_id not in self.STATUS):
|
||||
if CONFIG['REPORTS']['REPORT']:
|
||||
self._report.send_bridgeEvent('GROUP VOICE,START,RX,{},{},{},{},{},{}'.format(self._system, int_id(_stream_id), int_id(_peer_id), int_id(_rf_src), _slot, int_id(_dst_id)).encode(encoding='utf-8', errors='ignore'))
|
||||
|
||||
@ -1261,10 +1304,10 @@ class routerOBP(OPENBRIDGE):
|
||||
self._system, int_id(_stream_id), get_alias(_rf_src, subscriber_ids), int_id(_rf_src), get_alias(_peer_id, peer_ids), int_id(_peer_id), get_alias(_dst_id, talkgroup_ids), int_id(_dst_id), _slot, call_duration)
|
||||
if CONFIG['REPORTS']['REPORT']:
|
||||
self._report.send_bridgeEvent('GROUP VOICE,END,RX,{},{},{},{},{},{},{:.2f}'.format(self._system, int_id(_stream_id), int_id(_peer_id), int_id(_rf_src), _slot, int_id(_dst_id), call_duration).encode(encoding='utf-8', errors='ignore'))
|
||||
removed = self.STATUS.pop(_stream_id)
|
||||
logger.debug('(%s) OpenBridge sourced call stream end, remove terminated Stream ID: %s', self._system, int_id(_stream_id))
|
||||
if not removed:
|
||||
selflogger.error('(%s) *CALL END* STREAM ID: %s NOT IN LIST -- THIS IS A REAL PROBLEM', self._system, int_id(_stream_id))
|
||||
#removed = self.STATUS.pop(_stream_id)
|
||||
#logger.debug('(%s) OpenBridge sourced call stream end, remove terminated Stream ID: %s', self._system, int_id(_stream_id))
|
||||
#if not removed:
|
||||
#selflogger.error('(%s) *CALL END* STREAM ID: %s NOT IN LIST -- THIS IS A REAL PROBLEM', self._system, int_id(_stream_id))
|
||||
|
||||
#Reset sequence number
|
||||
self._lastSeq = False
|
||||
|
Loading…
Reference in New Issue
Block a user