diff --git a/playback.py b/playback.py index 7f5ec66..c40f020 100755 --- a/playback.py +++ b/playback.py @@ -114,32 +114,34 @@ class playback(HBSYSTEM): dmrpkt = _data[20:53] _bits = _data[15] if _call_type == 'group': - + # Is this is a new call stream? if (_stream_id != self.STATUS[_slot]['RX_STREAM_ID']): self.STATUS['RX_START'] = pkt_time - logger.info('(%s) *CALL START* STREAM ID: %s SUB: %s (%s) REPEATER: %s (%s) TGID %s (%s), TS %s', \ + logger.info('(%s) *START RECORDING* STREAM ID: %s SUB: %s (%s) REPEATER: %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) - + self.CALL_DATA.append(_data) + self.STATUS[_slot]['RX_STREAM_ID'] = _stream_id + return # Final actions - Is this a voice terminator? - if (_frame_type == const.HBPF_DATA_SYNC) and (_dtype_vseq == const.HBPF_SLT_VTERM) and (self.STATUS[_slot]['RX_TYPE'] != const.HBPF_SLT_VTERM): + if (_frame_type == const.HBPF_DATA_SYNC) and (_dtype_vseq == const.HBPF_SLT_VTERM) and (self.STATUS[_slot]['RX_TYPE'] != const.HBPF_SLT_VTERM) and (self.CALL_DATA): call_duration = pkt_time - self.STATUS['RX_START'] - logger.info('(%s) *CALL END* STREAM ID: %s SUB: %s (%s) REPEATER: %s (%s) TGID %s (%s), TS %s, Duration: %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, call_duration) self.CALL_DATA.append(_data) + logger.info('(%s) *END RECORDING* STREAM ID: %s', self._system, int_id(_stream_id)) sleep(2) - logger.info('(%s) Playing back transmission from subscriber: %s', self._system, int_id(_rf_src)) + logger.info('(%s) *START PLAYBACK* STREAM ID: %s SUB: %s (%s) REPEATER: %s (%s) TGID %s (%s), TS %s, Duration: %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, call_duration) for i in self.CALL_DATA: self.send_system(i) #print(i) sleep(0.06) self.CALL_DATA = [] + logger.info('(%s) *END PLAYBACK* STREAM ID: %s', self._system, int_id(_stream_id)) else: - if not self.CALL_DATA: - logger.info('(%s) Receiving transmission to be played back from subscriber: %s', self._system, int_id(_rf_src)) - self.CALL_DATA.append(_data) + if self.CALL_DATA: + self.CALL_DATA.append(_data) # Mark status variables for use later