Reports: Difference between revisions

From VoIPmonitor.org
(Add troubleshooting section for scheduled reports with timezone mismatch information)
(Add additional CSV export columns: short calls, SEER, quality metrics (VG-2987))
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Reports ==
{{DISPLAYTITLE:Reports}}
[[Category:GUI manual]]


Reports include daily reports, instant report generator, call summary, QoS report, and CDR simplified view.
= Reports =


=== Daily Email Reports ===
VoIPmonitor provides multiple report types for analyzing call data, quality metrics, and generating scheduled summaries.


Daily email reports resemble alerts but send once per day and can include daily charts based on criteria.
<kroki lang="mermaid">
%%{init: {'flowchart': {'nodeSpacing': 15, 'rankSpacing': 25}}}%%
flowchart LR
    subgraph Sources
        CDR[(CDR DB)]
        RTP[(RTP Stats)]
    end
    subgraph Types
        Daily[Daily Email]
        Gen[Report Generator]
        Sum[Call Summary]
        QoS[QoS Report]
    end
    subgraph Output
        Email[Email]
        CSV[CSV Export]
        GUI[GUI Display]
    end
    CDR --> Daily & Gen & Sum & QoS
    RTP --> Daily & QoS
    Daily --> Email
    Gen --> GUI & CSV
    Sum --> GUI & CSV
    QoS --> GUI
</kroki>


[[File:reports-daily.png]]
{| class="wikitable"
|-
! Report Type !! Purpose !! Output
|-
| Daily Email Reports || Scheduled summaries (RTP, CPS, charts, CDR summary) || Email
|-
| Report Generator || Ad-hoc historical analysis || GUI, CSV
|-
| Call Summary || Aggregated by IP (ASR, ACD, duration) || GUI, CSV
|-
| QoS Report || RTP quality metrics (MOS, jitter, loss) || GUI
|-
| CDR Simplified || Quick CDR view with filters || GUI
|}


==== RTP Daily Report ====
== Prerequisites ==
 
Reports require a working cron job for scheduled delivery. See [[Alerts#Email_Configuration|Alerts - Email Configuration]] for cron setup and MTA requirements.
 
{{Note|1=For scheduled reports, ensure <code>cleandatabase</code> in <code>/etc/voipmonitor.conf</code> exceeds your longest report period (e.g., >30 days for monthly reports). See [[Data_Cleaning]].}}
 
== Daily Email Reports ==
 
Navigate to '''GUI > Reports > Configure Daily Reports''' to create scheduled reports.
 
=== RTP Daily Report ===


Summarizes RTP metrics: MOS, packet loss, jitter, delay (PDV), duration, one-way, and missing RTP.
Summarizes RTP metrics: MOS, packet loss, jitter, delay (PDV), duration, one-way, and missing RTP.


[[File:Alert-sentalerts.png]]
=== CPS Daily Report ===
 
Reports maximum and average Calls Per Second (CPS) over the selected period.
 
=== Daily Charts Report ===
 
Generates visual charts of call metrics filtered by criteria (SIP trunks, numbers, IP).
 
'''Time Range Settings:'''
{| class="wikitable"
|-
! Period !! Configuration
|-
| Daily || <code>"last day 1"</code>
|-
| Weekly || <code>"this week from Monday"</code> + enable <code>"previous interval"</code>
|-
| Monthly || <code>"previous month"</code>
|}
 
'''Creating Chart Templates:'''
# Navigate to '''GUI > Reports > Configure Daily Reports > Charts'''
# Click chart creation button
# Configure filters (CDR criteria, IP addresses, numbers)
# Select metrics (MOS, packet loss, jitter, concurrent calls)
# Save as '''chart template'''
# Attach template to scheduled report
 
{{Tip|Schedule resource-intensive reports (30-day charts) during off-peak hours to reduce database load.}}
 
=== CDR Summary Report ===
 
Daily summary grouped by various criteria with optional billing costs.
 
'''Summary Types:'''
{| class="wikitable"
|-
! Type !! Description
|-
| source IP / destination IP || Group by IP address
|-
| source number / destination number || Group by telephone number
|-
| Called/Caller number group || Group by predefined [[Groups|Telephone Number Groups]]
|}


==== Daily Charts Report ====
'''Configuration:'''
# Select '''CDR summary''' as report type
# Choose '''Summary type''' from dropdown
# Filter by SIP response in '''Common tab''' (e.g., <code>%OK%</code>, <code>404%</code>)
# Enable '''Price columns''' for billing costs (requires [[Billing|Billing Configuration]])


Generates daily chart statistics. Create multiple charts per report, filtered by CDR criteria (e.g., SIP trunks).
{{Note|1=For multiple SIP response codes, create '''separate reports''' for each code pattern. A single report cannot aggregate multiple response types.}}


[[File:report-dailychart.png]]
'''NPA-NXX Prefix Reporting:'''
# Create telephone number groups in '''GUI > Groups > Tel. numbers''' for each prefix
# Include country code variants (e.g., both <code>1202333</code> and <code>202333</code>)
# Use '''Called number group''' summary type
# Select groups in filter field


Chart creation dialog allows custom charts with filters on numbers, IP, RTP stats.
== Report Generator ==


[[File:report-chartedit.png]]
'''GUI > Reports > Report Generator''' - Creates ad-hoc reports from historical data.


Preview results or send test emails via buttons.
* '''"Only CDR with RTP"''' checkbox: Reports only connected calls (ASR always 100%)
* Filter by date range, IP, numbers, QoS parameters
* Export results to CSV


[[File:report-chartbuttons.png]]
{{Warning|1='''Limitation:''' Cannot combine "group by customer" AND "destination country" filters in one report. Create separate reports for each customer with both filters applied.}}


[[File:report-preview.png]]
== Call Summary ==


=== Report Generator ===
'''GUI > Reports > Call Summary''' - Overview grouped by source/destination IP.


Creates reports from historical data by criteria.
'''Key Metrics:''' ASR, ACD, NER, total duration, call count.


* "Only CDR with RTP" checkbox: Reports connected calls only (ASR always 100%) or all CDRs.
=== Export Column Reference ===


[[File:report-generatorform.png]]
'''Basic Metrics:'''
{| class="wikitable"
|-
! Column !! Description
|-
| <code>sipip</code> || Source IP address
|-
| <code>cnt_all</code> / <code>cnt_connected</code> || Total / connected CDR count
|-
| <code>duration_all</code> || Sum of connected seconds
|-
| <code>asr_all</code> / <code>acd_all</code> / <code>ner_all</code> || Answer Seizure Ratio / Avg Call Duration / Network Effectiveness Ratio
|-
| <code>mos_all</code> || MOS average (min of caller/called)
|-
| <code>pdd_all</code> || Post Dial Delay (ms)
|-
| <code>jitter_all</code> / <code>delay_all</code> || Average jitter / median PDV
|-
| <code>packets_lost_all</code> || Lost packets count
|}


Results table appears below form after selecting date, IP ranges, QoS parameters.
'''RTCP Columns:''' <code>rtcp_maxfr</code>, <code>rtcp_avgfr</code>, <code>rtcp_maxjitter</code>, <code>rtcp_avgjitter</code>, <code>rtcp_maxrtd</code>, <code>rtcp_avgrtd</code>


[[File:reports-results.png]]
'''MOS XR Columns:''' <code>mos_xr_avg_all</code>, <code>mos_xr_min_all</code>, <code>mos_xr_avg_caller_all</code>, <code>mos_xr_avg_called_all</code>


=== Call Summary ===
'''Silence/Clipping Columns''' (requires [[Silence_detection|silence detection]]): <code>mos_silence_avg_all</code>, <code>silence_all</code>, <code>silence_end_all</code>, <code>clipping_all</code>
'''Short Call Metrics:'''
{| class="wikitable"
|-
! Column !! Description
|-
| <code>short_20</code> || Calls shorter than 20 seconds
|-
| <code>short_60</code> || Calls shorter than 60 seconds
|-
| <code>short_180</code> || Calls shorter than 180 seconds
|}


Overview grouped by source/destination IPs, focusing on signaling metrics: ASR, ACD, total duration, call count. Toolbar filters by date range, source/destination numbers.
'''SEER (Session Effectiveness Ratio):'''
{| class="wikitable"
|-
! Column !! Description
|-
| <code>seer_all</code> || Session Effectiveness Ratio - measures successful session establishment
|-
| <code>seer_invite</code> || SEER for INVITE transactions
|-
| <code>seer_bye</code> || SEER for BYE transactions
|}


[[File:reports-callsummary.png]]
'''Additional Quality Metrics:'''
{| class="wikitable"
|-
! Column !! Description
|-
| <code>mos_min_all</code> || Minimum MOS score across all calls
|-
| <code>packet_loss_perc_all</code> || Packet loss percentage
|-
| <code>out_of_order_all</code> || Out-of-order packets count
|}


==== Description of the columns in the export ====
''New in 2026.1''
== QoS Report ==


<pre>
'''GUI > Reports > QoS''' - Similar to Call Summary but emphasizes RTP metrics.
sipip - source ip address
cnt_all - count of CDRs
cnt_connected - count of connected CDRs
duration_all - sum of connected seconds
acd_all - Average call duration
asr_all - Answer Seizure Ratio
ner_all - Network effectiveness ratio
seer_all - Session Establishment Effectiveness Ratio
short_60 - ratio in % of the CDRs with connect duration shorter 60s
short_20 - ratio in % of the CDRs with connect duration shorter 20s
mos_all - Mean Opinion Score (average) average (min from caller/called)
response_time_100_all - response time from invite to 100/183 in ms
mos_xr_avg_all - MOS XR average min of (caller/called)
mos_xr_avg_caller_all - MOS XR average for caller
mos_xr_avg_called_all - MOS XR average for calle
mos_xr_avg_caller_all - MOS XR average for caller
mos_xr_avg_called_all - MOS XR average for calle
mos_xr_min_all - MOS XR minimal (caller/called)
mos_xr_min_caller_all - MOS XR minimal for stream from caller side
mos_xr_min_called_all - MOS XR minimal for stream from called side
mos_silence_avg_all - MOS silence ..(is counted only when enabled - https://www.voipmonitor.org/doc/Silence_detection)
mos_silence_avg_caller_all - MOS silence stream from caller..
mos_silence_avg_called_all - MOS silence stream from called..
mos_silence_min_all - MOS minimal
mos_silence_min_caller_all - ..
mos_silence_min_called_all - ..
mos_lqo_caller_all - MOS listening quality objective caller stream
mos_lqo_called_all - MOS listening quality objective cakked stream
pdd_all - Post dial delay (time necessary to hear the announcement from INVITE request)
packets_lost_all - lost packets
jitter_all - average RTP jitter (max from caller/called)
delay_all - average of median of jitter (in CDR view detail grid X PDV in ms)
rtcp_maxfr - maximum fraction loss reported in rtcp packets
rtcp_maxjitter - maximum jitter reported in rtcp packets
rtcp_avgfr - average fraction loss reported
rtcp_avgjitter - average jitter reported in RTCP packets
rtcp_maxrtd - max round trip delay in ms
rtcp_avgrtd - average round trip delay in ms
silence_all - in percent how many silence was in the call
silence_end_all - in seconds how long there was silence before BYE packet
clipping_all - Number of clipped frames (clipped frame has the highest volume) - perceived as audible clicks - this value is shown in cdr detail table. It can be filtered and used in charts. Must be enabled in voipmonitor.conf
sip_ip - Same as sipip
sip_hostname - when db ip lookup enabled in settings it will show the name defined for that IP
sip_hostname_color - It is possible to set the color of the record in db ip lookup
id - is IP address with use of underscores instead of IPs
</pre>


=== QoS Report ===
'''Multi-hop Troubleshooting:'''
# Set time range for issue period
# Use "per caller IP" or "per called IP" filter
# Compare MOS scores across IPs to identify degraded segment
# Combine with dashboard MOS panels for visual timeline


Similar to call summary but emphasizes RTP stats: MOS, jitter, delay, packet loss. Toolbar filters by date range, IP range.
== Regulatory Reporting ==


[[File:reports-qos.png]]
{| class="wikitable"
|-
! Metric !! Column !! Description
|-
| Answer Seizure Ratio || <code>asr_all</code> || % of calls connecting successfully
|-
| Post Dial Delay || <code>pdd_all</code> || Call setup time (ms)
|-
| Mean Opinion Score || <code>mos_all</code> || Voice quality (1-5)
|}


=== Call Detail Records ===
{{Note|'''Dropped Call Ratio (DCR)''' is NOT available. Submit a feature request with your specific formula if needed.}}


Simplified CDR interface showing IPs and numbers, with quick toolbar filters.
== Parallel Processing Configuration ==


[[File:reports-cdr.png]]
The <code>cron/reports</code> setting controls parallel report generation.


=== CSV Export via Crontab Scheduler ===
'''Location:''' GUI > Settings > System Configuration > Advanced


You can export CDRs to a local directory on a schedule instead of (or in addition to) receiving them via email. This is useful for automated processing, archiving, or integration with external systems.
{| class="wikitable"
|-
! Value !! When to Use
|-
| '''1''' (default) || Sequential processing
|-
| '''2-4''' || Reports delayed, database has capacity
|-
| '''4-8''' || Heavy report load, standard database
|-
| '''8-16''' || Dedicated database server
|}


==== How to Configure CSV Export ====
{{Note|1=<code>cron/reports</code> controls report/alert generation. <code>parallel tasks</code> controls audio merging (unrelated).}}


Follow these steps to set up automatic CSV export:
== CSV Export via Crontab ==


1. '''Set the Export Folder'''
# Set '''Folder for export CSV''' in '''GUI > Settings > System Configuration > Advanced'''
  * Navigate to '''GUI > Settings > System Configuration > Advanced'''
# Create task in '''GUI > Settings > Crontab Scheduler'''
  * Set the '''"Folder for export CSV"''' parameter to your desired directory path (e.g., <code>/var/backups/cdrs</code>)
# Ensure web server user has write access to export folder
  * Optionally set a '''"CSV name prefix"''' to add a prefix to exported filenames
  * Optionally set '''"Delete CSV after X days"''' to enable automatic cleanup


2. '''Create a Crontab Scheduler Task'''
For custom formats, use [[WEB_API|Web API]] instead.
  * Navigate to '''GUI > Settings > Crontab Scheduler'''
=== CSV Export Precision ===
  * Create a new task and configure:
    ** Type: Select the report type (e.g., Call Summary, Report Generator)
    ** Schedule: Set the frequency (hourly, daily, weekly, or custom cron expression)
    ** Report parameters: Configure filters (date range, IP ranges, etc.)
    ** Export format: CSV files will be generated


3. '''File Generation'''
'''Location:''' GUI > Settings > System Configuration > Advanced > '''precision for float in CSV export'''
  * When the crontab task runs, a CSV file is generated in the specified export folder
  * Filename format includes the CSV name prefix (if set) and timestamp
  * Files accumulate in the folder until automatically deleted (if "Delete CSV after X days" is set)


==== Notes and Requirements ====
Controls decimal places for floating-point values in CSV exports (e.g., MOS scores, percentages).
* The web server user (typically <code>www-data</code> or <code>apache</code>) must have write permissions to the export folder
* Ensure sufficient disk space is available for accumulating CSV files
* For custom export formats or complex processing requirements, consider using the [[WEB_API]] instead


=== Troubleshooting Scheduled Reports ===
{| class="wikitable"
|-
! Value !! Example Output !! Use Case
|-
| '''2''' (default) || <code>4.12</code> || Standard reporting
|-
| '''4''' || <code>4.1234</code> || Detailed analysis
|-
| '''6''' || <code>4.123456</code> || Scientific/regulatory reporting
|}


If scheduled reports are not being sent automatically, but generating them manually works correctly, check the following common causes:
''New in 2026.1''
== Troubleshooting ==


==== Timezone Mismatch between GUI and OS ====
=== Reports Timeout for Large Date Ranges ===


The GUI and server OS must use the same timezone setting. If they differ, scheduled tasks may run at the wrong time or not appear to run at all.
'''Symptom:''' Reports take 30+ seconds then timeout, especially with IP group filters.


**Symptoms:**
'''Solution:''' Disable the '''"include proxy"''' checkbox next to caller/called IP group field in report configuration. This option causes expensive database joins.
* Manual report generation works immediately
* Scheduled reports in the GUI Crontab Scheduler appear configured but are not sent at the expected time
* Reports may appear to be "delayed" or "skipped"


**Solution:**
=== Timezone Mismatch ===


1. '''Check the GUI timezone setting'''
'''Symptom:''' Scheduled reports run at wrong time or don't trigger.
  * Navigate to '''GUI > Settings > System Configuration > National'''
  * Note the value in the '''Timezone''' field (e.g., "Europe/Prague", "America/New_York")


2. '''Check the OS timezone'''
'''Solution:'''
  * Log into the server's command line interface (CLI)
<syntaxhighlight lang="bash">
  * Run the following command to see the current system timezone:
# Check OS timezone
    <pre>
timedatectl
date
</pre>
  * The output will show the server's date, time, and timezone


3. '''Compare and align the timezones'''
# Align with GUI (Settings > System Configuration > National > Timezone)
  * If the GUI and OS timezones do not match, update one to match the other
  * To change the OS timezone (Debian/Ubuntu example):
    <pre>
timedatectl set-timezone Europe/Prague
timedatectl set-timezone Europe/Prague
</pre>
</syntaxhighlight>
  * To change the GUI timezone, edit the setting in '''Settings > System Configuration > National > Timezone'''
 
=== Blank Reports During Daylight Savings Time ===
 
'''Symptom:''' Reports empty when using named timezones (e.g., <code>America/Los_Angeles</code>) during DST transitions.
 
'''Workaround:''' Change GUI timezone to fixed UTC offset (e.g., <code>GMT-8</code> instead of <code>America/Los_Angeles</code>).
 
=== Monthly Reports Fail in Distributed Setups ===
 
'''Symptom:''' Monthly reports don't generate in multi-sensor environments.
 
'''Solution:''' Configure partition operations to prevent database lock conflicts:
 
'''On sniffer sensors:'''
<syntaxhighlight lang="ini">
# /etc/voipmonitor.conf
disable_partition_operations = yes
</syntaxhighlight>
 
'''On main server:'''
<syntaxhighlight lang="ini">
# /etc/voipmonitor.conf
disable_partition_operations = no
partition_operations_enable_fromto = 4-5
</syntaxhighlight>
 
{{Warning|1=Avoid scheduling reports during partition maintenance window (default 01:00-01:10 AM). Schedule 15-30 minutes before or after.}}
 
=== Missing daily_reports_sended Table ===
 
'''Symptom:''' Cannot enable/create daily reports in GUI.
 
'''Solution:'''
<syntaxhighlight lang="sql">
CREATE TABLE `daily_reports_sended` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `daily_reports_id` int(11) NOT NULL,
  `day` date NOT NULL,
  `subject` text DEFAULT NULL,
  `content` mediumtext DEFAULT NULL,
  `send_time` datetime DEFAULT NULL,
  `send_email` text DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk__daily_reports_sended__daily_reports` (`daily_reports_id`),
  CONSTRAINT `fk__daily_reports_sended__daily_reports`
    FOREIGN KEY (`daily_reports_id`) REFERENCES `daily_reports` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
</syntaxhighlight>
 
=== Email Shows "Sent" But Not Delivered ===
 
'''Symptom:''' GUI shows success but email never arrives.
 
'''Solution:''' Check for missing MTA:
<syntaxhighlight lang="bash">
# Check error log
tail -n 50 /var/log/httpd/error_log | grep sendmail
 
# Install MTA if missing
apt-get install postfix  # Debian/Ubuntu
yum install postfix      # RHEL/CentOS
</syntaxhighlight>
 
== See Also ==


4. '''Verify system cronjob is configured'''
* [[Alerts]] - Email alert configuration and cron setup
  Even with correct timezones, the system must have a crontab entry to process scheduled tasks:
* [[Data_Cleaning]] - Data retention settings
  * Check the root crontab:
* [[Silence_detection]] - Enable silence/clipping metrics
    <pre>
* [[WEB_API]] - Programmatic report access
crontab -l
* [[Groups]] - IP and telephone number groups
</pre>
  * You should see an entry like:
    <pre>
* * * * * root php /var/www/html/php/run.php cron
</pre>
  * If missing, add it using <code>crontab -e</code> and reload cron with <code>killall -HUP cron</code>


==== Other Common Causes ====


* '''Email delivery issues:''' If reports are being generated but not received, check your mail transfer agent (MTA) logs and mail queue:
  <pre>
mailq
tail /var/log/mail.log
</pre>
* '''Incorrect schedule:''' Verify the crontab scheduler task has a valid "Next run" time in the future
* '''Stuck tasks:''' Try editing and saving the task again to reset its internal state


=== AI Summary for RAG ===
== AI Summary for RAG ==


'''Summary:''' This article describes VoIPmonitor's reports features, including daily email reports (RTP summaries, charts), report generator for historical data, call summary by IPs, QoS-focused reports, simplified CDR view, and CSV export via crontab scheduler for automated local file generation. The troubleshooting section covers timezone mismatches between GUI and OS as a common cause of scheduled reports not being sent (manual generation works but automated sends fail at expected times). It also covers system cronjob verification, email delivery issues, and stuck tasks.
'''Summary:''' VoIPmonitor reports include Daily Email Reports (RTP, CPS, charts, CDR summary), Report Generator for ad-hoc analysis, Call Summary grouped by IP, QoS Report for RTP metrics, and simplified CDR view. CDR Summary supports grouping by source/destination IP, telephone numbers, or predefined number groups. Regulatory metrics available: ASR (<code>asr_all</code>), PDD (<code>pdd_all</code>), MOS (<code>mos_all</code>); DCR is NOT available. The <code>cron/reports</code> setting (GUI > Settings > Advanced) controls parallel report generation: default 1 (sequential), increase to 2-8 for delayed reports, or decrease for database load issues. Key limitation: cannot combine customer grouping AND country filtering in one report. Common fixes: disable "include proxy" checkbox for timeout issues, use fixed UTC offset for DST problems, configure <code>disable_partition_operations</code> for multi-sensor monthly report failures.


'''Keywords:''' daily reports, RTP report, charts report, report generator, call summary, QoS report, CDR view, ASR, ACD, MOS, jitter, delay, packet loss, CSV export, crontab scheduler, automatic export, export folder, troubleshooting, timezone mismatch, scheduled reports not sent, manual report works, OS timezone, GUI timezone, system cron, run.php, email delivery, mail queue
'''Keywords:''' reports, daily reports, RTP report, CPS, charts, CDR summary, report generator, call summary, QoS report, ASR, ACD, NER, MOS, PDD, CSV export, cron/reports, parallel processing, regulatory reporting, timezone, DST, daylight savings, partition operations, include proxy, timeout, NPA-NXX, telephone number groups


'''Key Questions:'''
'''Key Questions:'''
* What are daily email reports in VoIPmonitor?
* What types of reports does VoIPmonitor provide?
* How do RTP daily reports work?
* How to configure daily email reports?
* How to create daily charts reports?
* How to fix report timeout for large date ranges?
* What is the report generator used for?
* What is the include proxy checkbox and why disable it?
* What metrics does call summary provide?
* How to configure parallel report processing (cron/reports)?
* How does QoS report differ from call summary?
* Why are reports blank during daylight savings time?
* What is the simplified CDR interface?
* How to fix monthly reports failing in distributed setups?
* How to export CDRs to a local directory automatically?
* What regulatory metrics are available (ASR, PDD, MOS)?
* How to configure CSV export via crontab scheduler?
* How to group CDR summary by telephone number groups?
* Where to set the export folder for CSV files?
* How to export reports to CSV automatically?
* How to set automatic cleanup of CSV files?
* Why are my scheduled reports not being sent automatically?
* Why do scheduled reports work manually but fail automatically?
* How do I fix timezone mismatch between GUI and OS?
* What causes scheduled reports to not run at the expected time?
* How do I check the system cronjob for scheduled reports?

Latest revision as of 15:47, 19 January 2026


Reports

VoIPmonitor provides multiple report types for analyzing call data, quality metrics, and generating scheduled summaries.

Report Type Purpose Output
Daily Email Reports Scheduled summaries (RTP, CPS, charts, CDR summary) Email
Report Generator Ad-hoc historical analysis GUI, CSV
Call Summary Aggregated by IP (ASR, ACD, duration) GUI, CSV
QoS Report RTP quality metrics (MOS, jitter, loss) GUI
CDR Simplified Quick CDR view with filters GUI

Prerequisites

Reports require a working cron job for scheduled delivery. See Alerts - Email Configuration for cron setup and MTA requirements.

ℹ️ Note: For scheduled reports, ensure cleandatabase in /etc/voipmonitor.conf exceeds your longest report period (e.g., >30 days for monthly reports). See Data_Cleaning.

Daily Email Reports

Navigate to GUI > Reports > Configure Daily Reports to create scheduled reports.

RTP Daily Report

Summarizes RTP metrics: MOS, packet loss, jitter, delay (PDV), duration, one-way, and missing RTP.

CPS Daily Report

Reports maximum and average Calls Per Second (CPS) over the selected period.

Daily Charts Report

Generates visual charts of call metrics filtered by criteria (SIP trunks, numbers, IP).

Time Range Settings:

Period Configuration
Daily "last day 1"
Weekly "this week from Monday" + enable "previous interval"
Monthly "previous month"

Creating Chart Templates:

  1. Navigate to GUI > Reports > Configure Daily Reports > Charts
  2. Click chart creation button
  3. Configure filters (CDR criteria, IP addresses, numbers)
  4. Select metrics (MOS, packet loss, jitter, concurrent calls)
  5. Save as chart template
  6. Attach template to scheduled report

💡 Tip: Schedule resource-intensive reports (30-day charts) during off-peak hours to reduce database load.

CDR Summary Report

Daily summary grouped by various criteria with optional billing costs.

Summary Types:

Type Description
source IP / destination IP Group by IP address
source number / destination number Group by telephone number
Called/Caller number group Group by predefined Telephone Number Groups

Configuration:

  1. Select CDR summary as report type
  2. Choose Summary type from dropdown
  3. Filter by SIP response in Common tab (e.g., %OK%, 404%)
  4. Enable Price columns for billing costs (requires Billing Configuration)

ℹ️ Note: For multiple SIP response codes, create separate reports for each code pattern. A single report cannot aggregate multiple response types.

NPA-NXX Prefix Reporting:

  1. Create telephone number groups in GUI > Groups > Tel. numbers for each prefix
  2. Include country code variants (e.g., both 1202333 and 202333)
  3. Use Called number group summary type
  4. Select groups in filter field

Report Generator

GUI > Reports > Report Generator - Creates ad-hoc reports from historical data.

  • "Only CDR with RTP" checkbox: Reports only connected calls (ASR always 100%)
  • Filter by date range, IP, numbers, QoS parameters
  • Export results to CSV

⚠️ Warning: Limitation: Cannot combine "group by customer" AND "destination country" filters in one report. Create separate reports for each customer with both filters applied.

Call Summary

GUI > Reports > Call Summary - Overview grouped by source/destination IP.

Key Metrics: ASR, ACD, NER, total duration, call count.

Export Column Reference

Basic Metrics:

Column Description
sipip Source IP address
cnt_all / cnt_connected Total / connected CDR count
duration_all Sum of connected seconds
asr_all / acd_all / ner_all Answer Seizure Ratio / Avg Call Duration / Network Effectiveness Ratio
mos_all MOS average (min of caller/called)
pdd_all Post Dial Delay (ms)
jitter_all / delay_all Average jitter / median PDV
packets_lost_all Lost packets count

RTCP Columns: rtcp_maxfr, rtcp_avgfr, rtcp_maxjitter, rtcp_avgjitter, rtcp_maxrtd, rtcp_avgrtd

MOS XR Columns: mos_xr_avg_all, mos_xr_min_all, mos_xr_avg_caller_all, mos_xr_avg_called_all

Silence/Clipping Columns (requires silence detection): mos_silence_avg_all, silence_all, silence_end_all, clipping_all Short Call Metrics:

Column Description
short_20 Calls shorter than 20 seconds
short_60 Calls shorter than 60 seconds
short_180 Calls shorter than 180 seconds

SEER (Session Effectiveness Ratio):

Column Description
seer_all Session Effectiveness Ratio - measures successful session establishment
seer_invite SEER for INVITE transactions
seer_bye SEER for BYE transactions

Additional Quality Metrics:

Column Description
mos_min_all Minimum MOS score across all calls
packet_loss_perc_all Packet loss percentage
out_of_order_all Out-of-order packets count

New in 2026.1

QoS Report

GUI > Reports > QoS - Similar to Call Summary but emphasizes RTP metrics.

Multi-hop Troubleshooting:

  1. Set time range for issue period
  2. Use "per caller IP" or "per called IP" filter
  3. Compare MOS scores across IPs to identify degraded segment
  4. Combine with dashboard MOS panels for visual timeline

Regulatory Reporting

Metric Column Description
Answer Seizure Ratio asr_all % of calls connecting successfully
Post Dial Delay pdd_all Call setup time (ms)
Mean Opinion Score mos_all Voice quality (1-5)

ℹ️ Note: Dropped Call Ratio (DCR) is NOT available. Submit a feature request with your specific formula if needed.

Parallel Processing Configuration

The cron/reports setting controls parallel report generation.

Location: GUI > Settings > System Configuration > Advanced

Value When to Use
1 (default) Sequential processing
2-4 Reports delayed, database has capacity
4-8 Heavy report load, standard database
8-16 Dedicated database server

ℹ️ Note: cron/reports controls report/alert generation. parallel tasks controls audio merging (unrelated).

CSV Export via Crontab

  1. Set Folder for export CSV in GUI > Settings > System Configuration > Advanced
  2. Create task in GUI > Settings > Crontab Scheduler
  3. Ensure web server user has write access to export folder

For custom formats, use Web API instead.

CSV Export Precision

Location: GUI > Settings > System Configuration > Advanced > precision for float in CSV export

Controls decimal places for floating-point values in CSV exports (e.g., MOS scores, percentages).

Value Example Output Use Case
2 (default) 4.12 Standard reporting
4 4.1234 Detailed analysis
6 4.123456 Scientific/regulatory reporting

New in 2026.1

Troubleshooting

Reports Timeout for Large Date Ranges

Symptom: Reports take 30+ seconds then timeout, especially with IP group filters.

Solution: Disable the "include proxy" checkbox next to caller/called IP group field in report configuration. This option causes expensive database joins.

Timezone Mismatch

Symptom: Scheduled reports run at wrong time or don't trigger.

Solution:

# Check OS timezone
timedatectl

# Align with GUI (Settings > System Configuration > National > Timezone)
timedatectl set-timezone Europe/Prague

Blank Reports During Daylight Savings Time

Symptom: Reports empty when using named timezones (e.g., America/Los_Angeles) during DST transitions.

Workaround: Change GUI timezone to fixed UTC offset (e.g., GMT-8 instead of America/Los_Angeles).

Monthly Reports Fail in Distributed Setups

Symptom: Monthly reports don't generate in multi-sensor environments.

Solution: Configure partition operations to prevent database lock conflicts:

On sniffer sensors:

# /etc/voipmonitor.conf
disable_partition_operations = yes

On main server:

# /etc/voipmonitor.conf
disable_partition_operations = no
partition_operations_enable_fromto = 4-5

⚠️ Warning: Avoid scheduling reports during partition maintenance window (default 01:00-01:10 AM). Schedule 15-30 minutes before or after.

Missing daily_reports_sended Table

Symptom: Cannot enable/create daily reports in GUI.

Solution:

CREATE TABLE `daily_reports_sended` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `daily_reports_id` int(11) NOT NULL,
  `day` date NOT NULL,
  `subject` text DEFAULT NULL,
  `content` mediumtext DEFAULT NULL,
  `send_time` datetime DEFAULT NULL,
  `send_email` text DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk__daily_reports_sended__daily_reports` (`daily_reports_id`),
  CONSTRAINT `fk__daily_reports_sended__daily_reports`
    FOREIGN KEY (`daily_reports_id`) REFERENCES `daily_reports` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Email Shows "Sent" But Not Delivered

Symptom: GUI shows success but email never arrives.

Solution: Check for missing MTA:

# Check error log
tail -n 50 /var/log/httpd/error_log | grep sendmail

# Install MTA if missing
apt-get install postfix  # Debian/Ubuntu
yum install postfix      # RHEL/CentOS

See Also


AI Summary for RAG

Summary: VoIPmonitor reports include Daily Email Reports (RTP, CPS, charts, CDR summary), Report Generator for ad-hoc analysis, Call Summary grouped by IP, QoS Report for RTP metrics, and simplified CDR view. CDR Summary supports grouping by source/destination IP, telephone numbers, or predefined number groups. Regulatory metrics available: ASR (asr_all), PDD (pdd_all), MOS (mos_all); DCR is NOT available. The cron/reports setting (GUI > Settings > Advanced) controls parallel report generation: default 1 (sequential), increase to 2-8 for delayed reports, or decrease for database load issues. Key limitation: cannot combine customer grouping AND country filtering in one report. Common fixes: disable "include proxy" checkbox for timeout issues, use fixed UTC offset for DST problems, configure disable_partition_operations for multi-sensor monthly report failures.

Keywords: reports, daily reports, RTP report, CPS, charts, CDR summary, report generator, call summary, QoS report, ASR, ACD, NER, MOS, PDD, CSV export, cron/reports, parallel processing, regulatory reporting, timezone, DST, daylight savings, partition operations, include proxy, timeout, NPA-NXX, telephone number groups

Key Questions:

  • What types of reports does VoIPmonitor provide?
  • How to configure daily email reports?
  • How to fix report timeout for large date ranges?
  • What is the include proxy checkbox and why disable it?
  • How to configure parallel report processing (cron/reports)?
  • Why are reports blank during daylight savings time?
  • How to fix monthly reports failing in distributed setups?
  • What regulatory metrics are available (ASR, PDD, MOS)?
  • How to group CDR summary by telephone number groups?
  • How to export reports to CSV automatically?