docs: async def send_message(self, msg: str, msg_type: str, msg_title: str) -> str:
          """
              Send a generic message to the connection
              :param msg:
              :param msg_type:
              :param msg_title:
              :return:
              """
          if not hasattr(Connection.send_message, "cb"):
              self.logger.debug("vcx_connection_send_message: Creating callback")
              Connection.send_message.cb = create_cb(CFUNCTYPE(None, c_uint32, c_uint32, c_char_p))
  
          c_connection_handle = c_uint32(self.handle)
          c_msg = c_char_p(msg.encode('utf-8'))
          c_msg_type = c_char_p(msg_type.encode('utf-8'))
          c_msg_title = c_char_p(msg_title.encode('utf-8'))
  
          result = await do_call('vcx_connection_send_message',
                                 c_connection_handle,
                                 c_msg,
                                 c_msg_type,
                                 c_msg_title,
                                 Connection.send_message.cb)
  
          self.logger.debug("vcx_connection_send_message completed")
          return result