JaaS endpoints
The following endpoints are exposed by JaaS services for conference management options:
The endpoints require a JWT that contains the claim: admin: true
. The JWT token has to be signed with a private key that has the corresponding public key uploaded in the jaas api-keys section of the console.
JWT payload example:
{
"aud": "jitsi",
"exp": 1696284052,
"iss": "chat",
"admin":true,
"nbf": 1596197652,
"sub": "vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3"
}
-
BAN_USER: ban a user based on the user id
Endpoint: https://api-vo.jitsi.net/jaccess/v1/access-management/{appId}/ban/user/{userId}
Path Variables:
- appId: application Id
- userId: user id to ban
Request example:
curl -X POST "https://api-vo.jitsi.net/jaccess/v1/access-management/vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3/ban/user/userIdValue" -H "accept: */*" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMy9lZDg1YjYiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJqaXRzaSIsImV4cCI6MTY1MDMyNTUwNiwiaXNzIjoiY2hhdCIsImFkbWluIjp0cnVlLCJuYmYiOjE1OTYxOTc2NTIsInN1YiI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMyJ9.iw0rbDonLpNAfY8681VtzM0fLhKH5pPjraaR5Yb6yEgGW2ghkfExJ7ldKnhvFJOQ-YrahQhWhUbr-j8OKkggZum_YLY_AOk5qos-CGLMjM1Q_OQ94-EATi6e3Ca0rkfhm4qmgx7B_I0dqCro_F2F5ABoMOdkqPRwWF5NAC5-O317wrAR69Hi6RzWwXvzhZ75BJkZRQ7bqJEz62L_gcl3u9_g6aziRsLzJMg7-mK7LVTRThOBeHGhl07OnPx79Xu65LumDecqdlyyaTYPEHUsfRdOxxUCwpopQHWHVfEqESMH0p1fUK-P3Yl8mAEBmCVuLAIYtq6R8Ejsps5zlAIcDA"
-
BAN_JWT: ban a jwt
Endpoint: https://api-vo.jitsi.net/jaccess/v1/access-management/{appId}/ban/jwt
Path Variables:
- appId: application Id
Body (JSON)
- jwt: jwt to ban
Request example:
curl -X POST "https://api-vo.jitsi.net/jaccess/v1/access-management/vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3/ban/jwt" -H "accept: */*" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMy9lZDg1YjYiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJqaXRzaSIsImV4cCI6MTY1MDMyNTUwNiwiaXNzIjoiY2hhdCIsImFkbWluIjp0cnVlLCJuYmYiOjE1OTYxOTc2NTIsInN1YiI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMyJ9.iw0rbDonLpNAfY8681VtzM0fLhKH5pPjraaR5Yb6yEgGW2ghkfExJ7ldKnhvFJOQ-YrahQhWhUbr-j8OKkggZum_YLY_AOk5qos-CGLMjM1Q_OQ94-EATi6e3Ca0rkfhm4qmgx7B_I0dqCro_F2F5ABoMOdkqPRwWF5NAC5-O317wrAR69Hi6RzWwXvzhZ75BJkZRQ7bqJEz62L_gcl3u9_g6aziRsLzJMg7-mK7LVTRThOBeHGhl07OnPx79Xu65LumDecqdlyyaTYPEHUsfRdOxxUCwpopQHWHVfEqESMH0p1fUK-P3Yl8mAEBmCVuLAIYtq6R8Ejsps5zlAIcDA"}"
-
DESTROY_ROOM: Terminate an ongoing meeting
Endpoint: https://api-vo.jitsi.net/conference-commands/v1/meeting
Request type: POST
Body (JSON):
action
(string): Must haveDESTROY
valueconferenceFullName
(string): The full name of the conference that is constructed using the following rule: [email protected]
Note: The appId part from the conferenceFullName must be the same as the
sub
claim from the admin JWT.{ "action": "DESTROY", "payload": { "conferenceFullName": "testRoom@conference.vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3.8x8.vc" } }
Request example:
curl -X 'POST' \ 'https://api-vo.jitsi.net/conference-commands/v1/meeting' \ -H 'accept: */*' \ -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMy9lZDg1YjYiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJqaXRzaSIsImV4cCI6MTY1MDMyNTUwNiwiaXNzIjoiY2hhdCIsImFkbWluIjp0cnVlLCJuYmYiOjE1OTYxOTc2NTIsInN1YiI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMyJ9.iw0rbDonLpNAfY8681VtzM0fLhKH5pPjraaR5Yb6yEgGW2ghkfExJ7ldKnhvFJOQ-YrahQhWhUbr-j8OKkggZum_YLY_AOk5qos-CGLMjM1Q_OQ94-EATi6e3Ca0rkfhm4qmgx7B_I0dqCro_F2F5ABoMOdkqPRwWF5NAC5-O317wrAR69Hi6RzWwXvzhZ75BJkZRQ7bqJEz62L_gcl3u9_g6aziRsLzJMg7-mK7LVTRThOBeHGhl07OnPx79Xu65LumDecqdlyyaTYPEHUsfRdOxxUCwpopQHWHVfEqESMH0p1fUK-P3Yl8mAEBmCVuLAIYtq6R8Ejsps5zlAIcDA' \ -H 'Content-Type: application/json' \ -d '{ "action": "DESTROY", "payload": { "conferenceFullName": "testRoom@conference.vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3.8x8.vc" } }'
-
DIAL_OUT_PARTICIPANT: Dial out a participant from the meeting.
Endpoint: https://api-vo.jitsi.net/conference-commands/v1/meeting
Request type: POST
Body (JSON):
action
(string): Must haveDIAL_OUT_PARTICIPANT
valueconferenceFullName
(string): The full name of the conference that is constructed using the following rule: [email protected]phoneNo
(string): The phone number that will be called from the meeting.
Note:
- The appId part from the conferenceFullName must be the same as the
sub
claim from the admin JWT. - When the API is called if there aren't any participants in the room, the outbound call is not performed until the first participant joins.
- JaaS billing rates apply for using this endpoint
{
"action": "DIAL_OUT_PARTICIPANT",
"payload": {
"conferenceFullName": "testRoom@conference.vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3.8x8.vc",
"phoneNo": "+40747777777"
}
}
Request example:
curl -X 'POST' \
'https://api-vo.jitsi.net/conference-commands/v1/meeting' \
-H 'accept: */*' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMy9lZDg1YjYiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJqaXRzaSIsImV4cCI6MTY1MDMyNTUwNiwiaXNzIjoiY2hhdCIsImFkbWluIjp0cnVlLCJuYmYiOjE1OTYxOTc2NTIsInN1YiI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMyJ9.iw0rbDonLpNAfY8681VtzM0fLhKH5pPjraaR5Yb6yEgGW2ghkfExJ7ldKnhvFJOQ-YrahQhWhUbr-j8OKkggZum_YLY_AOk5qos-CGLMjM1Q_OQ94-EATi6e3Ca0rkfhm4qmgx7B_I0dqCro_F2F5ABoMOdkqPRwWF5NAC5-O317wrAR69Hi6RzWwXvzhZ75BJkZRQ7bqJEz62L_gcl3u9_g6aziRsLzJMg7-mK7LVTRThOBeHGhl07OnPx79Xu65LumDecqdlyyaTYPEHUsfRdOxxUCwpopQHWHVfEqESMH0p1fUK-P3Yl8mAEBmCVuLAIYtq6R8Ejsps5zlAIcDA' \
-H 'Content-Type: application/json' \
-d '{
"action": "DIAL_OUT_PARTICIPANT",
"payload": {
"conferenceFullName": "testRoom@conference.vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3.8x8.vc",
"phoneNo": "+40747777777"
}
}'
-
HANG_UP_CALL: Cancel an initiated outbound call or kick the dialed-out participant if is already joined
Endpoint: https://api-vo.jitsi.net/conference-commands/v1/meeting
Request type: POST
Body (JSON):
action
(string): Must haveHANG_UP_CALL
valueconferenceFullName
(string): The full name of the conference that is constructed using the following rule: [email protected]phoneNo
(string): The phone number corresponding to the call that will be canceled or terminated.
Note:
- The appId part from the conferenceFullName must be the same as the
sub
claim from the admin JWT. - If the participant corresponding to the phone number is in the room, calling the endpoint will kick the participant, but if the participant did not receive the call yet, it is canceled.
{
"action": "HANG_UP_CALL",
"payload": {
"conferenceFullName": "testRoom@conference.vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3.8x8.vc",
"phoneNo": "+40747777777"
}
}
Request example:
curl -X 'POST' \
'https://api-vo.jitsi.net/conference-commands/v1/meeting' \
-H 'accept: */*' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMy9lZDg1YjYiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJqaXRzaSIsImV4cCI6MTY1MDMyNTUwNiwiaXNzIjoiY2hhdCIsImFkbWluIjp0cnVlLCJuYmYiOjE1OTYxOTc2NTIsInN1YiI6InZwYWFzLW1hZ2ljLWNvb2tpZS0xZDJlNmEyMDFkNTk0YzhmODdhNjMwZTNmNzE4MjZkMyJ9.iw0rbDonLpNAfY8681VtzM0fLhKH5pPjraaR5Yb6yEgGW2ghkfExJ7ldKnhvFJOQ-YrahQhWhUbr-j8OKkggZum_YLY_AOk5qos-CGLMjM1Q_OQ94-EATi6e3Ca0rkfhm4qmgx7B_I0dqCro_F2F5ABoMOdkqPRwWF5NAC5-O317wrAR69Hi6RzWwXvzhZ75BJkZRQ7bqJEz62L_gcl3u9_g6aziRsLzJMg7-mK7LVTRThOBeHGhl07OnPx79Xu65LumDecqdlyyaTYPEHUsfRdOxxUCwpopQHWHVfEqESMH0p1fUK-P3Yl8mAEBmCVuLAIYtq6R8Ejsps5zlAIcDA' \
-H 'Content-Type: application/json' \
-d '{
"action": "HANG_UP_CALL",
"payload": {
"conferenceFullName": "testRoom@conference.vpaas-magic-cookie-1d2e6a201d594c8f87a630e3f71826d3.8x8.vc",
"phoneNo": "+40747777777"
}
}'
Updated almost 2 years ago