π AREDN Phonebook
October 31, 2025 Β· View on GitHub
π― Emergency-Ready Directory & Monitoring for Amateur Radio Mesh Networks
AREDN Phonebook provides SIP directory services and network monitoring for Amateur Radio Emergency Data Network (AREDN) mesh networks. During normal times, it automatically fetches a phonebook from common servers and maintains a copy on the router, making it easy for SIP phones to access directory listings across the mesh network. The router stores this phonebook so the latest copied version is always available.
β¨ Features
- π Automatic Directory Updates: Downloads phonebook from mesh servers hourly (configurable)
- π‘οΈ Emergency Resilience: Survives power outages with persistent storage
- πΎ Flash-Friendly: Minimizes writes to preserve router memory
- π Plug-and-Play: Works immediately after installation
- π± Phone Integration: Provides XML directory for SIP phones (tested with Yealink)
- π§ Passive Safety: Self-healing with automatic error recovery
- π AREDNmon Dashboard: Real-time network topology visualization with interactive map
- πΊοΈ Network Topology: Visual map showing routers, phones, and connections with RTT metrics
- π Traceroute Visualization: Interactive path tracing from server to any node on the map
- π― Testing: ICMP ping tests with RTT/jitter measurement
- π Performance Metrics: Color-coded latency indicators for network quality assessment
π Access AREDNmon:
http://[your-node].local.mesh/cgi-bin/arednmon
π¦ Installation
π Download
Full AREDN Setup Guide: AREDN Setup Documentation (PDF)
- Go to the π₯ Releases page
- Download the latest
AREDN-Phonebook-x.x.x-x_[architecture].ipkfile for your device:- π ath79: Most common AREDN routers (e.g., Ubiquiti, MikroTik)
- π» x86: PC-based AREDN nodes
- π§ ipq40xx: Some newer routers
π Install via AREDN Web Interface
-
π Access AREDN Node: Connect to your AREDN node's web interface
-
βοΈ Navigate to Administration: Go to Administration β Package Management

-
π€ Upload Package:
-
Click Choose File and select your downloaded
.ipkfile
-
-
β‘ Install: Click Fetch and Install
-
β‘ Important: After installation or upgrade, sometimes a power-cycle of the router is needed
βοΈ Configuration (optional, not needed for most users)
The phonebook server automatically configures itself. Default settings:
- π Configuration:
/etc/phonebook.conf - π§ Service Commands:
/etc/init.d/AREDN-Phonebook start|stop|restart|status - π SIP Port: 5060
- π Directory URL:
http://[your-node].local.mesh/arednstack/phonebook_generic_direct.xml
π§ Configuration Options
Edit /etc/phonebook.conf to customize settings:
# ============================================================================
# PHONEBOOK SETTINGS
# ============================================================================
# Phonebook Fetcher Interval - how often to download phonebook (seconds)
# Default: 3600 (1 hour)
PB_INTERVAL_SECONDS=3600
# Phonebook Servers - download sources for CSV phonebook
# Format: PHONEBOOK_SERVER=host,port,path
# Multiple servers can be added (tries in order until successful)
PHONEBOOK_SERVER=hb9bla-vm-tunnelserver.local.mesh,80,/filerepo/Phonebook/AREDN_Phonebook.csv
PHONEBOOK_SERVER=hb9edi-vm-gw.local.mesh,80,/filerepo/Phonebook/AREDN_Phonebook.csv
# ============================================================================
# PHONEBOOK SERVICE SETTINGS
# ============================================================================
# Status Update Interval - how often to check for phonebook changes (seconds)
# Default: 600 (10 minutes)
STATUS_UPDATE_INTERVAL_SECONDS=600
# ============================================================================
# PHONE MONITORING SETTINGS
# ============================================================================
# Phone Test Interval - how often to test all phones (seconds)
# Set to 0 to disable monitoring completely
# Default: 600 (10 minutes)
PHONE_TEST_INTERVAL_SECONDS=600
# Phone Ping Test - ICMP ping count per phone (network layer)
# Tests network connectivity and measures RTT/jitter at IP level
# Range: 0-20, Default: 5, Set to 0 to disable
PHONE_PING_COUNT=5
# Phone Options Test - SIP OPTIONS count per phone (application layer)
# Tests SIP connectivity and measures RTT/jitter at SIP level
# Range: 0-20, Default: 5, Set to 0 to disable
PHONE_OPTIONS_COUNT=5
# Phone Call Test - enable INVITE testing (rings phone briefly)
# Only used as fallback if both ping and options fail
# 0 = disabled, 1 = enabled
# Default: 0 (disabled - recommended to avoid disturbing users)
PHONE_CALL_TEST_ENABLED=0
Monitoring Modes:
- π ICMP Ping (network layer): Network connectivity and IP-level RTT/jitter
- π SIP OPTIONS (application layer): SIP connectivity and application-level RTT/jitter
- π SIP INVITE (optional): Fallback ring test if ping and OPTIONS fail
π± Phone Setup
Configure your SIP phone to use the node's directory:
- π Directory URL:
http://localnode.local.mesh/arednstack/phonebook_generic_direct.xml - π‘ SIP Server:
localnode.local.mesh - π Refresh: Directory updates automatically every xx seconds from router (your Update Time Interval)
π AREDNmon - Network Topology & Monitoring Dashboard
Access: http://[your-node].local.mesh/cgi-bin/arednmon

