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.


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://'   // 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) {

A called user needs to accept an incoming call:

callClient.incomingCall.subscribe(function() {
    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


npm i @viewar/call

Weekly Downloads






Unpacked Size

161 kB

Total Files


Last publish


  • mbrviewar
  • nedosekin_viewar
  • karl_hofer_1234
  • da_viewar
  • meixnermarkus