Naysayers Promote Misery

    @viewar/call
    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 (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();

    Install

    npm i @viewar/call

    DownloadsWeekly Downloads

    5

    Version

    1.2.4

    License

    UNLICENSED

    Unpacked Size

    160 kB

    Total Files

    29

    Last publish

    Collaborators

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