diff --git a/android/hal-ipc-api.txt b/android/hal-ipc-api.txt
index 4f202c8..7c51728 100644
--- a/android/hal-ipc-api.txt
+++ b/android/hal-ipc-api.txt
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 0x80.
+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.
init() --> register module handsfree
-Core Service (ID 0)
-===================
+Error response is common for all services and has fixed structure:
Opcode 0x00 - Error response
Response parameters: Status (1 octet)
- Valid status values: 0x01 Failed
+ 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
Opcode 0x00 - Error response
- Response parameters: Status (1 octet)
-
Opcode 0x01 - Enable command/response
Command parameters: <none>
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
-
Opcode 0x01 - Listen command/response
Command parameters: Socket type (1 octet)
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
-
Opcode 0x01 - Connect command/response
Command parameters: Remote address (6 octets)
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
-
Opcode 0x01 - Enable command/response
Command parameters: Local role (1 octet)
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
-
Opcode 0x01 - Connect command/response
Command parameters: Remote address (6 octets)
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
-
Opcode 0x01 - Connect command/response
Command parameters: Remote address (6 octets)
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
-
Opcode 0x01 - Register Application command/response
Command parameters: Number of MDEP (1 octet)
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
-
Opcode 0x01 - Get Play Status Response command/response
Command parameters: Status (1 octet)
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
-
Opcode 0x01 - Register Client command/response
Command parameters: Service UUID (16 octets)
Opcode 0x00 - Error response
- 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
-
Opcode 0x01 - Connect command/respose
Command parameters: Remote address (6 octects)
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
-
Opcode 0x01 - Get Remote MAS Instances
Command parameters: Remote address (6 octets)
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
-
Opcode 0x01 - Send Pass Through command/response
Command parameters: Remote Address (6 octets)