2.2.2.2.2 UDP: Presence Response

The UDP presence response message is used when a device receives a presence request. The device responds with a presence response message to notify that it is available.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Message_Type

Discovery_Type

Connection_Mode

Device_Type

Device_Name_Length

Device_Name (variable)

...

...

...

DeviceIdSalt

DeviceIdHash

PrincipalUserNameHash

MacAddress

...

Message_Type (1 byte): Indicates current message type, in this case, Discovery (1).

Discovery_Type (1 byte): Indicates type of discovery message, in this case, Presence Response (1).

Connection_Mode (2 bytes): Displays types of available connections, which can be one of the following values.

Value

Meaning

0

None

1

Proximal

2

Legacy

Device_Type (2 bytes): SKU of the device, which can be one of the following values.

Value

Meaning

1

Xbox One

6

Apple iPhone

7

Apple iPad

8

Android device

9

Windows 10 Desktop

11

Windows 10 Phone

12

Linux device

13

Windows IoT

14

Surface Hub

15

Windows laptop

16

Windows tablet

Device_Name_Length (2 bytes): Length of the machine name of the device.

Device_Name (variable): This is character representation of the name of the device. The size of the list is bounded by the previous message.

DeviceIdSalt (4 bytes): A randomly generated salt.

DeviceIdHash (4 bytes): Salted SHA-256 hash of the internal CDP device ID. This is used to correlate the advertising device to a list of known devices without advertising the full device ID.

PrincipalUserNameHash (4 bytes): Salted SHA-256 Hash of the logged on user's account email. Calculated by using the DeviceIdSalt. and PrincipalUserNameHash.<3>

MacAddress (6 bytes): A Bluetooth MAC address used to de-duplicate devices.<4>