Ending an Oracle Radio WebSocket Audio Transmission
Send an END message to finish the active Radio audio transmission before releasing its talk token.
Permissions and Prerequisites
The following permissions and prerequisites apply to this operation.
| Requirement | Value |
|---|---|
| Authentication | Complete the supported authentication path for the client before sending this operation. See authentication. |
| Radio permission | No separate operation-specific permission is defined. Use this operation for a transmission started with radio.audio.transmit. |
| Channel access | End the transmission associated with the connection's active channel and talk token. |
| Session state | The WebSocket connection must be open. Send END after the final binary audio message. |
Note
After
After
END, a still-valid talk token remains valid until you send RELEASE_TALK or the token expires.Request
Send the END message as a JSON text message. The contract marks the token and transmission metadata as optional. Include the current token to associate the end with its active talk-floor grant.
| Name | Data type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
type | string | Yes | None | Must be END. | Identifies the end-transmission operation. |
token | string | No | None | UUID. | Talk token associated with the transmission. |
transcript | string | No | None | Speech-to-text text supplied by the client. | Speech-to-text transcript, if available. |
duration | number | No | None | Floating-point value in seconds. | Transmission duration. |
{
"type": "END",
"token": "550e8400-e29b-41d4-a716-446655440000",
"transcript": "All units respond to sector 7",
"duration": 3.5
}
Responses
The following table lists the messages the client can receive and explains their purpose.
| Message type | Kind | Description |
|---|---|---|
TRANSMISSION_END | Asynchronous event | Notifies other subscribed connections that the valid token's audio transmission ended. |
TRANSCRIPT_FINAL | Optional asynchronous event | Provides other subscribed connections with a finalized transcript and related metadata when processing produces one. |
TRANSMISSION_TIMEOUT | Asynchronous event | Can end the transmission before the client sends END. The token is automatically released. |
TOKEN_EXPIRED | Asynchronous event | Can end the active transmission if the token expires. |
INTERRUPTED | Asynchronous event | Can end the active transmission when a higher-priority user takes the talk floor. |
ERROR | Error | Indicates that the request is invalid or couldn't be processed. |
Note
The initiating session doesn't receive
The initiating session doesn't receive
TRANSMISSION_END or TRANSCRIPT_FINAL. After the WebSocket client reports that it successfully sent END, stop sending audio and send RELEASE_TALK. Note
If the connection closes before this flow completes, reconnect, subscribe to the channel, and request a new talk token. Don't reuse a token from the closed connection.
If the connection closes before this flow completes, reconnect, subscribe to the channel, and request a new talk token. Don't reuse a token from the closed connection.
TRANSMISSION_END Event for Other Subscribers
The following table describes the event properties, their data types, and whether they are required.
| Name | Data type | Required | Description |
|---|---|---|---|
type | string | Yes | Event type. The value is TRANSMISSION_END. |
channel | string | Yes | Channel on which the transmission ended. |
user | string | Yes | User that sent the transmission. |
senderDisplayName | string | No | Display name of the sender. |
timestamp | string | No | Transmission end date and time in ISO 8601 format. |
duration | number | No | Transmission duration in seconds. |
transcript | string | No | Speech-to-text transcript, if available. |
{
"type": "TRANSMISSION_END",
"channel": "operations",
"user": "dispatcher1",
"senderDisplayName": "Dispatcher One",
"timestamp": "2024-01-15T10:30:05Z",
"duration": 5.2,
"transcript": "All units respond to sector 7"
}