mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-12-16 15:34:53 +08:00
bfd8cd9f8d
Add definition of HFP WBS Command notification
2738 lines
84 KiB
Plaintext
2738 lines
84 KiB
Plaintext
Android HAL protocol for Bluetooth
|
|
==================================
|
|
|
|
The Android HAL daemon for Bluetooth functionality implements the Unix socket
|
|
server protocol around /run/bluetooth/daemon (tentative location) or Linux
|
|
abstract sockets (tentative name).
|
|
|
|
The daemon is single threaded and uses a mainloop for scheduling and general
|
|
operation.
|
|
|
|
The protocol is SOCK_SEQPACKET based and follows a strict PDU specification
|
|
with a generic header and initial registration exchange. The communication
|
|
is driven from the HAL with command/response exchanges. The daemon will use
|
|
notification to signal events. The protocol is single PDU exchanged based,
|
|
meaning every command requires a response. Notification does not require
|
|
any confirmation. Not handling this PDU exchange leads to a disconnection of
|
|
the socket.
|
|
|
|
Command/response and notification use separate sockets. First connected socket
|
|
is used for command/response, second for notification. All services are
|
|
multi-plexed over same pair of sockets. Separation is done to ease
|
|
implementation of simple HAL library with dedicated thread for handling
|
|
notification.
|
|
|
|
This strict protocol requirement is done to match C based callbacks and
|
|
callout functions that are running in a thread inside the HAL and might
|
|
block.
|
|
|
|
.--Android--. .--Android--.
|
|
| daemon | | HAL |
|
|
| | Command | |
|
|
| | <-------------------------- | |
|
|
| | | |
|
|
| | --------------------------> | |
|
|
| | Response | |
|
|
| | | |
|
|
| | | |
|
|
| | Notification | |
|
|
| | --------------------------> | |
|
|
| | | |
|
|
'-----------' '-----------'
|
|
|
|
Every packet will follow the basic header to support simple multi-plexing
|
|
over the same socket. It will also support a basic control channel with service
|
|
id 0.
|
|
|
|
0 8 16 24 31
|
|
+--------------+--------------+--------------+--------------+
|
|
| Service ID | Opcode | Data Length |
|
|
+--------------+--------------+-----------------------------+
|
|
| |
|
|
|
|
The unique service ID is assigned by this specification for each HAL.
|
|
|
|
As general rule of thumb, the opcode for command matches the opcode for a
|
|
response. Or the opcode 0x00 for an error is returned.
|
|
|
|
Notification opcodes start from 0x81.
|
|
|
|
Opcode 0x80 is reserved and shall not be used.
|
|
|
|
All command/response opcodes have the least significant bit not set. And all
|
|
notifications have the least significant bit set.
|
|
|
|
The HAL modules only have the job to map the callback and event functions
|
|
to the protocol. They do not need to do anything else. Below is an example
|
|
of a sample transaction for the Bluetooth Core HAL and enabling of an
|
|
adapter.
|
|
|
|
HAL Daemon
|
|
----------------------------------------------------
|
|
|
|
call enable() --> command 0x01
|
|
return enable() <-- response 0x01
|
|
|
|
call adapter_state_changed() <-- notification 0x81
|
|
return adapter_state_changed()
|
|
|
|
When the Android hardware framework calls into the Bluetooth Core HAL
|
|
and executes the enable() callback, the HAL module sends the enable
|
|
command with opcode 0x01 to the daemon. As soon as the daemon responds,
|
|
the callback will return with the appropriate result.
|
|
|
|
After the daemon switched on the adapter, it will send a notification
|
|
with opcode 0x81 to the HAL module.
|
|
|
|
The Bluetooth Core HAL and Bluetooth Socket HAL are guaranteed to be
|
|
available from the daemon. All other HAL modules are optional.
|
|
|
|
When the Bluetooth Core HAL init() function is called, it should open
|
|
the socket and register both "bluetooth" and "socket" service modules. It is
|
|
required to register "socket" service at the same time since the HAL module
|
|
does not have its own init() function.
|
|
|
|
It is possible to send Configure command before registering any services to
|
|
customize stack. This step is optional.
|
|
|
|
When new profiles are initiated, the get_profile_interface() callback
|
|
will load the profile and during init() of the profile, it should register the
|
|
specific service.
|
|
|
|
Bluetooth main thread Daemon
|
|
-------------------------------------------------------
|
|
|
|
init() --> open command socket
|
|
--> open notification socket
|
|
--> register module "bluetooth"
|
|
--> register module "socket"
|
|
|
|
get_profile_interface() --> return profile struct
|
|
--> continue on Handsfree thread
|
|
|
|
|
|
Handsfree thread Daemon
|
|
--------------------------------------------------------
|
|
|
|
init() --> register module handsfree
|
|
|
|
|
|
Error response is common for all services and has fixed structure:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Response parameters: Status (1 octet)
|
|
|
|
Valid status values: 0x01 = Fail
|
|
0x02 = Not ready
|
|
0x03 = No memory
|
|
0x04 = Busy
|
|
0x05 = Done (already completed)
|
|
0x06 = Unsupported
|
|
0x07 = Parameter invalid
|
|
0x08 = Unhandled
|
|
0x09 = Authentication failure
|
|
0x0a = Remote device down
|
|
0x0b = Authentication rejected
|
|
|
|
|
|
Core Service (ID 0)
|
|
===================
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Register module command/response
|
|
|
|
Command parameters: Service id (1 octet)
|
|
Mode (1 octet)
|
|
Max Clients (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case a command is sent for an undeclared service ID, it will
|
|
be rejected. Also there will be no notifications for undeclared
|
|
service ID.
|
|
|
|
Valid Mode values: 0x00 = Default Mode
|
|
0xXX = as defined by service
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Unregister module command/response
|
|
|
|
Command parameters: Service id (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x03 - Configuration
|
|
|
|
Command parameters: Num options (1 octet)
|
|
Option Type # (1 octet)
|
|
Option Length # (2 octets)
|
|
Option Value # (variable)
|
|
|
|
Response parameters: <none>
|
|
|
|
Valid configure option types: 0x00 = Vendor
|
|
0x01 = Model
|
|
0x02 = Name
|
|
0x03 = Serial Number
|
|
0x04 = System ID
|
|
0x05 = PnP ID
|
|
0x06 = Firmware Rev
|
|
0x07 = Hardware Rev
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Bluetooth Core HAL (ID 1)
|
|
=========================
|
|
|
|
Android HAL name: "bluetooth" (BT_HARDWARE_MODULE_ID)
|
|
|
|
Service modes: 0x00 = Enable BR/EDR/LE if supported (default)
|
|
0x01 = Enable BR/EDR only
|
|
0x02 = Enable LE only
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Enable command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Disable command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x03 - Get Adapter Properties command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x04 - Get Adapter Property command/response
|
|
|
|
Command parameters: Property type (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x05 - Set Adapter Property command/response
|
|
|
|
Command parameters: Property type (1 octet)
|
|
Property length (2 octets)
|
|
Property value (variable)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x06 - Get Remote Device Properties command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x07 - Get Remote Device Property command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Property type (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x08 - Set Remote Device Property command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Property type (1 octet)
|
|
Property length (2 octets)
|
|
Property value (variable)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x09 - Get Remote Service Record command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
UUID (16 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0a - Get Remote Services command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0b - Start Discovery command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0c - Cancel Discovery command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0d - Create Bond command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Transport (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0e - Remove Bond command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0f - Cancel Bond command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x10 - PIN Reply command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Accept (1 octet)
|
|
PIN length (1 octet)
|
|
PIN code (16 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x11 - SSP Reply command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
SSP variant (1 octet)
|
|
Accept (1 octet)
|
|
Passkey (4 octets)
|
|
Response parameters: <none>
|
|
|
|
Valid SSP variant values: 0x00 = Passkey Confirmation
|
|
0x01 = Passkey Entry
|
|
0x02 = Consent (for Just Works)
|
|
0x03 = Passkey Notification
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x12 - DUT Mode Configure command/response
|
|
|
|
Command parameters: Enable (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x13 - DUT Mode Send command/response
|
|
|
|
Command parameters: Opcode (2 octets)
|
|
Length (1 octet)
|
|
Data (variable)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x14 - LE Test Mode command/response
|
|
|
|
Command parameters: Opcode (2 octets)
|
|
Length (1 octet)
|
|
Data (variable)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Adapter State Changed notification
|
|
|
|
Notifications parameters: State (1 octet)
|
|
|
|
Valid state values: 0x00 = Off
|
|
0x01 = On
|
|
|
|
Opcode 0x82 - Adapter Properties Changed notification
|
|
|
|
Notification parameters: Status (1 octet)
|
|
Num properties (1 octet)
|
|
Type # (1 octet)
|
|
Length # (2 octets)
|
|
Value # (variable)
|
|
...
|
|
|
|
Opcode 0x83 - Remote Device Properties notification
|
|
|
|
Notification parameters: Status (1 octet)
|
|
Remote address (6 octets)
|
|
Num properties (1 octet)
|
|
Type # (1 octet)
|
|
Length # (2 octets)
|
|
Value # (variable)
|
|
...
|
|
|
|
Opcode 0x84 - Device Found notification
|
|
|
|
Notification parameters: Num properties (1 octet)
|
|
Type # (1 octet)
|
|
Length # (2 octets)
|
|
Value # (variable)
|
|
...
|
|
|
|
Opcode 0x85 - Discovery State Changed notification
|
|
|
|
Notifications parameters: State (1 octet)
|
|
|
|
Opcode 0x86 - PIN Request notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Remote name (249 octets)
|
|
Class of device (4 octets)
|
|
|
|
Opcode 0x87 - SSP Request notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Remote name (249 octets)
|
|
Class of device (4 octets)
|
|
Pairing variant (1 octet)
|
|
Passkey (4 octets)
|
|
|
|
Opcode 0x88 - Bond State Changed notification
|
|
|
|
Notification parameters: Status (1 octet)
|
|
Remote address (6 octets)
|
|
Bond state (1 octet)
|
|
|
|
Valid bond state values: 0x00 = None
|
|
0x01 = Bonding
|
|
0x02 = Bonded
|
|
|
|
Opcode 0x89 - ACL State Changed notification
|
|
|
|
Notification parameters: Status (1 octet)
|
|
Remote address (6 octets)
|
|
ACL state (1 octet)
|
|
|
|
Opcode 0x8a - DUT Mode Receive notification
|
|
|
|
Notification parameters: Opcode (2 octets)
|
|
Length (1 octet)
|
|
Data (variable)
|
|
|
|
Opcode 0x8b - LE Test Mode notification
|
|
|
|
Notification parameters: Status (1 octet)
|
|
Num packets (2 octets)
|
|
|
|
|
|
Bluetooth Socket HAL (ID 2)
|
|
===========================
|
|
|
|
Android HAL name:: "socket" (BT_PROFILE_SOCKETS_ID)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Listen command/response
|
|
|
|
Command parameters: Socket type (1 octet)
|
|
Service name (256 octets)
|
|
Service UUID (16 octets)
|
|
Channel (4 octets)
|
|
Socket flags (1 octet)
|
|
Response parameters: File descriptor (inline)
|
|
|
|
Valid socket types: 0x01 = RFCOMM
|
|
0x02 = SCO
|
|
0x03 = L2CAP
|
|
|
|
Valid socket flags: 0x01 = Encrypt
|
|
0x02 = Auth
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Connect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Socket type (1 octet)
|
|
Service UUID (16 octets)
|
|
Channel (4 octets)
|
|
Socket flags (1 octet)
|
|
Response parameters: File descriptor (inline)
|
|
|
|
Valid socket types: 0x01 = RFCOMM
|
|
0x02 = SCO
|
|
0x03 = L2CAP
|
|
|
|
Valid socket flags: 0x01 = Encrypt
|
|
0x02 = Auth
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
|
|
Bluetooth HID Host HAL (ID 3)
|
|
============================
|
|
|
|
Android HAL name: "hidhost" (BT_PROFILE_HIDHOST_ID)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Connect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Disconnect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x03 - Virtual Unplug command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x04 - Set Info command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Attribute mask (2 octets)
|
|
Subclass (1 octet)
|
|
Application ID (1 octet)
|
|
Vendor ID (2 octets)
|
|
Product ID (2 octets)
|
|
Version (2 octets)
|
|
Country code (1 octet)
|
|
Descriptor length (2 octet)
|
|
Descriptor value (884 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x05 - Get Protocol command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Protocol mode (1 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid protocol modes: 0x00 = Report
|
|
0x01 = Boot
|
|
0xff = Unsupported
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x06 - Set Protocol command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Protocol mode (1 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid protocol modes: 0x00 = Report
|
|
0x01 = Boot
|
|
0xff = Unsupported
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x07 - Get Report command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Report type (1 octet)
|
|
Report ID (1 octet)
|
|
Buffer size (2 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid report types: 0x01 = Input
|
|
0x02 = Output
|
|
0x03 = Feature
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x08 - Set Report command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Report type (1 octet)
|
|
Report length (2 octets)
|
|
Report data (Report length)
|
|
|
|
Response parameters: <none>
|
|
|
|
Valid report types: 0x01 = Input
|
|
0x02 = Output
|
|
0x03 = Feature
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x09 - Send Data command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Data length (2 octets)
|
|
Data (Data length)
|
|
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Status is common for many notifications and has fixed value range:
|
|
|
|
Status values: 0x00 = Ok
|
|
0x01 = Handshake - Device not ready
|
|
0x02 = Handshake - Invalid report ID
|
|
0x03 = Handshake - Transaction not SPT
|
|
0x04 = Handshake - Invalid parameter
|
|
0x05 = Handshake - Generic error
|
|
0x06 = General error
|
|
0x07 = SDP error
|
|
0x08 = Set protocol error
|
|
0x09 = Device database full
|
|
0x0a = Device type not supported
|
|
0x0b = No resources
|
|
0x0c = Authentication failed
|
|
0x0d = HDL
|
|
|
|
Opcode 0x81 - Connection State notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Connection State (1 octets)
|
|
|
|
Valid connection states: 0x00 = Connected
|
|
0x01 = Connecting
|
|
0x02 = Disconnected
|
|
0x03 = Disconnecting
|
|
0x04 = Failed - Mouse from host
|
|
0x05 = Failed - Keyboard from host
|
|
0x06 = Failed - Too many devices
|
|
0x07 = Failed - No HID driver
|
|
0x08 = Failed - generic
|
|
0x09 = Unknown
|
|
|
|
Opcode 0x82 - HID Info notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Attribute mask (2 octets)
|
|
Subclass (1 octet)
|
|
Application ID (1 octet)
|
|
Vendor ID (2 octets)
|
|
Product ID (2 octets)
|
|
Version (2 octets)
|
|
Country code (1 octet)
|
|
Descriptor length (2 octet)
|
|
Descriptor value (884 octets)
|
|
|
|
Opcode 0x83 - Protocol Mode notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Status (1 octet)
|
|
Protocol mode (1 octet)
|
|
|
|
Valid protocol modes: 0x00 = Report
|
|
0x01 = Boot
|
|
0xff = Unsupported
|
|
|
|
Opcode 0x84 - Idle Time notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Status (1 octet)
|
|
Idle time (2 octets)
|
|
|
|
Opcode 0x85 - Get Report notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Status (1 octet)
|
|
Report length (2 octets)
|
|
Report data (variable)
|
|
|
|
Opcode 0x86 - Virtual Unplug notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Status (1 octet)
|
|
|
|
Opcode 0x87 - Handshake notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Status (1 octet)
|
|
|
|
Only status values from 0x00 to 0x05 are valid as handshake
|
|
status.
|
|
|
|
|
|
Bluetooth PAN HAL (ID 4)
|
|
========================
|
|
|
|
Android HAL name: "pan" (BT_PROFILE_PAN_ID)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Enable command/response
|
|
|
|
Command parameters: Local role (1 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid role values: 0x00 = None
|
|
0x01 = NAP
|
|
0x02 = PANU
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Get Local Role command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: Local role (1 octet)
|
|
|
|
Valid role values: 0x00 = None
|
|
0x01 = NAP
|
|
0x02 = PANU
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x03 - Connect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Local role (1 octet)
|
|
Remote role (1 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid role values: 0x01 = NAP
|
|
0x02 = PANU
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x04 - Disconnect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Control State notification
|
|
|
|
Notification parameters: Control state (1 octet)
|
|
Status (1 octet)
|
|
Local role (1 octet)
|
|
Interface name (17 octet)
|
|
|
|
Valid control states: 0x00 = Enabled
|
|
0x01 = Disabled
|
|
|
|
Valid role values: 0x00 = None
|
|
0x01 = NAP
|
|
0x02 = PANU
|
|
|
|
Opcode 0x82 - Connection State notification
|
|
|
|
Notification parameters: Connection state (1 octet)
|
|
Status (1 octet)
|
|
Remote address (6 octets)
|
|
Local role (1 octet)
|
|
Remote role (1 octet)
|
|
|
|
Valid connection states: 0x00 = Connected
|
|
0x01 = Connecting
|
|
0x02 = Disconnected
|
|
0x03 = Disconnecting
|
|
|
|
Valid role values: 0x01 = NAP
|
|
0x02 = PANU
|
|
|
|
|
|
Bluetooth Handsfree HAL (ID 5)
|
|
==============================
|
|
|
|
Android HAL name: "handsfree" (BT_PROFILE_HANDSFREE_ID)
|
|
|
|
Service modes: 0x00 = Headset Profile only mode (default)
|
|
0x01 = Handsfree Profile (narrowband speech)
|
|
0x02 = Handsfree Profile (narrowband and wideband speech)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Connect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Disconnect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x03 - Connect Audio command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x04 - Disconnect Audio command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x05 - Start Voice Recognition command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x06 - Stop Voice Recognition command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x07 - Volume Control command/response
|
|
|
|
Command parameters: Volume type (1 octet)
|
|
Volume (1 octet)
|
|
Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
Valid volume types: 0x00 = Speaker
|
|
0x01 = Microphone
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x08 - Device Status Notification command/response
|
|
|
|
Command parameters: Network state (1 octet)
|
|
Service type (1 octet)
|
|
Signal strength (1 octet)
|
|
Battery level (1 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid network states: 0x00 = Not available
|
|
0x01 = Available
|
|
|
|
Valid service types: 0x00 = Home network
|
|
0x01 = Roaming network
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x09 - COPS Response command/response
|
|
|
|
Command parameters: COPS command response (string)
|
|
Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0a - CIND Response command/response
|
|
|
|
Command parameters: Service (1 octet)
|
|
Number of active calls (1 octet)
|
|
Number of held calls (1 octet)
|
|
Call setup state (1 octet)
|
|
Signal strength (1 octet)
|
|
Roaming indicator (1 octet)
|
|
Battery level (1 octet)
|
|
Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
Valid call setup states: 0x00 = Active
|
|
0x01 = Held
|
|
0x02 = Dialing
|
|
0x03 = Alerting
|
|
0x04 = Incoming
|
|
0x05 = Waiting
|
|
0x06 = Idle
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0b - Formatted AT Response command/response
|
|
|
|
Command parameters: Pre-formatted AT response (string)
|
|
Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0c - AT Response command/response
|
|
|
|
Command parameters: Response code (1 octet)
|
|
Error code (1 octet)
|
|
Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
Valid response codes: 0x00 = ERROR
|
|
0x01 = OK
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0d - CLCC Response command/response
|
|
|
|
Command parameters: Call index (1 octet)
|
|
Call direction (1 octet)
|
|
Call state (1 octet)
|
|
Call mode (1 octet)
|
|
Call multiparty type (1 octet)
|
|
Call number type (1 octet)
|
|
Call number (string)
|
|
Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
Valid call directions: 0x00 = Outgoing
|
|
0x01 = Incoming
|
|
|
|
Valid call states: 0x00 = Active
|
|
0x01 = Held
|
|
0x02 = Dialing
|
|
0x03 = Alerting
|
|
0x04 = Incoming
|
|
0x05 = Waiting
|
|
0x06 = Idle
|
|
|
|
Valid call modes: 0x00 = Voice
|
|
0x01 = Data
|
|
0x02 = Fax
|
|
|
|
Valid multiparty types: 0x00 = Single call
|
|
0x01 = Multiparty call
|
|
|
|
Valid number types: 0x81 = Unknown
|
|
0x91 = International
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0e - Phone Status Change command/response
|
|
|
|
Command parameters: Number of active calls (1 octet)
|
|
Number of held calls (1 octet)
|
|
Call setup state (1 octet)
|
|
Call number type (1 octet)
|
|
Call number (string)
|
|
Response parameters: <none>
|
|
|
|
Valid call setup states: 0x00 = Active
|
|
0x01 = Held
|
|
0x02 = Dialing
|
|
0x03 = Alerting
|
|
0x04 = Incoming
|
|
0x05 = Waiting
|
|
0x06 = Idle
|
|
|
|
Valid number types: 0x81 = Unknown
|
|
0x91 = International
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0f - Configure WBS command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Config (1 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid config values: 0x00 = None
|
|
0x01 = No
|
|
0x02 = Yes
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Connection State notification
|
|
|
|
Notification parameters: Connection state (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid connection states: 0x00 = Disconnected
|
|
0x01 = Connecting
|
|
0x02 = Connected
|
|
0x03 = SLC connected
|
|
0x04 = Disconnecting
|
|
|
|
Opcode 0x82 - Audio State notification
|
|
|
|
Notification parameters: Audio state (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid audio states: 0x00 = Disconnected
|
|
0x01 = Connecting
|
|
0x02 = Connected
|
|
0x03 = Disconnecting
|
|
|
|
Opcode 0x83 - Voice Recognition Command notification
|
|
|
|
Notification parameters: Voice recognition state (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid voice recognition states: 0x00 = Stopped
|
|
0x01 = Started
|
|
|
|
Opcode 0x84 - Answer Call Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
|
|
Opcode 0x85 - Hangup Call Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
|
|
Opcode 0x86 - Volume Command notification
|
|
|
|
Notification parameters: Volume type (1 octet)
|
|
Volume (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid volume types: 0x00 = Speaker
|
|
0x01 = Microphone
|
|
|
|
Opcode 0x87 - Dial Call Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Number (string)
|
|
|
|
Opcode 0x88 - DTMF Command notification
|
|
|
|
Notification parameters: Tone (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Opcode 0x89 - NREC Command notification
|
|
|
|
Notification parameters: NREC types (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid NREC types: 0x00 = Stop
|
|
0x01 = Start
|
|
|
|
Opcode 0x8a - CHLD Command notification
|
|
|
|
Notification parameters: NREC types (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid CHLD types: 0x00 = Release and hold
|
|
0x01 = Release active and accept held
|
|
0x02 = Hold active and accept held
|
|
0x03 = Add held call to conference
|
|
|
|
Opcode 0x8b - CNUM Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
|
|
Opcode 0x8c - CIND Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
|
|
Opcode 0x8d - COPS Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
|
|
Opcode 0x8e - CLCC Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
|
|
Opcode 0x8f - Unknown AT Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
AT command (string)
|
|
|
|
Opcode 0x90 - Key Pressed Command notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
|
|
Opcode 0x91 - WBS Command notification
|
|
|
|
Notification parameters: WBS types (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid WBS types: 0x00 = None
|
|
0x01 = No
|
|
0x02 = Yes
|
|
|
|
Bluetooth Advanced Audio HAL (ID 6)
|
|
Bluetooth Advanced Audio Sink HAL (ID 13)
|
|
=========================================
|
|
|
|
Android HAL name: "a2dp" (BT_PROFILE_ADVANCED_AUDIO_ID)
|
|
Android HAL name: "a2dp_sink" (BT_PROFILE_ADVANCED_AUDIO__SINK_ID)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Connect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Disconnect command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Connection State notification
|
|
|
|
Notification parameters: Connection state (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid connection states: 0x00 = Disconnected
|
|
0x01 = Connecting
|
|
0x02 = Connected
|
|
0x03 = Disconnecting
|
|
|
|
Opcode 0x82 - Audio State notification
|
|
|
|
Notification parameters: Audio state (1 octet)
|
|
Remote address (6 octets)
|
|
|
|
Valid connection states: 0x00 = Remote suspend
|
|
0x01 = Stopped
|
|
0x02 = Started
|
|
|
|
Opcode 0x83 - Audio Configuration notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Sample Rate in Hz (4 octets)
|
|
Channel Count (1 octet)
|
|
|
|
Valid channel count: 0x01 = Mono
|
|
0x02 = Stereo
|
|
|
|
Bluetooth Health HAL (ID 7)
|
|
===========================
|
|
|
|
Android HAL name: "health" (BT_PROFILE_HEALTH_ID)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Register Application command/response
|
|
|
|
Command parameters: Number of MDEP (1 octet)
|
|
Application name offset (2 octets)
|
|
Provider name offset (2 octets)
|
|
Service name offset (2 octets)
|
|
Service description offset (2 octets)
|
|
Data length (2 octets)
|
|
Data (data length)
|
|
Response parameters: Application ID (2 octets)
|
|
|
|
Strings are null terminated.
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Register Application MDEP data command/response
|
|
|
|
Command parameters: Application ID (2 octets)
|
|
MDEP Role (1 octet)
|
|
Data type (2 octets)
|
|
Channel type (1 octet)
|
|
MDEP description length (2 octets)
|
|
MDEP description (MDEP desciption length)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x03 - Unregister Application command/response
|
|
|
|
Command parameters: Application ID (2 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x04 - Connect Channel command/response
|
|
|
|
Command parameters: Application ID (2 octets)
|
|
Remote address (6 octets)
|
|
MDEP index (1 octet)
|
|
Response parameters: Channel ID (2 octets)
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x05 - Destroy Channel command/response
|
|
|
|
Command parameters: Channel ID (2 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Application Registration State notification
|
|
|
|
Notification parameters: Application ID (2 octets)
|
|
Application state (1 octet)
|
|
|
|
Valid application states: 0x00 = Registration success
|
|
0x01 = Registration failed
|
|
0x02 = Deregistration success
|
|
0x03 = Deregistration failed
|
|
|
|
Opcode 0x82 - Channel State notification
|
|
|
|
Notification parameters: Application ID (2 octets)
|
|
Remote address (6 octets)
|
|
MDEP index (1 octet)
|
|
Channel ID (2 octets)
|
|
Channel state (1 octet)
|
|
File descriptor (inline)
|
|
|
|
Valid channel states: 0x00 = Connecting
|
|
0x01 = Connected
|
|
0x02 = Disconnecting
|
|
0x03 = Disconnected
|
|
0x04 = Destroyed
|
|
|
|
|
|
Bluetooth Remote Control Target HAL (ID 8)
|
|
===================================
|
|
|
|
Android HAL name: "avrcp" (BT_PROFILE_AV_RC_ID)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Get Play Status Response command/response
|
|
|
|
Command parameters: Status (1 octet)
|
|
Duration (4 octets)
|
|
Position (4 octets)
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Valid status values: 0x00 = Stopped
|
|
0x01 = Playing
|
|
0x02 = Paused
|
|
0x03 = Fwd seek
|
|
0x04 = Rev seek
|
|
0xff = Error
|
|
|
|
Opcode 0x02 - List Player Attributes Response command/response
|
|
|
|
Command parameters: Number of attributes (1 octet)
|
|
Attribute # (1 octet)
|
|
...
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Valid attributes: 0x01 = Equalizer
|
|
0x02 = Repead
|
|
0x03 = Shuffle
|
|
0x04 = Scan
|
|
|
|
Opcode 0x03 - List Player Values Response command/response
|
|
|
|
Command parameters: Number of values (1 octet)
|
|
Value # (1 octet)
|
|
...
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x04 - Get Player Values Response command/response
|
|
|
|
Command parameters: Number of attributes (1 octet)
|
|
Attribute # (1 octet)
|
|
Value # (1 octet)
|
|
...
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Valid attributes: Same as in List Player Attributes
|
|
|
|
Opcode 0x05 - Get Player Attributes Text Response command/response
|
|
|
|
Command parameters: Number of attributes (1 octet)
|
|
Attribute # (1 octet)
|
|
Attribute # text length (1 octet)
|
|
Attribute # text (variable)
|
|
...
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Valid attributes: Same as in List Player Attributes
|
|
|
|
Opcode 0x06 - Get Player Values Text Response command/response
|
|
|
|
Command parameters: Number of values (1 octet)
|
|
Value # (1 octet)
|
|
Value # text length (1 octet)
|
|
Value # text (variable)
|
|
...
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x07 - Get Element Attributes Text Response command/response
|
|
|
|
Command parameters: Number of elements (1 octet)
|
|
Element # (1 octet)
|
|
Element # text length (1 octet)
|
|
Element # text (variable)
|
|
...
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Valid elements: 0x01 = Title
|
|
0x02 = Artist
|
|
0x03 = Album
|
|
0x04 = Track Number
|
|
0x05 = Number of Tracks
|
|
0x06 = Genre
|
|
0x06 = Duration
|
|
|
|
Opcode 0x08 - Set Player Attributes Value Response command/response
|
|
|
|
Command parameters: Status (1 octet)
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Valid status values: Same as in Get Play Status Response
|
|
|
|
Opcode 0x09 - Register Notification Response command/response
|
|
|
|
Command parameters: Event (1 octet)
|
|
Type (1 octet)
|
|
Data length (1 octet)
|
|
Data (variable)
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Valid event values: 0x01 = Status Changed
|
|
0x02 = Track Changed
|
|
0x03 = Track Reached End
|
|
0x04 = Track Reached Start
|
|
0x05 = Position Changed
|
|
0x08 = Setting Changed
|
|
|
|
Valid type values : 0x00 = Interim
|
|
0x01 = Changed
|
|
|
|
Opcode 0x0a - Set Volume command/response
|
|
|
|
Command parameters: Value (1 octet)
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Remote Features notification
|
|
|
|
Notification parameters: Remote address (6 octets)
|
|
Features (1 octet)
|
|
|
|
Valid features values : 0x00 = None
|
|
0x01 = Metadata
|
|
0x02 = Absolute Volume
|
|
0x03 = Browse
|
|
|
|
Opcode 0x82 - Get Play Status notification
|
|
|
|
Notification parameters: <none>
|
|
|
|
Opcode 0x83 - List Player Attributes notification
|
|
|
|
Notification parameters: <none>
|
|
|
|
Opcode 0x84 - List Player Values notification
|
|
|
|
Notification parameters: Attribute (1 octet)
|
|
|
|
Valid attribute values: Same as in List Player Attributes
|
|
|
|
Opcode 0x85 - Get Player Values notification
|
|
|
|
Notification parameters: Number of attributes (1 octet)
|
|
Attribute # (1 octet)
|
|
...
|
|
|
|
Valid attribute values: Same as in List Player Attributes
|
|
|
|
Opcode 0x86 - Get Player Attributes Text notification
|
|
|
|
Notification parameters: Number of attributes (1 octet)
|
|
Attribute # (1 octet)
|
|
...
|
|
|
|
Valid attribute values: Same as in List Player Attributes
|
|
|
|
Opcode 0x87 - Get Player Values Text notification
|
|
|
|
Notification parameters: Attribute (1 octet)
|
|
Number of values (1 octet)
|
|
Value # (1 octet)
|
|
...
|
|
|
|
Valid attribute values: Same as in List Player Attributes
|
|
|
|
Opcode 0x88 - Set Player Values notification
|
|
|
|
Notification parameters: Number of attributes (1 octet)
|
|
Attribute # (1 octet)
|
|
Value # (1 octet)
|
|
...
|
|
|
|
Valid attribute values: Same as in List Player Attributes
|
|
|
|
Opcode 0x89 - Get Element Attributes notification
|
|
|
|
Notification parameters: Number of attributes (1 octet)
|
|
Attribute # (1 octet)
|
|
...
|
|
|
|
Valid attribute values: Same as in Get Element Attribute
|
|
|
|
Opcode 0x8a - Register Notification notification
|
|
|
|
Notification parameters: Event (1 octet)
|
|
Parameter (4 octets)
|
|
|
|
Valid event values: Same as in Register Notification
|
|
|
|
Opcode 0x8b - Volume Changed notification
|
|
|
|
Notification parameters: Volume (1 octet)
|
|
Type (1 octet)
|
|
|
|
Valid type values: Same as in Register Notification
|
|
|
|
Opcode 0x8c - Passthrough Command notification
|
|
|
|
Notification parameters: ID (1 octet)
|
|
State (1 octet)
|
|
|
|
Bluetooth GATT HAL (ID 9)
|
|
=========================
|
|
|
|
Android HAL name: "gatt" (BT_PROFILE_GATT_ID)
|
|
|
|
Structures:
|
|
|
|
GATT Service ID: UUID (16 octets)
|
|
Instance ID (1 octet)
|
|
Is Primary (1 octet)
|
|
|
|
GATT Included Service ID: UUID (16 octets)
|
|
Instance ID (1 octet)
|
|
Is Primary (1 octet)
|
|
|
|
GATT Characteristic ID: UUID (16 octets)
|
|
Instance ID (1 octet)
|
|
|
|
GATT Descriptor ID: UUID (16 octets)
|
|
Instance ID (1 octet)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Client Register command/response
|
|
|
|
Command parameters: Service UUID (16 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Client Unregister command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x03 - Client Scan command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Start (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x04 - Client Connect Device command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Remote address (6 octets)
|
|
Is Direct (1 octet)
|
|
Transport (4 octets)
|
|
Response parameters: <none>
|
|
|
|
Valid transport value: 0x00 = Auto
|
|
0x01 = BR/EDR
|
|
0x02 = LE
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x05 - Client Disconnect Device command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Remote address (6 octets)
|
|
Connection ID (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x06 - Client Listen command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Start (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x07 - Client Refresh command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x08 - Client Search Service command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
Filtered (1 octet)
|
|
Filter UUID (16 octets)
|
|
Response parameters: <none>
|
|
|
|
Filter UUID shall only be present when Filtered is non-zero.
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x09 - Client Get Included Service command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
GATT Service ID (18 octets)
|
|
Continuation (1 octet)
|
|
GATT Included Service ID (18 octets)
|
|
...
|
|
Response parameters: <none>
|
|
|
|
GATT Included Service ID shall only be present when Continuation
|
|
is non-zero.
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0a - Client Get Characteristic command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
GATT Service ID (18 octets)
|
|
Continuation (1 octet)
|
|
GATT Characteristic ID (17 octets)
|
|
...
|
|
Response parameters: <none>
|
|
|
|
GATT Characteristic ID shall only be present when Continuation
|
|
is non-zero.
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0b - Client Get Descriptor command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
Continuation (1 octet)
|
|
GATT Descriptor ID (17 octets)
|
|
...
|
|
Response parameters: <none>
|
|
|
|
GATT Descriptor ID shall only be present when Continuation is
|
|
non-zero.
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0c - Client Read Characteristic command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
Authorization (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0d - Client Write Characteristic command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
Write Type (4 octets)
|
|
Length (4 octets)
|
|
Authorization Req. (4 octets)
|
|
Value (variable)
|
|
Response parameters: <none>
|
|
|
|
Valid Write Type: 0x01 = No response
|
|
0x02 = Default
|
|
0x03 = Prepare
|
|
0x04 = Signed
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0e - Client Read Descriptor command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
GATT Descriptor ID (17 octets)
|
|
Authorization Req. (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x0f - Client Write Descriptor command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
GATT Descriptor ID (17 octets)
|
|
Write Type (4 octets)
|
|
Length (4 octets)
|
|
Authorization Req. (4 octets)
|
|
Value (variable)
|
|
Response parameters: <none>
|
|
|
|
Valid Write Type: 0x01 = No response
|
|
0x02 = Default
|
|
0x03 = Prepare
|
|
0x04 = Signed
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x10 - Client Execute Write command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
Execute (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x11 - Client Register For Notification command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Remote address (6 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x12 - Client Deregister For Notification command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Remote address (6 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x13 - Client Read Remote RSSI command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x14 - Client Get Device Type command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: Device Type
|
|
|
|
Valid Device Type: 0x01 = BREDR
|
|
0x02 = BLE
|
|
0x03 = DUAL
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x15 - Client Set Advertising data command/response
|
|
|
|
Command parameters: Server Interface (4 octets)
|
|
Set Scan Resp. (1 octet)
|
|
Include Name (1 octet)
|
|
Include TX Power (1 octet)
|
|
Min. Interval (4 octets)
|
|
Max. Interval (4 octets)
|
|
Appearance (4 octets)
|
|
Manufacturer Len. (2 octets)
|
|
Manufacturer Data (variable)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x16 - Client Test Command command/response
|
|
|
|
Command parameters: Command (4 octets)
|
|
Address (6 octets)
|
|
UUID (16 octets)
|
|
U1 (2 octets)
|
|
U2 (2 octets)
|
|
U3 (2 octets)
|
|
U4 (2 octets)
|
|
U5 (2 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x17 - Server Register command/response
|
|
|
|
Command parameters: UUID (16 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x18 - Server Unregister command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x19 - Server Connect Peripheral command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Remote address (6 octets)
|
|
Is Direct (1 octet)
|
|
Transport (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x1a - Server Disconnect Peripheral command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Remote address (6 octets)
|
|
Connection ID (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x1b - Server Add Service command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
GATT Service ID (18 octets)
|
|
Number of Handles (4 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid GATT Service ID: UUID (16 octets)
|
|
Instance ID (1 octet)
|
|
Is Primary (1 octet)
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x1c - Server Add Included Service command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Service handle (4 octets)
|
|
Included handle (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x1d - Server Add Characteristic command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Service handle (4 octets)
|
|
UUID (16 octets)
|
|
Properties (4 octets)
|
|
Permissions (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x1e - Server Add Descriptor command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Service handle (4 octets)
|
|
UUID (16 octets)
|
|
Permissions (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x1f - Server Start Service command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Service handle (4 octets)
|
|
Transport (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x20 - Server Stop Service command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Service handle (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x21 - Server Delete Service command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Service handle (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x22 - Server Send Indication command/response
|
|
|
|
Command parameters: Server (4 octets)
|
|
Attribute handle (4 octets)
|
|
Connection ID (4 octets)
|
|
Length (4 octets)
|
|
Confirmation (4 octets)
|
|
Value (variable)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x23 - Server Send Response command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
Transaction ID (4 octets)
|
|
Handle (2 octets)
|
|
Offset (2 octets)
|
|
Auth Request (1 octect)
|
|
Status (4 octets)
|
|
GATT Response (4 octets)
|
|
Response parameters: <none>
|
|
|
|
Valid GATT Response: GATT Value (607 octets)
|
|
Handle (2 octets)
|
|
|
|
Valid GATT Value: Value (600 octets)
|
|
Handle (2 octets)
|
|
Offset (2 octets)
|
|
Length (2 octets)
|
|
Authentication Request (1 octet)
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x24 - Client Scan Filter Params Setup command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Action (4 octets)
|
|
Filter Index (4 octets)
|
|
Features (4 octets)
|
|
List Type (4 octets)
|
|
Filter Type (4 octets)
|
|
RSSI High Threshold (4 octets)
|
|
RSSI Low Threshold (4 octets)
|
|
Delivery Mode (4 octets)
|
|
Found Timeout (4 octets)
|
|
Lost Timeout (4 octets)
|
|
Found Timeout Count (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x25 - Client Scan Filter Add Remove command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Action (4 octets)
|
|
Filter Type (4 octets)
|
|
Filter Index (4 octets)
|
|
Company ID (4 octets)
|
|
Company ID Mask (4 octets)
|
|
UUID (16 octets)
|
|
UUID Mask (16 octets)
|
|
Address (6 octets)
|
|
Address Type (1 octet)
|
|
Data Length (4 octets)
|
|
Data (variable)
|
|
Mask Length (4 octets)
|
|
Mask (variable)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x26 - Client Scan Filter Clear command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Filter Index (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x27 - Client Scan Filter Enable command/response
|
|
|
|
Command parameters: Client Interface (4 octets)
|
|
Enable (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x28 - Client Configure MTU command/response
|
|
|
|
Command parameters: Connection ID (4 octets)
|
|
MTU (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x29 - Client Connection Parameter Update command/response
|
|
|
|
Command parameters: Address (6 octets)
|
|
Min Interval (4 octets)
|
|
Max Interval (4 octets)
|
|
Latency (4 octets)
|
|
Timeoutl (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x2a - Client Set Scan Parameters command/response
|
|
|
|
Command parameters: Scan Interval (4 octets)
|
|
Scan Window (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x2b - Client Setup Multi Advertising command/response
|
|
|
|
Command parameters: Client ID (4 octets)
|
|
Min Interval (4 octets)
|
|
Max Interval (4 octets)
|
|
ADV Type (4 octets)
|
|
Channel Map (4 octets)
|
|
TX Power (4 octets)
|
|
Timeout (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x2c - Client Update Multi Advertising command/response
|
|
|
|
Command parameters: Client ID (4 octets)
|
|
Min Interval (4 octets)
|
|
Max Interval (4 octets)
|
|
ADV Type (4 octets)
|
|
Channel Map (4 octets)
|
|
TX Power (4 octets)
|
|
Timeout (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x2d - Client Setup Multi Advertising Instance command/response
|
|
|
|
Command parameters: Client ID (4 octets)
|
|
Set Scan Response (1 octet)
|
|
Include Name (1 octet)
|
|
Include TX Power (1 octet)
|
|
Appearance (4 octets)
|
|
Manufacturer Data Length (4 octets)
|
|
Manufacturer Data (variable)
|
|
Service Data Length (4 octets)
|
|
Service Data (variable)
|
|
Service UUID Length (4 octets)
|
|
Service UUID (variable)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x2e - Client Disable Multi Advertising Instance command/response
|
|
|
|
Command parameters: Client ID (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x2f - Client Configure Batchscan command/response
|
|
|
|
Command parameters: Client ID (4 octets)
|
|
Full Max (4 octets)
|
|
Trunc Max (4 octets)
|
|
Notify Threshold (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x30 - Client Enable Batchscan command/response
|
|
|
|
Command parameters: Client ID (4 octets)
|
|
Scan Mode (4 octets)
|
|
Scan Interval (4 octets)
|
|
Scan Window (4 octets)
|
|
Address Type (4 octets)
|
|
Discard Rule (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x31 - Client Disable Batchscan command/response
|
|
|
|
Command parameters: Client ID (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x32 - Client Read Batchscan Resports command/response
|
|
|
|
Command parameters: Client ID (4 octets)
|
|
Scan Mode (4 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Client Register notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Client Interface (4 octets)
|
|
UUID (16 octets)
|
|
|
|
Opcode 0x82 - Client Scan Result notification
|
|
|
|
Notification parameters: Address (6 octets)
|
|
RSSI (4 octets)
|
|
Length (2 octets)
|
|
Data (variable)
|
|
|
|
Opcode 0x83 - Client Connect Device notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
Client Interface (4 octets)
|
|
Address (6 octets)
|
|
|
|
Opcode 0x84 - Client Disconnect Device notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
Client Interface (4 octets)
|
|
Address (6 octets)
|
|
|
|
Opcode 0x85 - Client Search Complete notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0x86 - Client Search Result notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
GATT Service ID (18 octets)
|
|
|
|
Opcode 0x87 - Client Get Characteristic notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
Char Prop. (4 octets)
|
|
|
|
Opcode 0x88 - Client Get Descriptor notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
GATT Descriptor ID (17 octets)
|
|
|
|
Opcode 0x89 - Client Get Included Service notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Included Service ID (18 octets)
|
|
|
|
Opcode 0x8a - Client Register For Notification notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Registered (4 octets)
|
|
Status (4 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
|
|
Opcode 0x8b - Client Notify notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Address (6 octets)
|
|
GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
Is Notify (1 octet)
|
|
Length (2 octets)
|
|
Value (variable)
|
|
|
|
Opcode 0x8c - Client Read Characteristic notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
GATT Read Parameters (variable)
|
|
|
|
Valid GATT Read Parameters: GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
GATT Descriptor ID (17 octets)
|
|
Value Type (4 octets)
|
|
Status (1 octet)
|
|
Length (2 octets)
|
|
Value (variable)
|
|
|
|
Opcode 0x8d - Client Write Characteristic notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
GATT Write Parameters (53 octets)
|
|
|
|
Valid GATT Write Parameters: GATT Service ID (18 octets)
|
|
GATT Characteristic ID (17 octets)
|
|
GATT Description ID (17 octets)
|
|
Status (1 octet)
|
|
|
|
Opcode 0x8e - Client Read Descriptor notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
GATT Read Parameters (variable)
|
|
|
|
Valid GATT Read Parameters: As described in Read Characteristic
|
|
|
|
Opcode 0x8f - Client Write Descriptor notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
GATT Write Parameters (53 octets)
|
|
|
|
Valid GATT Write Parameters: As described in Write Characteristic
|
|
|
|
Opcode 0x90 - Client Execute Write notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0x91 - Client Read Remote RSSI notification
|
|
|
|
Notification parameters: Client (4 octets)
|
|
Address (6 octets)
|
|
RSSI (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0x92 - Client Listen notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Server Interface (4 octets)
|
|
|
|
Opcode 0x93 - Server Register notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Server (4 octets)
|
|
UUID (16 octets)
|
|
|
|
Opcode 0x94 - Server Connection notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Server (4 octets)
|
|
Connected (4 octets)
|
|
Address (6 octets)
|
|
|
|
Opcode 0x95 - Server Service Added notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Server (4 octets)
|
|
GATT Service ID (18 octets)
|
|
Service Handle (4 octets)
|
|
|
|
Opcode 0x96 - Server Included Service Added notification
|
|
|
|
Notification patemeters: Status (4 octets)
|
|
Server (4 octets)
|
|
Service Handle (4 octets)
|
|
Included Service Handle (4 octets)
|
|
|
|
Opcode 0x97 - Server Characteristic Added notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Server (4 octets)
|
|
UUID (16 octets)
|
|
Service Handle (4 octets)
|
|
Characteristic Handle (4 octets)
|
|
|
|
Opcode 0x98 - Server Descriptor Added notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Server (4 octets)
|
|
UUID (6 octets)
|
|
Service Handle (4 octets)
|
|
Descriptor Handle (4 octets)
|
|
|
|
Opcode 0x99 - Server Service Started notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Server (4 octets)
|
|
Service Handle (4 octets)
|
|
|
|
Opcode 0x9a - Server Service Stopped notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Server (4 octets)
|
|
Service Handle (4 octets)
|
|
|
|
Opcode 0x9b - Server Service Deleted notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Server (4 octets)
|
|
Service Handle (4 octets)
|
|
|
|
Opcode 0x9c - Server Request Read notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Trans ID (4 octets)
|
|
Address (6 octets)
|
|
Attribute Handle (4 octets)
|
|
Offset (4 octets)
|
|
Is Long (1 octet)
|
|
|
|
Opcode 0x9d - Server Request Write notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Trans ID (4 octets)
|
|
Address (6 octets)
|
|
Attribute Handle (4 octets)
|
|
Offset (4 octets)
|
|
Length (4 octets)
|
|
Need Response (4 octets)
|
|
Is Prepare (1 octet)
|
|
Value (variable)
|
|
|
|
Opcode 0x9e - Server Request Execute Write notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Trans ID (4 octets)
|
|
Address (6 octets)
|
|
Execute Write (4 octets)
|
|
|
|
Opcode 0x9f - Server Response Confirmation notification
|
|
|
|
Notification parameters: Status (4 octets)
|
|
Handle (4 octets)
|
|
|
|
Opcode 0xa0 - Client Configure MTU notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
MTU (4 octets)
|
|
|
|
Opcode 0xa1 - Client Filter Configuration notification
|
|
|
|
Notification parameters: Action (4 octets)
|
|
Client ID (4 octets)
|
|
Status (4 octets)
|
|
Filter Type (4 octets)
|
|
Available Space (4 octets)
|
|
|
|
Opcode 0xa2 - Client Filter Parameters notification
|
|
|
|
Notification parameters: Action (4 octets)
|
|
Client ID (4 octets)
|
|
Status (4 octets)
|
|
Available Space (4 octets)
|
|
|
|
Opcode 0xa3 - Client Filter Status notification
|
|
|
|
Notification parameters: Enable (4 octets)
|
|
Client ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0xa4 - Client Multi Advertising Enable notification
|
|
|
|
Notification parameters: Client ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0xa5 - Client Multi Advertising Update notification
|
|
|
|
Notification parameters: Client ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0xa6 - Client Multi Advertising Data notification
|
|
|
|
Notification parameters: Client ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0xa7 - Client Multi Advertising Disable notification
|
|
|
|
Notification parameters: Client ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0xa8 - Client Congestion notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Congested (1 octet)
|
|
|
|
Opcode 0xa9 - Client Configure Batchscan notification
|
|
|
|
Notification parameters: Client ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0xaa - Client Enable Batchscan notification
|
|
|
|
Notification parameters: Action (4 octets)
|
|
Client ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0xab - Client Batchscan Reports notification
|
|
|
|
Notification parameters: Client ID (4 octets)
|
|
Status (4 octets)
|
|
Report Format (4 octets)
|
|
Num Reports (4 octets)
|
|
Data Length (4 octets)
|
|
Data (variable)
|
|
|
|
Opcode 0xac - Client Batchscan Threshold notification
|
|
|
|
Notification parameters: Client ID (4 octets)
|
|
|
|
Opcode 0xad - Client Track ADV notification
|
|
|
|
Notification parameters: Client ID (4 octets)
|
|
Filter Index (4 octets)
|
|
Address Type (4 octets)
|
|
Address (6 octets)
|
|
State (4 octets)
|
|
|
|
Opcode 0xae - Server Indication Sent notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Status (4 octets)
|
|
|
|
Opcode 0xaf - Server Congestion notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
Congested (1 octet)
|
|
|
|
Opcode 0xb0 - Server MTU Changed notification
|
|
|
|
Notification parameters: Connection ID (4 octets)
|
|
MTU (4 octets)
|
|
|
|
|
|
Bluetooth Handsfree Client HAL (ID 10)
|
|
======================================
|
|
|
|
Android HAL name: "hf_client" (BT_PROFILE_HANDSFREE_CLIENT_ID)
|
|
|
|
Commands and response:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Connect command/respose
|
|
|
|
Command parameters: Remote address (6 octects)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x02 - Disonnect command/response
|
|
|
|
Command parameters: Remote address (6 octetcs)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x03 - Connect Audio command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x04 - Disconnect Audio command/response
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x05 - Start Voice Recognition command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x06 - Stop Voice Recognition command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x07 - Volume Control command/response
|
|
|
|
Command parameters: Volume type (1 octet)
|
|
Volume (1 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid volume types: 0x00 = Speaker
|
|
0x01 = Microphone
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x08 - Dial command/response
|
|
|
|
Command parameters: Number (string)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x09 - Dial Memory command/response
|
|
|
|
Command parameters: Location (4 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x10 - Handle Call Action command/response
|
|
|
|
Command parameters: Action (1 octet)
|
|
Call Index (1 octet)
|
|
Response parameters: <none>
|
|
|
|
Valid actions: 0x00 = CHLD_0
|
|
0x01 = CHLD_1
|
|
0x02 = CHLD_2
|
|
0x03 = CHLD_3
|
|
0x04 = CHLD_4
|
|
0x05 = CHLD_1x
|
|
0x06 = CHLD_2x
|
|
0x07 = ATA
|
|
0x08 = CHUP
|
|
0x09 = BTRH_0
|
|
0x10 = BTRH_1
|
|
0x11 = BTRH_2
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x11 - Query Current Calls commad/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x12 - Query Current Operator Name
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x13 - Retrieve Subscriber Info command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x14 - Send DTMF Tone command/response
|
|
|
|
Command parameters: Tone (1 octet)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Opcode 0x15 - Request Last Voice Tag Number command/response
|
|
|
|
Command parameters: <none>
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Connection State Changed notification
|
|
|
|
Notification parameters: State (1 octet)
|
|
Peer Features (4 octets)
|
|
CHLD Features (4 octets)
|
|
Address (6 octets)
|
|
|
|
Valid State values: 0x00 = Disconnected
|
|
0x01 = Connecting
|
|
0x02 = Connected
|
|
0x03 = SLC Connected
|
|
0x04 = Disconnecting
|
|
|
|
Peer Features is a bitmask of the supported features. Currently
|
|
available bits:
|
|
|
|
0 Three way calling
|
|
1 Echo cancellation and/or noise reduction
|
|
2 Voice recognition
|
|
3 In band ring tone
|
|
4 Attach a number to a voice tag
|
|
5 Ability to reject a call
|
|
6 Enhanced call status
|
|
7 Enhanced call control
|
|
8 Extended Error Result Codes
|
|
9 Codec negotiations
|
|
10-31 Reserved for future use
|
|
|
|
CHLD Features is a bitmask of the supported features. Currently
|
|
available bits:
|
|
|
|
0 Release waiting call or held calls
|
|
1 Release active calls and accept other call
|
|
2 Release specified active call only
|
|
3 Place all active calls on hold and accept other call
|
|
4 Request private mode with secified call
|
|
5 Add a held call to the multiparty
|
|
6 Connect two calls and leave multiparty
|
|
7-31 Reserved for future use
|
|
|
|
Note: Peer and CHLD Features are valid only in SCL Connected state
|
|
|
|
|
|
Opcode 0x82 - Audio State Changed notification
|
|
|
|
Notification parameters: State (1 octet)
|
|
Address (6 octets)
|
|
|
|
Valid State values: 0x00 = Disconnected
|
|
0x01 = Connecting
|
|
0x02 = Connected
|
|
0x03 = Connected mSBC
|
|
|
|
Opcode 0x83 - Voice Recognition State Changed notification
|
|
|
|
Notification parameters: State (1 octet)
|
|
|
|
Valid State values: 0x00 = VR Stopped
|
|
0x01 = VR Started
|
|
|
|
Opcode 0x84 - Network State Changed notification
|
|
|
|
Notification parameters: State (1 octet)
|
|
|
|
Valid State values: 0x00 = Network Not Available
|
|
0x01 = Network Available
|
|
|
|
Opcode 0x85 - Network Roaming Type Changed notification
|
|
|
|
Notification parameters: Type (1 octet)
|
|
|
|
Valid Type values: 0x00 = Home
|
|
0x01 = Roaming
|
|
|
|
Opcode 0x86 - Network Signal Strength notification
|
|
|
|
Notification parameters: Signal Strength (1 octet)
|
|
|
|
Opcode 0x87 - Battery Level notification
|
|
|
|
Notification parameters: Battery Level (1 octet)
|
|
|
|
Opcode 0x88 - Current Operator Name notification
|
|
|
|
Notification parameters: Name (string)
|
|
|
|
Opcode 0x89 - Call Indicatior notification
|
|
|
|
Notification parameters: Call (1 octet)
|
|
|
|
Valid Call values: 0x00 = No Call In Progress
|
|
0x01 = Call In Progress
|
|
|
|
Opcode 0x8a - Call Setup Indicator notification
|
|
|
|
Notification parameters: Call Setup (1 octet)
|
|
|
|
Valid Call Setup values: 0x00 = None
|
|
0x01 = Incoming
|
|
0x02 = Outgoing
|
|
0x03 = Alerting
|
|
|
|
Opcode 0x8b - Call Held Indicator notification
|
|
|
|
Notification parameters: Call Held (1 octet)
|
|
|
|
Valid Call Held values: 0x00 = None
|
|
0x01 = Hold and Active
|
|
0x02 = Hold
|
|
|
|
Opcode 0x8c - Resposne and Hold Status notification
|
|
|
|
Notification parameters: Status (1 octet)
|
|
|
|
Valid Status values: 0x00 = Held
|
|
0x01 = Accept
|
|
0x02 = Reject
|
|
|
|
Opcode 0x8d - Calling Line Identification notification
|
|
|
|
Notification parameters: Number (string)
|
|
|
|
Note: This will be called only on incoming call if number is
|
|
provided.
|
|
|
|
Opcode 0x8e - Call Waiting notification
|
|
|
|
Notification parameters: Nunmber (string)
|
|
|
|
Opcode 0x8f - Current Calls List notification
|
|
|
|
Notification parameters: Index (1 octet)
|
|
Direction (1 octet)
|
|
Call State (1 octet)
|
|
Multiparty (1 octet)
|
|
Number (string)
|
|
|
|
Valid Direction values: 0x00 = Outgoing
|
|
0x01 = Incoming
|
|
|
|
Valid Call Sate values: 0x00 = Active
|
|
0x01 = Held
|
|
0x02 = Dialing
|
|
0x03 = Alerting
|
|
0x04 = Incoming
|
|
0x05 = Waiting
|
|
0x06 = Call held by Response and Hold
|
|
|
|
Valid Multiparty values: 0x00 = Single Call
|
|
0x01 = Multiparty (conference) Call
|
|
|
|
Note: Number might be empty
|
|
|
|
Opcode 0x90 - Volume Changed notification
|
|
|
|
Notification parameters: Type (1 octet)
|
|
Volume (1 octet)
|
|
|
|
Valid Type values: 0x00 = Speaker
|
|
0x01 = Microphone
|
|
|
|
Opcode 0x91 - Command Complete Callback notification
|
|
|
|
Notification parameters: Type (1 octet)
|
|
CME (1 octet)
|
|
|
|
Valid Type values: 0x00 = OK
|
|
0x01 = Error
|
|
0x02 = Error no carrier
|
|
0x03 = Error busy
|
|
0x04 = Error no answer
|
|
0x05 = Error delayed
|
|
0x06 = Error blacklisted
|
|
0x07 = Error CME
|
|
|
|
Note: CME parameter is valid only for Error CME type
|
|
|
|
Opcode 0x92 - Subscriber Service Info Callback notification
|
|
|
|
Notification parameters: Name (string)
|
|
Type (1 octet)
|
|
|
|
Valid Type values: 0x00 = Service unknown
|
|
0x01 = Service voice
|
|
0x02 = Service fax
|
|
|
|
Opcode 0x93 - In Band Ring Settings Callback notification
|
|
|
|
Notification parameters: State (1 octet)
|
|
|
|
Valid State values: 0x00 = In band ringtone not provided
|
|
0x01 = In band ringtone provided
|
|
|
|
Opcode 0x94 - Last Voice Call Tag Number Callback notification
|
|
|
|
Notification parameters: Number (string)
|
|
|
|
Opcode 0x95 - Ring Indication notification
|
|
|
|
Notification parameters: <none>
|
|
|
|
|
|
Bluetooth Map Client HAL (ID 11)
|
|
=========================
|
|
|
|
Android HAL name: "map_client" (BT_PROFILE_MAP_CLIENT_ID)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Get Remote MAS Instances
|
|
|
|
Command parameters: Remote address (6 octets)
|
|
Response parameters: <none>
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Remote MAS Instances notification
|
|
|
|
Notification parameters: Status (1 octet)
|
|
Remote address (6 octets)
|
|
Number of instances (4 octets)
|
|
Instance ID # (4 octets)
|
|
Channel # (4 octets)
|
|
Message types (4 octets)
|
|
Name # (string)
|
|
|
|
Bluetooth Remote Control Controller HAL (ID 12)
|
|
===================================
|
|
|
|
Android HAL name: "avrcp-ctrl" (BT_PROFILE_AV_RC_CTRL_ID)
|
|
|
|
Commands and responses:
|
|
|
|
Opcode 0x00 - Error response
|
|
|
|
Opcode 0x01 - Send Pass Through command/response
|
|
|
|
Command parameters: Remote Address (6 octets)
|
|
Key Code (1 octet)
|
|
Key State (1 octet)
|
|
|
|
In case of an error, the error response will be returned.
|
|
|
|
Notifications:
|
|
|
|
Opcode 0x81 - Passthrough Response Notification
|
|
|
|
Notification parameters: ID (1 octet)
|
|
Key State (1 octet)
|
|
|
|
Opcode 0x82 - Connection State Notification
|
|
|
|
Notification parameters: State (1 octet)
|
|
Remote Address (6 octets)
|