@startuml
!include agora_skin.iuml

actor "User" as USR

box "Implemented by you"
participant "Authentication system" as SVR
participant "App" as APP
end box

box "Provided by Agora"
participant "SDRTN®" as API
end box


USR -> APP: Start the app
APP -> APP: Initiate the RTC SDK engine

group Setup media stream encryption
APP -> SVR: Login to the \nauthentication system
APP <-> SVR: Retrieve a 32-byte key
APP <-> SVR: Retrieve a 32-byte salt in \nBase64 format
APP -> APP: Create a encryption configuration using \nthe key and salt
APP -> API: Set the encryption configuration
end

USR -> APP: Select a channel to join
APP <-> SVR: Retrieve an access token.
APP <-> API: Join a channel
APP <-> API: Communicate over an\n encrypted media stream


@enduml