AREDNmon provides real-time network topology visualization and monitoring with an interactive web-based dashboard showing your mesh network structure and phone connectivity status.
π Network Discovery Timeline
- Full visibility: The crawler begins the search at your node... So give it about one hour after the start of the router
β¨ Dashboard Features
πΊοΈ Network Topology Map
- π Interactive Map: Switzerland-focused map showing all nodes with geographic locations
- π΅ Node Types: Orange markers for routers, green for phones, grey for offline nodes
- π Connection Lines: Visual representation of network connections with RTT-based color coding
- Green: Excellent (<100ms RTT)
- Orange: Medium (100-200ms RTT)
- Red: Poor (>200ms RTT)
- Grey dashed: Unreachable connections
- π RTT Labels: Shows round-trip times on router-to-router connections (visible when zoomed in)
- π Interactive Features: Click nodes to see details, hover over connections for RTT statistics
- π― New Node Discovery: Automatically highlights newly discovered nodes in real-time
π Traceroute Visualization
- π£οΈ Path Tracing: Click any node to run traceroute from server to that node
- π Visual Path: Purple solid lines overlay on map showing actual network path
- β±οΈ Total Delay: Displays cumulative RTT for entire path
- π Hop Details: Shows each hop with hostname, IP address, and individual RTT
π± Phone Connectivity Testing
- π Real-time Status Display: See all phones with ONLINE/OFFLINE/NO_DNS status
- π Performance Metrics: RTT (round-trip time) and jitter measurements
- π¨ Color-coded Results: Green (<100ms), Orange (100-200ms), Red (>200ms)
- π± Contact Names: Automatically shows names from phonebook
- π Smart Caching: Phonebook data cached in browser for performance
- β‘ Dual Testing: Both ICMP ping and SIP OPTIONS tests
π Phone Status Table Columns
| Column | Description |
|---|---|
| Phone Number | SIP extension number |
| Name | Contact name from phonebook |
| Ping Status | ICMP network-layer connectivity |
| Ping RTT | Network round-trip time in ms |
| Ping Jitter | Network jitter in ms |
| OPTIONS Status | SIP application-layer connectivity |
| OPTIONS RTT | SIP round-trip time in ms |
| OPTIONS Jitter | SIP jitter in ms |
βοΈ Test Configuration
Tests run automatically based on /etc/phonebook.conf settings:
- Test Interval: Default 600 seconds (10 minutes)
- Ping Count: Default 5 ICMP pings per phone
- OPTIONS Count: Default 5 SIP OPTIONS per phone
- Only phones with DNS resolution are tested (marked with * in phonebook)
π‘ Status Meanings
- π’ ONLINE: Phone responded successfully to test
- π΄ OFFLINE: DNS resolved but phone didn't respond
- βͺ NO DNS: Phone hostname doesn't resolve (node not on mesh)
- β« DISABLED: Testing disabled in configuration
π Webhook Endpoints
π Load Phonebook (Manual Refresh)
- π URL:
http://[your-node].local.mesh/cgi-bin/loadphonebook - π‘ Method: GET
- β‘ Function: Triggers immediate phonebook reload
- π Response: JSON with status and timestamp
- π― Use Case: Manual refresh, testing, emergency situations
π Show Phonebook (API Access)
- π URL:
http://[your-node].local.mesh/cgi-bin/showphonebook - π‘ Method: GET
- π Function: Returns current phonebook contents as JSON
- π Response: JSON with entry count, last updated time, and full contact list
- π― Use Case: Integration with other tools, status checking
π‘ Phone Test (Phone Monitoring)
- π URL:
http://[your-node].local.mesh/cgi-bin/phone_test?target=441530&count=5 - π‘ Method: GET
- π― Parameters:
target: Phone number to test (required)count: Number of pings (1-20, default: 5)
- β‘ Function: Sends SIP OPTIONS ping requests and measures RTT/jitter
- π Response: JSON with test status
- π Metrics: Min/max/avg RTT, jitter, packet loss percentage
- π― Use Case: Diagnose phone connectivity, measure network quality
- π‘ Note: Non-intrusive test (doesn't ring the phone)
π§ Troubleshooting
β Check Service Status
ps | grep AREDN-Phonebook
logread | grep "AREDN-Phonebook"
π Verify Directory Files
ls -la /www/arednstack/phonebook*
curl http://localhost/arednstack/phonebook_generic_direct.xml
β οΈ Common Issues
- π No directory showing: Wait up to 1 hour for first download, or trigger immediate download via webhook
- π« Service not starting: Check logs with
logread | tail -50 - π Permission errors: Ensure
/www/arednstack/directory exists
π¬ Technical Details
- π Emergency Boot: Loads the existing phonebook immediately on startup
- πΎ Persistent Storage: Survives power cycles using
/www/arednstack/ - π‘οΈ Flash Protection: Only writes when phonebook content changes
- π§΅ Multi-threaded: Background fetching doesn't affect SIP performance
- π§ Auto-healing: Recovers from network failures and corrupt data
- π RFC3550 Metrics: Industry-standard jitter calculation for voice quality
- π― Smart Testing: DNS pre-check reduces unnecessary SIP traffic
- β‘ Fast Detection: 50ms polling for sub-second phone status updates
π Support
- π Issues: GitHub Issues
- π Documentation: Functional Specification
- π Setup Guide: AREDN Setup Documentation (PDF)
- π AREDN Community: AREDN Forums
π License
This project is released under open source license for amateur radio emergency communications.