Demystifying Your Call Data: Introducing SMDR Lite

Normally I post stuff on this blog about software that someone else has written, but that changes today. I have often been frustrated by the lack of a built-in tool for producing CDR with IP Office. My frustrations peaked a couple months ago, so I wrote some tools to solve this issue. The first of these tools is a simple command-line utility that can pull SMDR data from the IP Office on an ad-hoc basis. This is perfect for pulling records when the client does not need regular CDR information. I have called this tool SMDR Lite. 

The Crucial Need for SMDR

Why bother collecting call records? SMDR data is the foundation of Call Accounting. By analyzing these records, companies can:

  1. Control Costs: Accurately track external call charges and allocate costs back to specific departments or projects.

  2. Monitor Usage: Identify peak usage times, understand trunk utilization, and plan capacity upgrades effectively.

  3. Ensure Compliance & Security: Review call logs for unauthorized usage or potential security breaches, such as toll fraud.

  4. Improve Efficiency: Analyze answer times, hold times, and missed calls to optimize staff scheduling and customer service.

How Avaya Generates SMDR Records

The Avaya IP Office doesn't just store SMDR data locally; it's designed to stream it out in a continuous, delimited format.

Each record is a single line of text containing a detailed snapshot of a call event. While Avaya includes many fields, some key pieces of information captured are:

  • Call Start Time

  • Duration (Connected Time/Ring Time)

  • Caller & Called Number

  • Direction (Inbound/Outbound)

  • Internal Device Names (e.g., extensions, groups)

  • Hold Time & Park Time

Crucially, the IP Office acts as a Client in this process. Once configured, it will actively push this stream of text data to a designated network address and port.

The Collection Mechanism: SMDR Lite as a Simple Listener

Collecting the SMDR stream requires a Server—a program that listens for the incoming connection and data. This is where SMDR Lite comes in.

SMDR Lite uses the TCP protocol to open a listening port on your Windows PC. It's designed specifically for environments where a full, complex call accounting server is overkill.

  • Non-Privileged Access: SMDR Lite defaults to port 5000. Because this is above the privileged port threshold (1024), it does not require administrative rights to run, making deployment simple and secure.

  • Real-Time Appending: As soon as a complete call record is received from the Avaya system, SMDR Lite instantly appends it as a new row to your designated CSV file.

  • Live Status: The application displays a live count of records received and the time of the last record, giving you immediate feedback that the connection is working.

Getting Started with SMDR Lite

SMDR Lite is distributed as a single, standalone executable file: smdr.exe. No Python or extra libraries are required on the target machine.

1. Running the Executable

You run the tool via the Windows Command Prompt or PowerShell:

Action

Command

Result

Default Run

smdr.exe

Listens on Port 5000, writes to smdr.csv

Change Port

smdr.exe --port 9000

Listens on the specified Port 9000

Custom Filename

smdr.exe --filename office_data.csv

Writes to office_data.csv

To exit the application gracefully at any time, simply press the Q key on your keyboard.

2. Configuring the Avaya IP Office

The final step is telling your Avaya system where to send the data:

  1. Open IP Office Manager and navigate to the System settings.

  2. Select the SMDR tab.

  3. Set the Output to SMDR Only.

  4. In the IP Address field, enter the IP address of the Windows PC running smdr.exe.

  5. In the TCP Port field, enter the port number (5000 by default) that you specified when running smdr.exe.

Save and merge the configuration, and your SMDR Lite tool will immediately begin populating your CSV file with valuable call data!

No comments:

Post a Comment