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

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

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
2.0.00latest

Version History

VersionDownloads (Last 7 Days)Published
2.0.00
1.4.10
1.4.00
1.3.10
1.3.00
1.2.51
1.2.40
1.2.30
1.2.20
1.2.11
1.2.00
1.1.10
1.1.00
1.0.10
0.11.10
0.11.01
0.10.10
0.10.00
0.9.00
0.8.00
0.7.00
0.6.00
0.5.30
0.5.20
0.5.11
0.5.00
0.4.00
0.3.00
0.2.21

Package Sidebar

Install

npm i @viewar/call

Weekly Downloads

5

Version

2.0.0

License

UNLICENSED

Unpacked Size

161 kB

Total Files

31

Last publish

Collaborators

  • mbrviewar
  • nedosekin_viewar
  • karl_hofer_1234
  • meixnermarkus