Skip to content

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
}
]
}
  • 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.
  1. The mobile app sends a POST request to the Video API to create a new video session.
  2. If there’s no active token, the Video API requests an access token from the Token Server.
  3. The Video API requests the creation of a video room from the MaxConf API.
  4. The MaxConf API responds with details about the created room.
  5. The Video API sends a confirmation message back to the mobile app, including the room details.
  6. The mobile app updates the session status to “started” by sending a PUT request to the Video API.
  7. The mobile app initiates a call using the Pexip Platform.
  8. During the session, the Pexip Platform sends various call status updates to the mobile app.
  9. The mobile app updates the session status with each call update by sending PUT requests to the Video API.
  10. At the end of the session, the mobile app instructs the Pexip Platform to end the call.
  11. The Pexip Platform notifies the MaxConf API that the room has ended, and the MaxConf API deletes the room.
  12. Finally, the mobile app updates the session status to “ended” by sending a PUT request to the Video API.