Call Detail Record - CDR: Difference between revisions

From VoIPmonitor.org
Jump to navigation Jump to search
No edit summary
 
Line 1: Line 1:
= CDR =
{{DISPLAYTITLE:User Guide: The CDR View}}


CDR shows all saved and finished calls in the database cdr table. The CDR main window is divided to the CDR list and Dashboard at the bottom. Dashboard can be resize or hiden.  
'''This guide is a comprehensive tour of the main Call Detail Record (CDR) interface in the VoIPmonitor GUI. It explains every section, button, and feature, from searching for calls to analyzing their quality in detail.'''


== Understanding the Main CDR View ==
The CDR (Call Detail Record) view is the central hub for exploring your captured call data. It is comprised of three main sections:
#'''The CDR List:''' The main table displaying a paginated list of all finished calls.
#'''The Button Panel:''' A toolbar for accessing key functions like filtering, charting, and exporting.
#'''The Dashboard:''' A set of panels at the bottom that provide aggregated statistics for the currently displayed data.


[[File:Cdr.png]]
[[File:Cdr.png|The main CDR View, showing the CDR list and the dashboard panels below.]]


== The CDR List ==
This section details the components of the main call list, from the title bar to the information in each row.


=== Title Bar & Date Filter ===
At the very top, the title bar displays the current time range for the calls being shown. You can click on the dates to quickly change the filter.
''Note: This quick date filter can be disabled on a per-user basis in user settings.''


= CDR list window =
[[File:Cdr-titlebar.png|The title bar with a quick date range filter.]]


=== Button Panel ===
This toolbar provides access to the most important interactive features.


[[File:Cdr-list.png]]
[[File:Cdr-buttonpanel.png|The main button panel for interacting with the CDR list.]]


== Title bar ==
==== 1. Filter Form ====
This is the most powerful feature for finding specific calls. Clicking this button opens a detailed search form with two main tabs.


CDR list starts with Title bar where the usercan quickly filter calls based on date range. (please note that this date range will not be active if you disabled it in user preferences).  
===== Common Tab =====
This tab contains filters for general call attributes and participant information.


[[File:Cdr-titlebar.png]]
[[File:Cdr-filtercommon.png|The "Common" tab in the advanced filter form.]]


== Button panel ==
*'''Participant Filters:''' Search by `Caller/Called Number`, `Caller/Called IP`, or `Caller/Called Domain`. You can use the `%` character as a wildcard (e.g., `222%` finds all numbers starting with 222). You can also use commas for multiple values and `!` for negation (e.g., `222%, !223%`).
*'''Group Filters:''' Search by pre-defined `Caller/Called Groups` or `IP Groups`.
*'''Call Attribute Filters:''' Filter by `Call Duration`, `Codec`, or `PDD` (Post-Dial Delay) ranges.
*'''SIP Filters:''' Filter by `Last SIP Response Code` (e.g., `487`, or `4%` for all 4xx codes), `SIP Agent` (phone type/firmware), or `Call-ID`.
*'''Other Filters:''' You can also filter by the `Sensor` that captured the call or find all `Interrupted` calls (those without a proper BYE).


Below the CDR title is the button panel where you can list through CDR pages and access filters and other features
===== RTP Tab =====
This tab allows you to find calls based on specific Quality of Service (QoS) metrics. This is essential for troubleshooting audio quality issues.


[[File:Cdr-buttonpanel.png]]
[[File:Cdr-rtptab.png|The "RTP" tab for filtering by quality metrics.]]


=== Filter Form button ===
*'''RTCP Metrics:''' Filter by `Jitter` or `Fraction Loss` values reported by the endpoints themselves via RTCP.
*'''MOS:''' Find all calls with a Mean Opinion Score '''lower than''' a specified value.
*'''PDV (Jitter):''' Find calls with a specific number of `Packet Delay Variation` events in different time intervals (e.g., find all calls with at least 10 packets delayed by more than 120ms).
*'''Loss:''' Find calls based on patterns of consecutive packet loss.
*'''Silence & Clipping:''' If enabled on the sensor, you can find calls with a certain percentage of silence or a specific number of clipped audio frames.


clicking on Filter Form button shows an advanced Search form with two tabs on top - “common” and “RTP”. All search parameters can be saved as a template for repetitive usage which you can find under the quick filters button.  
==== 2. Quick Filters ====
This dropdown provides shortcuts for finding problematic calls (e.g., "Worst Calls by Loss") and gives you access to your saved filter templates.


==== Common tab ====
[[File:Cdr-quickfiltermenu.png|The Quick Filters menu.]]


[[File:Cdr-filtercommon.png]]
==== 3. Menu ====
This menu contains administrative actions.
*'''Delete:''' Delete selected CDRs and their associated files (PCAPs, audio).
*'''Export CSV:''' Export the current view of CDRs to a CSV file.


