Files
advanced-camera-card/docs/uml/call-sequence.puml
T
Dermot Duffy abcba884e5 feat: Add 'call' support to improve 2-way audio experience (#2486)
Draws significant inspiration (and direct styling) from
https://github.com/dermotduffy/advanced-camera-card/pull/2447 . Thank
you @Maudfer !

BREAKING CHANGE:

The microphone condition previously bundled two unrelated signals —
whether a two-way-audio session was connected and whether the microphone
was muted. Connection state is now its own dedicated call condition, and
microphone is reserved purely for mute state. Configs are upgraded
automatically (the card rewrites affected conditions under overrides,
elements, and automations). If you maintain config by hand, convert as
follows:

If you only used connected:

# Before
```yaml
condition: microphone
connected: true
```

# After
```yaml
condition: call
call: true
```
If you used both connected and muted — they must be split into two
conditions, since they no longer live together:

# Before
```yaml
condition: microphone
connected: true
muted: false
```

# After
```yaml
condition: and
conditions:
  - condition: call
    call: true
  - condition: microphone
    muted: false
```
2026-06-30 17:45:13 -07:00

60 lines
2.1 KiB
Plaintext

@startuml
skinparam backgroundColor white
actor User
participant "Call" as Card
participant Microphone as Mic
actor Guest
opt <color:#43a047>**""live.microphone.always_connected""**</color> is enabled
Card -> Mic : Microphone connection attempted (muted)
note over Mic : Connected at card load, before (and independent of) any call
Mic --> User : Microphone access granted
end
User -> Card : Start a call
note over User, Card
Via Call menu button or <color:#43a047>**""call_start""**</color> action.
Needs a camera that supports 2-way audio
end note
opt <color:#43a047>**""live.microphone.always_connected""**</color> not enabled
Card -> Mic : Microphone connection attempted (muted)
note over Mic : Stays muted by default (<color:#43a047>**""live.microphone.auto_unmute""**</color>)
Mic --> User : Microphone access granted
end
note over User, Mic
The microphone must connect for the call to proceed —
if access is denied or unsupported, the call does not start
end note
Card --> User : You hear the caller
note over Card
Inbound audio unmutes if configured (<color:#43a047>**""live.auto_unmute""**</color>)
Menu, status bar & next/previous hide (<color:#43a047>**""auto_hide""**</color>)
Camera navigation is locked (<color:#43a047>**""live.controls.call.lock""**</color>)
end note
User -> Mic : Unmute to talk
note over Mic : List 'call' in <color:#43a047>**""live.microphone.auto_unmute""**</color> to unmute automatically
loop Until the call ends
User -[#red]> Guest : Talking
Guest -[#red]-> User : Responding
end
User -> Card : End the call
note over User, Card
Via Hang-up button, <color:#43a047>**""call_end""**</color> action, or — when
<color:#43a047>**""live.controls.call.lock""**</color> is disabled — navigating away
end note
Card --> User : Inbound audio mutes (<color:#43a047>**""live.auto_mute""**</color>)
Card -> Mic : Microphone mutes (<color:#43a047>**""live.microphone.auto_mute""**</color>)
note over Mic
Disconnects after <color:#43a047>**""live.microphone.disconnect_seconds""**</color>
unless <color:#43a047>**""live.microphone.always_connected""**</color>
end note
@enduml