MRCP Messages

MRCP messages are sent from client applications to the Media Server (the MRCP Server) to request various actions, such as ASR recognition, TTS synthesis, and grammar loading.

Each message between the client and the Media Server can be described as one of three general types:

  • Request: A message from the client requesting that the MRCP Server perform some operation.
  • Response: A reply from the MRCP Server responding to a request originally made by the client.
  • Event: An asynchronous message from the MRCP Server reporting a status event to the client.

Message Specification

The MRCP message set consists of requests from the client to the server, responses from the server to the client, and asynchronous events from the server to the client. All these messages consist of a start-line, one or more header fields, an empty line (i.e. a line with nothing preceding the CRLF) indicating the end of the header fields, and an optional message body.

generic-message  =    start-line
                      message-header
                      CRLF
                      [ message-body ]

The start-line describes the type of message (request, response, or event):

start-line       =    request-line / response-line / event-line

The message-header fields contain one or more generic headers or resource-specific headers:

message-header = 1*(generic-header / resource-header / generic-field)

Differences Between MRCPv1 and MRCPv2

There are subtle differences between the specifications of messages and message structures in MRCPv1 and MRCPv2 implementations. Anyone implementing their own protocol handlers should thoroughly review the latest versions of these specifications, which are available online:

Note that these specifications and drafts may be periodically updated, so be sure to review the latest versions. Capacity Private Cloud works to stay current on these specifications as they evolve.


Was this article helpful?