Skip to content

Add QRZCALL.EU as a callbook provider#3438

Open
Ron6519 wants to merge 1 commit into
magicbug:devfrom
Ron6519:qrzcall-callbook-lookup
Open

Add QRZCALL.EU as a callbook provider#3438
Ron6519 wants to merge 1 commit into
magicbug:devfrom
Ron6519:qrzcall-callbook-lookup

Conversation

@Ron6519
Copy link
Copy Markdown

@Ron6519 Ron6519 commented May 16, 2026

Add QRZCALL.EU as a callbook provider

This PR adds QRZCALL.EU — a European radio amateur
callsign database — as a callbook lookup provider, alongside the existing
QRZ.com and HamQTH options.

QRZCALL.EU is selected per user in Account Settings (Callbook section),
exactly like QRZ and HamQTH. When a callsign is entered, Cloudlog queries
https://api.qrzcall.eu/v1/pub/callsign_xml.php and auto-fills name, grid,
country, DXCC, QSL info, etc.


Why QRZCALL.EU?

  • Strong coverage of European callsigns (many not in QRZ.com)
  • QRZ-compatible XML API — the response schema is identical to QRZ.com, so the
    new library is a near drop-in and no downstream code changes are needed
  • Uses a single Personal Access Token (PAT) instead of a username/password →
    session-key flow, so there is no session-key dance or token-refresh logic

How it integrates

QRZCALL.EU follows the existing per-user callbook pattern:

  • The user picks QRZCALL.EU from the Callbook Provider dropdown in
    Account Settings and pastes their PAT into the Callbook Password field
    (stored encrypted in user_options, exactly like the QRZ password); the
    Callbook Username field is left blank.
  • The lookup reads the PAT from the user's session and decrypts it — there is
    no config.php involvement.
  • QRZCALL.EU is wired into all four callbook lookup paths so it behaves
    identically to QRZ/HamQTH everywhere: loadCallBook(), the QSO-entry
    "Results" panel (partial()), search_result(), and the
    check_missing_grid_id() batch grid-fill.

Changes

4 files — 1 new, 3 modified

File Change
application/libraries/Qrzcall.php NEW — callbook library; search($callsign, $token, $use_fullname) with PAT Authorization: Bearer auth, parses QRZ-compatible XML
application/views/user/edit.php Adds QRZCALL.EU to the Callbook Provider dropdown + a one-line hint (PAT → Callbook Password)
application/models/Logbook_model.php QRZCALL case in loadCallBook() and in the check_missing_grid_id() batch lookup — reads the PAT from the user's decrypted callbook_password
application/controllers/Logbook.php QRZCALL branch in partial() and search_result(); "not configured" message updated to mention QRZCALL.EU

Configuration

No config.php changes. A user enables it entirely from the UI:
Account Settings → Callbook → Provider: QRZCALL.EU, then paste the PAT into
Callbook Password (leave Callbook Username blank). A PAT is generated at
qrzcall.eu → My Profile → Account → API Tokens.


Testing

A shared test account is available for reviewers:

Callsign:  TEST0WVLG
PAT:       pat_b3gvr7n6wyzjvs9xk4jmpgxm3r3gtgdx

In Account Settings choose Callbook Provider "QRZCALL.EU", paste the PAT into
Callbook Password, save, then look up PA4R on the QSO entry form — name,
gridsquare, country and lat/long populate from QRZCALL.EU, and the "Results
for PA4R" panel shows the callbook card (no "not configured" message).

Verified on the Docker development environment (PHP 7.4, MySQL) across all
four lookup paths; existing Cypress suite unaffected.


Screenshot

Callsign PA4R looked up on the QSO entry form — name, gridsquare and
location auto-filled from QRZCALL.EU. (Screenshot attached to this PR.)


No breaking changes

All changes are additive. The new provider is only active when a user
explicitly selects "QRZCALL.EU" in their Account Settings. QRZ.com and HamQTH
behaviour is unchanged.

@magicbug
Copy link
Copy Markdown
Owner

@Ron6519 Not sure if you are the dev behind the site, but where did the callbook data come from? Notice for my callsign the gridsquare is incorrect