* Date range filters CDR based on Date and/or Hour/Minute criteria.
[[File:Cdr-menubutton.png|The Menu button with Delete and Export options.]]
* Caller called number or name or domain can be filtered for a specific number/string or for specific prefix “222%” or specific suffix “%222”. (please note that searching for a suffix uses reversed column with the index and is as fast as searching for a prefix). You can also search only for the caller or only for the called number clicking on the arrow and selecting Caller num. You can also combine searching by “,” and use negation – 222%, 223%, !2232% - this example means search calls starting with 222 or 223 but not starting with 2232.
[[File:Cdr-filterbasiccriteria.png]]


* Caller or called group can be used for searching for specific list of numbers. You can manage groups directly by clicking on the group icon.  
==== 4. Charts ====
* Caller or Called domain searches CDR by @domain. The domain is taken from "From" SIP header.
This button opens a window for adding overlay charts to your current CDR view, allowing you to correlate data visually. This feature is covered in detail in the [[Charts]] guide.
* Caller name searches by caller name part
* Caller or Called IP – use single IP address or specific network like 192.168.0.0/24. CDR is filtered by SIP IP signalization.
* Caller or Called IP group can be used for searching for specific list of IP. You can manage groups directly by clicking on the group icon.
* Codec searches calls by specific codecs where you can select multiple codecs.
* Call duration filters by specific duration interval (total call length including ringing).
* PDD - filters by [[Glossary#Post_Dial_Delay_.28PDD.29|Post Dial Delay]] range.  
* Last SIP response code filters by SIP status codes (like 483, 503, 603 etc). To find all 4XX responses use 4% syntax.
* Direction (by trunk) – filters calls by direction IN, OUT or Internal. To define the direction you need to create an IP group and set a trunk check box on it.
* Internal calls are all which does not match the IP list of all Trunk IP groups.
* Interrupted call - check box finds all interrupted calls which are those without BYE or confirmation to BYE.
* SIP agent - filters SIP agent header. This header usually carries phone manufacturer/firmware version. 
* RTP source IP – filters calls by RTP source IP addresses instead of SIP IP addresses.
* Call ID filters SIP Call-ID header which is a unique string. This string also names pcap files.
* Sensor - you can filter CDR by specific sensor


==== RTP tab ====
[[File:Cdr-chartbutton.png|The Charts button and its window.]]


RTP tab is used to filter calls by RTP metrics.  
=== CDR List Columns ===
Each column in the CDR list provides key information and can be used for quick sorting.


[[File:Cdr-rtptab.png]]
[[File:Cdr-columnheaders.png|An overview of the main columns in the CDR list.]]


*RTCP Jitter – filters calls by the worst RTCP jitter value of both directions either by its MAX value or average value.
A single row represents a single call.
*RTCP fraction loss – filters calls by the worst RTCP fraction loss value of both directions either by its MAX value or average value.
*RTCP Fraction Lost Pkts – number of packets with non-zero fraction lost
*Last RTP from last SIP – seconds between last RTP and last SIP packet
*MOS – filters all calls which have MOS lower than entered value.
*PDF – Search calls by PDV intervals. To find the worst calls use PDV intervals >120 for at least 10 occurrences.
**strict – ON is searching for exact match, all conditions must be satisfied in all PDF fields. e.g. value 2 in field >50 and value 7 in field >90 and value 10 in field >300 mean that the call must hit two or more of >50ms delayed packets AND seven or more of >90ms delayed packets AND ten or more of >300ms delayed packets. OFF is searching for any delayed packets greater then the summed value. e.g. you must hit ten or more of >300ms delayed packets OR hit seven or more of >300ms delayed packets + >90ms delayed packets OR hit two or more of >300ms delayed packets + >90ms delayed packets + >50ms delayed packets.
*Loss – Search calls by number of consecutive loss. Number 1 represents the number of single packet occurrences, number 2 is the number of times two consecutive packets have been lost, ..., number 10 is the number of times more than 10 consecutive packets have been lost.
**strict – ON is searching for exact match, all conditions must be satisfied in all loss fields. e.g. value 2 in field 1 and value 7 in field 5 and value 10 in field 9 mean that the call must hit one lost packet in a row twice or more AND five lost packets in a row seventimes or more AND nine lost packets in a row tentimes or more. OFF is searching for any loss greater then the summed value. e.g. you must hit one lost packet in a row twice or more OR hit 5* five lost packets in a row + one lost packet in a row >= 7 OR hit 9* nine lost packets in a row + 5* five lost packets in a row + one lost packet in a row >= 10.


*Silence – search for calls where there was specified % of silence audio frames. The silence detection must be enabled in the sniffer configuration silencedetect = yes.
[[File:Cdr-row.png|A single CDR row with all its columns.]]
*Last Silence [s] – search for calls where there was silence at the end of calls for specified seconds. This is usefull when you want to search calls where audio was cut (silence) - the silence is meant by silence in audio and not missing RTP frames. This feature must be enabled in the sniffer also.
*Clipped Frames – number of clipped audio frames (usually one RTP packet is 20ms audio). This can happen when one side speeks too loud for example or on broken devices / transcoders etc. This feature must be enabled in the sniffer also.


==== Combination tab ====
*'''ID:''' The unique identifier for the call record.
*'''Sensor ID:''' The name of the sensor that captured the call.
*'''Datetime:''' The start time of the call.
*'''Duration (PDD) / Codec:''' Shows total call duration, Post-Dial Delay, and the audio codec used.
*'''Participant Info:''' Columns for Caller/Called Number, Name, SIP IP, and SIP Agent. The small red flag ([[File:Cdrcolumnsredflag.png]]) indicates which party sent the `BYE` message first.
*'''Last Response:''' The final SIP response code and text for the call.
*'''RTP IP Addresses:''' The source IP addresses for the caller and callee RTP streams.
*'''Quality Metrics:'''
**'''MOS:''' The MOS column ([[File:Cdr-moscolumn.png]]) shows three [[Glossary#VoIPmonitor.27s_Parametric_MOS|parametric MOS scores]] based on different jitter buffer simulations (fixed 50ms, fixed 200ms, adaptive).
**'''Delay:''' The Delay column ([[File:Cdr-delaycolumn.png]]) provides a color-coded distribution of packet delay variation (jitter) events.
**'''Loss:''' The Loss column ([[File:Cdr-losscolumn.png]]) provides a color-coded distribution of consecutive packet loss events.
**'''RTCP:''' The RTCP column ([[File:Cdr-rtcpcolumn.png]]) shows maximum jitter and fraction loss as reported by the endpoints themselves.
*'''Commands:''' The Commands column ([[File:Cdr-menucolumn.png]]) contains links to download the PCAP or WAV file, and an embedded player to listen to the audio directly in the browser.


<html5media height="1232" width="1056">https://www.voipmonitor.org/video/filter-combination.mov</html5media>
== The CDR Detail View ==
Clicking the `[+]` icon at the beginning of any CDR row expands it to show the detailed analysis view with multiple tabs.


=== Quick filters button ===
[[File:cdr-detail.png|The expanded CDR detail view with its tabs.]]


=== Summary Tab ===
This tab provides a detailed breakdown of call information, RTP statistics, and a full chronological log of all SIP messages for the call.


used to find the worst calls by Loss, Delay or combination of that two (MOS). Here is also saved filter form templates (at the bottom of menu. If no filter templates exists there is no items in this menu).  
[[File:Cdr-detailsummary.png|The Summary tab provides a deep dive into a single call.]]


==== The Call Quality Graph ====
The most prominent feature is the detailed quality graph, which plots packet delay and loss over the duration of the call.


[[File:cdr-graph.png|The detailed call quality graph.]]


[[File:Cdr-quickfiltermenu.png]]
*Each vertical line represents a group of packets.
*The colored dot represents the median delay (jitter).
*Packet loss is shown as red lines at the top of the graph.
*'''Clock Drift:''' A graph that steadily climbs or descends ([[File:cdr-graph-drift.png]]) indicates a clock drift issue between the sending device and the sensor, not necessarily a network problem.


=== SIP History Tab ===
This tab provides a powerful, Wireshark-like view of the call's signaling.
*'''Sequence Diagram:''' A visual representation of the SIP message flow between endpoints.
*'''Message Table:''' A text-based list of all SIP messages and RTP streams.
*'''Packet Detail:''' Clicking on any message opens a window with a fully decoded tree view of the packet, similar to Wireshark.


[[File:cdr-siphistorydiagram.png|The SIP sequence diagram.]]


Order current data will order the current filtered CDR by Loss, Delay or MOS score. Last 24 hours, 7 days, 30 days and year will order by worst Loss, Delay or MOS score. Keep in mind that ordering millions of CDR (month or year) can take a lot of time.  
[[File:cdr-packetdetailtree.png|The fully decoded packet detail window.]]


=== Legs by CID / Legs by Header Tabs ===
These tabs are used to find related call legs in complex call scenarios.
*'''Legs by CID:''' Finds other calls that share the same numeric part of the `From` header tag within a few seconds of the original call. This is useful for finding the other legs of a call that was routed through a PBX.
*'''Legs by Header:''' A more powerful method that correlates calls based on a shared identifier in a custom SIP header (configured by `match_header` in `voipmonitor.conf`). This is essential for tracing a single call across multiple proxies or SBCs where the Call-ID changes at each hop.


=== Charts Tab ===
This tab displays a set of predefined and custom charts applied specifically to the context of the selected call (e.g., showing trends for the caller number). This allows for quick historical analysis without leaving the CDR view.


=== Reset filter button ===
[[File:cdr-chartstab.png|The Charts tab within the CDR detail view.]]


=== Map Tab ===
This tab attempts to geolocate the source and destination SIP IP addresses on a world map using a GeoIP service.


This button resets search criteria to default values.  
[[File:Cdr-map.png|The Map tab showing GeoIP locations.]]


== The Dashboard Panels ==
The panels at the bottom of the screen provide aggregated views of the data currently displayed in the CDR list.


[[File:cdr-grouppanel.png|The dashboard panels provide aggregated statistics.]]


=== Menu button ===
*'''Group By:''' You can group the data by `Last SIP Response`, `Codec`, `SIP IP`, or predefined `IP Groups`.
*'''Charts:''' The middle section displays a pie chart of the grouped data.
*'''Filters:''' Clicking on any item in the group grid (e.g., clicking on the "200 OK" response) will instantly apply it as a filter to the main CDR list above.


 
== AI Summary for RAG ==
Under the Menu button areDelete and Export CSV. Delete allows the user to delete CDR records and files either for all current filtered CDRs or only for selected filters (you can select several CDR by holding CTRL+mouse click).
'''Summary:''' This document is a comprehensive user guide for the VoIPmonitor Call Detail Record (CDR) View, the central interface for call analysis. It provides a structured tour, starting with the main components: the CDR list, button panel, and dashboard. It details the powerful Filter Form, explaining how to search for calls using the "Common" tab (for participant info, duration, etc.) and the "RTP" tab (for quality metrics like MOS, Jitter/PDV, and Loss). The guide then breaks down the columns in the CDR list, explaining the meaning of each field, including the three types of MOS scores and the color-coded Delay and Loss distribution graphs. A significant portion is dedicated to the CDR Detail view, which is accessed by expanding a call row. It explains the Summary tab with its detailed quality graph, the Wireshark-like SIP History tab, and the "Legs by CID" and "Legs by Header" tabs used for correlating call legs in complex routing scenarios. Finally, it describes the function of the dashboard panels at the bottom for creating aggregated statistical views.
 
'''Keywords:''' cdr, call detail record, gui, user guide, filter, search, common, rtp, qos, mos, jitter, pdv, loss, charts, graph, sip history, wireshark, sequence diagram, call legs, correlate, `match_header`, dashboard, group by
 
'''Key Questions:'''
[[File:Cdr-menubutton.png]]
* How do I use the main CDR view in VoIPmonitor?
 
* How can I filter calls based on caller number, IP address, or SIP response code?
 
* How do I search for calls with bad quality (low MOS, high jitter, or packet loss)?
=== Charts button ===
* What do the different colors and numbers in the Delay and Loss columns mean?
 
* How do I view the detailed SIP message flow for a call?
 
* What is the difference between "Legs by CID" and "Legs by Header"?
Activates small window with [[charts]] which is used to add [[charts]] to current data. [[Charts]] are described in detail in chapter -> [[Charts]].
* How can I find all related legs of a single call that crosses multiple servers?
 
* How does the quality graph work and what does a "climbing" chart mean?
 
* What are the dashboard panels at the bottom of the CDR view used for?
[[File:Cdr-chartbutton.png]]
 
 
*Undock button detaches chart window to float window
*Close button hides charts window
*Add chart button shows a chart form for adding graph
 
 
 
'''Right upper corner icons'''
 
 
*Saves graph as SVG or as PDF*Modifies created graph
*Creates new internal ticket with chart image*Removes graph
 
== CDR column headers ==
 
Column headers contains quick filters and some are sortable. Some of the columns may be hidden or reordered by dragging it. 
 
[[File:Cdr-columnheaders.png]]
 
== CDR row ==
 
[[File:Cdr-row.png]]
 
The CDR row contains these columns
*ID – Each CDR is assigned a new, unique, consecutive number.
*sensor id - name of sensor which created the CDR. It can be blank (if id_sensor is not set in sniffer)
*Datetime – is start of the call
*Duration ([[Glossary#Post_Dial_Delay_.28PDD.29|PDD]])/Codec – shows Duration of call, [[Glossary#Post_Dial_Delay_.28PDD.29|PDD]] and codec used.  
*Call num/name, SIP source IP, SIP agent shows information identifying caller.
*Called num, SIP destination IP, SIP agent shows information identifying callee. The red icon in those columns signalize which side sends BYE first.
[[File:cdrcolumnsredflag.png]]
*Last response – shows number and full text of the last SIP response. For connected calls it shows 200 OK.
*Column Caller/Called RTP shows the source IP address of Caller/Called RTP stream. The IP address represents SOURCE IP of Caller or Called RTP stream.
*[[File:Cdr-moscolumn.png]] MOS Score row shows MOS score for three type of jitterbuffer – fixed 50, fixed 200 and adaptive 500.
*[[File:Cdr-delaycolumn.png]] Delay distribution shows all PDV intervals colored accordingly. Left number is 50 – 70ms interval and has green color. The most right number is PDV interval >300ms and has red color.
*[[File:Cdr-losscolumn.png]] Loss distribution shows all loss intervals colored accordingly. The green number on the left represents occurrences of one consecutive loss. The red number on the right represents occurrences of more than ten consecutive losses.
*[[File:Cdr-rtcpcolumn.png]] RTCP part (if RTCP packet was captured) shows MAX RTP jitter (J:26.3) and MAX RTCP fraction loss (L:72.3). RTCP in Caller column shows how called side sees the stream.
*[[File:Cdr-menucolumn.png]] Commands shows two links and one flash-based WAV player. PCAP will download PCAP file and WAV link will download audio file.Play button starts playing directly in web browser (the flash plugin must be installed).
 
MOS / loss / delay numbers are also in CDR detail
 
[[File:cdr-detail2.png]]
 
=== CDR detail ===
 
 
Clicking on [+] shows the full details of the CDR with extended information.
 
 
 
[[File:cdr-detail.png]]
 
 
The detail area starts with tabs – the first one is a summary, next is SIP: history followed by Legs by CID and Legs by header.
 
 
=== Summary ===
 
[[File:Cdr-detailsummary.png]]
 
The first table shows SIP signalization information like call start, duration, PDD time, ringing time and connected time, last SIP reposne, caller and called information. Under this table bigger WAV player is shown. The next table shows RTP statistics, PDV intervals and loss intervals. Avg compressed jitter represents PDV where number 1 is no jitter (or very little). A higher number represents higher jitter. Max compressed jitter shows the maximum jitter during the call. This value is computed according to RTP RFC.
 
The last table Shows SIP messages chronologically. Each SIP message, when clicked, will display a new WINDOWwith full packet information with all protocols Ethernet – IP – UDP – SIP/RTP.
 
==== Graph ====
 
The graph section shows detailed delay and loss distribution. Clicking on the  graph will open new window with the graph.
 
[[File:cdr-graph.png]]
 
Audio wave is transformed into packets which are sampled every 20ms. Each packet is sent every 20ms and send over network. Packets can be delayed either positive or negative (delayd or sent inburst from some switch queue etc.). Those delays differences are measured by sniffer and it is called Packet Delay Variation (PDV) and it is also called jitter. Each delay difference is stored in .graph file which is used to draw graph showing all PDV. Every 20 packets are „compressed“ into single vertical line and the color dot represent median and packet loss (green is no packet loss).
 
[[File:cdr-graph-explain.png]]
 
Why is chart climbing where there is larger packet loss? Because if loss is not distributed randomly it can cause chart climbing up/down as you can see on this example: 
 
[[File:cdr-graph-climbing.png]]
 
Why is chart constantly climbing up or down although there is no packet loss? It is caused by clock drift between RTP sender and sniffer receiver.Some voip phones has internal clock not accurate and it compensate it after some time which results in chart looking like pillow.
 
[[File:cdr-graph-drift.png]]
 
=== SIP:history ===
 
SIP history tab shows SIP packets chronologically.
 
==== button bar ====
 
[[File:cdr-siphistorybuttonbar.png]]
 
*Undock will detach SIP history panel to standalone window
*wireshark filter is display filter according to wireshark specification. You can filter out some messages etc.
*download pcap will download pcap file filtered with wireshark filter (if set)
 
==== diagram ====
 
[[File:cdr-siphistorydiagram.png]]
 
Diagram shows chronologically SIP messages and RTP streams. Clicking on SIP or RTP stream shows detail packet window
 
==== messages ====
 
[[File:cdr-siphistorytable.png]]
 
SIP messages shows chronologically SIP messages and RTP streams in text table. Clicking on SIP or RTP magnifier shows detail packet window.
 
==== Packet detail window ====
 
Packet detail window shows SIP messages in wireshark mode or RAW text mode. In wireshark mode you can click on Expand All or Expand SIP branch button which will expand wireshark mode branches.
 
[[File:cdr-packetdetailbuttonbar.png]]
 
[[File:cdr-packetdetailtree.png]]
 
[[File:cdr-packetdetailtext.png]]
 
=== Legs by CID ===
 
[[File:cdr-legsbycid.png]]
 
Legs by CID (CID is number part from the From tag - From: <sip:'''+42142958395'''@voipmonitor.org.de>;tag=99fc4be3) is a grid of CDR which matches by caller id number and start of the call + - 5 seconds (default - can be changed in Settings main menu section). This interval can be adjusted in the tool bar. The purpose of this grid is quick way of finding all calls which might belongs to the same call – for example if call is routed through asterisk and asterisk calls to hunt group VoIPmonitor creates for each leg CDR – Incoming leg and outgoing legs. To find both legs click on one of the call.
 
=== Legs by header ===
 
==== match_header ====
 
Legs by header is used to correlate all CDR by specific SIP header. For example if a call is forwarded between more SIP proxies/SBC (and Call-ID changes) voipmonitor creates for each leg one CDR. When you find one of the CDR and you would like to see all legs which belongs to this CDR you can use legs by header to find it. This needs to have special information in all calls which means you need to have it supported directly in your SIP proxies (adding SIP header to all legs).  
 
Example - the original call (lets say from SIP trunk to your SIP proxy) has Call-ID = TP4D2OC4KRDL5F6V3LDC3L6DEM. Then a SIP proxy forwards the call to another proxy and changes Call-ID to 26c4480371f54e170ede2dcf1caf1599 but it copies the original Call-ID (TP4D2OC4KRDL5F6V3LDC3L6DEM) to special SIP header match_header (match_header can be any SIP header name which is configured in voipmonitor.conf, typical is in-reply-to header). This way legs by header feature can find all CDR including the original CDR.
 
 
Another case is when you have multiple sensors on each SIP proxy/SBC and all stores to one database. In this case there can be two CDR with the same Call-ID header which legs by header also consider in searching.
 
 
Here is example of 6 CDR (6 legs) which represents one call. Using legs by header on any of those CDR will show all 6 CDR. 
 
+----------------------------------+-----------------------------------------+
| call-id                          | match_header                            |
+----------------------------------+-----------------------------------------+
| 26c4480371f54e170ede2dcf1caf1599 | TP4D2OC4KRDL5F6V3LDC3L6DEM@81.201.83.45 |
| 4b07692c119f643119997e5833e9fe83 | TP4D2OC4KRDL5F6V3LDC3L6DEM@81.201.83.45 |
| 5b800a5c5e86d12833fe44ec4eac4ae8 | TP4D2OC4KRDL5F6V3LDC3L6DEM@81.201.83.45 |
| TP4D2OC4KRDL5F6V3LDC3L6DEM      | NULL                                    |
| 5b800a5c5e86d12833fe44ec4eac4ae8 | NULL                                    |
| 5b800a5c5e86d12833fe44ec4eac4ae8 | NULL                                    |
+----------------------------------+-----------------------------------------+
 
==== custom header ====
 
Another way how to pair CDR is to use sniffer feature [[Sniffer_configuration#custom_headers]] and WEB GUI [[Settings#CDR_Custom_header]]. Practical example is when you have two legs for one call - from your phone to SBC and from SBC to sip provider and you decide that you will put for both legs one unique identifier so both legs will have same string in some custom named header.
 
==== MySQL search ====
 
Legs by CID and Legs by header is also able to search in remote MySQL databases. To enable this feature create sensors in Tools -> Sensors section.
 
=== Charts ===
 
Charts are set of predefined charts and custom charts which is immediately applied to selected CDR by caller or called number or SIP/RTP ip address. The purpose of those charts (which can be plotted also in main menu charts section) is to quickly overview trends for the selected CDR. You can modify or create your own predefined types of charts in Settings -> CDR charts. Each rendered chart can be also tweaked by clicking on edit button.
 
[[File:cdr-chartstab.png]]
 
*Interval - last, this hour, last 24 hours, last 2,3,7,30 days, ...
*filter - show graph for all CDR in Interval range which has the same caller, called, SIP/RTP destination or souce IP
*direction - plot data only for source or destination or both directions
*apply filter to parent table - after clicking on this button the current chart filter applies to the main CDR view.
 
==== loss ACD ====
 
 
This predefined chart shows average number of calls (gray bars) - values are on left Y axe, average packet loss distribution in % (red area) and [[Glossary#ACD|ACD]]  distribution - blue line (ACD values can be read only by hovering mouse)
 
 
[[File:cdr-chartslossacd.png]]
 
==== #calls ====
 
Shows number of min/avg/max simultaneous calls (left Y axe) and total number of calls (gray right Y axe)
 
[[File:cdr-charscalls.png]]
 
==== RTP statistics ====
 
Shows avg MOS score (green dots), avg packet loss (red area), avg PDV delay (magenta area)and avg number of calls (gray bars)
 
[[File:cdr-chartsrtp.png]]
 
==== RTCP avg ====
 
Shows average RTCP jitter (magenta area), RTCP fraction loss (red area), MOS score (green line), number of calls (gray bars)
 
[[File:cdr-chartsrtcpavg.png]]
 
==== RTCP max ====
 
Shows maximum RTCP jitter (magenta area), RTCP fraction loss (red area), MOS score (green line), number of calls (gray bars)  
 
[[File:Cdr-chartsrtcpmax.png]]
 
==== PDD ASR SIP ====
 
Shows correlation between PDD (blue area) ASR (green line) and SIP 4XX response codes (red area). Here is example how high PDD causes increase of canceled calls
 
[[File:Cdr-chartspddasrsip.png]]
 
==== SIP ====
 
On this chart there are all SIP response codes stacked.
 
[[File:Cdr-chartssip.png]]
 
==== Codecs ====
 
Shows codec distribution
 
[[File:Cdr-chartscodecs.png]]
 
==== Filtered CDR ====
 
Shows all CDR which are filtered by the chart filter
 
[[File:cdr-chartsfiltered.png]]
 
=== map ===
 
Map tries to locate SIP src/dst IP addresses on google maps. You can choose from various public IP location services or you can download offline database (Settings -> Load GeoIP Data). For some geo location services you need to create or purchase key - maxmind.com and ipinfodb.com. Both keys are set in Settings -> system configuration -> GEOIP.
 
[[File:Cdr-map.png]]
 
== CDR group panel ==
 
[[File:cdr-grouppanel.png|thumbnail]]
 
CDR groups panel is divided into three sections. The left section shows grid of data related to chosen group. The middle section represents the grid data in a pie chart. The right section controls which data and how should be presented. The CDR groups panel is tight with the upper CDR view list – for example clicking on 200 OK SIP responses will filter all calls based on 200 OK reponess.
 
[[File:cdr-grouppaneld.png]]
 
=== Group definition ===
 
[[File:cdr-groupbybox.png|thumbnail]]
 
Group By – choose which groups you would like to see. You can choose last sip response, Codecs, SIP IP or IP group which is group of IP addresses defined in Group main menu.
 
[[File:cdr-groupbysip.png]]
 
[[File:cdr-groupbycodec.png]]
 
[[File:cdr-groupbyip.png]]
 
*ACD – The Average Call Duration (ACD) is calculated by taking the sum of billable seconds (billsec) of answered calls and dividing it by the number of these answered calls.
*ASR - The Answer-Seizure Ratio (ASR) is calculated by dividing the number of successfully answered calls by the total number of calls attempted, which are known as "seizures". 60-70% is considered a very good ASR in the VoIP world.
 
=== cdr filters ===
 
[[File:cdr-groupfilterbox.png|thumbnail]]
CDR filters can be used to filter CDR by SIP response, Codec, SIP IP and IP groups.
 
=== cdr error if ===
 
[[File:cdr-grouperrorbox.png|thumbnail]]
 
This section is used to show how many CDR are within set criteria. For example show how many CDR are below MOS score 3:
 
[[File:cdr-grouperrorexample.png]]

Latest revision as of 23:56, 30 June 2025


This guide is a comprehensive tour of the main Call Detail Record (CDR) interface in the VoIPmonitor GUI. It explains every section, button, and feature, from searching for calls to analyzing their quality in detail.

Understanding the Main CDR View

The CDR (Call Detail Record) view is the central hub for exploring your captured call data. It is comprised of three main sections:

  1. The CDR List: The main table displaying a paginated list of all finished calls.
  2. The Button Panel: A toolbar for accessing key functions like filtering, charting, and exporting.
  3. The Dashboard: A set of panels at the bottom that provide aggregated statistics for the currently displayed data.

The main CDR View, showing the CDR list and the dashboard panels below.

The CDR List

This section details the components of the main call list, from the title bar to the information in each row.

Title Bar & Date Filter

At the very top, the title bar displays the current time range for the calls being shown. You can click on the dates to quickly change the filter. Note: This quick date filter can be disabled on a per-user basis in user settings.

The title bar with a quick date range filter.

Button Panel

This toolbar provides access to the most important interactive features.

The main button panel for interacting with the CDR list.

1. Filter Form

This is the most powerful feature for finding specific calls. Clicking this button opens a detailed search form with two main tabs.

Common Tab

This tab contains filters for general call attributes and participant information.

The "Common" tab in the advanced filter form.

  • Participant Filters: Search by `Caller/Called Number`, `Caller/Called IP`, or `Caller/Called Domain`. You can use the `%` character as a wildcard (e.g., `222%` finds all numbers starting with 222). You can also use commas for multiple values and `!` for negation (e.g., `222%, !223%`).
  • Group Filters: Search by pre-defined `Caller/Called Groups` or `IP Groups`.
  • Call Attribute Filters: Filter by `Call Duration`, `Codec`, or `PDD` (Post-Dial Delay) ranges.
  • SIP Filters: Filter by `Last SIP Response Code` (e.g., `487`, or `4%` for all 4xx codes), `SIP Agent` (phone type/firmware), or `Call-ID`.
  • Other Filters: You can also filter by the `Sensor` that captured the call or find all `Interrupted` calls (those without a proper BYE).
RTP Tab

This tab allows you to find calls based on specific Quality of Service (QoS) metrics. This is essential for troubleshooting audio quality issues.

The "RTP" tab for filtering by quality metrics.

  • RTCP Metrics: Filter by `Jitter` or `Fraction Loss` values reported by the endpoints themselves via RTCP.
  • MOS: Find all calls with a Mean Opinion Score lower than a specified value.
  • PDV (Jitter): Find calls with a specific number of `Packet Delay Variation` events in different time intervals (e.g., find all calls with at least 10 packets delayed by more than 120ms).
  • Loss: Find calls based on patterns of consecutive packet loss.
  • Silence & Clipping: If enabled on the sensor, you can find calls with a certain percentage of silence or a specific number of clipped audio frames.

2. Quick Filters

This dropdown provides shortcuts for finding problematic calls (e.g., "Worst Calls by Loss") and gives you access to your saved filter templates.

The Quick Filters menu.

3. Menu

This menu contains administrative actions.

  • Delete: Delete selected CDRs and their associated files (PCAPs, audio).
  • Export CSV: Export the current view of CDRs to a CSV file.

The Menu button with Delete and Export options.

4. Charts

This button opens a window for adding overlay charts to your current CDR view, allowing you to correlate data visually. This feature is covered in detail in the Charts guide.

The Charts button and its window.

CDR List Columns

Each column in the CDR list provides key information and can be used for quick sorting.

An overview of the main columns in the CDR list.

A single row represents a single call.

A single CDR row with all its columns.

  • ID: The unique identifier for the call record.
  • Sensor ID: The name of the sensor that captured the call.
  • Datetime: The start time of the call.
  • Duration (PDD) / Codec: Shows total call duration, Post-Dial Delay, and the audio codec used.
  • Participant Info: Columns for Caller/Called Number, Name, SIP IP, and SIP Agent. The small red flag () indicates which party sent the `BYE` message first.
  • Last Response: The final SIP response code and text for the call.
  • RTP IP Addresses: The source IP addresses for the caller and callee RTP streams.
  • Quality Metrics:
    • MOS: The MOS column () shows three parametric MOS scores based on different jitter buffer simulations (fixed 50ms, fixed 200ms, adaptive).
    • Delay: The Delay column () provides a color-coded distribution of packet delay variation (jitter) events.
    • Loss: The Loss column () provides a color-coded distribution of consecutive packet loss events.
    • RTCP: The RTCP column () shows maximum jitter and fraction loss as reported by the endpoints themselves.
  • Commands: The Commands column () contains links to download the PCAP or WAV file, and an embedded player to listen to the audio directly in the browser.

The CDR Detail View

Clicking the `[+]` icon at the beginning of any CDR row expands it to show the detailed analysis view with multiple tabs.

The expanded CDR detail view with its tabs.

Summary Tab

This tab provides a detailed breakdown of call information, RTP statistics, and a full chronological log of all SIP messages for the call.

The Summary tab provides a deep dive into a single call.

The Call Quality Graph

The most prominent feature is the detailed quality graph, which plots packet delay and loss over the duration of the call.

The detailed call quality graph.

  • Each vertical line represents a group of packets.
  • The colored dot represents the median delay (jitter).
  • Packet loss is shown as red lines at the top of the graph.
  • Clock Drift: A graph that steadily climbs or descends () indicates a clock drift issue between the sending device and the sensor, not necessarily a network problem.

SIP History Tab

This tab provides a powerful, Wireshark-like view of the call's signaling.

  • Sequence Diagram: A visual representation of the SIP message flow between endpoints.
  • Message Table: A text-based list of all SIP messages and RTP streams.
  • Packet Detail: Clicking on any message opens a window with a fully decoded tree view of the packet, similar to Wireshark.

The SIP sequence diagram.

The fully decoded packet detail window.

Legs by CID / Legs by Header Tabs

These tabs are used to find related call legs in complex call scenarios.

  • Legs by CID: Finds other calls that share the same numeric part of the `From` header tag within a few seconds of the original call. This is useful for finding the other legs of a call that was routed through a PBX.
  • Legs by Header: A more powerful method that correlates calls based on a shared identifier in a custom SIP header (configured by `match_header` in `voipmonitor.conf`). This is essential for tracing a single call across multiple proxies or SBCs where the Call-ID changes at each hop.

Charts Tab

This tab displays a set of predefined and custom charts applied specifically to the context of the selected call (e.g., showing trends for the caller number). This allows for quick historical analysis without leaving the CDR view.

The Charts tab within the CDR detail view.

Map Tab

This tab attempts to geolocate the source and destination SIP IP addresses on a world map using a GeoIP service.

The Map tab showing GeoIP locations.

The Dashboard Panels

The panels at the bottom of the screen provide aggregated views of the data currently displayed in the CDR list.

The dashboard panels provide aggregated statistics.

  • Group By: You can group the data by `Last SIP Response`, `Codec`, `SIP IP`, or predefined `IP Groups`.
  • Charts: The middle section displays a pie chart of the grouped data.
  • Filters: Clicking on any item in the group grid (e.g., clicking on the "200 OK" response) will instantly apply it as a filter to the main CDR list above.

AI Summary for RAG

Summary: This document is a comprehensive user guide for the VoIPmonitor Call Detail Record (CDR) View, the central interface for call analysis. It provides a structured tour, starting with the main components: the CDR list, button panel, and dashboard. It details the powerful Filter Form, explaining how to search for calls using the "Common" tab (for participant info, duration, etc.) and the "RTP" tab (for quality metrics like MOS, Jitter/PDV, and Loss). The guide then breaks down the columns in the CDR list, explaining the meaning of each field, including the three types of MOS scores and the color-coded Delay and Loss distribution graphs. A significant portion is dedicated to the CDR Detail view, which is accessed by expanding a call row. It explains the Summary tab with its detailed quality graph, the Wireshark-like SIP History tab, and the "Legs by CID" and "Legs by Header" tabs used for correlating call legs in complex routing scenarios. Finally, it describes the function of the dashboard panels at the bottom for creating aggregated statistical views. Keywords: cdr, call detail record, gui, user guide, filter, search, common, rtp, qos, mos, jitter, pdv, loss, charts, graph, sip history, wireshark, sequence diagram, call legs, correlate, `match_header`, dashboard, group by Key Questions:

  • How do I use the main CDR view in VoIPmonitor?
  • How can I filter calls based on caller number, IP address, or SIP response code?
  • How do I search for calls with bad quality (low MOS, high jitter, or packet loss)?
  • What do the different colors and numbers in the Delay and Loss columns mean?
  • How do I view the detailed SIP message flow for a call?
  • What is the difference between "Legs by CID" and "Legs by Header"?
  • How can I find all related legs of a single call that crosses multiple servers?
  • How does the quality graph work and what does a "climbing" chart mean?
  • What are the dashboard panels at the bottom of the CDR view used for?