Active calls: Difference between revisions

From VoIPmonitor.org
(Review: oprava Category syntax, přidán diagram komunikace, <pre> nahrazeno <syntaxhighlight>)
(Rewrite: consolidated structure, added troubleshooting table, more compact)
 
(5 intermediate revisions 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">
%%{init: {'flowchart': {'nodeSpacing': 15, 'rankSpacing': 40}}}%%
flowchart LR
flowchart LR
     subgraph GUI["Web GUI"]
     subgraph GUI["Web GUI"]
Line 19: Line 29:
     end
     end
     subgraph Sniffer["VoIPmonitor Sniffer"]
     subgraph Sniffer["VoIPmonitor Sniffer"]
         Manager["Manager API<br/>Port 5029"]
         Manager["Manager API\nPort 5029"]
         Capture["Packet Capture"]
         Capture["Packet Capture"]
     end
     end
Line 28: Line 38:
</kroki>
</kroki>


<syntaxhighlight lang="bash">
{{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>}}
telnet localhost 5029
</syntaxhighlight>
 
=== Direct URL Access ===
 
You can open the Active Calls view directly using this URL format:
 
<syntaxhighlight lang="text">
http://your-server/admin.php?activecalls=1
</syntaxhighlight>
 
== Filtering Calls ==


The filter box adapts to the type of input provided. Calls can be filtered by:
== Filtering ==


* National or international (via combo box)
The filter box adapts to the input type. Available filters:
* Sensor
* IP address or IP prefix
* Phone number or prefix
* Call-ID


=== Filter Syntax Examples ===
* '''Sensor''' - dropdown selection
* '''IP address/prefix''' - e.g., <code>192.168.%</code>
* '''Phone number/prefix''' - e.g., <code>00</code> (international)
* '''Call-ID''' - exact or substring match


{| 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"
|}
|}


Note: 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.}}


== Bottom Graphs ==
=== Duplicate Entries ===


The bottom section of the Active Calls view displays graphs showing the top callers grouped by:
Duplicates often appear when calls traverse multiple SIP gateways/carriers.
* Caller IP address
* Called IP address


[[File:activecalls.png]]
'''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)


== Customizing Column Visibility ==
For distributed sensor architectures, see [[Sniffer_distributed_architecture]].


The Active Calls view allows you to show or hide columns based on your preferences. This is useful when:
== Show Call Info ==


* You want to reduce visual clutter and focus on specific information
Displays detailed SIP packet information for active calls when clicking on a call entry.
* 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:
{{Warning|1=Requires VoIPmonitor '''version 2024.09.1+''' and can significantly increase CPU load.}}


# Locate the column header area at the top of the table
'''Enable via config file:'''
# Click on the column visibility icon (typically a column or grid icon) or look for a "Show columns" dropdown menu
<syntaxhighlight lang="ini">
# Uncheck columns you want to hide, check columns you want to show
# /etc/voipmonitor.conf
# The view will update immediately with your selection
active_call_info = yes
</syntaxhighlight>
<syntaxhighlight lang="bash">
systemctl restart voipmonitor
</syntaxhighlight>


Your column visibility preferences are stored in the GUI configuration (saved in the MySQL <code>custom_config</code> table) and persist across sessions.
'''Enable via GUI:''' Settings > Sensors > wrench icon > enable <code>active_call_info</code>


=== Troubleshooting Performance Issues ===
== Column Visibility ==


If the Active Calls view becomes unresponsive or slow, particularly when displaying certain columns like "Proxy":
Customize visible columns via the column header menu ("Show columns"). Settings persist in the <code>custom_config</code> database table.


;Temporary workaround:
{{Tip|Hiding problematic columns (e.g., "Proxy") can resolve performance issues caused by parsing errors.}}
:Hide the problematic column using the column visibility method above.


;If the GUI is completely unresponsive:
== Bottom Graphs ==
:* 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:
The bottom section displays top callers/called grouped by IP address.
:* 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 ==
[[File:activecalls.png]]
 
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
|}
 
== Troubleshooting ==
 
{| class="wikitable"
|-
! Problem !! Solution
|-
| 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
|}


=== Choosing the Right Method ===
'''For support tickets, provide:'''
* SIP PCAP dump of problematic calls
* mysqldump of <code>voipmonitor.custom_config</code> table


*Use the GUI <code>listActiveCalls</code> API when:*
== See Also ==
* You have multiple sensors/probes and need centralized access
* You want to query all connected sensors from a single endpoint
* You are building external integrations that need filtered results


*Use the sniffer manager API when:*
* [[Sniffer_distributed_architecture]] - Multi-sensor deployments
* You need direct access to a specific sensor instance
* [[WEB_API]] - Full API documentation
* You are running scripts locally on the sensor host
* [[Settings]] - Sensor configuration
* You require low-latency queries without GUI involvement


== 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. Column visibility can be customized and settings persist in the database. 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
'''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 160: 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?
* What version is required for SIP packet view in active calls?

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?