Field Guide · term

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, the identity, and the alias text itself: the proprietary cipher that obfuscates the name was recovered clean-room and is verified against real over-the-air traffic, so the decoded name surfaces on the radio’s entry. See the operator guide, Talker aliases.

frag 0frag 1frag 2 WACN 20 Sys 12 RID 24 obfuscated alias bytes CRC-16 SUID (56 bits) identifies the radio · CRC-16/GSM validates the reassembly
Fragments concatenate into one message: a 56-bit SUID that names the radio, the cipher-obfuscated alias, and a trailing CRC-16 that rejects a garbled fragment sequence.

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

Both halves are verified. The SUID framing reproduces SDRTrunk’s fragment byte stream exactly (the nibble-aligned reassembly fix, issue #778), which is why the WACN, System, and Radio ID fall out correctly on real traffic. The alias text decodes too: the obfuscation cipher was recovered by clean-room reverse engineering and is enabled (CipherVerified = true, issue #773) — it reproduces a held-out reference set byte-for-byte (1242 of 1242 characters) and decodes the real over-the-air capture from issue #376 (RID 200062) to its radio’s actual display name, “CRIO 0062”, with a matching CRC-16/GSM. The CRC is also what delimits the cipher region: a FACCH block’s zero-pad is carried along by reassembly, and the self-delimiting CRC strips it before the length-seeded cipher runs. The CRC stays advisory for suppression (a carrier whose CRC differs must not hide a valid alias), while a decode that is not clean printable text is still published flagged unreliable so a bit-corrupted fragment sequence never reads as a confirmed name.

Sources

  1. Project 25 — Wikipedia, on the P25 standard. The talker alias is a proprietary Motorola feature; its framing is verified against SDRTrunk’s fragment stream and its cipher is clean-room recovered and verified against real over-the-air traffic (issues #778, #773). ↩

See also