Active calls: Difference between revisions

From VoIPmonitor.org
(Review: oprava formátování - použití syntaxhighlight místo pre pro konfigurační soubor)
(Rewrite: consolidated structure, added troubleshooting table, more compact)
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
[[Category:GUI manual]]
[[Category:GUI manual]]


This page describes the Active Calls view, which provides real-time monitoring of ongoing calls in the VoIPmonitor GUI.
= Active Calls =
 
Real-time monitoring of ongoing VoIP calls with live listening capability (G.711 codec, sniffer v7+).


== Overview ==
== Overview ==


The Active Calls view displays current calls in real time and allows you to listen to G.711 calls live (requires sniffer version 7 or newer). The view refreshes automatically according to the configured refresh interval (default: 2 seconds).
{| class="wikitable"
 
|-
=== Communication with Sniffer ===
! Feature !! Details
 
|-
Live call data is fetched from the VoIPmonitor sniffer instance through the manager TCP port 5029. If calls are not displayed, verify that the web server can reach this port:
| Auto-refresh || Default: 2 seconds
|-
| Communication || TCP port '''5029''' (Manager API)
|-
| Live listening || G.711 codec only (requires sniffer version 7+)
|-
| Direct URL || <code>admin.php?activecalls=1</code>
|}


<kroki lang="mermaid">
<kroki lang="mermaid">
Line 29: Line 38:
</kroki>
</kroki>


