Feedback

  • Contents
 

Logging Backgrounder

The Customer Interaction Center platform is composed of software components, called subsystems. These components are written in the C++ language to maximize performance. Individual subsystems work together via a central communication hub known as the Notifier. Each subsystem is critical to the overall system, but operates independently.

This modular design logically separates each subsystem so that the system can continue operating if a subsystem ceases to function or performs abnormally. Also, if one component of the product requires an update, only the parts associated with that component are updated—the entire system does not need to be upgraded.

Customer Interaction Center saves detailed information about the operation of subsystems in log files. Logs maintain a record of processing steps completed, and record the status of a CIC subsystem at a specific point in time. The information in logs is useful for troubleshooting purposes. System administrators and support representatives often analyze logs to diagnose system behavior.

Logs have an .ininlog extension

  • The ".ininlog" extension identifies a trace log file.

  • The ".ininlog.ininlog_idx" identifies the index file of a trace log.

Other supported file formats

  • VwrLog log files.

  • .evt files created by Windows Event Log service, a Control Panel administrative tool.

  • .syslog files from any syslog-compatible source, such as telephony driver applications (Intel HMP, Dialogic, etc.).

  • .txt logs. Some telephony drivers optionally generate syslog-format files in plain ASCII text format. Log Viewer can open syslog files that have been saved in text format.

Processes, threads, and time slicing

Each CIC subsystem is a Windows process that communicates with other subsystems via threads.  To understand how Customer Interaction Center functions internally, it is important to conceptually understand processes, threads, and time slicing.

  • A process is the execution of a program. It is a collection of virtual memory space, code, data, and system resources. Each process is a distinct entity, able to execute and terminate independently of all other processes. A 32-bit application has at least one process and one thread. A processor executes threads, not processes. Prior to the introduction of multiple threads of execution, applications were all designed to run on a single thread of execution.

  • Threads are the basic unit to which an operating system allocates processor time. A thread is code that is to be serially executed within a process and more than one thread can be executing code inside a process. Each thread maintains exception handlers, a scheduling priority, and a set of structures the system uses to save the thread context until it is scheduled. The thread context includes all of the information the thread needs to seamlessly resume execution, including the thread's set of CPU registers and stack, in the address space of the thread's host process.

  • Time Slicing. A program can allocate processor time to units in its body. Each unit is then given a portion of the processor time. Even if your computer has only one processor, it can have multiple units that work at the same time. The trick is to slice processor time and give each slice to each processing unit. The smallest unit that can take processor time is called a thread. A program that has multiple threads is referred to as a multi-threaded application.

Types of logging performed