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
andpublish/skylink.complete.min.js
files, the AdapterJS version seems to be0.14.0
which is incorrect. Please use0.6.19
version release to rectify that.
Dependencies
CDN links (gzipped)
- Minified library:
//cdn.temasys.io/skylink/skylinkjs/0.6.18/skylink.min.js
- Debug library:
//cdn.temasys.io/skylink/skylinkjs/0.6.18/skylink.debug.js
- Minified with all dependencies:
//cdn.temasys.io/skylink/skylinkjs/0.6.18/skylink.complete.min.js
- Debug with all dependencies:
//cdn.temasys.io/skylink/skylinkjs/0.6.18/skylink.complete.js
API Documentation
http://cdn.temasys.io/skylink/skylinkjs/0.6.18/doc/classes/Skylink.html
NPM Installation
npm install git://github.com/Temasys/SkylinkJS#0.6.18
Bug-fixes
Room
- Fixes for
roomLock
event not be triggering for User when User invokeslockRoom()
andunlockRoom()
method. - Fixes for
options.sdpSettings.connection
when one of the parameters (audio
,video
ordata
) set asfalse
injoinRoom()
method should reject the session description m= lines correctly by setting the port to0
. - Fixes for
refreshConnection()
for MCU enabled Peer connections (whenoptions.mcuUseRenegoRestart
ininit()
method is set tofalse
) overriding the originaloptions
in thejoinRoom()
method.
Socket
- Fixes for
userInfo.config
being sent to Peers in SM protocol0.1.2.3
messages. - Fixes to ensure that User is kicked out of the Room when receiving connection ended (bye) messages for self.
Transfer
- 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 theRTCDataChannel.binaryType
interface instead of just merely detecting the received chunk type fordataTransferState
,incomingDataRequest
andincomingData
events.
Stream
- Fixes for
options.audio.echoCancellation
ingetUserMedia()
method andenableAudio.echoCancellation
inshareScreen()
method being documented by default asfalse
when by w3c specs, it should betrue
. - Fixes for
enableAudio.stereo
inshareScreen()
being set astrue
by default when it is documented asfalse
by default. - Fixes for
enableAudio
inshareScreen()
being set astrue
by default when it is documented asfalse
by default.
Peer
- 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.
Peer
- Fixes for MCU renegotiation when it's released.
- Fixes to ensure that
peerInfo.settings.audio
andpeerInfo.settings.video
is returned asfalse
whenoptions.sdpSettings.connection
(audio
orvideo
) is set asfalse
in thejoinRoom()
method.
Improvements
Room
- Moved
options.publishOnly.parentId
injoinRoom()
method tooptions.parentId
so that regardless ofoptions.publishOnly
flag, the child Peer can still be linked to the parent Peer.options.publishOnly.parentId
can be used butoptions.parentId
value will override it when provided. - Allow
off()
to turn off all events subscription if no parameters is provided.
Socket
- Improved 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.
Transfers
- 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
andoptions.videoCodec
in theinit()
method. handshakeProgress
should triggerERROR
state
when Peer connection fails to create.- Added
peerInfo.settings.data
that determines if Peer has any available and active / opened Datachannels to send P2P messages to or start data transfers with. - Added
stats.video.sending.qpSum
,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
andstats.selectedCandidate.local.turnMediaTransport
ingetConnectionStatusStateChange
event.
Stream
- Prevent configuration of
options.audioCodec
andoptions.videoCodec
option ininit()
method when it does not exists in theAUDIO_CODEC
andVIDEO_CODEC
constant enums. - Deprecate
options.audio.stereo
,options.audio.usedtx
,options.audio.maxplaybackrate
andoptions.audio.useinbandfec
ingetUserMedia()
method, andenableAudio.stereo
,enableAudio.usedtx
,enableAudio.maxplaybackrate
andenableAudio.useinbandfec
inshareScreen()
method. Useoptions.codecParams.audio.opus
settings instead in theinit()
method.
New Features
Room
- Added
options.socketServer
andoptions.iceServer
options to configure the custom Temasys Skylink Signaling server and Temasys Skylink TURN server for debugging purposes ONLY in theinit()
method.
Peer
- 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'speerInfo.priorityWeight
levels for debugging purposes ONLY in theinit()
method. - Added
PRIORITY_WEIGHT_SCHEME
constant that is an enum tooptions.priorityWeightScheme
in theinit()
method. - Added
options.peerConnection
injoinRoom()
method for debugging purposes ONLY. - Added
BUNDLE_POLICY
constant that is an enum tooptions.bundlePolicy
in thejoinRoom()
method. - Added
RTCP_MUX_POLICY
constant that is an enum tooptions.rtcpMuxPolicy
in thejoinRoom()
method. - Added
PEER_CERTIFICATE
constant that is an enum tooptions.certificate
in thejoinRoom()
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 thejoinRoom()
method. This aligns with theoptions.disableComfortNoiseCodec
and theoptions.codecParams.audio.opus.usedtx
flags in theinit()
method, where VAD helps to detect any active speech to prevent sending any audio data ifusedtx
is enabled. Theoptions.disableComfortNoiseCodec
helps to add a smoother silence to prevent huge spikes of changes in voice db. - Added
options
torefreshConnection()
method to allow configuration of bandwidth. - Added
options.codecParams
to configure more codec parameters for H264, VP8, VP9, OPUS in theinit()
method. Some are only for debugging purposes ONLY.
Stream
- Added
PCMA
(G711a),PCMU
(G711u) andILBC
(iLBC) audio codecs options toAUDIO_CODEC
constant enum.
Datachannel
- Added
getPeersDatachannels()
to get the list of currently connected Datachannel connections.
Transfers
- 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 forstartStreamingData()
,streamData()
,stopStreamingData()
methods. - Added (beta)
incomingDataStream
event forstreamData()
method. - Added (beta)
incomingDataStreamStarted
event forstartStreamingData()
method. - Added (beta)
incomingDataStreamStopped
event forstopStreamingData()
method.
Demo & Documentation
- Added
demo/data-streaming
forstartStreamingData()
,streamData()
andstopStreamingData()
methods.
(Experimental) New Features
Peer
- Added experimental
options.autoBandwidthAdjustment
flag to allow auto adjustment of bandwidth that might help 3G / 4G networks.