Register active
Querying Active SIP Registrations via Manager API
This page documents how to programmatically query active SIP registrations using VoIPmonitor's Manager API. For information about the Register tables in the GUI (Active, Failed, State), see Register.
Configuration
Configure the manager API in /etc/voipmonitor.conf:
| Method | Configuration | Description |
|---|---|---|
| TCP port (default) | manager_ip = 127.0.0.1manager_port = 5029 |
Standard network socket |
| Unix socket | manager_socket = /tmp/vm_manager_socket |
Alternative, lower overhead |
Restart voipmonitor after configuration changes: systemctl restart voipmonitor
The listregisters Command
JSON Parameters
| Parameter | Description | Example |
|---|---|---|
filter |
Filter criteria object | {"digestusername":"user1"}
|
limit |
Max results to return | 30
|
states |
Registration state filter | "OK"
|
sort_field |
Field to sort by | "calldate"
|
sort_dir |
Sort direction | "asc" or "desc"
|
zip |
Compress output | "yes" or "no"
|
Common filter fields: digestusername, sipcallerip, sipcalledip
Query via TCP Port
# Basic query - all active registrations
echo 'listregisters' | nc 127.0.0.1 5029
# Filter by username
echo 'listregisters {"zip":"no","limit":30,"states":"OK","filter":{"digestusername":"user1"},"sort_field":"calldate","sort_dir":"desc"}' | nc 127.0.0.1 5029
# Filter by username AND source IP
echo 'listregisters {"zip":"no","limit":30,"states":"OK","filter":{"sipcallerip":"192.168.88.209","digestusername":"11"},"sort_field":"calldate","sort_dir":"desc"}' | nc 127.0.0.1 5029
Query via Unix Socket
echo 'listregisters' | nc -U /tmp/vm_manager_socket
Query via GUI API Script
This method auto-detects whether TCP or Unix socket is configured:
php /var/www/html/php/run.php send_manager_cmd -s NULL -c 'listregisters'
Example: PHP Filter Script
Filter active registrations by IP address:
php active_register.php "192.168.43.212"
active_register.php:
<?php
if (!array_key_exists("1", $argv)) exit;
$searchVal = ip2long($argv[1]);
exec("echo 'listregisters' | nc 127.0.0.1 5029", $retstr, $rt);
$data = json_decode($retstr[0]);
if (!array_key_exists("2", $data)) exit;
$regkeys = $data[0];
$sipcallerip_key = array_search("sipcallerip", $regkeys);
$reglist = array_slice($data, 2); // Skip header rows
foreach ($reglist as $item) {
if ($item[$sipcallerip_key] == $searchVal) {
var_dump($item);
}
}
?>
ℹ️ Note: For Unix socket, change nc 127.0.0.1 5029 to nc -U /tmp/vm_manager_socket
See Also
AI Summary for RAG
Summary: Documents querying active SIP registrations via VoIPmonitor's Manager API. Two connection methods: TCP port (default manager_ip=127.0.0.1, manager_port=5029) and Unix socket (manager_socket). The listregisters command accepts JSON parameters: filter (digestusername, sipcallerip), limit, states, sort_field, sort_dir. GUI API script auto-detects configuration. Example PHP script shows IP-based filtering.
Keywords: manager API, listregisters, active registrations, TCP port, Unix socket, manager_ip, manager_port, manager_socket, netcat, nc, digestusername, sipcallerip, registration query, SIP register, JSON parameters
Key Questions:
- How do I list all active SIP registrations in VoIPmonitor?
- How do I query registrations by username using the manager API?
- How do I filter active registrations by IP address?
- What is the difference between TCP port and Unix socket for manager API?
- What JSON parameters does the listregisters command accept?
- How do I use the GUI API script to query registrations?