code: def send_message_and_wait(self, message, response_emsg, body_params=None, timeout=None, raises=False):
          
          self.send(message, body_params)
          response = self.wait_event(response_emsg, timeout, raises=raises)
          if response is None:
              return None
          return response[0].body
docs: .. versionchanged:: 0.8.4
          Send a message to CM and wait for a defined answer.
  
          :param message: a message instance
          :type message: :class:`.Msg`, :class:`.MsgProto`
          :param response_emsg: emsg to wait for
          :type response_emsg: :class:`.EMsg`,:class:`int`
          :param body_params: a dict with params to the body (only :class:`.MsgProto`)
          :type body_params: dict
          :param timeout: (optional) seconds to wait
          :type timeout: :class:`int`
          :param raises: (optional) On timeout if ``False`` return ``None``, else raise ``gevent.Timeout``
          :type raises: :class:`bool`
          :return: response proto message
          :rtype: :class:`.Msg`, :class:`.MsgProto`
          :raises: ``gevent.Timeout``