Also known as: talker alias, radio alias, unit alias
A talker alias is a short human-readable name a radio transmits for itself — “ENGINE 12”, “DISPATCH”, a unit’s callsign — so a listener sees a name instead of a bare numeric radio ID.1 On Motorola P25 systems the alias is a proprietary feature: the radio periodically broadcasts its display name, framed together with its full source identity and a checksum, spread across several small fragments that a receiver reassembles. GopherTrunk decodes the framing and identity; the alias text itself is protected by a proprietary cipher that remains unverified.
Message framing
Once its fragments are concatenated, an alias message has the same layout regardless of which
carrier delivered it (internal/radio/p25/motorola/alias.go):
| Bits | Field | Meaning |
|---|---|---|
| 0–19 | WACN | 20-bit wide-area network ID |
| 20–31 | System ID | 12-bit system ID |
| 32–55 | Radio ID | 24-bit source unit ID |
| 56 … end−16 | Alias | cipher-obfuscated display name (UTF-16 BE once decoded) |
| last 16 | CRC-16/GSM | checksum over everything before it |
The first 56 bits are the SUID (system unit ID) — WACN, System, and Radio ID together —
which uniquely names the radio across the network. The alias bytes that follow are run through
the per-byte cipher to recover the name. A trailing
CRC-16/GSM (polynomial 0x1021, init 0x0000, xor-out 0xFFFF) validates that the
fragments reassembled correctly and rejects a garbled sequence.
Carriers and reassembly
Three on-air carriers deliver alias fragments, and all reassemble to the same framing above:
LDU1 link control, TDULC link control, and the
Phase 2 FACCH-S MAC PDU. On the trunking side, the
alias also rides in a vendor TSBK (opcode 0x15, under
either the Motorola or Harris MFID), each block carrying a source ID, a block index, a block
count, and three bytes of alias data. GopherTrunk keeps the cipher, framing, and CRC in one
shared package so each carrier owns only its fragment transport and shares the decode.
Verification and trust
The SUID framing is verified: the reassembly fix (issue #778) reproduces SDRTrunk’s
fragment byte stream exactly, which is why the WACN, System, and Radio ID fall out correctly
on real traffic. The alias text is not — the obfuscation cipher is unverified and gated
off (CipherVerified = false, issue #773), so GopherTrunk never surfaces the decoded name as
a confirmed alias. Even the CRC is advisory: its parameters are inferred from open decoders
and not yet confirmed against a committed real-frame fixture, so GopherTrunk logs the CRC
result rather than gating on it — a wrong polynomial must not suppress a valid alias. The net
effect is that GopherTrunk reliably tells you which radio is announcing an alias, while being
scrupulous about not fabricating what the alias says.
Sources
-
Project 25 — Wikipedia, on the P25 standard. The talker alias is a proprietary Motorola feature; its framing is verified against SDRTrunk while the alias cipher remains unverified (issues #778, #773). ↩