List participant not update leavel time when host "put to waiting room"

The project I’m working on counts the number of users in a realtime meeting.

If I find out, I will rely on webhook participant join, left meeting to call api get list participant.

When the user joins, left meeting, the api list meeting participants are correct. I’m relying on 3 fields:

  • join_time fields to exist,
  • leave_time doesn’t exist
  • status = in_meeting

To count the number of users who are online in the meeting. When the user joins, left meeting, the api returns the correct result.

But with host performing the action “Participant was put in a waiting room”, When calling api get list participant the user host just clicked on the waiting room still returns an empty leave_time result, so the count of users in my meeting is not correct.
Response api get list participants:

{
    "page_count": 1,
    "page_size": 300,
    "total_records": 3,
    "next_page_token": "",
    "participants": [
      {
          "id": "id",
          "user_id": "user_id",
          "user_name": "host",
          "device": "不明",
          "ip_address": "ip_address",
          "location": "Hanoi (VN)",
          "network_type": "その他",
          "data_center": "日本",
          "full_data_center": "",
          "connection_type": "SSL",
          "join_time": "2022-10-11T04:24:54Z",
          "share_application": false,
          "share_desktop": false,
          "share_whiteboard": false,
          "recording": false,
          "pc_name": "",
          "domain": "",
          "mac_addr": "",
          "harddisk_id": "",
          "version": "",
          "registrant_id": "",
          "status": "in_meeting",
          "customer_key": "=",
          "sip_uri": "",
          "from_sip_uri": "",
          "role": "host"
      },
      {
          "id": "id",
          "user_id": "16785408",
          "user_name": "user_name",
          "device": "不明",
          "ip_address": "ip",
          "location": "Hanoi (VN)",
          "network_type": "その他",
          "data_center": "日本",
          "full_data_center": "日本;シンガポール (AP RWG);",
          "connection_type": "SSL",
          "join_time": "2022-10-11T05:23:00Z",
          "share_application": false,
          "share_desktop": false,
          "share_whiteboard": false,
          "recording": false,
          "pc_name": "",
          "domain": "",
          "mac_addr": "",
          "harddisk_id": "",
          "version": "",
          "email": "example@gmail.com",
          "registrant_id": "",
          "status": "in_meeting",
          "customer_key": "",
          "sip_uri": "",
          "from_sip_uri": "",
          "role": "attendee"
      },
      {
          "id": "id",
          "user_id": "user_id",
          "user_name": "user_name",
          "device": "不明",
          "ip_address": "ip_address",
          "location": "Hanoi (VN)",
          "network_type": "その他",
          "data_center": "日本",
          "full_data_center": "",
          "connection_type": "SSL",
          "join_time": "2022-10-11T05:13:58Z",
          "leave_time": "2022-10-11T05:22:23Z",
          "share_application": false,
          "share_desktop": false,
          "share_whiteboard": false,
          "recording": false,
          "pc_name": "",
          "domain": "",
          "mac_addr": "",
          "harddisk_id": "",
          "version": "",
          "leave_reason": "がミーティングから退室しました。<br>理由:待機室を退出します。",
          "email": "example@gmail.com",
          "registrant_id": "",
          "status": "in_waiting_room",
          "customer_key": "",
          "sip_uri": "",
          "from_sip_uri": "",
          "role": "attendee"
      },
    ]
}

I don’t understand the logic behind zoom put user to waiting room yet. Can you guys support me? Thank you!