Diagram: Group Call Flow (Audio/Video)¶
Canonical doc:
../group-call.md
sequenceDiagram
autonumber
participant Host as Host (Device)
participant App as iOS App
participant API as Backend API
participant STOMP as STOMP
participant P1 as Participant 1
participant P2 as Participant 2
Host->>App: Start group call
App->>API: Fetch public keys via KT (P1, P2)
API-->>App: Raw KT Response (Public Keys + Merkle Proofs)
Note over App: Mathematically Verify KT Proofs
Note over App: Cross-reference PeerTrustStore<br>(Show Trust Override Popup if needed)
Note over App: Prepare initial session key<br/>Encrypt per participant (P-256 preferred#59; RSA fallback)
App->>API: POST /app/api/call/start
API-->>App: CallRecord(callId,...)
API->>STOMP: call_invitation (to P1,P2)
STOMP->>P1: call_invitation
STOMP->>P2: call_invitation
P1->>P1: Decrypt session key
P2->>P2: Decrypt session key
P1->>API: POST /app/api/call/{callId}/join
P2->>API: POST /app/api/call/{callId}/join
API-->>P1: Join OK
API-->>P2: Join OK
Note over Host,P2: Encrypted media starts (AES-256-GCM)