{{Note|1=If calls are not displayed, verify that the web server can reach the sniffer's manager port 5029.}}
{{Note|1=If calls are not displayed, verify that the web server can reach the sniffer's manager port 5029: <code>telnet localhost 5029</code>}}
 
Test connectivity:
<syntaxhighlight lang="bash">
telnet localhost 5029
</syntaxhighlight>
 
=== Direct URL Access ===
 
You can open the Active Calls view directly using this URL format:


<syntaxhighlight lang="text">
== Filtering ==
http://your-server/admin.php?activecalls=1
</syntaxhighlight>


== Filtering Calls ==
The filter box adapts to the input type. Available filters:


The filter box adapts to the type of input provided. Calls can be filtered by:
* '''Sensor''' - dropdown selection
 
* '''IP address/prefix''' - e.g., <code>192.168.%</code>
* National or international (via combo box)
* '''Phone number/prefix''' - e.g., <code>00</code> (international)
* Sensor
* '''Call-ID''' - exact or substring match
* IP address or IP prefix
* Phone number or prefix
* Call-ID
 
=== Filter Syntax Examples ===


{| class="wikitable"
{| class="wikitable"
|-
|-
! Input !! Description
! Filter Input !! Matches
|-
|-
| <code>192.168.%</code> || Filters calls with source or destination IP starting with 192.168.x.x
| <code>192.168.%</code> || Source/destination IP starting with 192.168.x.x
|-
|-
| <code>00</code> || Filters calls where the number starts with 00
| <code>00</code> || Numbers starting with 00
|-
|-
| <code>abc123</code> || Searches for exact Call-ID match
| <code>abc123</code> || Exact Call-ID match
|-
|-
| <code>%abc123%</code> || Searches for Call-ID containing "abc123" (substring match)
| <code>%abc123%</code> || Call-ID containing "abc123"
|}
|}


{{Tip|1=By default, Call-ID search matches the full Call-ID string. To search for a substring, add the <code>%</code> wildcard character to the start and/or end of the search string.}}
{{Tip|1=Use <code>%</code> wildcard for substring matching in Call-ID searches.}}
 
== Dealing with Duplicate Entries ==
 
The Active Calls view may show duplicate entries for what appears to be a single call. This often happens when calls pass through multiple SIP gateways or carriers, creating separate legs that are all captured by the sniffer.
 
=== Filtering by Carrier IP ===
 
To consolidate the view and display one entry per call, use the filter field with the carrier's IP address:
 
* Enter the specific carrier's IP address (e.g., <code>203.0.113.50</code>)
* The view will display only the SIP leg between your system and that specific carrier
* Other legs are filtered out, making each listed item correspond to a single call


{{Note|1=This approach works best when each call traverses different carriers. Redirected calls using the ''same'' carrier IP for both inbound and outbound legs may still appear twice.}}
=== Duplicate Entries ===


=== Other Causes of Duplicates ===
Duplicates often appear when calls traverse multiple SIP gateways/carriers.


If filtering by IP does not resolve the duplication, the duplicates may be caused by:
'''Solutions:'''
* '''Filter by carrier IP''' - Enter the specific carrier IP to show only one leg per call
* '''Filter by sensor''' - If multiple sensors capture the same mirrored traffic
* '''SIP forking''' - Simultaneous ringing to multiple destinations are separate legs (expected behavior)


* '''Multiple sensors:''' Different sensors capturing the same mirrored traffic. Filter by a specific Sensor ID using the dropdown.
For distributed sensor architectures, see [[Sniffer_distributed_architecture]].
* '''SIP forking:''' A single INVITE sent to multiple destinations (e.g., simultaneous ringing to desk phone and mobile). These are separate call legs and display correctly as two entries.


For more information on how sensors handle duplicate Call-IDs, see the [[Sniffer_distributed_architecture]] documentation.
== Show Call Info ==


== Bottom Graphs ==
Displays detailed SIP packet information for active calls when clicking on a call entry.


The bottom section of the Active Calls view displays graphs showing the top callers grouped by:
{{Warning|1=Requires VoIPmonitor '''version 2024.09.1+''' and can significantly increase CPU load.}}
* Caller IP address
* Called IP address
 
[[File:activecalls.png]]
 
== Enabling "Show Call Info" in Live Calls List ==
 
The "Show Call info" feature provides detailed information about active calls when clicking on a call in the Live calls list. This feature requires a specific configuration option to be enabled.
 
{{Note|1=This feature requires VoIPmonitor sniffer and GUI version 2024.09.1 or newer to view SIP packet information in live calls.}}
 
To enable the "Show Call info" feature, use one of the following methods:
 
=== Method 1: Configuration File (Recommended for Single Installations) ===
 
Add the <code>active_call_info</code> option to your configuration file:


'''Enable via config file:'''
<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
# Edit /etc/voipmonitor.conf
# /etc/voipmonitor.conf
active_call_info = yes
active_call_info = yes
</syntaxhighlight>
</syntaxhighlight>
Then restart the sniffer service:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
systemctl restart voipmonitor
systemctl restart voipmonitor
</syntaxhighlight>
</syntaxhighlight>


=== Method 2: GUI Settings (GUI Wrench Icon) ===
'''Enable via GUI:''' Settings > Sensors > wrench icon > enable <code>active_call_info</code>


For centralized sensor management via the GUI:
== Column Visibility ==


# Navigate to '''Settings > Sensors'''
Customize visible columns via the column header menu ("Show columns"). Settings persist in the <code>custom_config</code> database table.
# Click the '''wrench icon''' next to the relevant sensor
# Find and enable the <code>active_call_info</code> option
# The GUI will automatically apply the setting and restart the sniffer service


{{Warning|When using the GUI method, the setting is stored in the GUI's database, not in the <code>/etc/voipmonitor.conf</code> file. For consistency across sensor management, consider using the configuration file method for single installations.}}
{{Tip|Hiding problematic columns (e.g., "Proxy") can resolve performance issues caused by parsing errors.}}


== Customizing Column Visibility ==
== Bottom Graphs ==


The Active Calls view allows you to show or hide columns based on your preferences. This is useful when:
The bottom section displays top callers/called grouped by IP address.


* You want to reduce visual clutter and focus on specific information
[[File:activecalls.png]]
* Certain columns contain data that is causing performance issues (e.g., parsing errors in the Proxy column)
* Your display has limited screen space
 
To hide or show columns:
 
# Locate the column header area at the top of the table
# Click on the column visibility icon (typically a column or grid icon) or look for a "Show columns" dropdown menu
# Uncheck columns you want to hide, check columns you want to show
# The view will update immediately with your selection
 
Your column visibility preferences are stored in the GUI configuration (saved in the MySQL <code>custom_config</code> table) and persist across sessions.
 
=== Troubleshooting Performance Issues ===
 
If the Active Calls view becomes unresponsive or slow, particularly when displaying certain columns like "Proxy":
 
'''Temporary workaround:'''
Hide the problematic column using the column visibility method above.
 
'''If the GUI is completely unresponsive:'''
* Connect directly to the GUI database
* Check the <code>custom_config</code> table for column visibility settings
* Clear or modify the relevant configuration entries
* Contact support with SSH access to the GUI host for investigation
 
'''Information to provide for support:'''
* A SIP PCAP dump of a problematic call (to identify data causing parsing errors)
* A mysqldump of the <code>voipmonitor.custom_config</code> table (to review current column configuration)
 
== Programmatic Access to Active Calls ==
 
In addition to viewing active calls in the GUI, you can programmatically retrieve active call data for automation and integration purposes.


=== GUI API (Recommended for Centralized Systems) ===
== Programmatic Access (API) ==


The VoIPmonitor GUI provides a web API endpoint <code>listActiveCalls</code> that retrieves active calls from all connected sensors/probes. This is the preferred method for centralized monitoring environments.
=== GUI API (Centralized) ===


* '''Method:''' HTTP POST or GET to <code>/php/api.php?task=listActiveCalls</code>
Query active calls from all connected sensors via <code>listActiveCalls</code>:
* '''Documentation:''' [[WEB_API#listActiveCalls]]


Example:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
curl -X POST 'http://yourserver/php/api.php?task=listActiveCalls&user=USER&password=PASSWORD&params={"sensorId":"1"}'
curl -X POST 'http://yourserver/php/api.php?task=listActiveCalls&user=USER&password=PASSWORD&params={"sensorId":"1"}'
</syntaxhighlight>
</syntaxhighlight>


=== Sniffer Manager API (For Individual Sensors) ===
See [[WEB_API#listActiveCalls]] for details.


For direct access to a single sensor instance, use the sniffer service's manager API on port 5029. The <code>listcalls</code> command retrieves active call data from the specific sensor.
=== Sniffer Manager API (Direct) ===


* '''Method:''' TCP connection to port 5029
Query a single sensor directly via port 5029:
* '''Documentation:''' [[Encryption_in_manager_api_customer#How_to_use_the_API_-_examples|Manager API]]


Example:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
echo 'listcalls' | nc localhost 5029
echo 'listcalls' | nc localhost 5029
</syntaxhighlight>
</syntaxhighlight>


The manager API supports filtering by caller number, called number, IP addresses, and other criteria. See the [[Encryption_in_manager_api_customer#Example_with_filter_used|Manager API documentation]] for advanced filtering examples.
{| class="wikitable"
|-
! Method !! Use Case
|-
| GUI <code>listActiveCalls</code> || Multiple sensors, centralized monitoring, external integrations
|-
| Manager API <code>listcalls</code> || Single sensor, local scripts, low-latency queries
|}


=== Choosing the Right Method ===
== Troubleshooting ==


'''Use the GUI <code>listActiveCalls</code> API when:'''
{| class="wikitable"
* You have multiple sensors/probes and need centralized access
|-
* You want to query all connected sensors from a single endpoint
! Problem !! Solution
* You are building external integrations that need filtered results
|-
| No calls displayed || Verify port 5029 connectivity: <code>telnet localhost 5029</code>
|-
| Duplicate entries || Filter by carrier IP or sensor ID
|-
| Slow/unresponsive view || Hide problematic columns (e.g., "Proxy")
|-
| GUI completely frozen || Connect to DB, clear entries in <code>custom_config</code> table
|}


'''Use the sniffer manager API when:'''
'''For support tickets, provide:'''
* You need direct access to a specific sensor instance
* SIP PCAP dump of problematic calls
* You are running scripts locally on the sensor host
* mysqldump of <code>voipmonitor.custom_config</code> table
* You require low-latency queries without GUI involvement
 
== See Also ==
 
* [[Sniffer_distributed_architecture]] - Multi-sensor deployments
* [[WEB_API]] - Full API documentation
* [[Settings]] - Sensor configuration


== AI Summary for RAG ==
== AI Summary for RAG ==
'''Summary:''' Active Calls provides real-time monitoring of ongoing VoIP calls with live listening capability for G.711 codec. Calls are fetched via manager port 5029 and can be filtered by IP, number, sensor, or Call-ID. The view may show duplicate entries due to multiple call legs passing through different carriers - filtering by carrier IP can consolidate these displays. Other causes of duplicates include multiple sensors capturing the same traffic and SIP forking (simultaneous ringing). Column visibility can be customized and settings persist in the database. The "Show Call info" feature allows detailed viewing of active call details (requires version 2024.09.1 or newer) and must be enabled via the active_call_info configuration option in voipmonitor.conf or the Settings > Sensors wrench icon in the GUI. Programmatic access is available through two methods: the GUI's listActiveCalls API for centralized monitoring of multiple sensors, and the sniffer's manager API (listcalls command) for direct sensor access.


'''Keywords:''' active calls, real-time monitoring, live calls, manager port 5029, call filter, column visibility, custom_config, G.711 listening, listActiveCalls API, programmatic access, automation, manager API, listcalls command, duplicate entries, multiple call legs, carrier IP filter, show call info, active_call_info, live calls SIP packet view, sensor wrench icon
'''Summary:''' Active Calls provides real-time monitoring of ongoing VoIP calls via TCP port 5029. Features include: live listening (G.711 only, sniffer v7+), filtering by IP/number/Call-ID/sensor, and column customization. Duplicate entries occur when calls traverse multiple carriers - filter by carrier IP to consolidate. "Show Call Info" feature (v2024.09.1+) displays SIP packet details but increases CPU load. Programmatic access available via GUI API (listActiveCalls for multi-sensor) or Manager API (listcalls for single sensor). Settings stored in custom_config table.
 
'''Keywords:''' active calls, real-time monitoring, live listening, G.711, port 5029, manager API, listActiveCalls, listcalls, call filter, duplicate entries, carrier IP, active_call_info, column visibility, custom_config


'''Key Questions:'''
'''Key Questions:'''
Line 221: Line 168:
* Why are active calls not showing in the GUI?
* Why are active calls not showing in the GUI?
* How do I filter calls by IP address or phone number?
* How do I filter calls by IP address or phone number?
* How do I hide or show columns in the Active Calls view?
* Why do I see duplicate entries for the same call?
* What port is used for fetching live call data?
* How do I enable "Show Call Info" feature?
* How can I programmatically check if a call to a specific phone number is currently active?
* What port is used for active call data?
* What is the difference between listActiveCalls API and the sniffer's manager API?
* How do I programmatically query active calls?
* How do I retrieve active calls from all connected sensors?
* What is the difference between listActiveCalls and listcalls?
* How do I query active calls from a single sensor directly?
* How do I customize column visibility?
* How do I enable the "Show Call info" feature in the Live calls list?
* What version is required for SIP packet view in active calls?
* What version is required for viewing SIP packet information in active calls?
* How do I enable active_call_info via voipmonitor.conf vs GUI Settings?

Latest revision as of 16:48, 8 January 2026


Active Calls

Real-time monitoring of ongoing VoIP calls with live listening capability (G.711 codec, sniffer v7+).

Overview

Feature Details
Auto-refresh Default: 2 seconds
Communication TCP port 5029 (Manager API)
Live listening G.711 codec only (requires sniffer version 7+)
Direct URL admin.php?activecalls=1

ℹ️ Note: If calls are not displayed, verify that the web server can reach the sniffer's manager port 5029: telnet localhost 5029

Filtering

The filter box adapts to the input type. Available filters:

  • Sensor - dropdown selection
  • IP address/prefix - e.g., 192.168.%
  • Phone number/prefix - e.g., 00 (international)
  • Call-ID - exact or substring match
Filter Input Matches
192.168.% Source/destination IP starting with 192.168.x.x
00 Numbers starting with 00
abc123 Exact Call-ID match
%abc123% Call-ID containing "abc123"

💡 Tip: Use % wildcard for substring matching in Call-ID searches.

Duplicate Entries

Duplicates often appear when calls traverse multiple SIP gateways/carriers.

Solutions:

  • Filter by carrier IP - Enter the specific carrier IP to show only one leg per call
  • Filter by sensor - If multiple sensors capture the same mirrored traffic
  • SIP forking - Simultaneous ringing to multiple destinations are separate legs (expected behavior)

For distributed sensor architectures, see Sniffer_distributed_architecture.

Show Call Info

Displays detailed SIP packet information for active calls when clicking on a call entry.

⚠️ Warning: Requires VoIPmonitor version 2024.09.1+ and can significantly increase CPU load.

Enable via config file:

# /etc/voipmonitor.conf
active_call_info = yes
systemctl restart voipmonitor

Enable via GUI: Settings > Sensors > wrench icon > enable active_call_info

Column Visibility

Customize visible columns via the column header menu ("Show columns"). Settings persist in the custom_config database table.

💡 Tip: Hiding problematic columns (e.g., "Proxy") can resolve performance issues caused by parsing errors.

Bottom Graphs

The bottom section displays top callers/called grouped by IP address.

Programmatic Access (API)

GUI API (Centralized)

Query active calls from all connected sensors via listActiveCalls:

curl -X POST 'http://yourserver/php/api.php?task=listActiveCalls&user=USER&password=PASSWORD&params={"sensorId":"1"}'

See WEB_API#listActiveCalls for details.

Sniffer Manager API (Direct)

Query a single sensor directly via port 5029:

echo 'listcalls' | nc localhost 5029
Method Use Case
GUI listActiveCalls Multiple sensors, centralized monitoring, external integrations
Manager API listcalls Single sensor, local scripts, low-latency queries

Troubleshooting

Problem Solution
No calls displayed Verify port 5029 connectivity: telnet localhost 5029
Duplicate entries Filter by carrier IP or sensor ID
Slow/unresponsive view Hide problematic columns (e.g., "Proxy")
GUI completely frozen Connect to DB, clear entries in custom_config table

For support tickets, provide:

  • SIP PCAP dump of problematic calls
  • mysqldump of voipmonitor.custom_config table

See Also

AI Summary for RAG

Summary: Active Calls provides real-time monitoring of ongoing VoIP calls via TCP port 5029. Features include: live listening (G.711 only, sniffer v7+), filtering by IP/number/Call-ID/sensor, and column customization. Duplicate entries occur when calls traverse multiple carriers - filter by carrier IP to consolidate. "Show Call Info" feature (v2024.09.1+) displays SIP packet details but increases CPU load. Programmatic access available via GUI API (listActiveCalls for multi-sensor) or Manager API (listcalls for single sensor). Settings stored in custom_config table.

Keywords: active calls, real-time monitoring, live listening, G.711, port 5029, manager API, listActiveCalls, listcalls, call filter, duplicate entries, carrier IP, active_call_info, column visibility, custom_config

Key Questions:

  • How do I view active/live calls in VoIPmonitor?
  • Why are active calls not showing in the GUI?
  • How do I filter calls by IP address or phone number?
  • Why do I see duplicate entries for the same call?
  • How do I enable "Show Call Info" feature?
  • What port is used for active call data?
  • How do I programmatically query active calls?
  • What is the difference between listActiveCalls and listcalls?
  • How do I customize column visibility?
  • What version is required for SIP packet view in active calls?