ipsc3-poc-callback runs an automated callback session after a
broadcast. It joins a selected IPSC3 talkgroup as an authenticated POC
client, announces the source callsign, records callers by authoritative DMR
Radio ID, reads callback callsigns back in batches, and writes a durable CSV
report for later processing.
call_start on the selected talkgroup. The server-provided Radio ID is authoritative; callsign and name are the matching RadioID directory values.
Callback audio is not decoded, transcribed, or saved. Identification comes
entirely from the POC call_start metadata already used by radio
clients. This also allows callbacks originating on Motorola IPSC, MMDVM,
Hytera, POC, and routed network paths to use the same mechanism.
ipsc3-poc-callback \
--server vk \
--talkgroup 5 \
--radio-id 5050950 \
--voice en_AU_alex
ipsc3-poc-callback --list-voices
ipsc3-poc-callback --list-servers
ipsc3-poc-callback --list-talkgroups --server vk| Option | Purpose |
|---|---|
--server NAME | Select an IPSC3 directory ID, hostname, prefix, country, or recognised short name. |
--talkgroup TG | Select the group used for announcements and callback detection. |
--radio-id ID | Set the source identity. The server-resolved callsign is spoken in the opening announcement. |
--voice ID | Select an installed generated voice by stable pack ID; default en_AU_alex. |
--list-voices | List callback-compatible installed voice IDs and names without connecting to an IPSC3 server. |
--batch-size N | Set the unique-callback batch limit from 1 to 50; default 5. |
--quiet-seconds N | Set the inactivity window from 1 to 300 seconds; default 10. |
--output PATH | Create the report at an explicit path. Existing files are never overwritten. |
--email ADDRESS | Email a readable summary and attach the finalized CSV report after the callback session. |
--smtp2go-config PATH | Select the monitor configuration containing the SMTP2GO API key and verified sender; default /opt/ipsc3/runtime/monitor/config.json. |
--ptt-wait-seconds N | Set how long an announcement may wait for a busy group; default 120 seconds. |
--prompt-dir PATH | Use a custom normalized callback and phonetic WAV directory instead of --voice. |
--key-file PATH | Select the ipsc3-poc-stream-rust authentication key export. |
--instance-file PATH | Select the persistent callback client instance-ID file. |
Voice discovery uses the generated pack quality reports and verifies every
callback, NATO, and digit WAV before listing or selecting a voice. An
incomplete or partially generated pack is therefore unavailable rather than
failing during an on-air announcement. The installed English choices are
Alex, Amelia, Her, and Matt VK2FLY for Australia; Belinda for New Zealand;
Charlotte and Steve for the United Kingdom; and Jim for the United States.
Run --list-voices for the authoritative IDs on the local server.
The default report is a new, user-private file under
$XDG_STATE_HOME/ipsc3/callbacks, or
~/.local/state/ipsc3/callbacks. Every accepted callback is
appended, flushed, and synchronized immediately so a later failure cannot
lose the completed entries. The CSV columns are:
callback_time_local
callback_time_utc
radio_id
callsign
name
source
talkgroup
stream_idLocal and UTC values are ISO 8601 timestamps derived from the server's call start time. Quoted CSV fields safely retain commas and quotation marks in RadioID names. Values beginning with spreadsheet formula characters are neutralized before export. The file intentionally remains after the session whether or not optional email delivery succeeds.
Supplying --email ADDRESS sends a plain-text callback summary and
attaches the complete report as text/csv. The POC client first
sends offline presence and closes its control/media connection, so SMTP2GO
DNS, TLS, or API delays cannot hold a radio floor or interfere with callback
collection. The utility then reads the existing mode-0600 IPSC3
monitor configuration; the SMTP2GO key is never accepted on the command line
or written to the report.
ipsc3-poc-callback \
--server vk \
--talkgroup 5 \
--radio-id 5050950 \
--email callbacks@example.netEmail delivery is deliberately secondary to file storage. Every callback is already flushed and synchronized before shutdown, and the report is closed before it is attached. If SMTP2GO rejects or cannot deliver the request, the command exits with an error naming the preserved CSV path. No automatic retry is performed, preventing accidental duplicate reports; the same file can be sent manually or used by a later scheduled delivery worker.
On the VKDMR server, the Sunday 18:00 Australia/Sydney WIA News job starts
this collector on TG5 only after the news broadcast exits successfully. It
identifies as VK2WI Radio ID 5050950, uses the
en_AU_alex voice, and emails the completed report to
callbacks@wia.org.au. The broadcast and callback phases share one
lock, preventing either phase from overlapping another scheduled VK2WI
broadcast. A failed news broadcast does not open a callback session.
Ctrl-C releases any active PTT, sends offline presence, and closes the control connection.Wire-level call identity and floor-control fields are documented in the IPSC3 POC protocol reference.