Call History Guide - magicbug/Cloudlog GitHub Wiki
This page explains how the Call History feature works in Cloudlog, including setup, supported file format, and behaviour in QSO Entry and Contesting.
Overview
Call History lets you upload callsign membership lists (for example, FOC/CWops-style lists) and show matching member details while entering QSOs.
Current implementation goals:
- Per-user files (each user only sees and uses their own uploads)
- N1MM-style call history file support (
.txt/.csv) - Fast lookup while typing callsigns
- Safe operator workflow (no hidden contesting field overwrites)
Where to Manage Files
Open:
Tools->Call History
On the Call History management page, you can:
- Upload a file
- Set an optional file label
- Set an optional organisation label (example:
FOC) - Set priority (lower number = higher priority)
- Enable/disable a file
- Delete a file
Supported Upload Format
Accepted file types:
.txt.csv
Expected format:
- N1MM-style call history data
- Optional header row is supported
- Callsign matching is case-insensitive and normalises
Øto0
Typical fields used by Cloudlog:
- Callsign
- Name
- Exch1 (membership/member number)
If a file has no header row, Cloudlog uses fallback column positions compatible with common N1MM exports.
QSO Entry Behaviour
Page:
QSO Entry(/index.php/qso?manual=0or manual mode)
Behavior:
- While typing a callsign, Cloudlog performs a call-history lookup
- If there are matches, membership info is shown in the existing "previous contacts/times worked" card area
- If there are no matches, the membership section is hidden
For each match shown:
- Organization label + member number (
Exch1) + name Copy to SIGbutton
Copy to SIG action:
- Sets
SIGto organisation label (example:FOC) - Sets
SIG INFOto member number (Exch1)
This is explicit operator action (manual copy), not an automatic overwrite.
Contesting Behaviour
Page:
Contesting(/index.php/contesting?manual=0or manual mode)
Behavior:
- While typing a callsign, Cloudlog performs a call-history lookup
- If there are matches, a "Call History Membership" panel appears
- If there are no matches, that panel stays hidden
Important:
- Contesting is display-only for the call history
- No contest fields are auto-populated from call history
This is intentional to avoid interfering with high-rate contest exchange entry.
Data Storage
Database table:
callhistory_files
Stored metadata includes:
user_id- labels (
file_label,organization_label) - active flag and priority
- upload metadata (filename, size, mime, checksum)
- parser status fields
File storage path:
uploads/callhistory/{user_id}/
Git behavior:
- Upload directory is ignored by git (
.gitignore)
Permissions
- Feature requires logged-in user access level
authorize(2) - Users can only manage their own call history files
Troubleshooting
No membership result appears
Check:
- File is uploaded and marked Active
- Callsign exists in the uploaded file
- Callsign format uses valid characters (Cloudlog normalizes
Øto0)
Panel appears then disappears (QSO page)
Current behaviour should keep membership details in the previous contacts card section while callsign remains matched. If it still disappears, verify that custom JS or browser cache is not serving older script files.
Wrong organisation/member mapping
Check:
Organisation Labelvalue on upload page- Source file has expected
Exch1/ membership column - Header row names are standard N1MM-style where possible
Operational Notes
- If multiple active files contain the same callsign, multiple membership rows can be shown
- Priority controls matching order, but all matches can still be displayed
- Use concise organisation labels (
FOC,CWOPS,FISTS) for cleaner SIG values