Ending meeting doesn't stop invite

Context:

  • We start a meeting with an api call to the endpoint POST /users/{userId}/meetings

  • We join this meeting using the component view for the Meeting SDK

  • Once joined on the SDK, we invite another user using an api call to the endpoint PATCH /live_meetings/{meetingId}/events with the method of “participant.invite”.

  • The invited user’s device then begins ringing (phone or desktop depending on where they are logged in) as seen below:

Issue:

If we end the meeting using an api call to the endpoint PUT /meetings/{meetingId}/status with the action of “end”, this successfully changes the connection state to “Closed” yet doesn’t stop the invited user’s device from ringing.

If they try and accept after this, they are met with an error popup stating “invalid Meeting ID”.

Is there any way of ending the invite upon meeting cancelation?

Hi @matthew7
Thanks for reaching out to us and sharing your findings with the community!
Allow me some time to test this on my end. I will try to replicate this behavior and report it to our Engineering team if needed

Hi @elisa.zoom,

Thanks for looking into this. If you need any more details then please let us know.

hi @matthew7
I got a similar behavior from my testing but not exactly the same.
Would you be able to record this issue on your end and share the recording with me? In this recording, could you also include those API calls?
Let me know if you can get that recording for me and if not, we can meet and do this together and I can record it

Hi @elisa.zoom,

Sadly I cannot share the recording with you due to privacy concerns of our data. However I can share with you our API calls for this sequence with a flow of what happens.

Api Calls:

1) Start Meeting: ZoomEndpoint+“users/”+ZoomID+“/meetings” (sent as a POST, where ZoomID is a paid Zoom user’s ID)
Body:

{
  "type": 1,
  "settings": {
    "  auto_recording": "cloud",
    "  host_video": true,
    "  participant_video": true,
    "  approval_type": 2,
    "  meeting_authentication": false,
    "  waiting_room": false,
    "  mute_upon_entry": false
  }
}

2) Inviting: ZoomEndpoint+“live_meetings/”+MeetingID+“/events” (sent as a PATCH, where MeetingID is the returned ID from the start meeting call. This is fired once the ZoomMtgEmbedded client receives a “user-added” for the host)
Body:

 {
  "method": "participant.invite",
  "params": {
    "  contacts": [
      {
        "  email": "InviteeEmail" //InviteeEmail is the email of a free user on the same account.
      }
    ]
  }
}

3) Ending Meeting: ZoomEndpoint+“meetings/”+MeetingID+“/status” (sent as a PUT, where MeetingID is the returned ID from the start meeting call)
Body:

 {
  "action": "end"
}

Flow:

Press a button on our website
v
Fires the start meeting api
v
Sends the meeting data back to website
v
ZoomMtgEmbedded client created and client.join is initiated using the paid account
v
Once “user-added” is fired with the payload[0].isHost set to true, fire the inviting api to invite the free user
v
The free user’s app begins ringing
v
Press a button to end the meeting on our website
v
Fires the end meeting api
v
The free user’s app is still ringing
v
When “connection-change” returns the payload.state of “Closed”, the ZoomMtgEmbedded client is destroyed.
v
The free user’s app is still ringing

If you need anymore clarity let us know.

Hi @elisa.zoom,

I’m just wondering where this is at. Is there any updates?

Cheers, Matt

Hi @matthew7
I am still not able to reproduce this on my end, would you be able to meet with me so we can go over the workflow and document it?
If you agree, I will send you a DM with follow up steps

Hi @elisa.zoom ,

Sure thing. Feel free to DM with steps.

Hi @elisa.zoom,

I just wanted to see if this has been fixed yet?

After some more testing on my end, it doesn’t seem to be the case.

Many thanks,
Matt

Hi @matthew7
Thanks for getting back to me!
I will re-engage with our Engineering team and will update you shortly

Hi @matthew7
Thanks for your patience here, I was able to get some insightful information for you and it is that the participant.invite method will check the status of the meeting before initiating an invite.

Once the status of the meeting is checked there is no way for other services to check it again and know that the meeting was ended while the participant did not answer the call. So if the participant accepts the call the meeting is invalid error is expected.

Please let me know if you have any other questions

Hi @elisa.zoom,

Thanks for getting back to us.

I now understand why it is not working, yet I would like to ask why it wouldn’t while the native zoom app does it?

Also, is there any way to manually cancel the invite using the API if it wont cancel automatically?

Hey @matthew7
The meeting SDK does not behave 100% like as the client, there are some features that are not 1 to 1
I could not find an API that will help you cancel the invite

1 Like

Hey @matthew7
I had a chat with our Engineering team and they confirmed that it seems like the client can send a message to the gateway service when the meeting ends and therefore calls initiated are stopped.

We were able to create a Feature Request to achieve this via API (ZOOM-885780 internal ticket number for reference) but I can not provide you an ETA at this point. I will keep you posted if there is any movement in it.

Cheer,
Elisa

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.