Live Talkers
● LIVE| Dir | Mode | Callsign | TG |
|---|---|---|---|
| No active calls. | |||
Currently keyed talkers. Mode is shown for local transmissions; bridge traffic shows RX only.
Last Heard 24h
| Time | Callsign | Src ID | TG / Dst | TS | Duration | Backend |
|---|
Active calls are highlighted. Data is kept for 24 hours.
DMR Bridges read-only
callmgr connects to upstream DMR masters (Brandmeister/TGIF/etc.) as if it were a hotspot. Each peer has its own UDP socket, runs the standard RPTL/RPTK/RPTC handshake, keepalive, and bridges one TG bidirectionally.
No peers configured. Add one with the button above (LVL2+) or edit callmgr.json.
Edit DMR peer
Global Bans read-only
A global ban blocks the user everywhere — radio (acl.cpp drops voice), web (require_login rejects sessions), SMS, APRS. System-reserved TGs (PARROT/SCAN/EMERGENCY/APRS/DISCONNECT) are not bypassed by global bans — banned users still get nothing.
Callsigns
DMR IDs
IPs
Talkgroups
| ID | Name | Description | Country | Language | Website | Actions |
|---|
No talkgroups in Redis yet — populate /registry/dmr/talkgroups/<tgid> hashes with id/name/description/website/country/language.
Events
System events that involve your callsign or one of your DMR ids — admins see everything.
| Time | Type | Message |
|---|
No events yet.
Radio Status
Live status of every hotspot and radio that has connected to this server using one of your DMR ids. Auto-refreshes every 10 seconds while this page is visible.
No radios registered to your callsign yet. Connect a hotspot using the Hotspot Setup wizard.
SMS / SGS
Send a new message
Short Data Service (SMS/SGS) messages received on your DMR ids. "hide failed" filters out incomplete reassemblies (timeout / decode errors) — uncheck to see everything.
| Time | From | To | Kind | Text |
|---|
No SMS messages yet on your DMR ids.
APRS Messages
Send an APRS message
APRS-IS text messages addressed to your callsign (any SSID). Sent messages appear here too (marked out). Position reports are not shown — see Monitoring → APRS for those.
| Time | Dir | From | To | Text | Msg-id |
|---|
No APRS messages yet for your callsign.
Hotspot Setup
Fill in your callsign + DMR id below, pick your hotspot firmware, and copy the generated settings into its configuration. The same approach works for Pi-Star, WPSD, openSPOT, MMDVMHost, and DMRGateway.
YSF Reflectors
Each YSF reflector hosted by this server, with the endpoints currently connected (registered users with their DMR id, plus anonymous / guest endpoints).
No YSF reflectors configured.
Network Peers
Configured peers and servers across YSF, NXDN, M17, M2MC and OpenBridge. Edit via Sysconfig (raw JSON) for now — live state mirror per protocol will land here as each module gets one (HB/MMDVM client already does, see DMR Bridges).
No peers configured.
Talkgroup system
Subscribers (active hotspots/repeaters)
Bridges routing this TG
Last 24 hours on this TG
| Time | Callsign | Src ID | Slot | Backend |
|---|
No activity in the last 24 hours.
Talkgroup — Control Panel read-only
Whitelist (allow): if non-empty, only listed callsigns may use the TG. Blacklist (deny): listed callsigns are blocked. Listen-only: listed callsigns may RX but not TX.
Add a callsign to give them admin rights on this TG. Per-user RX/access permissions are managed in the Access lists tab.
| Callsign | Actions |
|---|
Edit Talkgroup
Your Profile — where to find what
Once you're logged in, the dropdown under your callsign (top right) holds everything personal to you. This page walks through each item and what it's for.
Don't have a DMR ID yet?
A DMR ID is required to register and to operate on any DMR / NXDN / YSF / M17 network. Get one for free at:
- DMR / YSF / M17 — radioid.net (your DMR ID also serves as your YSF and M17 callsign-to-id).
- NXDN — nxdn.info.
callmgr syncs from those databases nightly. Once your callsign appears there, register on this site and your IDs show up automatically under My IDs.
Profile
Your account information. Six tabs:
- My Account — name, email, city / state / country, and your home position (lat / lon). The home position is a fallback for APRS when your radio isn't sending GPS — see APRS help. Change your web password from this tab too.
- API Key — generate / rotate a token if you want to call the API from a script.
- My IDs — every DMR and NXDN id registered to your callsign in the public databases. Read-only — they come from radioid.net / nxdn.info. New ID? Apply at radioid.net.
- My Peers — YSF / NXDN / M17 peer connections you've configured.
- My Radios — hotspots and radios that have actually connected to this server. Shows last-seen time, current TGs, model.
- Last Heard — your own TX history on the global DMR network (via radioid.net).
User Security
Manage DMR security tokens for your radio IDs. A security token lets a radio prove it's yours without sharing your web password.
Selfcare
For each radio: pick which talkgroup goes on TS1 and which on TS2. Save — the change is live the next time the radio keys up. The number 4000 on a slot means "no TG, listen to nothing on this slot".
Custom Scan
Per-radio scan list — pick the talkgroups the scanner should watch. When any of them goes active the radio jumps to it. Use this when you want to monitor several TGs without locking a slot.
Request TG
Submit a request for a talkgroup that doesn't exist yet. See the Talkgroups help for details on the form and what happens after you submit.
Manage TG
Lists every talkgroup where you are owner or co-admin, plus your personal DMR-id TGs. Click Edit on any row to open the control panel — see Talkgroups for what each tab does.
Notifications (the bell)
The bell at the top right shows recent system events involving your account: TG request approved/denied, password resets, account changes. Clear individual entries with the X. Admins also see pending account approvals and TG requests in the same bell.
Other help pages: Talkgroups · Private Call · APRS · SMS
Talkgroups — request, manage, use
A talkgroup (TG) is a virtual channel many radios share. You pick which TGs your radio listens to, and you can request your own TG if you want one no one's claimed yet.
1. Pick TGs your radio listens to
Open Selfcare. For each radio, set which TG goes on TS1 and which on TS2. 4000 on a slot means "no TG on this slot".
2. Scan many TGs at once
Open Custom Scan. Add each TG you want the scanner to watch.
3. Request a new talkgroup
Open Request TG and fill in:
- TG ID — pick a free number between 1000 and 99999. Numbers below 1000 are reserved for system use.
- Name — short label (e.g. Stockholm).
- Description / Country / Language / Website — optional metadata.
Submit. An admin reviews the request — you get an email when it's approved. You can only have one pending request at a time.
4. Your DMR ID is also a TG (private)
Every DMR ID you own automatically counts as your personal TG. Other users can call you privately by sending a private call to that number. No request needed — it shows up in Manage TG as Owner (DMR id). See Private Call for how PCs work.
5. Manage TGs you own — control panel
Click Edit on any row in Manage TG. The control panel has three tabs:
Basic — name, description, country, language, website.
Access lists — three callsign lists per TG:
- Allow (whitelist) — if non-empty, only these callsigns can use the TG. Anyone not listed is blocked.
- Deny (blacklist) — listed callsigns are blocked from this TG.
- Listen-only — listed callsigns can hear the TG but cannot transmit.
TG Admins — add another callsign to give them edit rights on this TG. The owner is always shown first with an "owner" badge and can't be removed by co-admins.
6. Live activity
Under Monitoring: Lastheard shows who's keyed up right now; Lastheard 24h shows the past day; Talkgroups lists every TG in the directory.
Private Call (PC)
A Private Call is a direct call from your radio to one specific other radio — addressed by their DMR ID, not a talkgroup. Like dialing a phone number instead of joining a chat room.
How it differs from a talkgroup call
- TG (group call) — anyone subscribed to that talkgroup hears you. One-to-many.
- PC (private call) — only the radio with that exact DMR ID hears you. One-to-one.
callmgr routes both, but the path is different: PCs go directly to the destination's hotspot (no TG fan-out), TGs are broadcast to every subscriber of that TG.
Make a private call
On your radio, create a contact with:
- Call Type — Private Call (sometimes called "Individual" or "PC").
- Contact ID — the recipient's DMR ID (look it up at radioid.net by callsign).
- Time Slot — TS2 is most common for PCs on hotspots, TS1 on repeaters. Match what the recipient uses.
Select the contact, key up, and the radio will call only that ID. The recipient's radio will play your audio.
Receive private calls
Most radios show "PC" or "Private" on the display when receiving one, with the caller's ID. Some radios beep until you reply or dismiss the call. Make sure your radio's Private Call Confirmation setting matches what you want — leave it on if you want a beep, off if you want it silent.
Test it — Parrot echo
callmgr's parrot module replies to your transmission with a recording of itself. Two parrot numbers exist:
- Group call to 9990 on any TS — you hear yourself back as a group call.
- Private call to 240990 — you hear yourself back as a private call.
Use the parrot to verify your radio's audio + GPS + ID before trying real PCs.
Privacy and bridges
Private calls aren't encrypted on standard amateur DMR — anyone monitoring on the same hotspot/repeater can scan and hear them. The "Private" name is about routing (who gets the audio), not secrecy.
If the recipient's hotspot is bridged to a foreign network (BM/TGIF), the PC routes there too — same as TGs do.
Common gotchas
- Both radios must be on the same time slot. PC on TS1 to a radio listening on TS2 = no audio.
- The recipient must have their hotspot online and the right TS slot active.
- If their radio profile doesn't allow PCs (some Pi-Star configs disable them), the call won't reach the radio even if the hotspot is up.
APRS — your position on the map
callmgr can place your callsign on aprs.fi (and any other APRS map) using whatever position source it can find. Most digital modes can carry GPS today, and callmgr bridges them all into one APRS feed.
Where the position comes from
For each transmission, callmgr picks a position in this order (configurable, default radio → lastheard → home):
- radio — your radio's own GPS data sent in the transmission. Best, most accurate.
- lastheard — the last GPS fix this callsign sent on any mode (cross-mode bridge — see below).
- home — the lat / lon you saved in Profile → My Account. Used as a fallback when no GPS at all.
Cross-mode GPS bridging
callmgr remembers the latest GPS position per callsign across all modes. So if you send GPS once on YSF (C4FM) and later transmit on DMR without GPS, your DMR transmission still shows up on aprs.fi at the YSF position — it bridges across modes for you. Same for the reverse:
- DMR — talker alias / GPS frame in the voice burst
- YSF / C4FM — wires-X DT1/DT2 GPS frames
- M17 — METATEXT GPS extension
- NXDN — short-data position frames
All of those feed the same per-callsign position cache. The freshest fix wins.
Distance + heading between stations
When two cross-mode bridges happen close together (e.g. KE8GIM on YSF talking to SA7AUX on DMR), aprs.fi automatically draws both stations on the map and shows distance / bearing between them. There's nothing extra to enable — as long as both stations have a recent GPS fix in any mode, the map renders the link.
If your radio doesn't send GPS
Many DMR / YSF radios can send GPS but it's off by default. Check your codeplug:
- AnyTone D578 / D878 — set GPS to On in the channel settings, and set GPS Send Position interval (30–60s is typical).
- TYT MD-UV380 — enable GPS Beacon in the channel.
- Yaesu FT3DR / FT5DR (C4FM) — set APRS data mode in DG-ID / Wires-X menu.
If your radio simply has no GPS chip, fill in the lat / lon under Profile → My Account. That position is used as the home fallback.
RX feed (APRS-IS → DMR)
If enabled by the operator, APRS-IS messages aimed at your callsign are relayed back to your radio as DMR private SMS. Useful for short status messages from the map. The relay can also push position beacons of stations near you onto a TG so the local net hears who's around.
Verify it works
After a transmission with GPS, look for your callsign on aprs.fi. The marker should appear within a minute. The marker's "Last position" timestamp should match your TX time.
SMS & SGS — text on DMR
DMR carries short text messages over the air, either to a single radio (private) or to a whole talkgroup. callmgr relays them between hotspots and across modes where it can.
Three flavors
- SMS to TG — your message goes to everyone listening on that talkgroup. Like sending a chat into a room.
- SMS to a radio (private) — addressed to a specific DMR ID. Only that radio receives it.
- SGS (Short Data Service / Status) — pre-defined short codes ("Status 1..8" buttons on AnyTone). callmgr can convert these into readable messages or relay them as-is.
Send an SMS from your radio
Most DMR HTs have a Messages or SMS menu. Pick a contact (or group), type the message, send. The radio packs it into a Short Data burst that the hotspot forwards to callmgr.
- AnyTone D578 / D878 — Menu → Messages → New, pick recipient (Contact or TG), type, send. Up to ~70 characters per packet; longer messages auto-split.
- TYT MD-UV380 — Menu → Messages, similar flow, shorter character limit.
- Pi-Star / WPSD hotspots — typically transparent: the hotspot just forwards whatever the radio sent.
Different radios speak different SMS dialects
DMR doesn't enforce one SMS encoding, so brands picked their own:
- AnyTone — UCS2-BE (16-bit Unicode, big-endian). Supports all characters incl. emoji.
- Hytera — ETSI standard 7-bit.
- Motorola — variant of ETSI.
- Pi-Star/WPSD bridges — pass-through, same encoding the underlying radio uses.
callmgr knows about each per-radio encoding via radio_profile in the directory and translates between them where possible. AnyTone-to-AnyTone always works. AnyTone-to-Hytera works for plain ASCII, may garble extended characters.
If you see weird characters
It's almost always a radio-profile mismatch — your hotspot is registered as one brand but you're using a different radio model. Open Profile → My Radios, check that the radio profile matches reality. If wrong, the operator can update sms_encoding_override for that hotspot.
SMS limits
- Length — radios usually accept 70-160 chars per message. Beyond that, the radio fragments and the receiver may show the parts as separate messages.
- Reliability — DMR Short Data has no retry. If the receiving hotspot is offline or scanning a different TG, the message is lost. There's no "delivered" receipt.
- Storage — your radio stores incoming SMS until its memory fills; callmgr does not store SMS history per user (yet).
SMS-to-APRS
If enabled by the operator, SMS sent to a special TG is forwarded to APRS-IS as a message to the recipient's callsign. The recipient (and anyone watching aprs.fi) sees it as an APRS message.
Common gotchas
- The other party's hotspot must be on the same TG (or PC route) when you send. SMS doesn't get queued and replayed.
- OS1 / OpenSpot 1 has limited SMS — RX usually works but some chars don't render.
- WPSD / Pi-Star scan lists can swallow SMS — make sure the TG you're sending to isn't being skipped on the receiver's hotspot.
SA7AUX Networks
Multi-protocol call manager for amateur radio
BETA This hybrid digital-mode server is in active development — features land daily and brief service interruptions are possible. Feedback welcome.
Server is live ●
Callmgr is a lightweight, self-hosted call manager that bridges DMR, NXDN, YSF, M17 and more — all from a single server. Connect your hotspot, repeater or radio and start talking across networks.
What you get
- Multi-protocol bridging — DMR (MMDVM & Homebrew), NXDN, YSF, M17 and Hytera DMR-D, all cross-connected through one engine
- Hotspot & repeater support — openSPOT 1/2/3/4, Pi-Star/WPSD, MMDVM and Homebrew peers
- SMS & data services — send and receive text messages between radios, with automatic encoding for AnyTone, Motorola, Hytera and ETSI radios
- APRS integration — GPS position reporting from DMR radios to APRS-IS and back
- Selfcare portal — manage your talkgroups, security tokens, radio settings and API keys from your browser
- Scan & monitor — configurable scan lists per radio, follow activity across talkgroups
- Open peering — connect to YSF reflectors, NXDN servers, M17 reflectors and other networks as peers
Sign in with your callsign to get started.
System now
Profile
My Account
PC Priority
When enabled, your private calls (PC) jump to the front of the motor queue. Applies to all your radio IDs.
API Key
Use your API key for external access to talkgroup changes, lookups, and more.
My IDs
Your registered DMR and NXDN radio IDs from the global database.
My Peers
YSF, NXDN and M17 peer connections assigned to your callsign.
My Radios
Your connected hotspots and radios. Set radio type for correct SMS encoding.
| DMR ID | ESSID | Status | Endpoint | Profile | TS1 | TS2 |
|---|
Last Heard (RadioID.net)
Last time your radios were heard on the global DMR network.
My 24h Activity
Your transmissions, top talkgroups, and messaging activity over the last 24 hours. Time on air is not yet computed (call durations aren't stored long-term — coming later).
Per-hour timeline
Top talkgroups
| TG | Name | TX count |
|---|
No transmissions yet.
Per radio
| rpt_id | TX count |
|---|
No transmissions yet.
Login History
Recent logins and failed attempts on your account. If you see a successful login from an IP you don't recognize, change your password immediately. If you see many failed attempts, someone may be trying to guess your password.
Successful logins
| Time | IP | User-Agent |
|---|
No login records yet.
Failed attempts
| Time | IP | Reason | User-Agent |
|---|
No failed attempts.
DMR IDs & Security Tokens
| DMR Base | Token |
|---|
My Hotspots / Radios
| DMR ID | Status | Endpoint | Profile | TS1 | TS2 | Last Seen |
|---|
Click on a TS1/TS2 value to change talkgroup.
Custom Scan Lists
Manage TG
| ID | Name | Role | Description | Country | Actions |
|---|
No talkgroups yet — request one via Request TG. Auto-granted personal TGs (your DMR ids) appear here too.
Request a New Talkgroup
Accounts
| Callsign | Name | DMR IDs | Level | Status | Actions |
|---|
Edit Account:
IDs
Peers
Radios
| DMR ID | ESSID | Status | Endpoint | Profile |
|---|
Last Heard (RadioID.net)
God Mode
Login as another user to see their view.
System Config
Control
Sessions
Session status colors
active Online, recent keepalive, callsign + profile resolved.
handshake Online but mid-auth (no callsign yet).
stale Online flag set but no keepalive in >60s.
error Online but missing callsign + profile (auth failure).
offline No active session.
disabled Configured but enabled=false.