MRCP messages are sent from client applications to the LumenVox Media Server (the MRCP Server) to request various actions, such as ASR recognition, TTS synthesis and grammar loading activities.
Each message between the client and the Media Server can be described as one of three general types:
- Request: A message from the client to request that the MRCP Server perform some operation
- Response: This is a reply from the MRCP Server responding to a request originally made by the client
- Event:An asynchronous message from the MRCP Server reporting some status event to the client
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, and 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-body ]
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
Please note that there are subtle differences between the specifications of messages and the message structures between MRCPv1 and MRCPv2 implementations, and as such we would encourage anyone implementing their own protocol handlers to thoroughly review the latest versions of these specification, which are available online.
Note that these specifications and drafts may be periodically updated, so please be sure to review the latest versions of these. LumenVox works to stay current on these specifications as they change over time.