File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change 1+ @startuml
2+ participant "index.html" as Client
3+ participant "OpenAI" as API
4+
5+
6+ == Session Start ==
7+ Client -> Client: User clicks "Start Session"
8+ Client -> API: Fetch Token
9+ API -> Client: Token
10+ Client -> Client: Acquire local audio (getUserMedia())
11+ Client -> Client: Create RTCPeerConnection & DataChannel
12+ Client -> Client: setLocalDescription()
13+ Client -> API: HTTP POST (offer.sdp, API key, etc.)
14+ API -> Client: SDP Answer
15+ Client -> Client: setRemoteDescription(answer)
16+ Client->API: addTrack(): send local audio
17+ API->Client: Remote audio (pcm16)
18+ Client -> Client: ontrack() - attach remote audio stream to <audio>
19+ Client -> Client: DataChannel onopen event fires
20+ Client -> Client: Send "session.update" & "start instructions" via DataChannel
21+
22+ == During Session ==
23+ API -> Client: DataChannel messages\n(audio transcript delta,\nfinal transcript, function call responses)
24+ Client -> API: DataChannel system message updates
25+
26+ == Session End ==
27+ Client -> Client: User clicks "End Session"
28+ Client -> API: Send "final goodbye" message via DataChannel
29+ Client -> Client: Stop local audio & (after delay) Close RTCPeerConnection
30+ Client -> Client: Log "Session ended."
31+ @endumlml
You can’t perform that action at this time.
0 commit comments