server-communication/api-server/defaultOptions.js

import {
  TURN_TRANSPORT,
  AUDIO_CODEC,
  VIDEO_CODEC,
} from '../../constants';

/**
 * @namespace initOptions
 * @private
 * @module skylink/defaultOptions
 */
const defaultOptions = {
  /*
   * @param {String} options.appKey The App Key.
   * <small>By default, <code>init()</code> uses [HTTP CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)
   * authentication. For credentials based authentication, see the <code>options.credentials</code> configuration
   * below. You can know more about the <a href="http://support.temasys.io/support/solutions/articles/
   * 12000002712-authenticating-your-application-key-to-start-a-connection">in the authentication methods article here</a>
   * for more details on the various authentication methods.</small>
   * <small>If you are using the Persistent Room feature for scheduled meetings, you will require to
   * use the credential based authentication. See the <a href="http://support.temasys.io/support
   * /solutions/articles/12000002811-using-the-persistent-room-feature-to-configure-meetings">Persistent Room article here
   * </a> for more information.</small>
   */
  defaultRoom: new Date().valueOf(),
  appKey: null,
  roomServer: '//api.temasys.io',
  enableDataChannel: true,
  enableSTUNServer: true,
  enableTURNServer: true,
  socketServerPath: null,
  enableStatsGathering: true,
  audioFallback: true,
  socketTimeout: 7000,
  apiTimeout: 4000,
  forceTURNSSL: false,
  forceTURN: false,
  forceSSL: true,
  usePublicSTUN: false,
  disableVideoFecCodecs: false,
  disableComfortNoiseCodec: false,
  disableREMB: false,
  throttleShouldThrowError: false,
  mcuUseRenegoRestart: true,
  useEdgeWebRTC: false,
  enableSimultaneousTransfers: true,
  TURNServerTransport: TURN_TRANSPORT.ANY,
  credentials: null,
  filterCandidatesType: {
    host: false,
    srflx: false,
    relay: false,
  },
  throttleIntervals: {
    shareScreen: 10000,
    refreshConnection: 5000,
    getUserMedia: 0,
  },
  iceServer: null,
  socketServer: null,
  audioCodec: AUDIO_CODEC.AUTO,
  videoCodec: VIDEO_CODEC.AUTO,
  codecParams: {
    audio: {
      opus: {
        stereo: null,
        'sprop-stereo': null,
        usedtx: null,
        useinbandfec: null,
        maxplaybackrate: null,
        minptime: null,
      },
    },
    video: {
      h264: {
        profileLevelId: null,
        levelAsymmetryAllowed: null,
        packetizationMode: null,
      },
      vp8: {
        maxFs: null,
        maxFr: null,
      },
      vp9: {
        maxFs: null,
        maxFr: null,
      },
    },
  },
  beSilentOnStatsLogs: false,
};

/**
 * Default values for options available to initialise SkylinkJS.
 */
export default defaultOptions;