VDX
PexRTC Direct Media
Vejledning til understøtning af Direct Media (end-to-end encrypted calls) i PexRTC
Indledning
Pexips funktion for Direct Media muliggør punkt-til-punkt-krypterede opkald. Når det aktiveres i en VMR, giver det mulighed for u-transkodet og krypteret punkt-til-punkt-opkald mellem to WebRTC-baserede deltagere.
Den samme VMR kan stadig bruges til at afholde konferencer med mere end to deltagere og med forskellige endepunkter og opkaldsprotokoller som SIP og H.323. Dog vil VMR automatisk vende tilbage til Pexip Infinity standardadfærd i disse tilfælde, hvor hver konferencedeltagers medie transkodes via en konferenceserver.
Hvordan virker det?
I et Direct Media-opkald forhandler de to deltagere en krypteringsnøgle direkte med hinanden. Alle opkaldssignaler håndteres stadig af konferenceserveren. Kun medieopkaldet sendes direkte mellem deltagerne.
Kun to WebRTC-deltagere (typisk ved hjælp af Connect-apps) kan deltage i et Direct Media-opkald.
Hvis yderligere deltagere deltager i konferencen (ved hjælp af en hvilken som helst opkaldsprotokol som f.eks. WebRTC eller SIP), eskaleres opkaldet til et standardiseret, transkodet opkald, hvor medierne sendes via konferenceservere. Det er således ikke længere et Direct Media-opkald.
Opmærksomhedspunkter
- Hvis den første person, der deltager i et Direct Media-aktiveret møde, er en WebRTC-deltager, vil de straks fremgå som en Direct Media-deltager og får ikke den fulde samling af tema-baserede startskærme og lydmeddelelser, som man normalt får, når man deltager i et standard transkodet opkald. I stedet ser de en “Velkommen” eller “Venter på værten”-skærm, indtil den anden deltager kommer ind i mødet, og medieforbindelsen etableres.
- Hvis en Direct Media-konference eskaleres til et transkodet opkald:
- I konferencehistorikken vises de oprindelige deltagere som er overført til et nyt opkald, og der oprettes nye deltagelseshistorikoptegnelser for det nye opkald.
- Hvis opkaldet deeskalerer tilbage til to WebRTC-deltagere, bliver det igen et Direct Media-opkald (med nye deltagelseshistorikoptegnelser igen).
- Præsentation/skærmdeling og chat understøttes (via Direct Media-forbindelsen). 4k præsentationsdeling understøttes under forbehold for båndbredde-/browserbegrænsninger (bemærk, at på Chrome- og Edge-browsere skal brugeren, der deler, have deres browser aktiv på en 4k-skærm for at opnå fuld udgående opløsning).
- Alle standardgodkendelsesmetoder til at deltage i VMR understøttes.
- Hvis en VMR også er konfigureret med en Automatisk Opkaldt Deltager, vil VMR altid bruge transkodet opkald.
Håndtering i WebRTC videoklient
Ved brug af Direct Media skal en webapp understøtte denne funktion, ellers vises der blot en tom skærm, indtil begge deltagere er inde i mødet. Dette skyldes, at der ved Direct Media-opkald ikke er tilslutning til transkodning i Pexip – og derfor bliver baggrundsbilleder i møderumstemaet ikke vist.
Pexip kalder denne funktion for en ”splashscreen”. For at få vist billederne i splashscreen, skal webappen selv hente og vise disse billeder for deltagerne. Dette gøres ved at anvende onSplashScreen event fra PexRTC JavaScript client API eller ved at lave kald til /splash screen via Pexip client REST API.
PexRTC JavaScript client API eksempel
Dette er et generisk eksempel for brug af PexRTC JavaScript client API.
Der skal oprettes et skjult lag, hvor billederne kan vises, som er samme størrelse som videovinduet og ligger øverst, og der oprettes et paragraf-lag inde i dette, hvor teksten fra temaet kan vises.
<div id="splashscreen"><p></p></div>
Dernæst tilføjes logikken til at håndterer eventet. I dette eksempel er ”videoview” laget, hvor videostream fra mødet vises, og ”splashscreen” er laget, hvor billederne til Direct Media vises.
Hvis der som i dette eksempel modtages en tom properties fra eventet, så skjules splashscreen, og videoview vises. Men der modtages properties med indhold, så hentes billedet og teksten fra properties og de vises i splashscreen laget. Denne logik vil automatisk opdatere UI alt efter, om der er behov for at vise splashscreen eller ej.
Pexip client REST API opbygning
Dette er et generisk eksempel for opbygning af kald via Pexip client REST API.
Ligesom i PexRTC eksemplet, skal der opbygges et lag, som kan vise splashscreen for deltagerne.
Når mødet starter, anbefales det, at man henter temapakkens metaoplysninger og gemmer i webappens session til senere brug. Metaoplysningerne indeholder bl.a. filnavnene på de billeder, der skal hentes, tekst samt evt. farver i temapakken.
For at hente metaoplysningsobjektet, kalder man GET /api/client/v2/conferences/<conference_alias>/theme
Dernæst bør man registrere et server sent-event for ”splash_screen”, så man automatisk får notifikation, når der er en splashscreen tilgængelig. Eventet indeholder bl.a. en “screen_key”-parameter, som matcher et af elementerne i temapakkens metaoplysninger. Derved kan man få den pågældende baggrundsfil og hente den til visning for brugeren.
Billederne kan hentes enten via REST-kald med token header, hvor man får hele blob-filen:
GET /api/client/v2/conferences/<conference_alias>/theme/background.jpg
Eller via URL med token parameter, hvor man linker til filen direkte på serveren:
https://rooms.vconf.dk/webapp/api/client/v2/conferences/<conference_alias>/theme/background.jpg?token=<token_id>
Aktivering af Direct Media i VDX Management
For at kunne benytte Direct Media i VDX skal dette aktiveres på møderum i VDX Management først.
Indstillingen ligger i den Planlægningsskabelon, som benyttes til at oprette møderummene i organisationen.
Gå I VDX Management ind i menuen ”Booking – Planlægningsskabeloner” og vælg din skabelon fra listen. Nederst i skabelonen findes ”Benyt Direct Media”, som skal vinges af og gemmes skabelonen.
Nye møder vil herefter have Direct Media aktiveret.
Kontaktperson
Jesper Søderberg Knudsen
Konsulent
Systemforvaltning