Order of GeoIP processing
GeoIP Processing
VoIPmonitor uses GeoIP services to determine geographic location of IP addresses for:
- Anti-fraud alerts - Detecting calls to/from unexpected countries (see Anti-fraud)
- CDR enrichment - Adding country information to call records
- Reporting - Country-based statistics and filtering
Processing Priority
The system uses a fallback mechanism, trying each method in order until successful:
| Priority | Method | Notes |
|---|---|---|
| 1 | MaxMind API | Commercial service, highest accuracy. Requires API key. |
| 2 | IPInfoDB API | Alternative commercial API |
| 3 | Local Database | File-based (GeoIPCity.dat) OR MySQL tables
|
| 4 | Free Portals | Online fallback services |
💡 Tip: For best accuracy, configure MaxMind API with a valid license key.
Configuration
GUI Path: Settings → System Configuration → GeoIP
Local Database Options
| Type | Location/Table | Description |
|---|---|---|
| File-based | GeoIPCity.dat |
Legacy MaxMind format |
| MySQL IPv4 | geoip_country |
Database table for IPv4 |
| MySQL IPv6 | geoipv6_country |
Database table for IPv6 |
Version tracking is stored in the system table:
type='geoip_country_version'type='geoipv6_country_version'
Manual GeoIP Import
Use this when GUI "Update GeoIP" fails or completes partially (version shows correct but lookups fail).
Export from working server:
mysqldump -c voipmonitor geoip_country > gc.sql
mysqldump -c voipmonitor geoipv6_country > gc6.sql
Import to affected server:
mysql voipmonitor < gc.sql
mysql voipmonitor < gc6.sql
Update version tracking:
-- Replace '12' with actual version number from source
INSERT INTO system SET content='12\n', type='geoip_country_version';
INSERT INTO system SET content='12\n', type='geoipv6_country_version';
⚠️ Warning: Ensure database name matches your installation (default: voipmonitor).
See Also
- Anti-fraud - Country-based fraud detection using GeoIP
- IP Groups - Creating IP address groups for filtering
AI Summary for RAG
Summary: Documents GeoIP processing priority in VoIPmonitor. Uses fallback mechanism: (1) MaxMind API (commercial, highest accuracy), (2) IPInfoDB API, (3) Local Database (file-based GeoIPCity.dat OR MySQL tables geoip_country/geoipv6_country), (4) Free Portals. GeoIP is used for anti-fraud alerts, CDR country enrichment, and reporting. Configuration via GUI Settings → System Configuration → GeoIP. Version tracking in system table (geoip_country_version, geoipv6_country_version). Manual import procedure: mysqldump from working installation, import to affected server, update version in system table.
Keywords: GeoIP, MaxMind, IPInfoDB, country lookup, IP geolocation, processing order, priority, fallback, local database, GeoIPCity.dat, MySQL tables, geoip_country, geoipv6_country, manual import, system table, geoip_country_version, anti-fraud, country detection
Key Questions:
- What is the order of GeoIP processing in VoIPmonitor?
- Which GeoIP service has highest priority?
- Where do I configure GeoIP services in VoIPmonitor?
- How to manually import GeoIP data when GUI update fails?
- What MySQL tables store GeoIP data?
- What is GeoIP used for in VoIPmonitor?