@viewar/call
TypeScript icon, indicating that this package has built-in type declarations

1.4.1 • Public • Published

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();

Package Sidebar

Install

npm i @viewar/call

Weekly Downloads

9

Version

1.4.1

License

UNLICENSED

Unpacked Size

161 kB

Total Files

31

Last publish

Collaborators

  • mbrviewar
  • nedosekin_viewar
  • karl_hofer_1234
  • da_viewar
  • meixnermarkus