/zoom-ultra

Trying to decode zoom ultrasonic proximity protocol

Primary LanguagePython

If you know how to decode the signal further, write in this thread on HN

Zoom uses ultrasonic protocol to detect Zoom sessions nearby. If you are near a conference set, you can check spectrum analyser (e.g. Spectroid for Android) that there is constant signal around 19kHz.

I recorded 74 seconds of such signal from a conference room.

The sequence of actions during the recording was:

  1. nothing, wait
  2. 13 sec - click "share screen on laptop", connect
  3. 30 sec - disconnect
  4. nothing, wait
  5. 47 sec - click "share screen on laptop", connect. The room name was "RASMXJ", I don't remember if the previous room had the same name.
  6. 58 sec - disconnect
  7. nothing, wait

Spectrogram of the original spikes around 20kHz.

img

Filtered with high-pass filter and decimeted shows clearly 12 bands spaced by 200Hz.

img

Spectrograms of the signal, chopped in 5-second intervals is as follows. Each "bit" has ~72ms. The longer dips are connects and disconnects. If Zoom broadcasts the meeting room ID, it must be in the signal before and after the dips.

It seems that around second 8 and second 43 the conferencing set sends the room ID or confirmation code. Confirmation codes in Zoom have 6 letters 6*26=156 states. This can be represented with 156/12=13 12-level "chirps". In the samples I see 9 or 11 and it doesn't seem that there are chirps with two or more different frequencies.

img img img img img img img img img img img img img img