code: def new_message(self, message_name, protocol=None, *parameters):
          
          proto = self._get_protocol(protocol)
          if not proto:
              raise Exception("Protocol not defined! Please define a protocol before creating a message!")
          if self._protocol_in_progress:
              raise Exception("Protocol definition in progress. Please finish it before starting to define a message.")
          configs, fields, header_fields = self._parse_parameters(parameters)
          self._raise_error_if_configs_or_fields(configs, fields, 'New message')
          self._init_new_message_stack(MessageTemplate(message_name, proto, header_fields))
docs: Define a new message template with `message_name`.
  
          `protocol` has to be defined earlier with `Start Protocol Description`.
          Optional parameters are default values for message header separated with
          colon.
  
          Examples:
          | New message | MyMessage | MyProtocol | header_field:value |