Skip to content

Tally lights for Zoom to detect when your camera/mic are live and do something

Notifications You must be signed in to change notification settings

samdbmg/zoom-tally

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Zoom Tally Lights

Detect whether you're on a Zoom call, and then whether your camera's on and mic open, to create a kind of "tally light" to show if your mic is live.

Usage

At the moment this is a) a proof-of-concept and b) a mess, but rust-poc contains a proof of concept detector written in Rust.

In principle you can do cd rust-poc && cargo run, although you may have to edit in the name of your actual network device because it doesn't detect them very well, and the current algorithm is flaky.

How to detect Zoom calls

Zoom starts up three UDP streams to port 8801 on a zoom.us domain - they're assumed to be video, audio and control. So if packets are being sent to a Zoom address port 8801 that's probably a call in progress.

The traffic is all encrypted so we can't read it, but we can make some guesses based on the size of each packet. As a rough approximation:

  • Audio: >50 byte packets
  • Video: >200 byte packets
  • Everything else: Control

Once we know which outgoing port is which, we can start listening to see how long it's been since there was outgoing traffic (of suitable size). Zoom seems to send keepalive packets of a few bytes at a time, but if it's not sending full-sized packets pretty regularly it's a safe bet audio and/or video is off.

Complication: One to One calls

It seems Zoom is a bit cleverer when you do a one-to-one call - if it can send UDP directly to the other end with creative hole punching it stops sending to the zoom.us domain.

About

Tally lights for Zoom to detect when your camera/mic are live and do something

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages