| 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) |