Order of GeoIP processing: Difference between revisions
(Add MySQL GeoIP tables documentation with manual import procedure) |
(Rewrite: add GeoIP use cases intro, consolidate manual import, improve tables) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 2: | Line 2: | ||
[[Category:Configuration]] | [[Category:Configuration]] | ||
= | = 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 == | == Processing Priority == | ||
The system uses a fallback mechanism, trying each method in order until successful: | |||
<kroki lang="mermaid"> | <kroki lang="mermaid"> | ||
| Line 25: | Line 28: | ||
{| class="wikitable" | {| class="wikitable" | ||
! Priority !! Method !! | ! Priority !! Method !! Notes | ||
|- | |- | ||
| 1 || '''MaxMind API''' || Commercial | | 1 || '''MaxMind API''' || Commercial service, highest accuracy. Requires API key. | ||
|- | |- | ||
| 2 || '''IPInfoDB API''' || Alternative commercial | | 2 || '''IPInfoDB API''' || Alternative commercial API | ||
|- | |- | ||
| 3 || '''Local Database''' || | | 3 || '''Local Database''' || File-based (<code>GeoIPCity.dat</code>) OR MySQL tables | ||
|- | |- | ||
| 4 || '''Free Portals''' || | | 4 || '''Free Portals''' || Online fallback services | ||
|} | |} | ||
{{Tip|For best accuracy, configure MaxMind API with a valid license key.}} | |||
== Configuration == | == Configuration == | ||
'''GUI Path:''' Settings → System Configuration → GeoIP | |||
=== | === Local Database Options === | ||
{| class="wikitable" | |||
! Type !! Location/Table !! Description | |||
|- | |||
| File-based || <code>GeoIPCity.dat</code> || Legacy MaxMind format | |||
|- | |||
| MySQL IPv4 || <code>geoip_country</code> || Database table for IPv4 | |||
|- | |||
| MySQL IPv6 || <code>geoipv6_country</code> || Database table for IPv6 | |||
|} | |||
Version tracking is stored in the <code>system</code> table: | |||
* <code>type='geoip_country_version'</code> | |||
* <code>type='geoipv6_country_version'</code> | |||
== Manual GeoIP Import == | |||
Use this when GUI "Update GeoIP" fails or completes partially (version shows correct but lookups fail). | |||
'''Export from working server:''' | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysqldump -c voipmonitor geoip_country > gc.sql | mysqldump -c voipmonitor geoip_country > gc.sql | ||
| Line 66: | Line 71: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Import to affected server:''' | |||
''' | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysql voipmonitor < gc.sql | mysql voipmonitor < gc.sql | ||
| Line 79: | Line 77: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Update version tracking:''' | |||
''' | |||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
-- Replace '12' with | -- 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'; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Warning|1=Ensure database name matches your installation (default: <code>voipmonitor</code>).}} | |||
== | == See Also == | ||
* [[ | * [[Anti-fraud]] - Country-based fraud detection using GeoIP | ||
* [[Groups#IP_Groups|IP Groups]] - Creating IP address groups for filtering | * [[Groups#IP_Groups|IP Groups]] - Creating IP address groups for filtering | ||
== AI Summary for RAG == | == AI Summary for RAG == | ||
'''Summary:''' Documents | '''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, MySQL tables, geoip_country, geoipv6_country, manual import, system table, geoip_country_version, | '''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:''' | '''Key Questions:''' | ||
| Line 124: | Line 101: | ||
* Which GeoIP service has highest priority? | * Which GeoIP service has highest priority? | ||
* Where do I configure GeoIP services in VoIPmonitor? | * Where do I configure GeoIP services in VoIPmonitor? | ||
* How to manually import GeoIP data when GUI update fails? | |||
* What MySQL tables store GeoIP data? | |||
* How to manually import GeoIP data | * What is GeoIP used for in VoIPmonitor? | ||
* What | |||
* | |||
Latest revision as of 16:47, 8 January 2026
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?