Bindeleddet i det digitale sundhedsvæsen

Søgning

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.

Model som viser sammenhængen i mellem Conferencing Nodes og 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.

Model som viser sammenhængen i mellem Conferencing Nodes og deltagere, når der er mere end 2 deltagere.

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.

Scrollable Text Window
var rtc = new PexRTC() $(&#8220;#splashscreen&#8221;).hide() //Default hide splashscreen DIV rtc.onSplashScreen = function (properties) { if (properties === undefined) { $(&#8220;#splashscreen&#8221;).hide() $(&#8220;#videoview&#8221;).show() } else { $(&#8220;#splashscreen&#8221;).css(&#8220;background-image&#8221;, &#8220;url(&#8221; + properties.background + &#8220;)&#8221;); $(&#8220;#splashscreen p&#8221;).text(properties.text); $(&#8220;#splashscreen&#8221;).show() $(&#8220;#videoview&#8221;).hide() } }

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

Portrætfoto af Jesper Søderberg Knudsen

Jesper Søderberg Knudsen

Konsulent

Systemforvaltning