Sofort-Call

Yan Minagawa

One click from the chat into a video call for the room's members

DemoCollaborationProductivity

Screenshots

Screenshot 1 of Sofort-Call Screenshot 2 of Sofort-Call Screenshot 3 of Sofort-Call Screenshot 4 of Sofort-Call Screenshot 5 of Sofort-Call Screenshot 6 of Sofort-Call Screenshot 7 of Sofort-Call Screenshot 8 of Sofort-Call Screenshot 9 of Sofort-Call Screenshot 10 of Sofort-Call Screenshot 11 of Sofort-Call Screenshot 12 of Sofort-Call

About this app

Start a video call for everyone in the room with one click; members who are not yet in it see a "Call läuft – beitreten" banner with who is already there. On Marcade it runs as a simulated call (tiles and presence, no audio or video); with an openDesk Jitsi instance behind the optional widget gateway it opens a real, token-protected Jitsi call. Unofficial technology demonstration of the openDesk × Matrix widgets integration concept — not a ZenDiS or openDesk product.

What lands in room state. de.opendesk.jitsi (state key ""): version, domain (demo: in demo mode) and conference_id, derived from the room id and written on the room's first call. de.opendesk.jitsi.call (state key ""): version, active, provider, conference_id, started_by (Matrix id) and started_at; cleared when the last participant leaves. de.opendesk.jitsi.call (state key = your Matrix id): your display name and when you joined and were last seen, refreshed once a minute while you are in the call and cleared when you leave; a call nobody has checked into for 2.5 minutes counts as ended. Room state is never encrypted, even in an encrypted room, and is replicated to every server in the room. No tokens, no media and no chat content are stored. Call notes (de.opendesk.jitsi.note) and the summary posted after the call (duration, participants, link to the notes) are timeline messages, encrypted in an encrypted room. The only other state the widget may write is m.room.power_levels, and only when a room admin clicks "Für Mitglieder freigeben": it lowers the level for de.opendesk.jitsi.call to the members' default and changes nothing else.

Access. In gateway mode the widget asks your client for an OpenID token (your client may ask you to confirm sharing your identity). The gateway checks that you are a joined member of the room and only then issues a JWT whose room claim is this room's conference, so a guessed conference name gets nobody in. Moderator rights in the call follow the room's power levels. The public meet.jit.si service is never used, not even as a fallback.

Swappable provider. Calls go through a provider interface, as the integration concept requires. A running Element Call (MatrixRTC) session in the room is shown with its participants; with #elementcall=https://… (an own instance, never call.element.io) Element Call is offered as the alternative provider and opens in a new tab.

Add to a room

Paste this into any room you may configure — Element and most clients understand /addwidget:

/addwidget https://marcade.store/apps/de.minagawa.opendesk.sofort-call/0.1.0/

Works without a server as a simulated call. Optional: add `#gateway=https://…` (an opendesk-widget-gateway with Jitsi token auth) for real, members-only Jitsi calls; the client must grant camera, microphone and display-capture to the widget frame. Optional: `#elementcall=https://…` offers an own Element Call instance as alternative provider.

Rooms should pin the versioned URL above. https://marcade.store/apps/de.minagawa.opendesk.sofort-call/latest/ always points at the newest release.

Name and icon in Element

/addwidget can carry only the URL: Element lists the app as “Custom” without an icon. Add the Marcade Store once per room and it gives every Marcade app pasted in there its name and icon, and tells you when an update is out.

/addwidget https://marcade.store/apps/de.minagawa.marcade-store/0.1.4/

Permissions

Capabilities this widget may request. The Marcade Player asks for your consent before granting any of them.

What's new in 0.1.0

First release: one-click call start, "Call läuft – beitreten" banner and presence from room state, stale-call timeout, demo mode, members-only Jitsi via the openDesk gateway (JWT), shared call notes and a summary after the call, Element Call (MatrixRTC) sessions and provider, moderator grant to share the banner, "Beitreten" banner 5 min before a linked room-calendar appointment (OX), German/English, light/dark.

Information

Version
0.1.0
Section
Demo — Technology demonstrations built by Marcade to show what a widget can do. Not for real use — nothing is submitted anywhere.
License
Apache-2.0
Author
Yan Minagawa
State event types
de.opendesk.jitsi, de.opendesk.jitsi.call, de.opendesk.calendar, m.room.power_levels, m.room.create, org.matrix.msc3401.call.member
Encrypted rooms
Supported
Widget ID
de.minagawa.opendesk.sofort-call