1.2.0 • Published 7 months ago
@vonage/js-sframe v1.2.0
@vonage/js-sframe
Provide encryption/decryption features compatible with Vonage sframe-core native package.
Installation
npm i @vonage/js-sframe
Example
Encryption
import {
AudioCodec,
Client,
KidType,
KeyContentType,
VideoCodec
} from "@vonage/js-sframe";
async function encryptConnection(
kid:KidType,
key:KeyContentType,
connection: RTCPeerConnection
) {
const [sender] = connection.getSenders();
const client = await Client.create();
await client.setCodecs(AudioCodec.OPUS, VideoCodec.VP8); // Setting codecs is mandatory for Safari.
await client.setReceiverEncryptionKey(kid, key);
await client.encrypt(kid, sender);
}
Decryption
import {
AudioCodec,
Client,
KidType,
KeyContentType,
VideoCodec
} from "@vonage/js-sframe";
async function decrypt(
kid:KidType,
key:KeyContentType,
connection: RTCPeerConnection
) {
const [receiver] = connection.getReceivers();
const client = await Client.create();
await client.setCodecs(AudioCodec.OPUS, VideoCodec.VP8); // Setting codecs is mandatory for Safari.
await client.setReceiverEncryptionKey(kid, key);
await client.decrypt(kid, receiver);
}
Note about safari
Media codecs used can not be automatically known on Safari (WebKit). Therefore, if you want to support Safari (WebKit), you need to explicitly set them. This could be achieve via "client.setCodecs" method.
Documentation
https://vonage.github.io/client-media-processing-docs/js-sframe/1.1.0/