Active calls: Difference between revisions

From VoIPmonitor.org
(Review: oprava Category syntax, přidán diagram komunikace, <pre> nahrazeno <syntaxhighlight>)
(Fix table row placement - move sipwithoutrtptimeout troubleshooting inside table)
 
(8 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 ==
== Filtering ==


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


* National or international (via combo box)
* '''Sensor''' - dropdown selection
* Sensor
* '''IP address/prefix''' - e.g., <code>192.168.%</code>
* IP address or IP prefix
* '''Phone number/prefix''' - e.g., <code>00</code> (international)
* Phone number or prefix
* '''Call-ID''' - exact or substring match
* 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"
|}
|}


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]].
=== IP also in proxy ===


The Active Calls view allows you to show or hide columns based on your preferences. This is useful when:
'''(New in 2026.1)''' When filtering by IP address, enable the '''IP also in proxy''' checkbox to also match against proxy IP addresses in the call path.


* You want to reduce visual clutter and focus on specific information
This is useful when monitoring calls that pass through a specific SBC or proxy server, even if the caller/called IPs are different.
* Certain columns contain data that is causing performance issues (e.g., parsing errors in the Proxy column)
== Show Call Info ==
* Your display has limited screen space


To hide or show columns:
Displays detailed SIP packet information for active calls when clicking on a call entry.


# Locate the column header area at the top of the table
{{Warning|1=Requires VoIPmonitor '''version 2024.09.1+''' and can significantly increase CPU load.}}
# 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.
'''Enable via config file:'''
<syntaxhighlight lang="ini">
# /etc/voipmonitor.conf
active_call_info = yes
</syntaxhighlight>
<syntaxhighlight lang="bash">
systemctl restart voipmonitor
</syntaxhighlight>


=== Troubleshooting Performance Issues ===
'''Enable via GUI:''' Settings > Sensors > wrench icon > enable <code>active_call_info</code>


If the Active Calls view becomes unresponsive or slow, particularly when displaying certain columns like "Proxy":
== Column Visibility ==


;Temporary workaround:
Customize visible columns via the column header menu ("Show columns"). Settings persist in the <code>custom_config</code> database table.
:Hide the problematic column using the column visibility method above.


;If the GUI is completely unresponsive:
{{Tip|Hiding problematic columns (e.g., "Proxy") can resolve performance issues caused by parsing errors.}}
:* 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:
== Bottom Graphs ==
:* 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 ==
The bottom section displays top callers/called grouped by IP address.


In addition to viewing active calls in the GUI, you can programmatically retrieve active call data for automation and integration purposes.
[[File:activecalls.png]]


=== 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
|-
| Calls remain in active list after ended || Reduce <code>sipwithoutrtptimeout</code> (default 3600s) or <code>rtptimeout</code> (default 300s). Common when BYE packets are not captured (asymmetric routing, SPAN limitations).
|}
 
'''For support tickets, provide:'''
* SIP PCAP dump of problematic calls
* mysqldump of <code>voipmonitor.custom_config</code> table
 
== See Also ==
 
* [[Sniffer_distributed_architecture]] - Multi-sensor deployments
* [[WEB_API]] - Full API documentation
* [[Settings]] - Sensor configuration


=== Choosing the Right Method ===


*Use the GUI <code>listActiveCalls</code> API when:*
* 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:*
* You need direct access to a specific sensor instance
* You are running scripts locally on the sensor host
* 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 177:
* 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 01:53, 20 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.

IP also in proxy

(New in 2026.1) When filtering by IP address, enable the IP also in proxy checkbox to also match against proxy IP addresses in the call path.

This is useful when monitoring calls that pass through a specific SBC or proxy server, even if the caller/called IPs are different.

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
Calls remain in active list after ended Reduce sipwithoutrtptimeout (default 3600s) or rtptimeout (default 300s). Common when BYE packets are not captured (asymmetric routing, SPAN limitations).

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?