FAQ: Difference between revisions

From VoIPmonitor.org
(Add DTMF filter and export FAQ entries)
 
(164 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Scalability =
{{DISPLAYTITLE:FAQ & Common Issues}}
== How does voipmonitor scale? ==
[[Category:GUI manual]]


Read this: [[Scaling]]
'''Quick answers to frequently asked questions. For detailed troubleshooting, see [[Sniffer_troubleshooting|Sniffer Troubleshooting]] and [[GUI_troubleshooting|GUI Troubleshooting]].'''


== Quick Navigation ==
{| class="wikitable" style="width:100%; margin-bottom:20px;"
|-
! style="width:25%; background:#e6f2ff;" | General
! style="width:25%; background:#e6ffe6;" | Configuration
! style="width:25%; background:#fff2e6;" | Licensing
! style="width:25%; background:#ffe6e6;" | Audio & Files
|-
| style="vertical-align:top; padding:8px;" |
* [[#General_&_Architecture|Architecture]]
* [[#Platform_Support|Platform Support]]
* [[#CDR_View|CDR View]]
| style="vertical-align:top; padding:8px;" |
* [[#Protocols_&_Ports|Protocols & Ports]]
* [[#RTP_&_Quality_Metrics|RTP & Quality]]
* [[Capture_rules|Capture Rules]]
| style="vertical-align:top; padding:8px;" |
* [[#Licensing|Channels & Limits]]
* [[#Licensing|HWID Issues]]
* [[#Licensing|License Transfer]]
| style="vertical-align:top; padding:8px;" |
* [[#Audio_&_PCAP_Files|Recording Limits]]
* [[#Audio_&_PCAP_Files|Codec Support]]
* [[#Compliance|PCI/CALEA]]
|}


== How to clean old data and database? ==
== General & Architecture ==


Read this: [[Data Cleaning]]
;How does VoIPmonitor scale for high traffic?
:For hardware recommendations and optimization of CPU, Disk I/O, and Database bottlenecks, see [[Scaling|Scaling and Performance Tuning]].


= CDR =
;How do I manage disk space and database retention?
== What is the red small icon in CDR? ==
:See [[Data_Cleaning|Data Cleaning and Retention]] for PCAP cleanup (cleanspool) and CDR retention settings.
[[File:Cdrcolumnsredflag.png]]
The red icon in those columns signalize which side sends BYE first.


== How to interpret two charts in the cdr detail? ==
;Can I run multiple GUI instances for redundancy?
:Yes. Requirements:
:* All GUIs connect to the same database
:* PCAP storage accessible via NFS/SSHFS
:* Same <code>key.php</code> license file on each GUI


See this: [http://www.voipmonitor.org/downloads/graph_cheat_sheet.pdf Graph cheat sheet]
:{{Warning|1='''CRITICAL:''' Enable the cron job on '''only ONE''' GUI instance. Multiple active cron jobs cause duplicate alerts and reports.}}
:<syntaxhighlight lang="bash"># Disable on secondary GUIs:
# * * * * * root php /var/www/html/php/run.php cron</syntaxhighlight>


== Regexps examples usable in CDR view ==
;Can one GUI display data from multiple sensors?
!R(^[+]?[0-9]+$) - to get all weird CDRs (where callerNum have letters or special chars in its number)
:Yes. Use the '''Client-Server architecture''' (v20+):
:* '''Local Processing''' (<code>packetbuffer_sender=no</code>): Sensors analyze locally, send CDRs only
:* '''Packet Mirroring''' (<code>packetbuffer_sender=yes</code>): Sensors forward raw packets to central server
:See [[Sniffer_distributed_architecture|Distributed Architecture]] for full configuration.


= Supported architectures =
== Platform Support ==


== What architectures are tested? ==
;What architectures are supported?
:{| class="wikitable"
|-
! Component !! Supported !! Notes
|-
| Sensor || x86 (32/64-bit), ARMv7/v8 || Compile from source for ARM64
|-
| GUI || x86 only || '''Not supported''' on ARM64/aarch64
|}


x86 32 and 64, ARMv5 - (if you have error with missing "__sync_fetch_and_sub_8" you have to upgrade GCC compiler to version 4.8)
;Can I run VoIPmonitor on AWS?
:Yes. For license detection: <code>chmod 644 /dev/root</code>
:* '''Stop/Start instance:''' HWID usually preserved
:* '''Terminate/Launch new:''' HWID changes, requires new license key


= Is AWS supported =
;Is Docker supported?
Yes AWS is supported. For working license check you usually need to change /dev/root attrs to be readable by all (web-server)  
:Yes, but ensure <code>/proc/self/cgroup</code> content doesn't change between restarts (affects HWID stability).
run: chmod 644 /dev/root


= Are dockers/containers supported =
;Are cloud databases (RDS, Azure) supported?
Yes, the GUI can run in containered env. You should ensure that
:Yes. Requires MySQL-compatible database with <code>SUPER</code> privilege. If unavailable, set:
/proc/self/cgroup.txt will not change the content with every container restart otherwise you will be asked for license key update every reboot.
:<syntaxhighlight lang="ini">log_bin_trust_function_creators = ON</syntaxhighlight>


= Are hosted/cloud db supported =
;Why is mysql_native_password deprecated?
voipmonitor requires mysql type of db (mysql/mariab/percona) no matter where the database is located.
:PHP 7.4.4+ supports <code>caching_sha2_password</code> natively. Upgrade PHP and reinstall IonCube Loader. See [[GUI_installation|GUI Installation]].
by default the mysql user should have SUPER and ALL privileges granted


== Azure ==
== CDR View ==
Because there is not possible to set SUPER privilege, you need to set at least following options when configuring db
=== configure Options ===
innodb_file_per_table = ON
log_bin_trust_function_creators = ON
1100 IOPS are required for 5000 concurrent calls


= Configuration =
;What does the red icon mean?
== Why I do not see sip packets other then port 5060? ==
:Indicates which party sent the <code>BYE</code> message (ended the call).
Voipmonitor sniffer by default sniffs packets only on port 5060 from or to. If you need to sniff more SIP ports you need to specify it in configuration. Please see this: [[Sniffer_configuration#sipport]]


== How to disable timezone check ==
;How do I filter with regular expressions?
:Prefix with <code>R()</code>. Example: <code>R(^500[0-9]{4}$)</code>


Go to settings -> System configuration -> Advanced section -> Hide timezone information -> Enable and set to TRUE
;How do I exclude values from filters?
:Use <code>!</code> prefix:
:* <code>!123456</code> – exclude specific number
:* <code>!00420%</code> – exclude prefix
:* <code>222%, !223%</code> – include 222*, exclude 223*


== Problems with packet mirroring on esxi 6.5 ==
;How do I search multi-word strings in custom headers?
===Behavior===
:Use underscore for spaces: <code>%normal_call_clearing%</code>
When a port group is set to VLAN 4095, this activates VGT mode. In this mode, the vSwitch passes all network frames to the guest VM without modifying the VLAN tags, leaving it up to the guest to deal with them. VLAN 4095 should be used only if the guest has been specifically configured to manage VLAN tags itself. If VGT is enabled inappropriately, it might cause denial-of-service or allow a guest VM to interact with traffic on an unauthorized VLAN.
===Solution===
From the vSphere Web Client:


select the ESXi Host and go to Configure >> Networking >> Virtual switches. Highlight a port group (where VLAN ID set to 4095) and click Edit settings. Change the VLAN ID to not be 4095 and click OK.
;Why are caller/called numbers swapped?
:VoIPmonitor extracts from SIP headers (<code>From</code>/<code>To</code>). Check <code>destination_number_mode</code> setting. See [[Call_Detail_Record_-_CDR|CDR Documentation]].


;Why is there a delay before CDRs appear?
:Database can't keep up. See [[Database_troubleshooting#SQL_Queue_and_CDR_Delays|SQL Queue Troubleshooting]].


or From a PowerCLI command prompt while connected to the ESXi host run the following command:
== Protocols & Ports ==
Get-VirtualPortGroup -Name 'portgroup name' | Set-VirtualPortGroup -VLanId 'New VLAN#'


== Audiocodes tunneling ==
;Which protocols are supported?
Follow the link to get details on how to enable processing of the [[audiocodes tunneling]] by voipmonitor
:{| class="wikitable"
|-
! Supported !! Not Supported
|-
| SIP, Skinny/SCCP, MGCP, SS7/ISUP, Diameter, RTCP || '''H.323''', '''MEGACO/H.248'''
|}


= Licensing =
;Why don't I see SIP on ports other than 5060?
== How to know how many license channels do we need? ==
:Configure additional ports in <code>voipmonitor.conf</code>:
:<syntaxhighlight lang="ini">sipport = 5060,5080,8088,8089</syntaxhighlight>
:See [[Sniffer_configuration#sipport|sipport configuration]].


You can have unlimited number of phones / endpoints but you need to buy channels according to your maximum number of calls at the same time during peak.
;How do I enable IPv6?
:Set <code>ipv6=yes</code> in config. Existing databases require migration. See [[How_to_enable_ipv6_processing|IPv6 Guide]].


Go to GUI -> Tools -> concurrent calls which will show peaks past 14 days. All multiple legs are already aggregated into single channel so you do not need to buy extra channels in case you have two or more CDR per one real call. The intention is to scale pricing based on real concurrent calls not accounting multiple legs of the same calls.  
;How do I capture REGISTER messages?
:Set <code>sip-register=yes</code>. See [[Register|REGISTER Monitoring]].


== How does having multiple sensors affect the licensing? If I add a 2-3 remote sensors to the system, would they use the same license pool? ==
;How do I capture DTMF?
:<syntaxhighlight lang="ini">dtmf2db = yes          # RFC2833 and SIP INFO
inbanddtmf = yes        # G.711 only, CPU intensive</syntaxhighlight>
;How do I filter calls by DTMF in the CDR view?
:Use the '''DTMF filters''' in Filter Form > Common tab:
:* '''DTMF char''' - search for specific digit or sequence
:* '''DTMF count''' - filter by number of DTMF digits (operators: <code>>=</code> and <code><</code>)
:** <code>>= 1</code> - calls with at least one DTMF digit
:** <code>< 1</code> - calls without DTMF
:{{Note|1=The DTMF count filter does '''not''' support <code>=</code> operator. Use <code>< 1</code> to find calls without DTMF.}}


Central GUI calculates connected channels for the whole database but groups all calls legs as a single call so multiple legs are not counted twice etc.  
;How do I export DTMF data?
:'''DTMF is NOT included in CSV export.''' The Export CSV function exports only standard CDR columns.
:To export DTMF data, query the <code>cdr_dtmf</code> table directly:
:<syntaxhighlight lang="sql">
SELECT c.ID, c.calldate, c.caller, c.called, d.dtmf
FROM cdr c
JOIN cdr_dtmf d ON c.ID = d.cdr_ID
WHERE c.calldate >= '2024-01-01';
</syntaxhighlight>
:See [[Database_structure#cdr_dtmf_(DTMF_Digits)|cdr_dtmf table documentation]].
== RTP & Quality Metrics ==


== accident / unwanted spikes ==
;Why are quality metrics (MOS, jitter) missing for one call leg?
:Usually NAT mismatch – SDP announces different IP than actual RTP source.


If your license is blocked due to high spike (accident / hack whatever) you need to delete those CDR from database via the GUI (filter those calls and in toolbar use delete buttons) and then try to unblock the license or run "php /var/www/html/php/run.php saveCallStatistics". If you do not want to delete them and you will have higher channels than your license for three consecutive days your license will be blocked after 14 days - you need to upgrade to higher channels license which you can do on voipmonitor.org portal.
:'''Solution:''' Configure <code>natalias</code> mapping:
:<syntaxhighlight lang="ini"># Map public IP to private IP
natalias = 1.2.3.4 10.0.0.100</syntaxhighlight>


= DTMF =
:See [[Sniffer_configuration#NAT|NAT Configuration]] for details.


You can enable DTMF RFC2833 or DTMF SIP INFO in voipmonitor.conf by enabling:  
;Why is RTP not correctly associated after moving SIP/RTP to different NICs?
:Enable memory blocks for multi-interface scenarios:
:<syntaxhighlight lang="ini">auto_enable_use_blocks = yes</syntaxhighlight>


dtmf2db = yes
;Why do recordings mix audio from different calls?
:Enable SDP verification on both sides:
:<syntaxhighlight lang="ini">rtp_check_both_sides_by_sdp = yes</syntaxhighlight>


You can also enable DTMF inband detection (only for G.711) by enabling (it will take some CPU)
== Licensing ==


inbanddtmf = yes
;How are license channels calculated?
:Based on '''maximum concurrent calls''' (averaged hourly, checked daily). View in '''Tools → System Status → Concurrent calls'''.
:* Calls are deduplicated if last 6 digits of caller/called match within ±10 seconds
:* 487 Request Terminated responses are NOT counted


;What happens if I exceed my limit?
:{| class="wikitable"
|-
! Duration !! Effect
|-
| 1-2 days || Warning only, self-clearing
|-
| 3+ consecutive days || GUI blocked
|}


= Audio files =
;How do I unblock a locked GUI?
== Bulk download of pcaps or audio (wav/ogg)==
:In '''Settings > License''', click '''get/update license key''' – this grants a temporary increase automatically.
Read this: [[download of pcap files / audio files using GUI's api]]


== Batch download of an audio from CDRs for more then 1000 CDRs==
;I get "Invalid or corrupted hwid" error. What do I do?
Read this: [[Batch download of audio for 1000+ CDRs]]
:'''Common causes:'''
:# '''Incomplete key:''' Copy the '''entire''' multi-line license key, not just the first line
:# '''Wrong field:''' Use "License token" for short tokens, "License key" for full multi-line keys
:# '''AWS:''' Run <code>chmod 644 /dev/root</code>
:# '''Docker:''' Ensure container ID doesn't change on restart
:# '''Trial on different machine:''' Contact support for a pre-generated key


== Batch conversion from wav to ogg in a spooldir==
;I get "license file key.php is for another hwid" after hardware change?
:In '''Settings > License''', click '''get/update license key''' then '''recheck''' to fetch new key for current HWID.


If you set saveaudio=wav, the audio files getting created in a spooldir, you can set saveaudio=ogg to save space but for the calls/audio already stored in a spooldir, you need to convert to .ogg and remove .wav file.
;I get "Bad Key Content" error?
:You're using the wrong field. Short tokens go in "License token" field, then click "get/update license key".
Run following commands in a spooldir


The first is for coversion wav to ogg, and second is for remove of all wav files from current location and the third is to set web-server's user ownership to allow GUI read the new ogg files.
;How do I transfer a license to a new server?
cd /var/spool/voipmonitor
:# Get token from old GUI ('''Settings > License''') or customer portal
find ./ -name '*.wav' -exec bash -c 'ffmpeg -i $0 -vn -acodec libvorbis ${0/wav/ogg}' {} \;
:# On new GUI: paste token, click '''get/update license key'''
find ./ -name '*.wav' -exec rm -f {} \;
:# '''IMPORTANT:''' Disable cron on old server to prevent conflicts
chown www-data ./ -R


== Get the audio file from SIP&RTP pcap extracted from spooldir==
;Can I use one license on multiple servers (test/dev)?
Read this: [[create audio from packet dumps located in a spooldir]]
:Yes. Contact support to reconfigure your token for multiple HWIDs.


= GeoIP location services =
;What are the available license tiers?
Read this: [[order of GeoIP processing]]
:10, 35, 50, 100, 150, 200, 350, 500, 750, 1000, 1250, 1500, 1750, 2000


== Audio & PCAP Files ==


= Self signed certificate =
;Why does call recording stop after exactly 4 hours?
Read this: [[Enable SSL/TLS + self signed certificate for http server]]
:Default <code>absolute_timeout = 14400</code> (4 hours). Increase or disable:
:<syntaxhighlight lang="ini">absolute_timeout = 43200  # 12 hours
# absolute_timeout = 0    # Unlimited (watch memory usage)</syntaxhighlight>


= Lost admin's GUI pasword =
;Why are WAV files missing for non-G.711 codecs (Opus, G.729)?
Read this: [[User_Management]]
:Requires <code>vmcodecs</code> binary from GUI package. Install GUI, then restart sensor.


= Corrupted GUI installation, how to reinstall the GUI=
;Why is audio playback garbled?
Read this: [[Re-install_the_GUI]]
:DTLS-SRTP encryption. Configure SSL Key Logger for decryption. See [[Tls|TLS/SRTP Decryption]].


= Bad sniffer version, how to reinstall the sniffer to latest version =
;Why can't I download PCAP files?
Read this: [[Latest_sniffer]]
:Files deleted by retention limits. Check:
:<syntaxhighlight lang="bash">grep maxpoolsize /etc/voipmonitor.conf
grep maxpooldays /etc/voipmonitor.conf</syntaxhighlight>
:Increase limits and restart. See [[Data_Cleaning|Data Cleaning]].


= What does Audit log cover =
;Why does downloaded PCAP have fewer packets than GUI shows?
It covers these actions of users in the GUI:
:'''Pcap deduplication before download''' is enabled. Disable in '''Settings > System Configuration > Advanced'''.
*download wav
*download pcap
*play wav
*show fax
*batch download
*filter CDR in form
*login
*logout


= Precision for CDRs datetime =
;How do I bulk download audio/PCAP files?
by default voipmonitor stores CDRs in seconds precision.
:Use GUI API. See [[download_of_pcap_files_audio_files_using_GUI's_api|Bulk Download Guide]].
If you need to have in CDR view calldate in milliseconds precission folow next how to [[how to enable milliseconds precision]]


= PCI compliance =
;Can VoIPmonitor detect voicemail calls?
Voipmonitor is PCI compliance ready.
:'''No automatic detection''' by analyzing RTP audio. Workarounds:
:* Filter by voicemail pilot number
:* Track SIP 302 redirects (<code>save_sip_history = all</code>)
:* Capture custom SIP headers your PBX adds


To control what to store to disk / database check [[https://www.voipmonitor.org/doc/Capture_rules capture rules]]
;How do I convert WAV to OGG?
:<syntaxhighlight lang="bash">cd /var/spool/voipmonitor
find ./ -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -vn -acodec libvorbis "${0%.wav}.ogg"' {} \;
find ./ -name '*.wav' -exec rm -f {} \;
chown -R www-data:www-data ./</syntaxhighlight>


== Turn off audio recording and DTMF via RFC2833 globally ==
;How do I enable live call listening?
To prevent recording audio and DTMFviaRTP see [[https://www.voipmonitor.org/doc/Sniffer_configuration#savertp savertp=header]]
:Edit <code>configuration.php</code>:
:<syntaxhighlight lang="php">define('DISABLE_LIVEPLAY', false);</syntaxhighlight>
:See [[GUI_Configuration_PHP|GUI Configuration]] for details.
;Why is transfer throughput to external storage (S3, CloudBerry) limited?
:VoIPmonitor does not impose speed limits on external storage transfers. If you see artificial throughput caps (e.g., 40 Mbps):<br>
# '''Verify bandwidth''' from your host to the internet is sufficient<br>
# '''Check third-party tool configuration''' (e.g., CloudBerry, s3fs, rclone) - the bottleneck is typically in these tools, not VoIPmonitor<br>
# For '''controlled bandwidth limiting''', use <code>rsync</code> via cron job with <code>--bwlimit</code> or the <code>tar_move</code> option - both allow bandwidth management
== Administration ==


To prevent recording RTP at all [[https://www.voipmonitor.org/doc/Sniffer_configuration#savertp savertp=no]]
;How do I reset admin password?
:See [[User_Management|User Management]].


To prevent recording just DTMF packets (SIP info/rfc2833) into DB and into spooldir (pcaps)
;How do I fix GUI after PHP/OS upgrade?
dtmf2db = no
:Re-run installation. See [[Re-install_the_GUI|Re-install GUI]].
dtmf2pcap = no


== Turn off audio recording selectively ==
;How do I enable debug mode?
With savertp=yes in /etc/voipmonitor.conf you can disable audio recording only for some IPs / tel.numbers / SIP domains or any SIP header values [[https://www.voipmonitor.org/doc/Capture_rules SAVE RTP=OFF|HEADER]]
:Add <code>?debug=31415</code> to URL. See [[GUI_troubleshooting#GUI_Debug_Mode|GUI Debug Mode]].


== Turn on audio recording selectively  ==
;How do I fix "Unknown column" errors after database upgrade?
With savertp=no|header in /etc/voipmonitor.conf you can enable audio recording  only for some IPs / tel.numbers / SIP domains or any SIP header values  [[https://www.voipmonitor.org/doc/Capture_rules SAVERTP=ON]] using capture rules.
:Access: <code>https://your-gui/admin.php?check_tables=1</code>
:{{Note|1=Do NOT use "Check MySQL Schema" button in Tools - that's for millisecond precision only.}}


== Turn off DTMF storing to db selectively==
;Can I run multiple sensor instances on one host?
With dtmf2db=yes in /etc/voipmonitor.conf you will force sniffer to store DTMF it detects (RF2833/SIP INFO) into db. If you want to not store the DTMF detected in call into CDR for some IPs / tel.numbers / SIP domains or any SIP header values, create capture rule and set there record DTMF=OFF or record DTMF=only pcap - in case you want DTMF packets to be stored into pcap but not to db.
:Yes. See [[Multiple_sniffer_instancies|Multiple Instances Guide]].
;Users from the same organization cannot view each other's support tickets. How can we share access?
:Support tickets are associated with individual email addresses. To enable team-wide ticket visibility, '''merge all user accounts under a single main email address'''. Contact VoIPmonitor support to consolidate multiple accounts into one organization account.
== VoIPmonitor.org Portal & Account ==


==Turn off DTMF storing to pcap selectively==
{{Note|1=This section is about the '''voipmonitor.org customer portal / website''' (account registration, license management, support tickets). The VoIPmonitor GUI does '''not''' send verification emails — the GUI only sends '''alert notifications''' and '''new user setup emails''' via the server's MTA. For GUI email delivery issues, see [[Alerts#Email_Configuration|Alert Email Configuration]].}}
With savertp=yes and savesip=yes in /etc/voipmonitor.conf you will force sniffer to store DTMF(RF2833/SIP INFO) it detects into pcap. If you want to not store DTMF detected into pcap for some IPs / tel.numbers / SIP domains but you still need to collect SIP and RTP for these calls, create capture rule and set there record DTMF=OFF or record DTMF=only db.


==Turn off DTMF storing to pcap and DB selectively==
;I cannot receive verification emails / I did not receive the registration confirmation email
If you want to not store the DTMF detected in call's pcap for some IPs / tel.numbers / SIP domains or any SIP header values, create capture rule and set there record DTMF=OFF. (DTMF via SIP info and DTMF RFC2833) will not be stored to packets records, and to db.
:This is about the '''voipmonitor.org website/customer portal''' registration (not about SIP REGISTER messages or GUI email alerts).
:Common causes and solutions:
:# '''Check your spam/junk folder''' – verification emails from voipmonitor.org are sometimes filtered by email providers (Gmail, Outlook, Yahoo, corporate filters)
:# '''Verify your email address was typed correctly''' – a typo during registration means the email was sent to the wrong address. Register again with the correct email
:# '''Corporate email filters''' – some company mail servers block automated emails. Try registering with a personal email (Gmail, etc.) or ask your IT department to whitelist '''voipmonitor.org'''
:# '''Wait a few minutes''' – email delivery can be delayed depending on your email provider
:# If none of the above helps, contact '''support@voipmonitor.org''' and include the email address you used to register


;I created an account on the voipmonitor.org website but cannot log in
:# Ensure you have '''verified your email address''' by clicking the confirmation link in the verification email
:# Check your '''spam/junk folder''' for the verification email from voipmonitor.org
:# If you registered with a typo in your email, create a new account with the correct address
:# Contact '''support@voipmonitor.org''' for assistance with account access issues
== Compliance ==


==Disable spying on live calls==
=== PCI Compliance ===
You can disable possibility of GUI to do live spying on calls that uses g711 codec, in the sniffers config set option liveaudio=no


=How to enable milliseconds precision=
;How do I disable audio recording?
:<syntaxhighlight lang="ini">savertp = header    # Headers only, no audio
savertp = no        # No RTP at all
dtmf2db = no        # No DTMF to database
dtmf2pcap = no      # No DTMF to PCAP</syntaxhighlight>


[[How_to_enable_milliseconds_precision]]
;How do I selectively record calls?
:Use [[Capture_rules|Capture Rules]] to enable/disable recording based on IP, number, or SIP headers.


=How to enalbe ipv6 processing=
;How do I disable live listening?
By default is voipmonitor processing ipv4 traffic.
:* '''Settings > System Configuration > Advanced:''' Enable "Hide live play" and "Hide WAV play"
==New Database or old CDRs can be removed==
:* Edit <code>configuration.php</code>: <code>define('DISABLE_LIVEPLAY', true);</code>
Set in /etc/voipmonitor.conf
:* Edit <code>config/system_configuration.php</code>: <code>define('DISABLE_LIVE_SNIFFER', true);</code>
ipv6=yes
{{Note|1='''Understanding audio in VoIPmonitor:''' By default, the GUI extracts audio '''on-demand''' from stored RTP packets in PCAP files (when <code>savertp = yes</code>). The <code>saveaudio</code> option creates '''pre-generated''' audio files and is NOT required for audio playback. Setting <code>savertp = header</code> disables audio playback because RTP payload is not stored. See [[Sniffer_configuration#Understanding_Audio_Playback_vs_Pre-Generated_Files|Audio Playback vs Pre-Generated Files]] for details.}}
=== CALEA Compliance ===


(Drop database voipmonitor, create new and then restart the sniffer service)
;How do I export data to CALEA systems?
:Use GUI API methods <code>getPCAP</code> and <code>getVoiceRecording</code>. See [[CALEA_compliance|CALEA Integration Guide]].


==Database already contains CDRs ipv4==
== See Also ==
Because the data by default gets stored into int column using inet_aton, but ipv6 it storing it into different type of a same column with inet6_aton functions - then it is necessary to use additional steps:
===Easy way===
let know to the GUI that there are IP adresses stored in various formats with:
IPV6_SAFE_CONDITION_FOR_IPV4 set to true in GUI's configuration.php (GUI->Settings->system configuration->Advanced: Combines IPv4 queries with using....


then run the column's ALTERS described in GUIs installation dir in file
* [[Sniffer_troubleshooting|Sniffer Troubleshooting]] - packet capture, missing CDRs
/var/www/html/scripts/ipv6_alter.sql
* [[GUI_troubleshooting|GUI Troubleshooting]] - HTTP 500, database issues
then set ipv6=yes in /etc/voipmonitor.conf and restart sniffer service
* [[Sniffer_configuration|Sniffer Configuration Reference]]
* [[License|Licensing Details]]
* [[Data_Cleaning|Data Cleaning and Retention]]


Beware that the GUI's IPV6 option will decrease the performance of a GUI - you should have it there enabled only until the CDRs prior to date of ipv6 change in columns are present.


===Better Way===
first modify the columns type using all the alters documented in GUIs installation file /var/www/html/scripts/ipv6_alter.sql
and then UPDATE all the related CDR tables(data) -  (move content ipv4 to ipv6 datasize)
Example for cdr table only:
UPDATE cdr
set
a_saddr = inet6_aton(inet_ntoa(a_saddr)),
b_saddr = inet6_aton(inet_ntoa(b_saddr)),
sipcallerip = inet6_aton(inet_ntoa(sipcallerip)),
sipcalledip = inet6_aton(inet_ntoa(sipcalledip));


Because there needs to be run multiple updates/alters we are developing new migration mode that will be able to migrate the ipv4 to ipv6 columns with data modifications.
Please contact the support@voipmonitor.org if you need help in enabling ipv6 with current CDRs in ipv4.


= Register packets =
== AI Summary for RAG ==
By default is collecting of register packets disabled. You can enable it with option '''sip-register=yes''' in /etc/voipmonitor.conf and service restart.
More reading in [[https://www.voipmonitor.org/doc/Register in register doc]]


== Where are Register records stored? ==
'''Summary:''' Frequently Asked Questions covering all aspects of VoIPmonitor including website account registration on voipmonitor.org portal, licensing and HWID issues, platform support (AWS, Docker, ARM), audio recording and PCAP files, RTP quality metrics, CDR filtering, protocol support, PCI/CALEA compliance, and administration. For portal registration issues where verification email was not received, users should check spam folder, verify email address correctness, and contact support@voipmonitor.org.
=== Active register ===
Unlike tables for states and failed registrations, there is no table in database for active registrations - you need to ask api of the voipmonitor sniffer service for list of registers


Here is [[https://www.voipmonitor.org/doc/Register_active example script]] that lists all active registrations if sipcallerip is matching the only argument
'''Keywords:''' FAQ, registration, verification email, account, login, voipmonitor.org, portal, website registration, spam folder, support@voipmonitor.org, license, HWID, Invalid or corrupted hwid, Bad Key Content, license transfer, channels, concurrent calls, AWS, Docker, ARM, x86, MOS, jitter, NAT, natalias, absolute_timeout, recording limit, 4 hours, WAV, vmcodecs, G.729, Opus, PCAP, savertp, PCI, CALEA, password reset, debug mode, regex filter, CDR, SIP ports


=== Failed register ===
'''Key Questions:'''
there is in '''voipmonitor''' database the table '''register_failed''' where are all failed register stored (in case there is multipletimes same failures in short interval the column '''counter''' representing how many failed register requests there was in interval 120s instead of creating record for each.
* I registered but did not receive the verification email
 
* I have not received verification email after registration
=== Register State ===
* Cannot log in to voipmonitor.org account
there is in '''voipmonitor''' database the table '''register_state''' where are all expired/unregistered records stored.
* How to contact VoIPmonitor support
 
* Invalid or corrupted hwid error
= Geek's/Developer's corner =
* License file is for another hwid
Read this: [[Internal_support_hints]]
* How are license channels calculated
 
* What happens if I exceed license limit
 
* Why are quality metrics MOS jitter missing
 
* Why does recording stop after 4 hours
 
* Why are WAV files missing for G.729 Opus
 
* How to filter with regex in CDR
 
* Which protocols are supported
 
* How to disable audio recording PCI compliance
 
* How to reset admin password
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.

Latest revision as of 17:51, 3 February 2026


Quick answers to frequently asked questions. For detailed troubleshooting, see Sniffer Troubleshooting and GUI Troubleshooting.

Quick Navigation

General Configuration Licensing Audio & Files

General & Architecture

How does VoIPmonitor scale for high traffic?
For hardware recommendations and optimization of CPU, Disk I/O, and Database bottlenecks, see Scaling and Performance Tuning.
How do I manage disk space and database retention?
See Data Cleaning and Retention for PCAP cleanup (cleanspool) and CDR retention settings.
Can I run multiple GUI instances for redundancy?
Yes. Requirements:
  • All GUIs connect to the same database
  • PCAP storage accessible via NFS/SSHFS
  • Same key.php license file on each GUI

⚠️ Warning: CRITICAL: Enable the cron job on only ONE GUI instance. Multiple active cron jobs cause duplicate alerts and reports.

# Disable on secondary GUIs:
# * * * * * root php /var/www/html/php/run.php cron
Can one GUI display data from multiple sensors?
Yes. Use the Client-Server architecture (v20+):
  • Local Processing (packetbuffer_sender=no): Sensors analyze locally, send CDRs only
  • Packet Mirroring (packetbuffer_sender=yes): Sensors forward raw packets to central server
See Distributed Architecture for full configuration.

Platform Support

What architectures are supported?
Component Supported Notes
Sensor x86 (32/64-bit), ARMv7/v8 Compile from source for ARM64
GUI x86 only Not supported on ARM64/aarch64
Can I run VoIPmonitor on AWS?
Yes. For license detection: chmod 644 /dev/root
  • Stop/Start instance: HWID usually preserved
  • Terminate/Launch new: HWID changes, requires new license key
Is Docker supported?
Yes, but ensure /proc/self/cgroup content doesn't change between restarts (affects HWID stability).
Are cloud databases (RDS, Azure) supported?
Yes. Requires MySQL-compatible database with SUPER privilege. If unavailable, set:
log_bin_trust_function_creators = ON
Why is mysql_native_password deprecated?
PHP 7.4.4+ supports caching_sha2_password natively. Upgrade PHP and reinstall IonCube Loader. See GUI Installation.

CDR View

What does the red icon mean?
Indicates which party sent the BYE message (ended the call).
How do I filter with regular expressions?
Prefix with R(). Example: R(^500[0-9]{4}$)
How do I exclude values from filters?
Use ! prefix:
  • !123456 – exclude specific number
  • !00420% – exclude prefix
  • 222%, !223% – include 222*, exclude 223*
How do I search multi-word strings in custom headers?
Use underscore for spaces: %normal_call_clearing%
Why are caller/called numbers swapped?
VoIPmonitor extracts from SIP headers (From/To). Check destination_number_mode setting. See CDR Documentation.
Why is there a delay before CDRs appear?
Database can't keep up. See SQL Queue Troubleshooting.

Protocols & Ports

Which protocols are supported?
Supported Not Supported
SIP, Skinny/SCCP, MGCP, SS7/ISUP, Diameter, RTCP H.323, MEGACO/H.248
Why don't I see SIP on ports other than 5060?
Configure additional ports in voipmonitor.conf:
sipport = 5060,5080,8088,8089
See sipport configuration.
How do I enable IPv6?
Set ipv6=yes in config. Existing databases require migration. See IPv6 Guide.
How do I capture REGISTER messages?
Set sip-register=yes. See REGISTER Monitoring.
How do I capture DTMF?
dtmf2db = yes           # RFC2833 and SIP INFO
inbanddtmf = yes        # G.711 only, CPU intensive
How do I filter calls by DTMF in the CDR view?
Use the DTMF filters in Filter Form > Common tab:
  • DTMF char - search for specific digit or sequence
  • DTMF count - filter by number of DTMF digits (operators: >= and <)
    • >= 1 - calls with at least one DTMF digit
    • < 1 - calls without DTMF

ℹ️ Note: The DTMF count filter does not support = operator. Use < 1 to find calls without DTMF.

How do I export DTMF data?
DTMF is NOT included in CSV export. The Export CSV function exports only standard CDR columns.
To export DTMF data, query the cdr_dtmf table directly:
SELECT c.ID, c.calldate, c.caller, c.called, d.dtmf
FROM cdr c
JOIN cdr_dtmf d ON c.ID = d.cdr_ID
WHERE c.calldate >= '2024-01-01';
See cdr_dtmf table documentation.

RTP & Quality Metrics

Why are quality metrics (MOS, jitter) missing for one call leg?
Usually NAT mismatch – SDP announces different IP than actual RTP source.
Solution: Configure natalias mapping:
# Map public IP to private IP
natalias = 1.2.3.4 10.0.0.100
See NAT Configuration for details.
Why is RTP not correctly associated after moving SIP/RTP to different NICs?
Enable memory blocks for multi-interface scenarios:
auto_enable_use_blocks = yes
Why do recordings mix audio from different calls?
Enable SDP verification on both sides:
rtp_check_both_sides_by_sdp = yes

Licensing

How are license channels calculated?
Based on maximum concurrent calls (averaged hourly, checked daily). View in Tools → System Status → Concurrent calls.
  • Calls are deduplicated if last 6 digits of caller/called match within ±10 seconds
  • 487 Request Terminated responses are NOT counted
What happens if I exceed my limit?
Duration Effect
1-2 days Warning only, self-clearing
3+ consecutive days GUI blocked
How do I unblock a locked GUI?
In Settings > License, click get/update license key – this grants a temporary increase automatically.
I get "Invalid or corrupted hwid" error. What do I do?
Common causes:
  1. Incomplete key: Copy the entire multi-line license key, not just the first line
  2. Wrong field: Use "License token" for short tokens, "License key" for full multi-line keys
  3. AWS: Run chmod 644 /dev/root
  4. Docker: Ensure container ID doesn't change on restart
  5. Trial on different machine: Contact support for a pre-generated key
I get "license file key.php is for another hwid" after hardware change?
In Settings > License, click get/update license key then recheck to fetch new key for current HWID.
I get "Bad Key Content" error?
You're using the wrong field. Short tokens go in "License token" field, then click "get/update license key".
How do I transfer a license to a new server?
  1. Get token from old GUI (Settings > License) or customer portal
  2. On new GUI: paste token, click get/update license key
  3. IMPORTANT: Disable cron on old server to prevent conflicts
Can I use one license on multiple servers (test/dev)?
Yes. Contact support to reconfigure your token for multiple HWIDs.
What are the available license tiers?
10, 35, 50, 100, 150, 200, 350, 500, 750, 1000, 1250, 1500, 1750, 2000

Audio & PCAP Files

Why does call recording stop after exactly 4 hours?
Default absolute_timeout = 14400 (4 hours). Increase or disable:
absolute_timeout = 43200   # 12 hours
# absolute_timeout = 0     # Unlimited (watch memory usage)
Why are WAV files missing for non-G.711 codecs (Opus, G.729)?
Requires vmcodecs binary from GUI package. Install GUI, then restart sensor.
Why is audio playback garbled?
DTLS-SRTP encryption. Configure SSL Key Logger for decryption. See TLS/SRTP Decryption.
Why can't I download PCAP files?
Files deleted by retention limits. Check:
grep maxpoolsize /etc/voipmonitor.conf
grep maxpooldays /etc/voipmonitor.conf
Increase limits and restart. See Data Cleaning.
Why does downloaded PCAP have fewer packets than GUI shows?
Pcap deduplication before download is enabled. Disable in Settings > System Configuration > Advanced.
How do I bulk download audio/PCAP files?
Use GUI API. See Bulk Download Guide.
Can VoIPmonitor detect voicemail calls?
No automatic detection by analyzing RTP audio. Workarounds:
  • Filter by voicemail pilot number
  • Track SIP 302 redirects (save_sip_history = all)
  • Capture custom SIP headers your PBX adds
How do I convert WAV to OGG?
cd /var/spool/voipmonitor
find ./ -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -vn -acodec libvorbis "${0%.wav}.ogg"' {} \;
find ./ -name '*.wav' -exec rm -f {} \;
chown -R www-data:www-data ./
How do I enable live call listening?
Edit configuration.php:
define('DISABLE_LIVEPLAY', false);
See GUI Configuration for details.
Why is transfer throughput to external storage (S3, CloudBerry) limited?
VoIPmonitor does not impose speed limits on external storage transfers. If you see artificial throughput caps (e.g., 40 Mbps):
  1. Verify bandwidth from your host to the internet is sufficient
  2. Check third-party tool configuration (e.g., CloudBerry, s3fs, rclone) - the bottleneck is typically in these tools, not VoIPmonitor
  3. For controlled bandwidth limiting, use rsync via cron job with --bwlimit or the tar_move option - both allow bandwidth management

Administration

How do I reset admin password?
See User Management.
How do I fix GUI after PHP/OS upgrade?
Re-run installation. See Re-install GUI.
How do I enable debug mode?
Add ?debug=31415 to URL. See GUI Debug Mode.
How do I fix "Unknown column" errors after database upgrade?
Access: https://your-gui/admin.php?check_tables=1

ℹ️ Note: Do NOT use "Check MySQL Schema" button in Tools - that's for millisecond precision only.

Can I run multiple sensor instances on one host?
Yes. See Multiple Instances Guide.
Users from the same organization cannot view each other's support tickets. How can we share access?
Support tickets are associated with individual email addresses. To enable team-wide ticket visibility, merge all user accounts under a single main email address. Contact VoIPmonitor support to consolidate multiple accounts into one organization account.

VoIPmonitor.org Portal & Account

ℹ️ Note: This section is about the voipmonitor.org customer portal / website (account registration, license management, support tickets). The VoIPmonitor GUI does not send verification emails — the GUI only sends alert notifications and new user setup emails via the server's MTA. For GUI email delivery issues, see Alert Email Configuration.

I cannot receive verification emails / I did not receive the registration confirmation email
This is about the voipmonitor.org website/customer portal registration (not about SIP REGISTER messages or GUI email alerts).
Common causes and solutions:
  1. Check your spam/junk folder – verification emails from voipmonitor.org are sometimes filtered by email providers (Gmail, Outlook, Yahoo, corporate filters)
  2. Verify your email address was typed correctly – a typo during registration means the email was sent to the wrong address. Register again with the correct email
  3. Corporate email filters – some company mail servers block automated emails. Try registering with a personal email (Gmail, etc.) or ask your IT department to whitelist voipmonitor.org
  4. Wait a few minutes – email delivery can be delayed depending on your email provider
  5. If none of the above helps, contact support@voipmonitor.org and include the email address you used to register
I created an account on the voipmonitor.org website but cannot log in
  1. Ensure you have verified your email address by clicking the confirmation link in the verification email
  2. Check your spam/junk folder for the verification email from voipmonitor.org
  3. If you registered with a typo in your email, create a new account with the correct address
  4. Contact support@voipmonitor.org for assistance with account access issues

Compliance

PCI Compliance

How do I disable audio recording?
savertp = header    # Headers only, no audio
savertp = no        # No RTP at all
dtmf2db = no        # No DTMF to database
dtmf2pcap = no      # No DTMF to PCAP
How do I selectively record calls?
Use Capture Rules to enable/disable recording based on IP, number, or SIP headers.
How do I disable live listening?
  • Settings > System Configuration > Advanced: Enable "Hide live play" and "Hide WAV play"
  • Edit configuration.php: define('DISABLE_LIVEPLAY', true);
  • Edit config/system_configuration.php: define('DISABLE_LIVE_SNIFFER', true);

ℹ️ Note: Understanding audio in VoIPmonitor: By default, the GUI extracts audio on-demand from stored RTP packets in PCAP files (when savertp = yes). The saveaudio option creates pre-generated audio files and is NOT required for audio playback. Setting savertp = header disables audio playback because RTP payload is not stored. See Audio Playback vs Pre-Generated Files for details.

CALEA Compliance

How do I export data to CALEA systems?
Use GUI API methods getPCAP and getVoiceRecording. See CALEA Integration Guide.

See Also



AI Summary for RAG

Summary: Frequently Asked Questions covering all aspects of VoIPmonitor including website account registration on voipmonitor.org portal, licensing and HWID issues, platform support (AWS, Docker, ARM), audio recording and PCAP files, RTP quality metrics, CDR filtering, protocol support, PCI/CALEA compliance, and administration. For portal registration issues where verification email was not received, users should check spam folder, verify email address correctness, and contact support@voipmonitor.org.

Keywords: FAQ, registration, verification email, account, login, voipmonitor.org, portal, website registration, spam folder, support@voipmonitor.org, license, HWID, Invalid or corrupted hwid, Bad Key Content, license transfer, channels, concurrent calls, AWS, Docker, ARM, x86, MOS, jitter, NAT, natalias, absolute_timeout, recording limit, 4 hours, WAV, vmcodecs, G.729, Opus, PCAP, savertp, PCI, CALEA, password reset, debug mode, regex filter, CDR, SIP ports

Key Questions:

  • I registered but did not receive the verification email
  • I have not received verification email after registration
  • Cannot log in to voipmonitor.org account
  • How to contact VoIPmonitor support
  • Invalid or corrupted hwid error
  • License file is for another hwid
  • How are license channels calculated
  • What happens if I exceed license limit
  • Why are quality metrics MOS jitter missing
  • Why does recording stop after 4 hours
  • Why are WAV files missing for G.729 Opus
  • How to filter with regex in CDR
  • Which protocols are supported
  • How to disable audio recording PCI compliance
  • How to reset admin password