@viewar/call
v2.0.0
Published
ViewAR Call
Downloads
42
Readme
ViewAR Call
This is ViewAR's call service. To use this package you need to have the ViewAR API installed (https://www.npmjs.com/package/viewar-api).
The purpose of this service is to set up a connection between several clients and a server and to handle the communication (call, hang up,...) between them. The events are based on rxjs observables. If to users agree on a call, the called user's camera picture is shared with the caller.
For more information visit our developer portal at developer.viewar.com or our website at www.viewar.com.
Usage
Initialize the call service:
import viewarApi from 'viewar-api';
import { createCallClient } from '@viewar/call';
await viewarApi.init({appId: 'com.viewar.sdk'});
const callClient = createCallClient(viewarApi, {
host: 'ws://127.0.0.1:8080' // Sample server URL.
});
To connect to the given server:
await callClient.connect();
The call service is build around a server which has several sessions (also called rooms). The clients can call each other only if they are within the same session. To join a session use the following code (a new session will be created if not existing):
await callClient.join({
sessionId: 'TestSession',
password: '1234' // Optional if the server requires a password.
userData: {} // App specific user data.
})
A user can call another user within the same session.
await callClient.call({id: 'Client1'});
callClient.acceptedCall.subscribe(function() {
console.log('User accepted call.')
});
// Wait for user to accept the call
await new Promise(function(resolve) {
callClient.acceptedCall.subscribe(resolve);
}
A called user needs to accept an incoming call:
callClient.incomingCall.subscribe(function() {
callClient.answerCall({
syncScene: false, // Set to true to sync viewarApi.sceneManager.scene's state between the clients.
data: {}, // App specific data.
});
});
Get a list of all available clients:
callClient.clients.filter(client => client.data.available) // The available flag will be automatically set.
You can also subscribe to changes of clients available:
callClient.clientsUpdate.subscribe(function() {
// Do something.
});
To leave a session:
await callClient.leave();