CDR Logging
Call Detail Records (CDRs) give you a per-session audit trail of every MRCP exchange the Media Server handles. Each completed session is summarized as a single row capturing who connected, when, for how long, which protocol and ports were used, and which ASR or TTS licenses it consumed — the data you need for capacity planning, license reconciliation, and troubleshooting individual calls.
CDR logging is always on. While the Media Server is running, it appends a summary of each completed MRCP session to:
mrcp-api/docker/logs/client/mrcp_cdr.txt
The file is written as comma-separated values (CSV), so you can import it directly into a spreadsheet or database for analysis. The example below includes a header row identifying each column; note that this header row does not appear in the actual log file.
As the sample shows, formatting differs subtly between MRCPv1 and MRCPv2 sessions, and between sessions that use ASR versus TTS resources.
Each column describes one characteristic of the session:
| Column | Description |
| Session End | End time of the session |
| Type | Type of session (SIP or RTSP) |
| Call Index | Internal numerical index of the session |
| Session ID | Call-ID or session identifier string |
| Session Start | Start time of the session |
| Duration | Duration of the session (milliseconds) |
| Server IP | Media Server’s IP address |
| Client IP | Client’s IP address |
| ServerRTP_Port | Server end of the audio (RTP port) |
| ClientRTP_Port | Client end of the audio (RTP port) |
| MRCP_Port | MRCP port being used (or the ephemeral port used when Type is RTSP) |
| Logging-Tags | Session Logging-Tags set for ASR / TTS (if any are present at the end of the session) |
| License Info | Summary of ASR / TTS licenses used during the session, separated by semicolons |
OPTIONS and DESCRIBE sessions
You will sometimes see short-lived sessions in the CDR log that consume no ASR or TTS resources. This is expected. They are typically OPTIONS or DESCRIBE requests the client sends to confirm service connectivity or to discover which resources are available, rather than full recognition or synthesis sessions.
A larger sample
The excerpt below shows a fuller sample of raw log output across several sessions:
