IPSC3 POC is a cellular push-to-talk radio client for the separate
ipsc-poc gateway. The current client is a Qt 6/C++ Android
application designed as a radio appliance rather than a phone-style app.
Production hardware profiles include the Retevis L71, UDO/Abbree 8900, and
UNIWA F400. The 0.6.1 Build 67 Beta retains a dedicated profile for the
ANYSECU 4G-W2Pro.
| Production client | 0.6.0 Build 64 |
|---|---|
| Beta installers | 0.6.1 Build 67, built 25 September 2026 |
| Bundled Beta firmware | F400 Build 67; L71, UDO/Abbree and ANYSECU Build 66 (unchanged) |
| Production radios | Retevis L71, UDO/Abbree 8900, and UNIWA F400 |
| Beta radio | ANYSECU 4G-W2Pro |
| Platform | Android 8/10, ARMv7 and ARM64 |
| Application package | net.ipsc3.poc |
| User interface | 128 x 160 class radio display with physical-key operation and no touch dependency |
| Audio | G.711 PCMU, 8 kHz mono, 20 ms RTP packets |
Beta Build 67 fixes F400 initial-settings transfer using app-private storage and SHA-256 verification, retaining previous settings if a transfer fails. Both installers provide clearer provisioning errors, device-detection retries, and guided USB debugging and computer-authorization recovery. Existing 0.6.1 authentication keys remain valid. This update does not change audio, PTT or radio-control behaviour; a retest on the affected factory-default Android 15 F400 remains required. Production 0.6.0 remains available separately.
The client can make and receive live POC calls, select the complete
talkgroup catalogue announced by the connected IPSC3 server, and exchange
group audio with other POC clients and DMR endpoints through the IPSC3
PCMU/AMBE gateway. The normal IPSC3 scan and parrot services are announced
by the server rather than being hardcoded into the radio. Protocol version
ipsc3-poc/0.4 also provides authenticated client login,
bidirectional private calls, and SMS
routed by Radio ID through the IPSC3 roaming system.
IPSC3 POC 0.6.1 includes the ANYSECU 4G-W2Pro as a controlled Beta radio profile. Install it using the separately labelled 0.6.1 Beta package on an IPSC3 Downloads page. Version 0.6.0 remains the recommended production release for the established radio profiles.
| Control | Operation |
|---|---|
| PTT | Requests permission from the server. Microphone audio starts only after a PTT grant and stops on release. |
| Up and down | Adjust volume by default, or select the previous/next talkgroup while channel mode is active. |
| Volume/channel key | Temporarily changes the up/down keys between volume and talkgroup selection. |
| Function key | Can select day/night display, open the server menu, toggle GPS, enter standby, or return to the call channel. |
| Red/back key | Returns through radio menus without exposing the normal Android launcher. |
The receive display uses the authoritative source Radio ID, callsign, and operator name supplied by IPSC3. If the Radio ID is not present in the RadioID directory, the numeric Radio ID remains the display and routing identity.
client_instance_id and uses the session SSRC returned by the server, allowing multiple POC radios with the same Radio ID behind one mobile or site NAT address.50700. The selected server announces the RTP destination, normally port 50702, in login_ok.
More than one POC radio can be configured with the same DMR Radio ID. Each
client generates a random UUID once, stores it as
client_instance_id, echoes it through login authentication, and
uses the RTP SSRC supplied in login_ok. It must not regenerate
the instance ID or cache the assigned SSRC across sessions.
Current field measurements indicate approximately 3.8 MB per day or 115 MB per 30-day month while a radio remains connected but carries no voice. A practical allowance is 150 MB per month for idle operation, GPS reports, reconnections, configuration refreshes, and normal mobile-network retransmissions.
Active voice adds approximately 0.6 MB for every minute transmitted or received. Application downloads, Android updates, and other device traffic are separate. See the protocol traffic breakdown for the measurement assumptions.
Every production control connection is authenticated before the radio becomes online. Each supported binary identifies its client family and sends its exact release version in the initial login. The server returns a 15-second one-use challenge; the client answers using HMAC-SHA256 and the securely provisioned client-family key. There is no cryptographic work in the RTP audio loop.
A failed, expired, unknown-client, or unauthorized-version response does not create a POC session and cannot use presence, PTT, SMS, GPS, or RTP services. On reconnect the client must repeat the complete login and challenge flow. See the protocol reference for exact canonical bytes and base64url handling.
9998 invokes the IPSC3 AI assistant. Its answer is delivered as an ordinary SMS from 9998, so no additional client message type is required.See the IPSC3-POC Control and Audio Protocol for the required JSON messages and state transitions.
On login, IPSC3 sends the complete talkgroup catalogue and a master-backed list of available IPSC3 POC servers. The radio can select VK, ZL, or another published server from its menu. Changing server releases PTT, closes the old control and RTP sockets, reconnects to the selected server, and performs a fresh login. The selected server and radio identity are retained locally.
Radio ID is the only authoritative client identity. Callsign and name are resolved by the server from its RadioID database; the client does not claim or override those values.
The project includes self-contained Windows x64 and Apple silicon macOS provisioning applications for field setup and updates. The production installer detects a connected Retevis L71, UDO/Abbree 8900, or UNIWA F400. The separately labelled 0.6.1 Beta installer also detects the ANYSECU 4G-W2Pro. It selects the matching encrypted payload and uses ADB to perform the following steps:
Provisioning is designed to be repeatable, so the same process can install a
new radio or update an existing one. USB drivers and ADB access must be
available on the desktop computer. Version 0.6.0 is the production
package and includes resilient RTP operation, enhanced DMR receive audio,
device-specific provisioning, and support diagnostics.