diff --git a/bridge_master.py b/bridge_master.py index f049639..7d5cfe5 100644 --- a/bridge_master.py +++ b/bridge_master.py @@ -1419,7 +1419,7 @@ class routerOBP(OPENBRIDGE): #Assemble transmit HBP packet header _tmp_data = b''.join([_data[:15], _tmp_bits.to_bytes(1, 'big'), _data[16:20]]) _tmp_data = b''.join([_tmp_data, dmrpkt]) - systems[_d_system].send_system(_tmp_data,_hops) + systems[_d_system].send_system(_tmp_data) logger.info('(%s) UNIT Data Bridged to HBP on slot 1: %s DST_ID: %s',self._system,_d_system,_int_dst_id) if CONFIG['REPORTS']['REPORT']: systems[_d_system]._report.send_bridgeEvent('UNIT DATA,START,TX,{},{},{},{},{},{}'.format(_d_system, int_id(_stream_id), int_id(_peer_id), int_id(_rf_src), 1, _int_dst_id).encode(encoding='utf-8', errors='ignore')) @@ -1500,7 +1500,7 @@ class routerOBP(OPENBRIDGE): } self.STATUS[_stream_id]['LAST'] = pkt_time - self.STATUS[_stream_id][packets] = self.STATUS[_stream_id][packets] + 1 + self.STATUS[_stream_id]['packets'] = self.STATUS[_stream_id]['packets'] + 1 hr_times = {} for system in systems: @@ -2175,7 +2175,7 @@ class routerHBP(HBSYSTEM): _tmp_bits = _bits ^ 1 << 7 else: _tmp_bits = _bits - self.sendDataToHBP(_d_system,_d_slot,_dst_id,_tmp_bits,_data,dmrpkt,_rf_src,_stream_id,_peer_id,None) + self.sendDataToHBP(_d_system,_d_slot,_dst_id,_tmp_bits,_data,dmrpkt,_rf_src,_stream_id,_peer_id) else: logger.info('(%s) UNIT Data not bridged to HBP on slot 1 - target busy: %s DST_ID: %s',self._system,_d_system,_int_dst_id) diff --git a/const.py b/const.py index 92b921c..1da03cb 100755 --- a/const.py +++ b/const.py @@ -54,6 +54,7 @@ DMR = b'DMR' DMRD = b'DMRD' DMRE = b'DMRE' DMRF = b'DMRF' +EOBP = b'EOBP' MSTCL = b'MSTCL' MSTNAK = b'MSTNAK' MSTPONG = b'MSTPONG' diff --git a/hblink.py b/hblink.py index a532936..42ae6df 100755 --- a/hblink.py +++ b/hblink.py @@ -316,8 +316,8 @@ class OPENBRIDGE(DatagramProtocol): h,p = _sockaddr logger.warning('(%s) OpenBridge HMAC failed, packet discarded - OPCODE: %s DATA: %s HMAC LENGTH: %s HMAC: %s SRC IP: %s SRC PORT: %s', self._system, _packet[:4], repr(_packet[:53]), len(_packet[53:]), repr(_packet[53:]),h,p) - elif _packet[:4] == DMRE: - logger.warning('(%s) *ProtoControl* KF7EEL DMRE protocol not supported',self._system) + elif _packet[:4] == EOBP: + logger.warning('(%s) *ProtoControl* KF7EEL EOBP protocol not supported',self._system) return elif _packet[:4] == DMRF: @@ -338,6 +338,7 @@ class OPENBRIDGE(DatagramProtocol): _seq = _data[4] _rf_src = _data[5:8] _dst_id = _data[8:11] + _int_dst_id = int_id(_dst_id) _bits = _data[15] _slot = 2 if (_bits & 0x80) else 1 #_call_type = 'unit' if (_bits & 0x40) else 'group' @@ -363,7 +364,8 @@ class OPENBRIDGE(DatagramProtocol): _inthops = _hops +1 if _inthops > 10: - logger.warning('(%s) MAX HOPS exceed, dropping', self._system) + logger.warning('(%s) MAX HOPS exceed, dropping. Hops: %s, DST: %s', self._system, _inthops, _int_dst_id) + self.send_bcsq(_dst_id,_stream_id) return