Active calls
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.
Map
The Active Calls Map displays ongoing calls on a geographic map (OpenStreetMap or Google Maps), showing connections between caller and called locations in real-time.
Access: When both table and map are enabled, Active Calls appears as a menu group with two sub-items: Table and Map. If only one is enabled, Active Calls opens directly into that view.
User permission: can_activecalls_map (Settings → Users)
Source/Destination Modes
The toolbar src/dst by combo controls how call endpoints are geolocated:
| Mode | Description | Geolocation method |
|---|---|---|
| Source number ↔ Destination number | Both endpoints by phone number (default) | Country Prefixes + International Rules |
| Source number → Destination IP | Caller by number, callee by IP | Mixed |
| Source IP ↔ Destination number | Caller by IP, callee by number | Mixed |
| Source IP ↔ Destination IP | Both endpoints by SIP IP address | GeoIP database |
| RTP streams (A,B) | By actual RTP media IP addresses | GeoIP database |
Requirements
| Mode | Required configuration |
|---|---|
| Number-based | Country Prefixes (Settings → Country Prefixes) AND International Rules must be configured. Without both, the map will show an error or incorrect data. |
| IP-based | GeoIP data must be loaded (Settings → System Configuration → GeoIP). Use the load / update geoip data button in the map toolbar to load it. |
| Private IPs | Assign coordinates manually via the Customer GeoIP button in the toolbar, or set PRIV_COORDS_DEFAULT in configuration.php.
|
⚠️ Warning: When using number-based mode, you must configure both Country Prefixes and International Rules. Adding only country prefixes without International Rules will result in incorrect country detection and misplaced markers on the map.
Toolbar Controls
| Control | Description |
|---|---|
| src/dst by | Select geolocation mode (number, IP, or RTP — see table above) |
| items scale | Adjust visual size of markers and labels (25–400%) |
| line colors | Customize colors of connection lines between endpoints |
| Customer GeoIP | Assign geographic coordinates to private or custom IP addresses |
| refresh interval | Auto-refresh interval in seconds (default: 30, minimum: 10) |
| Sensor | Filter by sensor (multi-select supported) |
| load / update geoip data | Load or update the GeoIP city database (admin only) |
Troubleshooting
| Problem | Solution |
|---|---|
| "missing_international_rules" error | Configure International Rules in Settings → Country Prefixes → Rules tab. Required for number-based geolocation. |
| "missing_geoip_data" error | Load GeoIP data: click load / update geoip data in the map toolbar, or go to Settings → Load GeoIP Data. |
| Incorrect country placement | Verify Country Prefixes are complete (not just +1). Add all relevant country codes for your traffic. |
| Private IPs not shown | Click Customer GeoIP in the toolbar and assign coordinates to your private IP ranges. |
| Map empty despite active calls | Check the src/dst mode — if set to "number" mode but calls lack country prefix matches, endpoints cannot be placed. Try switching to IP-based mode. |
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¶ms={"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_configtable
See Also
- Sniffer_distributed_architecture - Multi-sensor deployments
- WEB_API - Full API documentation
- Settings - Sensor configuration
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?
