Add SIP participant to meeting using PATCH /live_meetings/{meetingId}/events

I am attempting to use the PATCH /live_meetings/{meetingId}/events API to add a SIP participant to a meeting. I created a zoomapp with the scopes meeting:read, meeting:read:sip_dialing, meeting:write, meeting_token:read:live_streaming, and user:read. I do not see in the zoom-apps configuration any way to add meeting:write:admin or meeting:master through the zoom-apps interface which the documentation say are needed (https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/inMeetingControl)

After I add the zoom-app, I get the token eyJhbGciOiJIUzUxMiIsInYiOiIyL......Z1Lbp6Qy4npL0cIA which jwt.io shows is something like:

{
  "ver": 8,
  "auid": "1ac097d5792a61c1eec05acaa2cf5ddf",
  "code": "uoQqucvWDvnwS4_PaRcTXqpgD9uoad3DA",
  "iss": "zm:cid:u2SZfudfRmOHWmqYQzt4GA",
  "gno": 0,
  "type": 0,
  "tid": 0,
  "aud": "https://oauth.zoom.us",
  "uid": "WWlIZFkuS9aNbKTwikj8zQ",
  "nbf": 1675187446,
  "exp": 1675191046,
  "iat": 1675187446,
  "aid": "xWDmoJWNSyWwNcuJGYhiYQ",
  "jti": "71d5918e-5b0a-4700-8832-683d4df927a5"
}

Using curl, I verified I could make a request with that token:

curl -D- -XGET https://api.zoom.us/v2/users/me -H"Authorization: Bearer $TOKEN

And got a good response that included my name.

I then tried to use the api to add a sip endpoint:

curl -D- -XPATCH https://api.zoom.us/v2/live_meetings/84098077904/event --data-binary '{"method":"participant.invite.room_system_callout","params":{"call_type":"sip","device_ip":"address-here@sip-dev.example.com"}}' -H"Content-type: application/json" -H"Authorization: Bearer $TOKEN"  

to which I just get a 200 response and the participant is never added (I put in a legitimate value where I show address-here@sip-dev.example.com) – the same address that works if I manually do Invite / Zoom Room / SIP / address-here.

Any ideas on what’s going wrong?

Thanks for reaching out about this! You posit a great question.

I think the root of the issue here is that you are looking to use admin and master scopes with a Zoom App which is user managed. What I mean is that those scopes require an account-level app which currently is not supported by Zoom Apps.

As a test, you should be able to add those scopes to an account-level OAuth app. With that being said, I would expect a non 200 response when using that token so that is something we’ll need to fix on our end.

@MaxM : Is there a reason why these APIs couldn’t be exposed at a user level? These are functions a user can do manually while in a conference. (Why does adding a participant via SIP require admin/master?)

1 Like