Link to Github:  0.6.18: Beta Edge connections support

It has been noted that it seems like in this tagged release version for publish/skylink.complete.js and publish/skylink.complete.min.js files, the AdapterJS version seems to be 0.14.0 which is incorrect. Please use 0.6.19 version release to rectify that.


CDN links (gzipped)
  • Minified library: //
  • Debug library: //
  • Minified with all dependencies: //
  • Debug with all dependencies: //

API Documentation

NPM Installation

  • npm install git://



  • Fixes for roomLock event not be triggering for User when User invokes lockRoom() and unlockRoom() method.
  • Fixes for options.sdpSettings.connection when one of the parameters (audio, video or data) set as false in joinRoom() method should reject the session description m= lines correctly by setting the port to 0.
  • Fixes for refreshConnection() for MCU enabled Peer connections (when options.mcuUseRenegoRestart in init() method is set to false) overriding the original options in the joinRoom() method.

  • Fixes for userInfo.config being sent to Peers in SM protocol messages.
  • Fixes to ensure that User is kicked out of the Room when receiving connection ended (bye) messages for self.

  • Fixes for IE binary data transfers throwing "InvalidStateError" error when receiving binary data transfers from Peers.
  • Fixes to ensure that transferInfo.chunkType is correctly referencing the RTCDataChannel.binaryType interface instead of just merely detecting the received chunk type for dataTransferState, incomingDataRequest and incomingData events.
  • Fixes for in getUserMedia() method and enableAudio.echoCancellation in shareScreen() method being documented by default as false when by w3c specs, it should be true.
  • Fixes for enableAudio.stereo in shareScreen() being set as true by default when it is documented as false by default.
  • Fixes for enableAudio in shareScreen() being set as true by default when it is documented as false by default.

  • Fixes for "Candidate missing values for both sdpMid and sdpMLineIndex" error when using AdapterJS version 0.13.4.
  • Fixes and workaround changes for failure to set remote answer from IE / Safari plugins (lower than 0.8.888 version) in Chrome 57 browsers.

Demo & Documentation
  • Fixes for demo/config.js settings not working in /demo/privileged/unauto-priv/ and /demo/privileged/unauto-unpriv/ demos.

  • Fixes for MCU renegotiation when it's released.
  • Fixes to ensure that and is returned as false when options.sdpSettings.connection (audio or video) is set as false in the joinRoom() method.



  • Moved options.publishOnly.parentId in joinRoom() method to options.parentId so that regardless of options.publishOnly flag, the child Peer can still be linked to the parent Peer. options.publishOnly.parentId can be used but options.parentId value will override it when provided.
  • Allow off() to turn off all events subscription if no parameters is provided.SocketImproved Websocket / Polling socket reconnections.

Demo & Documentation
  • Added buttons in the demo/index.html to access the /demo/privileged/unauto-priv/, /demo/privileged/unauto-unpriv/, /demo/privileged/auto-unpriv/ and /demo/privileged/auto-priv/ demos.

  • Added changes to allow file transfers downloads in IE and documentation for images and pdf only for Safari.
  • Peer
  • Allow configuration of the sampling rate and channels when selecting the preferred audio and video codec in the options.audioCodec and options.videoCodec in the init() method.
  • handshakeProgress should trigger ERROR state when Peer connection fails to create.
  • Added that determines if Peer has any available and active / opened Datachannels to send P2P messages to or start data transfers with.
  • Added, stats.selectedCandidate.writable, stats.selectedCandidate.readable, stats.selectedCandidate.rtt, stats.selectedCandidate.totalRtt, stats.selectedCandidate.requests, stats.selectedCandidate.responses, stats.selectedCandidate.consentRequests, stats.selectedCandidate.consentResponses, stats.certificate.local.fingerprint and stats.selectedCandidate.local.turnMediaTransport in getConnectionStatusStateChangeevent.

  • Prevent configuration of options.audioCodec and options.videoCodec option in init()method when it does not exists in the AUDIO_CODEC and VIDEO_CODEC constant enums.
  • Deprecate,, in getUserMedia() method, and enableAudio.stereo, enableAudio.usedtx, enableAudio.maxplaybackrate and enableAudio.useinbandfec in shareScreen() method. Use settings instead in the init() method.

New Features


  • Added options.socketServer and options.iceServer options to configure the custom Temasys Skylink Signaling server and Temasys Skylink TURN server for debugging purposes ONLY in the init() method.

  • Added Edge browser official support. If H264 codec is not available, audio only connections will happen with other browsers.
  • Added options.priorityWeightScheme flag to allow configuration to enforce the Peer's peerInfo.priorityWeight levels for debugging purposes ONLY in the init() method.
  • Added PRIORITY_WEIGHT_SCHEME constant that is an enum to options.priorityWeightSchemein the init() method.
  • Added options.peerConnection in joinRoom() method for debugging purposes ONLY.
  • Added BUNDLE_POLICY constant that is an enum to options.bundlePolicy in the joinRoom()method.
  • Added RTCP_MUX_POLICY constant that is an enum to options.rtcpMuxPolicy in the joinRoom() method.
  • Added PEER_CERTIFICATE constant that is an enum to options.certificate in the joinRoom() method.
  • Added getPeersCustomConfig() method that allows developers to retrieve custom bandwidth configuration and the current Stream sent (for Peers that do not support renegotiation).
  • Added options. voiceActivityDetection flag to allow configuration to enable / disable VAD (voice activity detection) in the joinRoom() method. This aligns with the options.disableComfortNoiseCodec and the flags in the init() method, where VAD helps to detect any active speech to prevent sending any audio data if usedtx is enabled. The options.disableComfortNoiseCodec helps to add a smoother silence to prevent huge spikes of changes in voice db.Added options to refreshConnection() method to allow configuration of bandwidth.
  • Added options.codecParams to configure more codec parameters for H264, VP8, VP9, OPUS in the init() method. Some are only for debugging purposes ONLY.

  • Added PCMA (G711a), PCMU (G711u) and ILBC (iLBC) audio codecs options to AUDIO_CODECconstant enum.

  • Added getPeersDatachannels() to get the list of currently connected Datachannel connections.
  • Added (beta) getCurrentDataStreamsSession() method to retrieve the list of current data streaming session.
  • Added (beta) startStreamingData(), (beta) streamData() and (beta) stopStreamingData()method to allow Users to start and stop streaming data with Peers.
  • Added (beta) dataStreamState event for startStreamingData(), streamData(), stopStreamingData() methods.
  • Added (beta) incomingDataStream event for streamData() method.Added (beta) incomingDataStreamStarted event for startStreamingData() method.
  • Added (beta) incomingDataStreamStopped event for stopStreamingData() method.
Demo & Documentation
  • Added demo/data-streaming for startStreamingData(), streamData() and stopStreamingData() methods.

(Experimental) New Features


  • Added experimental options.autoBandwidthAdjustment flag to allow auto adjustment of bandwidth that might help 3G / 4G networks.