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:
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 @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
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:
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
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 @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
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
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.