BCSC Mobile App Sequence Diagram
%%{init: {'sequence': {'noteAlign': 'left'}}}%%
sequenceDiagram
autonumber
participant app as "BCSC Mobile App"
participant api as "BCSC Video API"
box " "
participant oauth as "Token Server"
participant vcapi as "MaxConf API"
participant pexip as "Pexip Platform"
end
activate app
app ->> api: POST /video/v2/sessions\nclient_id=123\n&device_code=xyz
Note right of api: A new /v2 endpoint will interface\nwith the new Maximus solution.
activate api
alt no active token
api ->> oauth: POST /{tenant}/oauth2/v2.0/token
oauth -->> api: 200 OK {access_token}
end
api ->> vcapi: POST /room/create?uuiData={uuiData}
activate vcapi
vcapi -->> api: 200 OK {room_object}
deactivate vcapi
Note left of api: (see note below describing room oject response)
api -->> app: 201 video_session_message
deactivate api
app ->> api: PUT /video/v2/sessions/{name} {"status": "started"}
app ->> pexip: Create call
loop until end session
pexip -->> app: various call status updates
app ->> api: PUT /video/v2/sessions/{name}/calls {"session_id": {name}, [...], "status": "{status}"}
end
app ->> pexip: end call
pexip ->> vcapi: {room} ended
vcapi ->> pexip: delete {room}
app ->> api: PUT /video/v2/sessions/{name} {"status": "ended"}
deactivate app
Room object response
{ "id": 41, "name": "MTIzNDU2LDc2NTQzMg", "service_type": "conference", "allow_guests": true, "pin": "1936", "guest_pin": "8521", "tag": "https://id.gov.bc.ca/idcheck/MTIzNDU2LDc2NTQzMg", "aliases": [ { "alias": "MTIzNDU2LDc2NTQzMg", "creation_time": "2024-03-04T22:32:11.234996", "description": "", "id": 111 } ]}Participants
Section titled “Participants”- BCSC Mobile App: The client application initiating and managing the video session.
- BCSC Video API: The intermediary service that the mobile app communicates with to manage video sessions.
- Token Server (oauth): A service that provides authentication tokens.
- MaxConf API (vcapi): A service responsible for creating and managing video conference rooms.
- Pexip Platform (pexip): A platform handling the video calls.
Process Flow
Section titled “Process Flow”- The mobile app sends a POST request to the Video API to create a new video session.
- If there’s no active token, the Video API requests an access token from the Token Server.
- The Video API requests the creation of a video room from the MaxConf API.
- The MaxConf API responds with details about the created room.
- The Video API sends a confirmation message back to the mobile app, including the room details.
- The mobile app updates the session status to “started” by sending a PUT request to the Video API.
- The mobile app initiates a call using the Pexip Platform.
- During the session, the Pexip Platform sends various call status updates to the mobile app.
- The mobile app updates the session status with each call update by sending PUT requests to the Video API.
- At the end of the session, the mobile app instructs the Pexip Platform to end the call.
- The Pexip Platform notifies the MaxConf API that the room has ended, and the MaxConf API deletes the room.
- Finally, the mobile app updates the session status to “ended” by sending a PUT request to the Video API.