Call logging

Nuance products automatically log what happens during each call and they record utterances made during the call. The call log files include information like the length of the call, the grammars used for recognition, and the performance results for each recognition request.

Use the call logs to evaluate application performance (transaction success) and understanding the cause of user difficulties or application errors. With the logs, you can reconstruct events during a telephone call including the audio waveforms of utterances spoken by callers. For example, use log files to:

  • Analyze how callers use your application.
  • Get feedback on the usability of an application.
  • Identify problems with vocabulary, prompts, callflow, recognition accuracy, and synthesis.

You can inspect call logs directly (in a text editor) or with the Nuance Insights for IVR tool (installed and documented separately).

Every component writes logs

The system writes a call log for each application session. The logs combine information from every component in the system:

  • Voice browser events. For example, marking the start and end the call.
  • Session events written by Nuance Speech Server. This can include audio recordings of callers’ speech (utterances).
  • Application events written by the speech application. For example, the start and end of user transactions. Each application is responsible for adding its significant events to the logging stream. See Application-defined logging events.
  • Application events written by subcomponents such as Nuance Dialog Modules, if your application uses them.
  • Recognition results written by Nuance Recognizer.
  • Recognition results written by the Krypton recognition engine.
  • Events written by the Natural Language Engine and the Nuance Text Processing Engine to support semantic interpretation.
  • Text-to-speech events written by Nuance Vocalizer.

Different components can generate separate call logs for the same calls, the separate pieces need to be combined to get a complete record of the calls. For example, the Nuance Speech Serveralways generates calls logs with recognition-specific information, and if you’re running a Nuance packaged application in your deployment, the application service can generate logs with application-specific information.

How the call log server processes logs

Nuance Speech Server includes a call log server that merges events written by all Speech Suite services that participate in each each session (telephone call). It stores those unified logs with all other session files in a single directory (see Call log directories and files).

Each call log file includes information such as the length of the call, the grammars used for recognition, prompts, and the performance results for each recognition request. In addition, you can use Management Station to merge events from other components (not Speech Suite) such as the VoiceXML browser and Nuance Dialog Modules.

This unified model provides:

  • On-the-fly merging of the call logs, and quick access to audio files.
  • A central location for additional in-memory processing of the call logs (typically for encryption or compression).

The call log server caches all log data before writing it to the disk. The cache size is limited per session for better memory management on the call log server. If the cache is full, all requests are blocked until some space is freed in the cache.

The call log server sorts the call log text entries in the cache based on the time they are generated. To compute properly the generation moment of each call log entry, each entry comes with its processing delay. The average network latency is also added to that processing delay. Then the time of each call log text entries is translated to server time, subtracting the processing (and latency) times from the receiving time on the server. Since the processing of the text entries is measured in relative time, there is no need to synchronize the clocks on the client and the server.

Text entries stay a minimum time in the cache before being written to disk to guarantee proper merging of the remote text call log entries. However, utterance data is immediately written down to the disk from the cache.

The server applies post-processing filters/plugins to the call-log data before writing it to storage.

The call log client caches all log data before transmitting it to the server, to prevent data loss if the connection fails.

For information on configuring call logging, for example, to set company-/application- specific logging, to protect confidential information, and to automatically clean up log file directories, see Configuring call logging.

Confidential information

By default, the system writes all output to the call logs including sensitive and confidential information such as customer PINs, passwords, or secure account information. You can hide this information by enabling logging security in your application. See Protecting confidential data.

You can make information in log files or whole call recordings unreadable to protect it from unauthorized access. (This affects the confidential parts of logs and not the entire files.) Specific fields in call logs are either:

  • Human readable: All data visible to all
  • Suppressed: Some key contexts missing (not written; replaced by "_SUPPRESSED")
  • Encrypted: Data written but encrypted

You can protect confidential data as follows:

  • Control the logging data flow. The system stops writing log data.
  • Data encryption. The system encrypts confidential data in log files. It does not encrypt other data, which is needed for normal monitoring, troubleshooting, and tuning.
  • When encrypting text in a call log, the system writes the SECURE token (SECURE=true), and replaces the confidential data with the string "_ENCRYPTED."
  • Data suppression. The system avoids writing specific strings.
  • When suppressing text in a call log, the systems writes the SECURE token (SECURE=true), and replaces the confidential data with the string "_SUPPRESSED."
  • Data masking. The system replaces confidential text strings in logs with an "XXX" mask. Applications can mask an entire or partial string. For example, you can mask all but the last four digits of a credit card number.
  • Audio suppression. The system avoids saving specific audio waveforms.
  • Audio silence in whole call recording (WCR) waveforms. When applications identify sensitive moments of a session, the system inserts silence in the resulting waveforms.

For more information, see Protecting confidential data.

Note: Communications between the call log clients and the server are not normally encrypted, because the whole environment and network are supposed to be secure. However, you can optionally supplement the TCP connection with a separate TLS port. See Configuring transport parameters.