Workflow: Enroll an Oracle Radio Mobile Application
Enroll a supported Radio mobile application for an enabled user, establish authenticated REST and WebSocket access, and verify the registered installation.
Use this workflow to create a one-time registration in Radio, sign the intended user in through the mobile OAuth configuration managed by Public Safety and Security, register the application installation, and establish its online Radio session.
The registration QR value transfers the public configuration and one-time grant that the supported application needs. It doesn't authenticate the user or the device. The application must obtain and protect Identity Domain tokens and send a valid bearer access token on protected Radio REST requests. For WebSocket, send the access token in AUTH when authenticating or renewing the session.
This workflow uses a one-time grant. A still-active reusable registration can enroll the same intended user again, but always creates a new device record. It does not restore an existing device ID.
Tasks
Before You Begin
Confirm the following requirements:
- The intended user exists and is active in the Public Safety and Security instance's Identity Domain.
- The corresponding Radio user is enabled and has
radio.channel.listfor WebSocket authentication. - The Radio administrator has
radio.enrollment.manageandradio.device.manage. - The intended user has a supported Radio mobile application that can provide an opaque advertising ID for its installation.
Public Safety and Security provisions and maintains the public mobile OAuth client, callback, grants, authorization scope, and offline access. The administrator doesn't create or edit that configuration during device enrollment.
Step 1: Create a Device Registration
- In Radio, select
Devices. - Select Register device.
- For Intended user, select the enabled Radio user who will register the application.
- For Display name, enter a name that identifies this application installation.
- For Expires at, enter a future date and time after which the registration value can't be used.
- For a new device record, leave Reusable QR code cleared for this one-time workflow. Select Create QR code.
- Give the QR value to only the intended user, and then select Done.
The value is short-lived and can be used only once. It supplies the Radio base URL, Identity Domain URL, public mobile client ID, authorization scope, and one-time registration grant. It doesn't contain the application's callback URI, a client secret, an access token, or a refresh token.
For the standalone administrator task, see Registering an Oracle Radio Device.
Step 2: Authenticate the Mobile Application
As the app user, scan the QR value and sign in as the intended user when prompted. The app performs the configuration, PKCE, token exchange, and validation actions described below; you don't enter OAuth parameters or copy tokens. QR setup and user sign-in are separate actions. For later sign-in failures, use session recovery.
- In the supported Radio mobile application, scan the administrator-issued QR value. Allow camera access when prompted for scanning. If camera access was denied, use the app's permission guidance or your device's application settings to allow it.
- Read the Radio base URL, Identity Domain URL, public mobile client ID, authorization scope, and one-time registration grant from the QR value.
- Create a new authorization state value, nonce, and PKCE verifier and S256 challenge for this sign-in attempt.
- Start the Identity Domain Authorization Code flow with the public mobile client ID and supported application callback. Request
openid,offline_access, and the authorization scope supplied in the QR value. - Use the supplied authorization scope exactly as provided. Don't construct, normalize, or hard-code it.
- Have the intended user sign in, and allow the browser to return through the application's supported callback.
- Validate the callback state, exchange the authorization code with the PKCE verifier, and validate the ID token signature, issuer, audience, expiration, and nonce.
Protect the authorization code, PKCE verifier, access token, refresh token, and ID token. Don't put them in a URL, command line, application log, or support record. See Authenticate and Register the Radio Mobile Application.
Step 3: Complete Device Registration
Run the Radio REST completeDeviceRegistration operation as the authenticated intended user. Send the Identity Domain bearer access token in the Authorization header and supply these request properties:
| Property | Required | Value |
|---|---|---|
code | Yes | The one-time registration grant from the QR value. |
advertisingId | Yes | An opaque client-supplied advertising identifier, from 1 through 255 characters. An all-zero value is valid. |
appVersion | No | The application version, up to 64 characters. |
osVersion | No | The operating system version, up to 64 characters. |
For a registration request and response example, follow the quick start through REST verification and the first WebSocket messages.
Confirm that Radio returns the registered device. Store its Radio device ID as protected application-installation state. The registration grant and device ID don't replace the bearer access token. For the operation path and authorization boundary, see Device Registration and Management Operations.
Step 4: Establish the Online Oracle Radio Session
- Run the authenticated
heartbeatRadioDeviceoperation for the returned Radio device ID while the application is active. - Construct the WebSocket URL from the registration descriptor's
radioBaseUrl: usewss, the same hostname and any explicitly supplied port, and/ws/radio. Open the connection with the returned device ID in theX-Oracle-Radio-Device-Idheader. After it opens, send the bearer access token inAUTHand wait forAUTH_SUCCESS. - Send
WHO_AM_Iand verify that the response identifies the intended Radio user and the expected connection-local state. - Send
PINGand verify that the connection returnsPONG.
The access token authenticates the user. The Radio device ID binds the connection to the registered installation and renews its online state; it is not a credential. Supply it exactly once: a malformed, repeated, or unknown supplied ID causes authentication to fail. Device heartbeat and socket connectivity do not establish audio readiness. See Workflow: Managing an Oracle Radio WebSocket Session.
Step 5: Verify the Enrollment
- In Radio, select
Devices. - Find the new device by its display name or intended user.
- Confirm that its intended user and display name match the registration and that the expected advertising ID is recorded.
- After Radio receives an authenticated heartbeat, confirm that the device reports its current best-effort online state.
Troubleshooting
Use the following guidance if Oracle Radio mobile registration or sign-in fails.
The QR value is rejected
The registration value might have expired, been used, or been revoked, the intended Radio user might not match the signed-in user, or the application might not have supplied a valid advertising ID. Confirm that the intended Radio user is enabled, create a new registration, and scan only the newest QR value.
Identity Domain sign-in doesn't return to the application
Start sign-in from the supported application installation that scanned the QR value, and allow the browser to use the application's supported callback. Don't enter or replace the callback URI manually. If the problem continues, record only the time and nonsensitive error text.
The WebSocket connection is rejected or the device remains offline
Confirm that the user is active and enabled in Radio. Send the registered installation's Radio device ID during the WebSocket upgrade. After the connection opens, send a current bearer access token in AUTH, wait for AUTH_SUCCESS, and send an authenticated heartbeat. If the application lost its device ID, follow mobile re-enrollment.
For more failure guidance, see registration help.
FAQ
Find answers to common questions about this Oracle Radio mobile workflow.
- Does the QR value authenticate the user or device?
- No. It supplies public client configuration and a short-lived, one-time registration grant. The user must sign in, and protected Radio REST requests require a valid bearer access token. For WebSocket, send the access token in
AUTHwhen authenticating or renewing the session. - Do I configure the mobile callback or authorization scope?
- No. Public Safety and Security maintains the supported public mobile OAuth configuration. The application uses its supported callback and the authorization scope supplied in the QR value.
- Why can the device remain online briefly after disconnecting?
- Radio derives a best-effort online state from recent authenticated heartbeats, so the state can remain online briefly after the application stops or loses its connection.
For more questions, see Radio Devices and Registration.
Next Steps
- Use Managing Oracle Radio Devices to list, inspect, rename, re-register, or delete registered installations.
- Review the supported device operations in Device Registration and Management Operations.
- Use the WebSocket workflows after the authenticated connection is established.
- Handle request and connection failures as described in Oracle Radio API Errors.