<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def rtm_handler(self, ws_message):
 """ Handle a message, processing it internally if required. If it's a message that should go outside the bot, this function will return True :param message: :return: Boolean if message should be yielded """

        message = json.loads(ws_message.data)
        if 'reply_to' in message:
            reply_to = message['reply_to']
            future = self.response_futures.pop(reply_to, None)
            if future is None:
                logger.error(f'This should not happen, received reply to unknown message! {message}')
                return None
            future.set_result(message)
            return None
        if 'type' not in message:
            logger.error(f'No idea what this could be {message}')
            return
        message_type = message['type']

        if hasattr(self, f'handle_{message_type}'):
            function = getattr(self, f'handle_{message_type}')
            return function(message)

        if message_type in self.SLACK_RTM_EVENTS:
            logger.debug(f'Unhandled {message_type}. {message}')
        else:
            logger.warning(f'Unknown {message_type}. {message}')
        return message