Create video call guest access
- Sandbox: available
- Staging: available
- Production: unknown
Creates a join link for a video call Appointment for someone who has no Ovok account. A Practitioner calls it, then shares the returned videoCallUrl with the guest.
Auth: bearer token. The caller must be a Practitioner. Scope: the caller's project (from the token). The Appointment is read in that project.
Behaviour
- The guest has no room admin rights. The guest's display name in the call is
guestEmail. - The link is valid from 1 hour before the Appointment
startuntil 1 hour after itsend. - The route does not send an email. To email the link, use the video call mail routes.
- Every call returns a new token. Earlier tokens stay valid until they expire.
- The response holds
videoCallUrl(the full join link),livekitJwtandpassphrase. The passphrase is the one stored on the Appointment and is also the fragment ofvideoCallUrl.
Example
curl -X POST 'https://api.sandbox.ovok.com/video-call/livekit/guest-access/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \ -H 'Content-Type: application/json' \ -d '{ "guestEmail": "max.mustermann@example.com" }'bearerAuthorizationBearer <JWT>appointmentId*stringAppointment ID.
uuidapplication/json- body
guestEmail*stringGuest email.
emailCreated video call guest access.
application/json- response
videoCallUrl*stringURL to join video call.
livekitJwt*stringLiveKit JWT.
passphrase*stringPassphrase for video call.
curl -X POST 'https://api.sandbox.ovok.com/video-call/livekit/guest-access/497f6eca-6276-4993-bfeb-53cbbbba6f08' \ -H 'Content-Type: application/json' \ -d '{ "guestEmail": "user@example.com"}'{ "videoCallUrl": "string", "livekitJwt": "string", "passphrase": "string"}Fetch user's video call access permission GET
Returns the video call access permission of the signed-in user for one Appointment. Use it to check whether the user has been invited before you request a join link. **Auth:** bearer token. **Scope:** the caller's project (from the token). ## Behaviour - The permission is the `CommunicationRequest` that links the Appointment to the user's profile as recipient. The route returns it without its `meta`. - If there is no such grant for the caller's profile, the route returns 403. - The lookup uses the caller's own profile reference (for example `Patient/<id>`), so a user only ever sees their own permission. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/video-call/livekit/access-permission/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```
Create video call Ovok-user access POST
Creates a join link for a video call Appointment for the signed-in Ovok user. Use it when a Practitioner or Patient joins a call from an Ovok app. **Auth:** bearer token. The caller's profile must be a Practitioner or a Patient. A RelatedPerson is refused. **Scope:** the caller's project (from the token). ## Behaviour - A Practitioner can always join and joins as room admin. - A Patient can join only after a Practitioner has granted access to the Appointment. The grant is a `CommunicationRequest` that names the Patient as recipient. `POST /video-call/livekit/notification/active-call/{appointmentId}` creates it. Without it the route returns 401. - The display name in the call is the Practitioner's name, or for a Patient the user's email, or `user-<profile id>` when there is no email. - The token is valid from 1 hour before the request until 24 hours after it. Unlike guest access, it does not follow the Appointment times. - The response holds `videoCallUrl` (the full join link), `livekitJwt` and `passphrase`. ## Example ```bash curl -X POST 'https://api.sandbox.ovok.com/video-call/livekit/user-access/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```