Jitsi-call 01 — uitnodiging, providerprofiel en veilige preflight #2533

Closed
opened 2026-10-22 20:09:10 +00:00 by brenno · 0 comments
Owner

Bovenliggend epic: #2532
Afhankelijk van: bestaande F1–F3.4a-basis (#1104, #1125, #1128, #1132, #1138)

Gebruikersdoel

Ik kan een Jitsi-link plakken/openen en zie vóór deelnemen server, identiteit, mediatoestemming, E2EE-feit en de stappen om ontbrekende randvoorwaarden te herstellen.

Feitelijke basis

MeetingProvider.match/preflight/join en MeetingPreflight bestaan, maar lib/meetings/meeting_link_resolver.dart en meeting_provider_profile.dart uit de oude ontwerplijst bestaan op de huidige schijf nog niet. Er is geen productie-adapter of joinactie. De eerdere IFrame-richting #974 is gesloten; dit issue bouwt de native route.

Werk

  • Implementeer herkenning van ondersteunde Jitsi-uitnodigingen als pure lokale stap; strip fragmenten/trackingparameters vóór opslag en gebruik. Exacte origin/profielkeuze voor onbekende of zelf gehoste deployments; suffix-veilige bekende hosts en geen netwerkprobe tijdens typen of herkenning.
  • Laat de gebruiker de provider-origin, identiteit, camera/mic standaard uit, vereiste browser-/OS-permissies en bekende versus onbekende media-E2EE-status zien. Preflight na bewuste actie valideert bereikbaarheid, ondersteund meetingtype en media-stack zonder opname te starten.
  • Ontdek de MUC-component via serverinformatie (XEP-0030) in plaats van conference.<domain> aan te nemen. Bereid unieke anonieme nicks voor; twee OciDeck-clients mogen geen 409-conflict door een vaste naam krijgen.
  • Configureer vertrouwensgrenzen voor signalling en door de sessie aangewezen TURN/SFU; geen URL-credentials of secrets in log, document of deeplink. Browser-CSP/CORS/WebSocket en certificaatfouten krijgen een concrete diagnose.

Acceptatie

  • Tests dekken bekende, zelf gehoste, onbekende en gemanipuleerde links; geen netwerkverkeer vóór de expliciete preflight.
  • Echte preflight tegen een gepinde testdeployment toont de juiste origin, MUC-component, identiteit en toegankelijke/verboden reden zonder media te openen.
  • Een ongeldige origin, geweigerd certificaat, onbruikbaar meetingtype en ontbrekende permissie blijven veilig en herstelbaar; de UI doet geen valse joinbelofte.

Code/ontwerp

lib/meetings/meeting_provider.dart, nieuwe Jitsi-provider/profiel/resolver, lib/xmpp/xmpp_session.dart; docs/design/NATIVE_CALLS.md §7.1.6/§8.

**Bovenliggend epic:** [#2532](https://pawprint.vigilis.online/LibreKAT/Ocideck/issues/2532) **Afhankelijk van:** bestaande F1–F3.4a-basis (#1104, #1125, #1128, #1132, #1138) ## Gebruikersdoel Ik kan een Jitsi-link plakken/openen en zie vóór deelnemen server, identiteit, mediatoestemming, E2EE-feit en de stappen om ontbrekende randvoorwaarden te herstellen. ## Feitelijke basis `MeetingProvider.match/preflight/join` en `MeetingPreflight` bestaan, maar `lib/meetings/meeting_link_resolver.dart` en `meeting_provider_profile.dart` uit de oude ontwerplijst bestaan op de huidige schijf nog niet. Er is geen productie-adapter of joinactie. De eerdere IFrame-richting #974 is gesloten; dit issue bouwt de native route. ## Werk - Implementeer herkenning van ondersteunde Jitsi-uitnodigingen als pure lokale stap; strip fragmenten/trackingparameters vóór opslag en gebruik. Exacte origin/profielkeuze voor onbekende of zelf gehoste deployments; suffix-veilige bekende hosts en geen netwerkprobe tijdens typen of herkenning. - Laat de gebruiker de provider-origin, identiteit, camera/mic standaard uit, vereiste browser-/OS-permissies en bekende versus onbekende media-E2EE-status zien. Preflight na bewuste actie valideert bereikbaarheid, ondersteund meetingtype en media-stack zonder opname te starten. - Ontdek de MUC-component via serverinformatie (XEP-0030) in plaats van `conference.<domain>` aan te nemen. Bereid unieke anonieme nicks voor; twee OciDeck-clients mogen geen 409-conflict door een vaste naam krijgen. - Configureer vertrouwensgrenzen voor signalling en door de sessie aangewezen TURN/SFU; geen URL-credentials of secrets in log, document of deeplink. Browser-CSP/CORS/WebSocket en certificaatfouten krijgen een concrete diagnose. ## Acceptatie - [ ] Tests dekken bekende, zelf gehoste, onbekende en gemanipuleerde links; geen netwerkverkeer vóór de expliciete preflight. - [ ] Echte preflight tegen een gepinde testdeployment toont de juiste origin, MUC-component, identiteit en toegankelijke/verboden reden zonder media te openen. - [ ] Een ongeldige origin, geweigerd certificaat, onbruikbaar meetingtype en ontbrekende permissie blijven veilig en herstelbaar; de UI doet geen valse joinbelofte. ## Code/ontwerp `lib/meetings/meeting_provider.dart`, nieuwe Jitsi-provider/profiel/resolver, `lib/xmpp/xmpp_session.dart`; `docs/design/NATIVE_CALLS.md` §7.1.6/§8.
brenno 2026-10-24 17:44:40 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2533
No description provided.