Will see about merging the PR soon

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a QRZCALL.EU callbook integration to Cloudlog’s existing callsign lookup flow, alongside QRZ.com and HamQTH.

Changes:

  • Adds a new Qrzcall library for token-authenticated QRZ-compatible XML lookups.
  • Adds QRZCALL handling to Logbook_model::loadCallBook().
  • Documents QRZCALL-related configuration in sample and installer config files.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
application/libraries/Qrzcall.php New QRZCALL.EU XML API client and response mapping.
application/models/Logbook_model.php Adds QRZCALL lookup branch to callbook loading.
application/config/config.sample.php Documents QRZCALL as a callbook option and token setting.
install/config/config.php Adds QRZCALL token placeholder to generated config template.

Comment thread application/config/config.sample.php Outdated
| Generate a PAT at: https://qrzcall.eu/ → My Profile → Account → API Tokens
| Requires a Data or Extra subscription on QRZCALL.EU.
|
| Set callbook = "qrzcall" above to use QRZCALL.EU for callsign lookups.
Comment thread install/config/config.php Outdated
@magicbug
Copy link
Copy Markdown
Owner

magicbug commented May 16, 2026

@Ron6519 For users selecting callbooks Cloudlog no longer uses config.php instead, the user generally selects it from account settings index.php/user/edit/#panelsStayOpen-B_confirmation_account

@Ron6519
Copy link
Copy Markdown
Author

Ron6519 commented May 16, 2026

callbook-lookup-PA4R

@Ron6519
Copy link
Copy Markdown
Author

Ron6519 commented May 16, 2026

@Ron6519 For users selecting callbooks Cloudlog no longer uses config.php instead, the user generally selects it from account settings index.php/user/edit/#panelsStayOpen-B_confirmation_account

Thanks for the info. Will investigate and make adjustments.

I build qrzcall.eu and gained callsign data from many sources. It's up to almost 3 million. I correct your grid. Somewhere, somebody wrote i instead of j.
I hope to provide an european alternative to QRZ.com. For it to get tracktion, and by that get more and more accurate, I am looking to integrated with popular logbooks.

@Ron6519 Ron6519 force-pushed the qrzcall-callbook-lookup branch from 16ec1d5 to 46ab1d8 Compare May 16, 2026 18:51
@Ron6519
Copy link
Copy Markdown
Author

Ron6519 commented May 16, 2026

Thanks for the review — all three remarks addressed. QRZCALL.EU no longer touches config.php at all; it is now a per-user callbook provider exactly like QRZ/HamQTH.

Fixes

  • Account-settings selection — added QRZCALL.EU to the Callbook Provider dropdown in user/edit.php. The PAT is pasted into the existing Callbook Password field and stored encrypted per-user in user_options (Username left blank).
  • loadCallBook() — the QRZCALL case now reads the PAT from the user's decrypted callbook_password session value; it keys off the session callbook_type like the other providers. No config item is read.
  • config.sample.php / install/config/config.php — both reverted/removed, so the unsubstituted %qrzcall_token% placeholder is gone entirely.

Also wired QRZCALL into the other callbook paths (partial(), search_result(), check_missing_grid_id()) so it behaves identically to QRZ/HamQTH everywhere. Verified on the Docker dev environment.

@Ron6519
Copy link
Copy Markdown
Author

Ron6519 commented May 16, 2026

account-settings-callbook qso-lookup-PA4R

@magicbug
Copy link
Copy Markdown
Owner

Thanks for the info. Will investigate and make adjustments.

Thanks, might take a couple of days for a merge, GitHub's acting very strange when it comes to page loading at the moment with the large influx of AI tools

I build qrzcall.eu and gained callsign data from many sources. It's up to almost 3 million. I correct your grid. Somewhere, somebody wrote i instead of j. I hope to provide an european alternative to QRZ.com. For it to get tracktion, and by that get more and more accurate, I am looking to integrated with popular logbooks.

Any compitention to QRZ can only be a good thing, I did try to launch a UK Callbook in the past but Ofcom made it pretty much impossible to get the data even as a commerical company.

The grid was valid, it was previous QTH just moved a little to the east so went from IP to JP perhaps came out of someones logbook?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants