Naysayers Promote Misery

    TypeScript icon, indicating that this package has built-in type declarations

    1.2.4 • Public • Published

    ViewAR Call

    This is ViewAR's call service. To use this package you need to have the ViewAR API installed (

    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 or our website at


    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{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 =>    // 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();


    npm i @viewar/call

    DownloadsWeekly Downloads






    Unpacked Size

    160 kB

    Total Files


    Last publish


    • karl_hofer_1234
    • meixnermarkus
    • nikgraf
    • richardp7
    • ewajankowska
    • ak_viewar
    • doubleu23
    • jauntz