When you are subscribed to the “Presence Status Updated” webhook you see presence status for things like “In_Meeting”, “Presenting”, “On_Phone_Call”, or “In_Calendar_Event”, as well as presences for “Away”, “Available”, “Do_Not_Disturb”, and “Offline”.
If you use the “/contacts” API, (and you use the flag for query_presence_status=true,) you only get the status of “Away”, “Available”, “Do_Not_Disturb”, and “Offline”. (So for instance if someone is on the phone, they are showing up as “Do_Not_Disturb”.)
The reason I want this: I’m also subscribed to phone webhooks, and because of the complications that are conference calls, warm transfers, calls on hold, etc, I sometimes see a bunch of presence status updates with almost identical time stamps, (that may either arrive out of order or maybe I sometimes processing them out of order?) and even a “call ended” event, but it turns out that the person is still using the phone… The easiest way to handle this would be to just go check their status 20 seconds later (when things are settled,) and see if they are on the phone or not, but this API won’t ever tell me they are on the phone…