Global

Members

AdapterJS

AdapterJS provides polyfills and cross-browser mediaStreamHelpers for WebRTC.

Source:
See:

io

Socket.IO enables real-time, bidirectional and event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.

Source:
See:

Type Definitions

audioStats :Object

The Peer connection audio streaming statistics.

Properties:
Name Type Description
audioStats.sending JSON

The Peer connection sending audio streaming statistics.

Properties
Name Type Attributes Description
bytes number

The Peer connection current sending audio streaming bytes. Note that value is in bytes so you have to convert that to bits for displaying for an example kbps.

totalBytes number

The Peer connection total sending audio streaming bytes. Note that value is in bytes so you have to convert that to bits for displaying for an example kbps.

packets number

The Peer connection current sending audio streaming packets.

totalPackets number

The Peer connection total sending audio streaming packets.

ssrc number

The Peer connection sending audio streaming RTP packets SSRC.

roundTripTime number

The Peer connection sending audio streaming round-trip delay time.

jitter number

The Peer connection sending audio streaming RTP packets jitter in seconds.

retransmittedBytesSent number

The total number of bytes that were retransmitted for this SSRC, only including payload bytes. This is a subset of bytesSent.

retransmittedPacketsSent number

The total number of packets that were retransmitted for this SSRC. This is a subset of packetsSent.

codec JSON <optional>

The Peer connection sending audio streaming selected codec information. Defined as null if local session description is not available before parsing.

Properties
Name Type Attributes Description
name String

The Peer connection sending audio streaming selected codec name.

payloadType number

The Peer connection sending audio streaming selected codec payload type.

implementation String <optional>

The Peer connection sending audio streaming selected codec implementation. Defined as null if it's not available in original raw statistics.before parsing.

channels number <optional>

The Peer connection sending audio streaming selected codec channels (2 for stereo). Defined as null if it's not available in original raw statistics.before parsing, and this is usually present in statistics.audio property.

clockRate number <optional>

The Peer connection sending audio streaming selected codec media sampling rate. Defined as null if it's not available in original raw statistics.before parsing.

params String <optional>

The Peer connection sending audio streaming selected codec parameters. Defined as null if it's not available in original raw statistics.before parsing.

audioLevel number <optional>

The Peer connection audio level of the media source. Defined as null if it's not available in original raw statistics.before parsing.

totalSamplesDuration number <optional>

The Peer connection sending audio total duration in seconds. Defined as null if it's not available in original raw statistics.before parsing.

echoReturnLoss number <optional>

The Peer connection sending audio streaming echo return loss in db (decibels). Defined as null if it's not available in original raw statistics.before parsing.

echoReturnLossEnhancement number <optional>

The Peer connection sending audio streaming echo return loss enhancement db (decibels). Defined as null if it's not available in original raw statistics.before parsing.

audioStats.receiving JSON

The Peer connection receiving audio streaming statistics.

Properties
Name Type Attributes Description
bytes number

The Peer connection current sending audio streaming bytes. Note that value is in bytes so you have to convert that to bits for displaying for an example kbps.

totalBytes number

The Peer connection total sending audio streaming bytes. Note that value is in bytes so you have to convert that to bits for displaying for an example kbps.

packets number

The Peer connection current receiving audio streaming packets.

totalPackets number

The Peer connection total receiving audio streaming packets.

packetsLost number

The Peer connection current receiving audio streaming packets lost.

fractionLost number

The Peer connection current receiving audio streaming fraction packets lost.

totalPacketsLost number

The Peer connection total receiving audio streaming packets lost.

ssrc number

The Peer connection receiving audio streaming RTP packets SSRC.

jitter Number

The Peer connection receiving audio streaming RTP packets jitter in seconds. Defined as 0 if it's not present in original raw statistics before parsing.

totalSamplesReceived Number

The Peer connection total number of audio samples that have been received.

totalSamplesDuration number <optional>

The Peer connection receiving audio total duration in seconds. Defined as null if it's not available in original raw statistics before parsing.

codec JSON <optional>

The Peer connection receiving audio streaming selected codec information. Defined as null if remote session description is not available before parsing. Note that if the value is polyfilled, the value may not be accurate since the remote Peer can override the selected codec. The value is derived from the remote session description.

Properties
Name Type Attributes Description
name String

The Peer connection receiving audio streaming selected codec name.

payloadType Number

The Peer connection receiving audio streaming selected codec payload type.

implementation String <optional>

The Peer connection receiving audio streaming selected codec implementation. Defined as null if it's not available in original raw statistics.before parsing.

channels Number <optional>

The Peer connection receiving audio streaming selected codec channels (2 for stereo). Defined as null if it's not available in original raw statistics.before parsing, and this is usually present in statistics.audio property.

clockRate Number <optional>

The Peer connection receiving audio streaming selected codec media sampling rate. Defined as null if it's not available in original raw statistics.before parsing.

params String <optional>

The Peer connection receiving audio streaming selected codec parameters. Defined as null if it's not available in original raw statistics.before parsing.

audioLevel Number <optional>

The Peer connection receiving audio streaming audio level. Defined as null if it's not available in original raw statistics.before parsing.

Source:

codecParams :Object

Note that some of these parameters are mainly used for experimental or debugging purposes. Toggling any of these feature may result in disruptions in connectivity.
Properties:
Name Type Attributes Description
video JSON <optional>

The video codecs parameters to configure.

Properties
Name Type Attributes Description
h264 JSON <optional>

The H264 video codec parameters to configure.

Properties
Name Type Attributes Description
profileLevelId String <optional>

Note that this parameter should only be used for debugging purposes only.
The H264 video codec base16 encoded string which indicates the H264 baseline, main, or the extended profiles. When not provided, the default browser configuration is used.

levelAsymmetryAllowed boolean <optional>

Note that this is an experimental parameter which may result in connectivity issues when toggled.
The flag if streaming H264 sending video data should be encoded at a different level from receiving video data from Peer encoding to User when Peer is the offerer. If Peer is the offerer instead of the User, the Peer's peerInfo.config.priorityWeight will be higher than User's peerInfo.config.priorityWeight. When not provided, the default browser configuration is used.

packetizationMode number <optional>

Note that this is an experimental parameter which may result in connectivity issues when enabled. It is advisable to turn off this feature off when receiving H264 decoders do not support the packetization mode, which may result in a blank receiving video stream.
The flag to enable H264 video codec packetization mode, which splits video frames that are larger for a RTP packet into RTP packet chunks. When not provided, the default browser configuration is used.

vp8 JSON <optional>

The VP8 video codec parameters to configure.

Properties
Name Type Attributes Description
maxFr number <optional>

Note that this parameter should only be used for debugging purposes only. Do not toggle this otherwise.
The maximum number of fps (frames per second) that the VP8 video codec decoder is capable of decoding when receiving encoded video data packets. When not provided, the default browser configuration is used.

maxFs number <optional>

Note that this parameter should only be used for debugging purposes only. Do not toggle this otherwise.
The maximum number of frame size macroblocks that the VP8 video codec decoder is capable of decoding when receiving encoded video data packets. The value has to have the width and height of the frame in macroblocks less than the value of parseInt(Math.sqrt(maxFs * 8)). E.g. If the value is 1200, it is capable of support 640x480 frame width and height, which heights up to 1552px (97 macroblocks value. When not provided, the default browser configuration is used.

vp9 JSON <optional>

The VP9 video codec parameters to configure.

Properties
Name Type Attributes Description
maxFr number <optional>

Note that this parameter should only be used for debugging purposes only. Do not toggle this otherwise.
The maximum number of fps (frames per second) that the VP9 video codec decoder is capable of decoding when receiving encoded video data packets. When not provided, the default browser configuration is used.

maxFs number <optional>

Note that this parameter should only be used for debugging purposes only. Do not toggle this otherwise.
The maximum number of frame size macroblocks that the VP9 video codec decoder is capable of decoding when receiving encoded video data packets. The value has to have the width and height of the frame in macroblocks less than the value of parseInt(Math.sqrt(maxFs * 8)). E.g. If the value is 1200, it is capable of support 640x480 frame width and height, which heights up to 1552px (97 macroblocks value. When not provided, the default browser configuration is used.

audio JSON <optional>

The audio codecs parameters to configure.

Properties
Name Type Attributes Description
opus JSON <optional>

Note that this is only applicable to OPUS audio codecs with a sampling rate of 48000 Hz (hertz).
The OPUS audio codec parameters to configure.

Properties
Name Type Attributes Description
stereo boolean <optional>

The flag if OPUS audio codec is able to decode or receive stereo packets. When not provided, the default browser configuration is used.

sprop-stereo boolean <optional>

The flag if OPUS audio codec is sending stereo packets. When not provided, the default browser configuration is used.

usedtx boolean <optional>

Note that this feature might not work depending on the browser support and implementation.
The flag if OPUS audio codec should enable DTX (Discontinuous Transmission) for sending encoded audio data. This might help to reduce bandwidth as it reduces the bitrate during silence or background noise, and goes hand-in-hand with the voiceActivityDetection flag in joinRoom() method. When not provided, the default browser configuration is used.

useinbandfec boolean <optional>

Note that this parameter should only be used for debugging purposes only.
The flag if OPUS audio codec has the capability to take advantage of the in-band FEC (Forward Error Correction) when sending encoded audio data. This helps to reduce the harm of packet loss by encoding information about the previous packet loss. When not provided, the default browser configuration is used.

maxplaybackrate number <optional>

Note that this parameter should only be used for debugging purposes only.
The OPUS audio codec maximum output sampling rate in Hz (hertz) that is is capable of receiving decoded audio data, to adjust to the hardware limitations and ensure that any sending audio data would not encode at a higher sampling rate specified by this. This value must be between 8000 to 48000. When not provided, the default browser configuration is used.

minptime number <optional>

Note that this parameter should only be used for debugging purposes only.
The OPUS audio codec receiving audio data decoder minimum length of time in milleseconds should be encapsulated in a single received encoded audio data packet. This value must be between 3 to 120 When not provided, the default browser configuration is used.

Source:

customSettings :Object

Properties:
Name Type Description
settings Object

The peer stream and data settings.

Properties
Name Type Description
data Boolean | JSON

The flag if peer has any data channel connections enabled. If isSelf value is true, this determines if user allows data channel connections, else if value is false, this determines if peer has any active data channel connections (where onDataChannelStateChangedEvent triggers state as OPEN and channelType as MESSAGING for peer) with peer.

audio Boolean | JSON

The peer stream audio settings. When defined as false, it means there is no audio being sent from peer. When defined as true, the settings.audio.stereo value is considered as false and the settings.audio.exactConstraints value is considered as false.

Properties
Name Type Attributes Description
stereo Boolean

The flag if stereo band is configured when encoding audio codec is OPUS for receiving audio data.

usedtx Boolean <optional>

Note that this feature might not work depending on the browser support and implementation. The flag if DTX (Discontinuous Transmission) is configured when encoding audio codec is OPUS for sending audio data. This might help to reduce bandwidth it reduces the bitrate during silence or background noise. When not defined, the default browser configuration is used.

useinbandfec Boolean <optional>

Note that this feature might not work depending on the browser support and implementation. The flag if capability to take advantage of in-band FEC (Forward Error Correction) is configured when encoding audio codec is OPUS for sending audio data. This might help to reduce the harm of packet loss by encoding information about the previous packet. When not defined, the default browser configuration is used.

maxplaybackrate Number <optional>

Note that this feature might not work depending on the browser support and implementation. The maximum output sampling rate rendered in Hertz (Hz) when encoding audio codec is OPUS for sending audio data. This value must be between 8000 to 48000. When not defined, the default browser configuration is used.

echoCancellation Boolean

The flag if echo cancellation is enabled for audio tracks.

optional Array <optional>

The peer stream navigator.getUserMedia() API audio: { optional [..] } property.

deviceId String <optional>

The peer stream audio track source id of the device used.

exactConstraints Boolean

The flag if peer stream audio track is sending exact requested values of settings.audio.deviceId when provided.

video Boolean | JSON

The peer stream video settings. When defined as false, it means there is no video being sent from peer. When defined as true, the settings.video.screenshare value is considered as false and the settings.video.exactConstraints value is considered as false.

Properties
Name Type Attributes Description
resolution JSON <optional>

The peer stream video resolution. [Rel: VIDEO_RESOLUTION]

Properties
Name Type Description
width Number | JSON

The peer stream video resolution width or video resolution width settings. When defined as a JSON Object, it is the user set resolution width settings with ("min" or "max" or "ideal" or "exact" etc configurations).

height Number | JSON

The peer stream video resolution height or video resolution height settings. When defined as a JSON Object, it is the user set resolution height settings with ("min" or "max" or "ideal" or "exact" etc configurations).

frameRate Number | JSON <optional>

The peer stream video frameRate per second (fps) or video frameRate settings. When defined as a JSON Object, it is the user set frameRate settings with ("min" or "max" or "ideal" or "exact" etc configurations).

screenshare Boolean

The flag if peer stream is a screensharing stream.

optional Array <optional>

The peer stream navigator.getUserMedia() API video: { optional [..] } property.

deviceId String <optional>

The peer stream video track source id of the device used.

exactConstraints Boolean

The flag if peer stream video track is sending exact requested values of settings.video.resolution, settings.video.frameRate and settings.video.deviceId when provided.

facingMode String | JSON <optional>

The peer stream video camera facing mode. When defined as a JSON Object, it is the user set facingMode settings with ("min" or "max" or "ideal" or "exact" etc configurations).

bandwidth Object

The maximum streaming bandwidth sent from peer.

Properties
Name Type Attributes Description
audio Number <optional>

The maximum audio streaming bandwidth sent from peer.

video Number <optional>

The maximum video streaming bandwidth sent from peer.

data Number <optional>

The maximum data streaming bandwidth sent from peer.

googleXBandwidth Object

Note that this feature might not work depending on the browser support and implementation, and its properties and values are only defined for user's end and cannot be viewed from peer's end (when isSelf value is false). The experimental google video streaming bandwidth sent to peers.

Properties
Name Type Attributes Description
min Number <optional>

The minimum experimental google video streaming bandwidth sent to peers.

max Number <optional>

The maximum experimental google video streaming bandwidth sent to peers.

mediaStatus Object

The peer streaming media status.

Properties
Name Type Description
audioMuted Boolean

The value of the audio status. If peer mediaStatus is -1, audio is not present in the stream. If peer mediaStatus is 1, audio is present in the stream and active (not muted). If peer mediaStatus is 0, audio is present in the stream and muted.

videoMuted Boolean

The value of the video status. If peer mediaStatus is -1, video is not present in the stream. If peer mediaStatus is 1, video is present in the stream and active (not muted). If peer mediaStatus is 0, video is present in the stream and muted.

Source:

dataChannelInfo :Object

Properties:
Name Type Description
channelName String

The data channel id.

channelProp String

The data channel property.

channelType String

The data channel type.

currentTransferId String

The data channel connection current progressing transfer session. Defined as null when there is currently no transfer session progressing on the data channel connection

currentStreamId String

The data channel connection current data streaming session id. Defined as null when there is currently no data streaming session on the data channel connection.

readyState String

The data channel connection readyState.

bufferedAmountLow String

The data channel buffered amount.

bufferedAmountLowThreshold String

The data channel buffered amount threshold.

Source:

GetUserMediaOptions :Object

The camera Stream configuration options.

Properties:
Name Type Attributes Default Description
options.useExactConstraints boolean <optional>
false

Note that by enabling this flag, exact values will be requested when retrieving camera Stream, but it does not prevent constraints related errors. By default when not enabled, expected mandatory maximum values (or optional values for source ID) will requested to prevent constraints related errors, with an exception for options.video.frameRate option in Safari and IE (any plugin-enabled) browsers, where the expected maximum value will not be requested due to the lack of support. The flag if getUserMedia() should request for camera Stream to match exact requested values of options.audio.deviceId and options.video.deviceId, options.video.resolution and options.video.frameRate when provided.

options.audio boolean | JSON <optional>
false

Note that the current Edge browser implementation does not support the options.audio.optional, options.audio.deviceId, options.audio.echoCancellation. The audio configuration options.

Properties
Name Type Attributes Default Description
stereo boolean <optional>
false

Deprecation Warning! This property has been deprecated. Configure this with the options.codecParams.audio.opus.stereo and the options.codecParams.audio.opus["sprop-stereo"] parameter in the initOptions instead. If the options.codecParams.audio.opus.stereo or options.codecParams.audio.opus["sprop-stereo"] is configured, this overrides the options.audio.stereo setting. The flag if OPUS audio codec stereo band should be configured for sending encoded audio data. When not provided, the default browser configuration is used.

usedtx boolean <optional>

Deprecation Warning! This property has been deprecated. Configure this with the options.codecParams.audio.opus.stereo parameter in the initOptions instead. If the options.codecParams.audio.opus.stereo is configured, this overrides the options.audio.stereo setting. Note that this feature might not work depending on the browser support and implementation. The flag if OPUS audio codec should enable DTX (Discontinuous Transmission) for sending encoded audio data. This might help to reduce bandwidth as it reduces the bitrate during silence or background noise, and goes hand-in-hand with the options.voiceActivityDetection flag in joinRoom() method. When not provided, the default browser configuration is used.

useinbandfec boolean <optional>

Deprecation Warning! This property has been deprecated. Configure this with the options.codecParams.audio.opus.useinbandfec parameter in the initOptions instead. If the options.codecParams.audio.opus.useinbandfec is configured, this overrides the options.audio.useinbandfec setting. Note that this parameter should only be used for debugging purposes only. The flag if OPUS audio codec has the capability to take advantage of the in-band FEC (Forward Error Correction) when sending encoded audio data. This helps to reduce the harm of packet loss by encoding information about the previous packet loss. When not provided, the default browser configuration is used.

maxplaybackrate number <optional>

Deprecation Warning! This property has been deprecated. Configure this with the options.codecParams.audio.opus.maxplaybackrate parameter in the initOptions instead. If the options.codecParams.audio.opus.maxplaybackrate is configured, this overrides the options.audio.maxplaybackrate setting. Note that this feature might not work depending on the browser support and implementation. Note that this parameter should only be used for debugging purposes only. The OPUS audio codec maximum output sampling rate in Hz (hertz) that is is capable of receiving decoded audio data, to adjust to the hardware limitations and ensure that any sending audio data would not encode at a higher sampling rate specified by this. This value must be between 8000 to 48000. When not provided, the default browser configuration is used.

mute boolean <optional>
false

The flag if audio tracks should be muted upon receiving them. Providing the value as false does nothing to peerInfo.mediaStatus.audioMuted, but when provided as true, this sets the peerInfo.mediaStatus.audioMuted value to true and mutes any existing shareScreen() Stream audio tracks as well.

optional Array <optional>

This property has been deprecated. "optional" constraints has been moved from specs. Note that this may result in constraints related error when options.useExactConstraints value is true. If you are looking to set the requested source ID of the audio track, use options.audio.deviceId instead. The navigator.getUserMedia() API audio: { optional [..] } property.

deviceId String <optional>

Note this is currently not supported in Firefox browsers. The audio track source ID of the device to use. The list of available audio source ID can be retrieved by the navigator.mediaDevices.enumerateDevices API.

echoCancellation boolean <optional>
true

For Chrome/Opera/IE/Safari/Bowser, the echo cancellation functionality may not work and may produce a terrible feedback. It is recommended to use headphones or other microphone devices rather than the device in-built microphones. The flag to enable echo cancellation for audio track.

options.video boolean | JSON <optional>
false

Note that the current Edge browser implementation does not support the options.video.optional, options.video.deviceId, options.video.resolution and options.video.frameRate, options.video.facingMode. The video configuration options.

Properties
Name Type Attributes Default Description
mute boolean <optional>
false

The flag if video tracks should be muted upon receiving them. Providing the value as false does nothing to peerInfo.mediaStatus.videoMuted, but when provided as true, this sets the peerInfo.mediaStatus.videoMuted value to true and mutes any existing shareScreen() Stream video tracks as well.

resolution JSON <optional>

The video resolution. By default, VGA resolution option is selected when not provided. [Rel: Skylink.VIDEO_RESOLUTION]

Properties
Name Type Attributes Description
width number | JSON <optional>

The video resolution width.

  • When provided as a number, it is the video resolution width.
  • When provided as a JSON, it is the navigator.mediaDevices.getUserMedia() .width settings. Parameters are "ideal" for ideal resolution width, "exact" for exact video resolution width, "min" for min video resolution width and "max" for max video resolution width. Note that this may result in constraints related errors depending on the browser/hardware supports.
height number | JSON <optional>

The video resolution height.

  • When provided as a number, it is the video resolution height.
  • When provided as a JSON, it is the navigator.mediaDevices.getUserMedia() .height settings. Parameters are "ideal" for ideal video resolution height, "exact" for exact video resolution height, "min" for min video resolution height and "max" for max video resolution height. Note that this may result in constraints related errors depending on the browser/hardware supports.
frameRate number | JSON <optional>

The video frameRate per second (fps).

  • When provided as a number, it is the video framerate.
  • When provided as a JSON, it is the navigator.mediaDevices.getUserMedia() .frameRate settings. Parameters are "ideal" for ideal video framerate, "exact" for exact video framerate, "min" for min video framerate and "max" for max video framerate. Note that this may result in constraints related errors depending on the browser/hardware supports.
optional Array <optional>

This property has been deprecated. "optional" constraints has been moved from specs. Note that this may result in constraints related error when options.useExactConstraints value is true. If you are looking to set the requested source ID of the video track, use options.video.deviceId instead. The navigator.getUserMedia() API video: { optional [..] } property.

deviceId String <optional>

Note this is currently not supported in Firefox browsers. The video track source ID of the device to use. The list of available video source ID can be retrieved by the navigator.mediaDevices.enumerateDevices API.

facingMode String | JSON <optional>

The video camera facing mode. The list of available video source ID can be retrieved by the MediaTrackConstraints facingMode API.

callback function <optional>

The callback function fired when request has completed. Function parameters signature is function (error, success) Function request completion is determined by the mediaAccessSuccess event triggering isScreensharing parameter payload value as false for request success.

Properties
Name Type Description
error Error | String

The error result in request. Defined as null when there are no errors in request Object signature is the getUserMedia() error when retrieving camera Stream.

success MediaStream

The success result in request. Defined as null when there are errors in request Object signature is the camera Stream object.

Source:

initOptions :Object

When provided as a string, it's configured as appKey.
Properties:
Name Type Attributes Default Description
appKey String

The App Key. By default, Skylink uses HTTP CORS authentication. For credentials based authentication, see the credentials configuration below. You can find out more details on the various authentication methods from the article here. If you are using the Persistent Room feature for scheduled meetings, you will be required to use credential based authentication. See the Persistent Room article for more information.

defaultRoom String <optional>
appKey

The default Room to connect to when no room parameter is provided in Skylink#joinRoom method. When not provided or is provided as an empty string, its value is appKey. Note that switching Rooms is not available when using credentials based authentication. The Room that User will be connected to is the defaultRoom provided.

roomServer String <optional>

The Auth server for debugging purposes to use. Note that this is a debugging feature and is only used when instructed for debugging purposes.

enableStatsGathering boolean <optional>
true

Configure the anonymous performance and connectivity statistic collection function. Temasys collects encrypted, anonymous performance and connectivity statistics to allow us to improve performance for our customers and identify regional or ISP specific connectivity issues. This data does not contain any personal information or session content. To enable the configuration of this option, you need to "Collect Quality Statistics" option on the Temasys console Website under App key settings section.

enableDataChannel boolean <optional>
true

The flag if Datachannel connections should be enabled.

Note that for Edge browsers, this value is overriden as false due to its supports. This is required to be enabled for Skylink#sendBlobData, Skylink#sendURLData and Skylink#sendP2PMessage.
enableTURNServer boolean <optional>
true

The flag if TURN ICE servers should be used when constructing Peer connections to allow TURN connections when required and enabled for the App Key.

enableSTUNServer boolean <optional>
true

The flag if STUN ICE servers should be used when constructing Peer connections to allow TURN connections when required.

forceTURN boolean <optional>
false

The flag if Peer connections should enforce connections over the TURN server.

This overrides enableTURNServer value to true and enableSTUNServer value to false, filterCandidatesType.host value to true, filterCandidatesType.srflx value to true and filterCandidatesType.relay value to false. Note that currently for MCU enabled Peer connections, the filterCandidatesType configuration is not honoured as Peers connected with MCU is similar as a forced TURN connection. The flags will act as if the value is false and ICE candidates will never be filtered regardless of the filterCandidatesType configuration.

TURNServerTransport boolean <optional>

Note that configuring the protocol may not necessarily result in the desired network transports protocol used in the actual TURN network traffic as it depends which protocol the browser selects and connects with. This simply configures the TURN ICE server urls <code?transport=(protocol) query option when constructing the Peer connection. When all protocols are selected, the ICE servers urls are duplicated with all protocols. Note that for Edge browsers, this value is overriden as UDP due to its supports.
The option to configure the ?transport= query parameter in TURN ICE servers when constructing a Peer connections. When not provided, its value is ANY. Skylink.TURN_TRANSPORT

disableVideoFecCodecs boolean <optional>
false

Note that this is an experimental flag and may cause disruptions in connections or connectivity issues when toggled, and to prevent connectivity issues, these codecs will not be removed for MCU enabled Peer connections.
The flag if video FEC (Forward Error Correction) codecs like ulpfec and red should be removed in sending session descriptions. This can be useful for debugging purposes to prevent redundancy and overheads in RTP encoding.

disableComfortNoiseCodec boolean <optional>
false

Note that this is an experimental flag and may cause disruptions in connections or connectivity issues when toggled.
The flag if audio Comfort Noise (CN) codec should be removed in sending session descriptions. This can be useful for debugging purposes to test preferred audio quality and feedback.

disableREMB boolean <optional>
false

Note that this is mainly used for debugging purposes and that it is an experimental flag, so it may cause disruptions in connections or connectivity issues when toggled.
The flag if video REMB feedback packets should be disabled in sending session descriptions.

credentials JSON <optional>

Note that we strongly recommend developers to return the credentials.duration, credentials.startDateTime and defaultRoom and generate the credentials.credentials from a web server as secret shouldn't be exposed on client web app as it poses a security risk itself.
The credentials used for authenticating App Key with credentials to retrieve the Room session token used for connection in Skylink#joinRoom. Note that switching of Rooms is not allowed when using credentials based authentication, unless init() is invoked again with a different set of credentials followed by invoking the Skylink#joinRoom.

Properties
Name Type Description
startDateTime String

The credentials User session in Room starting DateTime in ISO 8601 format.

duration number

The credentials User session in Room duration in hours.

credentials String

The generated credentials used to authenticate the provided App Key with its "secret" property.

To generate the credentials:
  1. Concatenate a string that consists of the Room name you provide in the defaultRoom, the credentials.duration and the credentials.startDateTime. Example: var concatStr = defaultRoom + "" + duration + "" + startDateTime;
  2. Hash the concatenated string with the App Key "secret" property using SHA-1. Example: var hash = CryptoJS.HmacSHA1(concatStr, appKeySecret); See the CryptoJS.HmacSHA1 library.
  3. Encode the hashed string using base64 Example: var b64Str = hash.toString(CryptoJS.enc.Base64); See the CryptoJS.enc.Base64 library.
  4. Encode the base64 encoded string to replace special characters using UTF-8 encoding. Example: var credentials = encodeURIComponent(base64String); See encodeURIComponent() API.

audioFallback boolean <optional>
false

The flag if Skylink#getUserMedia should fallback to retrieve only audio Stream when retrieving audio and video Stream fails.

forceSSL boolean <optional>
true

The flag if HTTPS connections should be enforced during request to Auth server and socket connections to Signaling server when accessing window.location.protocol value is "http:". By default, "https:" protocol connections uses HTTPS connections.

audioCodec String | JSON <optional>

Note that if the audio codec is not supported, the SDK will not configure the local "offer" or "answer" session description to prefer the codec. Note that for Edge browsers, this value is set as OPUS due to its supports.
The option to configure the preferred audio codec to use to encode sending audio data when available for Peer connection.

  • When not provided, its value is AUTO. [Rel: Skylink.AUDIO_CODEC]
Properties
Name Type Attributes Description
codec String

The audio codec to prefer to encode sending audio data when available. The value must not be AUTO. [Rel: Skylink.AUDIO_CODEC]

samplingRate number <optional>

The audio codec sampling to prefer to encode sending audio data when available.

channels number <optional>

The audio codec channels to prefer to encode sending audio data when available.

videoCodec String | JSON <optional>

Note that if the video codec is not supported, the SDK will not configure the local "offer" or "answer" session description to prefer the codec. Note that for Edge browsers, this value is set as H264 due to its supports.
The option to configure the preferred video codec to use to encode sending video data when available for Peer connection.

  • When not provided, its value is AUTO. [Rel: Skylink.VIDEO_CODEC]
Properties
Name Type Attributes Description
codec String

The video codec to prefer to encode sending audio data when available. The value must not be AUTO. [Rel: Skylink.VIDEO_CODEC]

samplingRate number <optional>

The video codec sampling to prefer to encode sending video data when available.

socketTimeout number <optional>
7000

The timeout for each attempts for socket connection with the Signaling server to indicate that connection has timed out and has failed to establish. Note that the minimum timeout value is 5000. If less, this value will be 5000. Note that it is recommended to use 7000 as the lowest timeout value if Peers are connecting using Polling transports to prevent connection errors.

apiTimeout number <optional>
4000

The timeout to wait for response from Auth server.

forceTURNSSL boolean <optional>
false

Note that currently Firefox does not support the TURNS protocol, and that if TURNS is required, TURN ICE servers using port 443 will be used instead. Note that for Edge browsers, this value is overriden as false due to its supports and only port 3478 is used.
The flag if TURNS protocol should be used when enableTURNServer is enabled.

filterCandidatesType JSON <optional>

Note that this a debugging feature and there might be connectivity issues when toggling these flags.
The configuration options to filter the type of ICE candidates sent and received.

Properties
Name Type Attributes Default Description
host boolean <optional>
false

The flag if local network ICE candidates should be filtered out.

srflx boolean <optional>
false

The flag if STUN ICE candidates should be filtered out.

relay boolean <optional>
false

The flag if TURN ICE candidates should be filtered out.

throttleIntervals JSON <optional>

The configuration options to configure the throttling method timeouts.

Properties
Name Type Attributes Default Description
shareScreen number <optional>
10000

The interval timeout for Skylink#shareScreen throttling in milliseconds.

getUserMedia number <optional>
0

The interval timeout for Skylink#getUserMedia throttling in milliseconds.

refreshConnection number <optional>
5000

The interval timeout for Skylink#refreshConnection throttling in milliseconds. Note that there will be no throttling when Skylink#refreshConnection is called internally.

throttleShouldThrowError boolean <optional>
false

The flag if throttled methods should throw errors when method is invoked less than the interval timeout value configured in throttleIntervals.

iceServer String | Array <optional>

The ICE servers for debugging purposes to use.

  • When defined as string, the value is considered as [iceServer]. Note that this is a debugging feature and is only used when instructed for debugging purposes.
Properties
Name Type Attributes Description
#index String <optional>

The ICE server url for debugging purposes to use.

socketServer String | JSON <optional>

The Signaling server for debugging purposes to use.

  • When defined as string, the value is considered as { url: socketServer }. Note that this is a debugging feature and is only used when instructed for debugging purposes.
Properties
Name Type Attributes Description
url String

The Signaling server URL for debugging purposes to use.

ports Array <optional>

The list of Signaling server ports for debugging purposes to use. If not defined, it will use the default list of ports specified.

Properties
Name Type Description
#index number

The Signaling server port to fallback and use for debugging purposes.

protocol String <optional>

The Signaling server protocol for debugging purposes to use. If not defined, it will use the default protocol specified.

codecParams codecParams <optional>

The audio and video codecs parameters to configure.

beSilentOnStatsLogs boolean <optional>
false

The flag if error logs triggered by the statistics module should be silent.

Source:

joinRoomOptions :Object

The Room session configuration options.

Properties:
Name Type Attributes Default Description
roomName String <optional>

The Room name. When not provided or is provided as an empty string, its value is the defaultRoom provided in the initOptions. Note that if you are using credentials based authentication, you cannot switch the Room that is not the same as the defaultRoom defined in initOptions.

userData JSON | String <optional>

The User custom data. This can be set after Room session has started using the Skylink#setUserData.

useExactConstraints boolean <optional>

The Skylink#getUserMedia useExactConstraints parameter settings. See the useExactConstraints parameter in the Skylink#getUserMedia for more information.

audio boolean | JSON <optional>

The Skylink#getUserMedia audio parameter settings. When value is defined as true or an object, Skylink#getUserMedia to be invoked to retrieve new Stream. If video is not defined, it will be defined as false. Object signature matches the audio parameter in the Skylink#getUserMedia.

video boolean | JSON <optional>

The Skylink#getUserMedia video parameter settings. When value is defined as true or an object, Skylink#getUserMedia to be invoked to retrieve new Stream. If audio is not defined, it will be defined as false. Object signature matches the video parameter in the Skylink#getUserMedia.

voiceActivityDetection boolean <optional>
true

The flag if voice activity detection should be enabled. This can only be toggled if User is and for the offerer, which is determined if User's peerInfo.config.priorityWeight is higher than Peer's.

This works hand-in-hand with the disableComfortNoiseCodec flag in the initOptions and the audio.usedtx setting in Skylink#getUserMedia. VAD (voice activity detection) detects if there is an active voice in the Stream, and if there is no active voice in the Stream, the audio.usedtx (if enabled) would prevent sending these empty bits. To prevent huge differences when there is a silence and an active voice later, the CN codec would produce an empty voice to make it sound better.

bandwidth JSON <optional>

Note that this is currently not supported with Firefox browsers versions 48 and below as noted in an existing bugzilla ticket here.
The configuration to set the maximum streaming bandwidth to send to Peers. You can also use the preconfigured constant VIDEO_QUALITY for recommended values.

Properties
Name Type Attributes Description
audio number <optional>

The maximum audio streaming bandwidth sent to Peers in kbps. Recommended values are 50 to 200. 50 is sufficient enough for an audio call. The higher you go if you want clearer audio and to be able to hear music streaming.

video number <optional>

The maximum video streaming bandwidth sent to Peers. Recommended values are 256-500 for 180p quality, 500-1024 for 360p quality, 1024-2048 for 720p quality and 2048-4096 for 1080p quality.

data number <optional>

The maximum data streaming bandwidth sent to Peers. This affects the P2P messaging in Skylink#sendP2PMessage, and data transfers in Skylink#sendBlobData and Skylink#sendURLData.

googleXBandwidth JSON <optional>

Note that this is an experimental configuration and may cause disruptions in connections or connectivity issues when toggled, or may not work depending on browser supports. Currently, this only toggles the video codec bandwidth configuration.
The configuration to set the experimental google video streaming bandwidth sent to Peers. Note that Peers may override the "receive from" streaming bandwidth depending on the Peers configuration.

Properties
Name Type Attributes Description
min number <optional>

The minimum experimental google video streaming bandwidth sent to Peers. This toggles the "x-google-min-bitrate" flag in the session description.

max number <optional>

The maximum experimental google video streaming bandwidth sent to Peers. This toggles the "x-google-max-bitrate" flag in the session description.

manualGetUserMedia boolean <optional>

The flag if Skylink#joinRoom should trigger mediaAccessRequired in which the Skylink#getUserMedia stream or Skylink#shareScreen stream must be retrieved as a requirement before Room session may begin. This ignores the audio and video configuration.

sdpSettings JSON <optional>

Note that this is mainly used for debugging purposes and that it is an experimental flag, so it may cause disruptions in connections or connectivity issues when toggled. Note that it might not work with MCU enabled Peer connections or break MCU enabled Peer connections.
The configuration to set the session description settings.

Properties
Name Type Attributes Description
connection JSON <optional>

The configuration to set the session description connection settings. Note that this configuration may disable the media streaming and these settings will be enabled for MCU server Peer connection regardless of the flags configured.

Properties
Name Type Attributes Default Description
audio boolean <optional>
true

The configuration to enable audio session description connection.

video boolean <optional>
true

The configuration to enable video session description connection.

data boolean <optional>
true

The configuration to enable Datachannel session description connection.

direction JSON <optional>

The configuration to set the session description connection direction to enable or disable uploading and downloading audio or video media streaming. Note that this configuration does not prevent RTCP packets from being sent and received.

Properties
Name Type Attributes Description
audio JSON <optional>

The configuration to set the session description connection direction for audio streaming.

Properties
Name Type Attributes Default Description
send boolean <optional>
true

The flag if uploading audio streaming should be enabled when available.

receive boolean <optional>
true

The flag if downloading audio streaming should be enabled when available.

video JSON <optional>

The configuration to set the session description connection direction for video streaming.

Properties
Name Type Attributes Default Description
send boolean <optional>
true

The flag if uploading video streaming should be enabled when available.

receive boolean <optional>
true

The flag if downloading video streaming should be enabled when available.

publishOnly JSON | Boolean <optional>

For MCU enabled Peer connections, defining this flag would make Peer not know other Peers presence in the Room. For non-MCU enable Peer connections, defining this flag would cause other Peers in the Room to not to send Stream to Peer, and overrides the config sdpSettings.direction.audio.receive value to false, sdpSettings.direction.video.receive value to false, sdpSettings.direction.video.send value to true and sdpSettings.direction.audio.send value to true. Note that this feature is currently is beta, and for any enquiries on enabling and its support for MCU enabled Peer connections, please contact our support portal. How does the publish only functionality work? Imagine several Skylink instances like A1, B1, C1 and A1 opening a new instance A2 with publish only enabled with configured A1 as parent.
MCU enabled roomMCU disabled room
PresenceStreamPresenceStream
A1B1, C1B1, C1B1, C1B1, C1
B1A1, C1, A2A1, C1, A2A1, C1, A2A1, C1, A2
C1B1, C1, A2B1, C1, A2B1, C1, A2B1, C1, A2
A2B1, C1
Parent and child will not receive each other presence and stream because they are related to each other in the same client page, hence no uploading or downloading is required. If A2 did not configure A1 as the parent, A1 will receive A2.
The config if Peer would publish only.

Properties
Name Type Attributes Description
parentId String <optional>

Deprecation Warning! This property has been deprecated. Use parentId instead.
The parent Peer ID to match to when Peer is connected. This is useful for identification for users connecting the Room twice simultaneously for multi-streaming. If User Peer ID matches the parent Peer ID provided from Peer, User will not be connected to Peer. Parent will not be connected to (or receive the presence of) child, so will child will not be connected to (or receive the presence of) parent.

parentId String <optional>

The parent Peer ID to match to when Peer is connected. Note that configuring this value overrides the publishOnly.parentId value. This is useful for identification for users connecting the Room twice simultaneously for multi-streaming. If User Peer ID matches the parent Peer ID provided from Peer, User will not be connected to Peer. Parent will not be connected to (or receive the presence of) child, so will child will not be connected to (or receive the presence of) parent.

peerConnection JSON <optional>

Note that this is mainly used for debugging purposes, so it may cause disruptions in connections or connectivity issues when configured.
The Peer connection constraints settings.

Properties
Name Type Attributes Default Description
bundlePolicy String <optional>

The Peer connection media bundle policy.

  • When not provided, its value is BALANCED. [Rel: Skylink.BUNDLE_POLICY]
rtcpMuxPolicy String <optional>

The Peer connection RTP and RTCP ICE candidates mux policy.

  • When not provided, its value is REQUIRE. [Rel: Skylink.RTCP_MUX_POLICY]
iceCandidatePoolSize number <optional>
0

The number of ICE candidates to gather before gathering it when setting local offer / answer session description.

certificate String <optional>

The type of certificate that Peer connection should generate and use when available.

  • When not provided, its value is AUTO. [Rel: Skylink.PEER_CERTIFICATE]
disableBundle String <optional>
false

The flag if for each Peer connection instead of bundling all media connections into 1 connection, should have all of them negotiated as different separate media connections.

autoBandwidthAdjustment boolean | JSON <optional>
false

Note that this is an experimental feature which may be removed or changed in the future releases. This feature is also only available for non-MCU enabled Peer connections and Edge Peer connections.
The flag if Peer connections uploading and downloading bandwidth should be automatically adjusted each time based on a specified interval. Note this would cause the peer connection to restart.

Properties
Name Type Attributes Default Description
interval number <optional>
10

The interval each time to adjust bandwidth connections in seconds. Note that the minimum value is 10.

limitAtPercentage number <optional>
100

The percentage of the average bandwidth to adjust to. E.g. avgBandwidth * (limitPercentage / 100).

useUploadBwOnly boolean <optional>
false

The flag if average bandwidth computation should only consist of the upload bandwidth.

Source:

logItems :Array

Properties:
Name Type Description
logItems.0 Date

The DateTime of when the log was stored

logItems.1 String

The log level

logItems.2 String

The log message

logItems.3 Object

The debug object

Source:

mediaInfo :Object

An object that represents a media.

Properties:
Name Type Description
mediaInfo.publisherId String
mediaInfo.mediaId String
mediaInfo.mediaType String
mediaInfo.mediaState String
mediaInfo.transceiverMid String
mediaInfo.mediaMetaData String | JSON
mediaInfo.simulcast JSON
streamId String

The stream id associated with the media.

Source:

MediaStreams :Array

Properties:
Name Type Description
MediaStreams.0 MediaStream

Audio stream

MediaStreams.1 MediaStream

Video stream

Source:

peerInfo :Object

The Peer session information.

Properties:
Name Type Attributes Description
userData JSON | String

The Peer current custom data.

settings customSettings

The Peer sending Stream settings.

agent JSON

The Peer agent information.

Properties
Name Type Attributes Description
name String

The Peer agent name. Data may be accessing browser or non-Web SDK name.

version number

The Peer agent version. Data may be accessing browser or non-Web SDK version. If the original value is "0.9.6.1", it will be interpreted as 0.90601 where 0 helps to seperate the minor dots.

os String <optional>

The Peer platform name. Data may be accessing OS platform version from Web SDK.

pluginVersion String <optional>

The Peer Temasys Plugin version. Defined only when Peer is using the Temasys Plugin (IE / Safari).

DTProtocolVersion String

The Peer data transfer (DT) protocol version.

SMProtocolVersion String

The Peer signaling message (SM) protocol version.

room String

The Room Peer is from.

config JSON

The Peer connection configuration.

Properties
Name Type Description
enableDataChannel boolean

The flag if Datachannel connections would be enabled for Peer.

enableIceRestart boolean

The flag if Peer connection has ICE connection restart support. Note that ICE connection restart support is not honoured for MCU enabled Peer connection.

priorityWeight number

The flag if Peer or User should be the offerer. If User's priorityWeight is higher than Peer's, User is the offerer, else Peer is. However for the case where the MCU is connected, User will always be the offerer.

publishOnly boolean

The flag if Peer is publishing only stream but not receiving streams.

receiveOnly boolean

The flag if Peer is receiving only streams but not publishing stream.

connected boolean <optional>

The flag if Peer ICE connection has been established successfully. Defined only when isSelf payload value is false.

init boolean <optional>

The flag if Peer connection has been created successfully. Defined only when isSelf payload value is false.

Source:

peerListMessage

Properties:
Name Type Description
type SkylinkConstants.SIG_MESSAGE_TYPE.GET_PEERS
showAll boolean
Source:

peersStreamsInfo :Object.<String, Object>

Method that returns the list of connected peers streams in the room both user media streams and screen share streams.

Parameters:
Name Type Attributes Default Description
roomName String

The room name.

includeSelf Boolean <optional>
true

The flag if self streams are included.

Properties:
Name Type Description
#peerId Object.<String, Object>

Peer streams info keyed by peer id.

Properties
Name Type Description
isSelf Boolean

The flag if the peer is local or remote.

#streamId MediaStream

streams keyed by stream id. /**

Since:
  • 0.6.16
Source:
Example
Example 1: Get the list of current peers streams in the same room

const streams = skylink.getPeersStreams("Room_1");

recordingSessions :Object

Properties:
Name Type Description
#recordingId Object.<string, Object>

The recording session keyed by recording id.

Properties
Name Type Description
active Boolean

The flag that indicates if the recording session is currently active.

state String

The current recording state. [Rel: RECORDING_STATE]

startedStateTime String

The recording session started DateTime in ISO.Note that this value may not be very accurate as this value is recorded when the start event is received.

endedDateTime String

The recording session ended DateTime in ISO.Note that this value may not be very accurate as this value is recorded when the stop event is received. Defined only after state has triggered STOP.

mixingDateTime String

The recording session mixing completed DateTime in ISO.Note that this value may not be very accurate as this value is recorded when the mixing completed event is received. Defined only when state is LINK.

links String

The recording session links. Object signature matches the link parameter payload received in the recordingStateEvent event.

error Error

The recording session error. Defined only when state is ERROR.

Source:

refreshConnectionResolve :Object

Properties:
Name Type Description
failedRefresh Object.<string, Array.<String>>

Array of refresh errors keyed by peer Id.

successfulRefresh Object.<string, {'customSettings': customSettings, iceRestart: boolean}>

List of successfull refreshes keyed by peer Id.

Source:

screenSources :Object

The list of screensharing media sources and screen sources.

Properties:
Name Type Description
mediaSource Array.<String>

The screensharing media source item.

mediaSourceInput Array.<Object>

The list of specific media source screen inputs.

Properties
Name Type Description
sourceId String

The screen input item id.

label Object

The screen input item label name.

mediaSource Object

The screen input item media source it belongs to.

Source:

socketSession :Object

The socket connection session information.

Properties:
Name Type Description
socketSession.serverUrl String

The socket connection Signaling url used.

socketSession.transportType String

The socket connection transport type used.

socketSession.socketOptions JSON

The socket connection options.

socketSession.attempts Number

The socket connection current reconnection attempts.

socketSession.finalAttempts Number

The socket connection current last attempts for the last available transports and port.

Source:

statistics :Object

The Peer connection current statistics. Defined only when state payload is RETRIEVE_SUCCESS.

Properties:
Name Type Description
peerId String

The peer to which the statistics belong to

statistics.raw JSON

The Peer connection raw statistics.before parsing.

statistics.audio audioStats

The Peer connection audio streaming statistics.

statistics.video videoStats

The Peer connection video streaming statistics.

statistics.selectedCandidatePair JSON

The Peer connection selected ICE candidate pair statistics.

Properties
Name Type Attributes Description
local JSON

The Peer connection selected local ICE candidate.

Properties
Name Type Attributes Description
ipAddress String

The Peer connection selected local ICE candidate IP address.

portNumber Number

The Peer connection selected local ICE candidate port number.

transport String

The Peer connection selected local ICE candidate IP transport type.

candidateType String

The Peer connection selected local ICE candidate type.

turnMediaTransport String <optional>

The Peer connection possible transport used when relaying local media to TURN server. Types are "UDP" (UDP connections), "TCP" (TCP connections) and "TCP/TLS" (TCP over TLS connections).

remote JSON

The Peer connection selected remote ICE candidate.

Properties
Name Type Description
ipAddress String

The Peer connection selected remote ICE candidate IP address.

portNumber Number

The Peer connection selected remote ICE candidate port number.

transport String

The Peer connection selected remote ICE candidate IP transport type.

candidateType String

The Peer connection selected remote ICE candidate type.

writable boolean <optional>

The flag if Peer has gotten ACK to an ICE request. Defined as null if it's not available in original raw statistics.before parsing.

roundTripTime String <optional>

The current STUN connectivity checks RTT (Round-trip delay time). Defined as null if it's not available in original raw statistics.before parsing.

totalRoundTripTime String <optional>

The total STUN connectivity checks RTT (Round-trip delay time). Defined as null if it's not available in original raw statistics.before parsing.

requests JSON

The ICE connectivity check requests.

Properties
Name Type Attributes Description
received String <optional>

The current ICE connectivity check requests received. Defined as null if it's not available in original raw statistics.before parsing.

sent String <optional>

The current ICE connectivity check requests sent. Defined as null if it's not available in original raw statistics.before parsing.

totalReceived String <optional>

The total ICE connectivity check requests received. Defined as null if it's not available in original raw statistics.before parsing.

totalSent String <optional>

The total ICE connectivity check requests sent. Defined as null if it's not available in original raw statistics.before parsing.

responses JSON

The ICE connectivity check responses.

Properties
Name Type Attributes Description
received String <optional>

The current ICE connectivity check responses received. Defined as null if it's not available in original raw statistics.before parsing.

sent String <optional>

The current ICE connectivity check responses sent. Defined as null if it's not available in original raw statistics.before parsing.

totalReceived String <optional>

The total ICE connectivity check responses received. Defined as null if it's not available in original raw statistics.before parsing.

totalSent String <optional>

The total ICE connectivity check responses sent. Defined as null if it's not available in original raw statistics.before parsing.

consentRequests JSON

The current ICE consent requests.

Properties
Name Type Attributes Description
sent String <optional>

The current ICE consent requests sent. Defined as null if it's not available in original raw statistics.before parsing.

totalSent String <optional>

The total ICE consent requests sent. Defined as null if it's not available in original raw statistics.before parsing.

statistics.certificate JSON

The Peer connection DTLS/SRTP exchanged certificates information.

Properties
Name Type Attributes Description
local JSON

The Peer connection local certificate information.

Properties
Name Type Attributes Description
fingerprint String <optional>

The Peer connection local certificate fingerprint. Defined as null if it's not available in original raw statistics.before parsing.

fingerprintAlgorithm String <optional>

The Peer connection local certificate fingerprint algorithm. Defined as null if it's not available in original raw statistics.before parsing.

derBase64 String <optional>

The Peer connection local base64 certificate in binary DER format encoded in base64. Defined as null if it's not available in original raw statistics.before parsing.

remote JSON

The Peer connection remote certificate information.

Properties
Name Type Attributes Description
fingerprint String <optional>

The Peer connection remote certificate fingerprint. Defined as null if it's not available in original raw statistics.before parsing.

fingerprintAlgorithm String <optional>

The Peer connection remote certificate fingerprint algorithm. Defined as null if it's not available in original raw statistics.before parsing.

derBase64 String <optional>

The Peer connection remote base64 certificate in binary DER format encoded in base64. Defined as null if it's not available in original raw statistics.before parsing.

srtpCipher String <optional>

The certificates SRTP cipher. Defined as null if it's not available in original raw statistics.before parsing.

dtlsCipher String <optional>

The certificates DTLS cipher. Defined as null if it's not available in original raw statistics.before parsing.

tlsVersion String <optional>

The certificates DTLS TLS Version agreed. Defined as null if it's not available in original raw statistics.before parsing.

statistics.connection JSON

The Peer connection object statistics.

Properties
Name Type Attributes Description
iceConnectionState String

The Peer connection ICE connection state.

iceGatheringState String

The Peer connection ICE gathering state.

signalingState String

The Peer connection signaling state.

localDescription JSON

The Peer connection local session description.

Properties
Name Type Description
type String

The Peer connection local session description type. Defined as null when local session description is not available.

sdp String

The Peer connection local session description SDP. Defined as null when local session description is not available.

remoteDescription JSON

The Peer connection remote session description.

Properties
Name Type Description
type String

The Peer connection remote session description type. Defined as null when remote session description is not available.

sdp String

The Peer connection remote session description sdp. Defined as null when remote session description is not available.

candidates JSON

The Peer connection list of ICE candidates sent or received.

Properties
Name Type Description
sending JSON

The Peer connection list of local ICE candidates sent.

Properties
Name Type Description
host Array

The Peer connection list of local "host" (local network) ICE candidates sent.

Properties
Name Type Description
#index JSON

The Peer connection local "host" (local network) ICE candidate.

Properties
Name Type Description
candidate String

The Peer connection local "host" (local network) ICE candidate connection description.

sdpMid String

The Peer connection local "host" (local network) ICE candidate identifier based on the local session description.

sdpMLineIndex Number

The Peer connection local "host" (local network) ICE candidate media description index (starting from 0) based on the local session description.

srflx Array

The Peer connection list of local "srflx" (STUN) ICE candidates sent.

Properties
Name Type Description
#index JSON

The Peer connection local "srflx" (STUN) ICE candidate.

Properties
Name Type Description
candidate String

The Peer connection local "srflx" (STUN) ICE candidate connection description.

sdpMid String

The Peer connection local "srflx" (STUN) ICE candidate identifier based on the local session description.

sdpMLineIndex Number

The Peer connection local "srflx" (STUN) ICE candidate media description index (starting from 0) based on the local session description.

relay Array

The Peer connection list of local "relay" (TURN) candidates sent.

Properties
Name Type Description
#index JSON

The Peer connection local "relay" (TURN) ICE candidate.

Properties
Name Type Description
candidate String

The Peer connection local "relay" (TURN) ICE candidate connection description.

sdpMid String

The Peer connection local "relay" (TURN) ICE candidate identifier based on the local session description.

sdpMLineIndex Number

The Peer connection local "relay" (TURN) ICE candidate media description index (starting from 0) based on the local session description.

receiving JSON

The Peer connection list of remote ICE candidates received.

Properties
Name Type Description
host Array

The Peer connection list of remote "host" (local network) ICE candidates received.

Properties
Name Type Description
#index JSON

The Peer connection remote "host" (local network) ICE candidate.

Properties
Name Type Description
candidate String

The Peer connection remote "host" (local network) ICE candidate connection description.

sdpMid String

The Peer connection remote "host" (local network) ICE candidate identifier based on the remote session description.

sdpMLineIndex Number

The Peer connection remote "host" (local network) ICE candidate media description index (starting from 0) based on the remote session description.

srflx Array

The Peer connection list of remote "srflx" (STUN) ICE candidates received.

Properties
Name Type Description
#index JSON

The Peer connection remote "srflx" (STUN) ICE candidate.

Properties
Name Type Description
candidate String

The Peer connection remote "srflx" (STUN) ICE candidate connection description.

sdpMid String

The Peer connection remote "srflx" (STUN) ICE candidate identifier based on the remote session description.

sdpMLineIndex Number

The Peer connection remote "srflx" (STUN) ICE candidate media description index (starting from 0) based on the remote session description.

relay Array

The Peer connection list of remote "relay" (TURN) ICE candidates received.

Properties
Name Type Description
#index JSON

The Peer connection remote "relay" (TURN) ICE candidate.

Properties
Name Type Description
candidate String

The Peer connection remote "relay" (TURN) ICE candidate connection description.

sdpMid String

The Peer connection remote "relay" (TURN) ICE candidate identifier based on the remote session description.

sdpMLineIndex Number

The Peer connection remote "relay" (TURN) ICE candidate media description index (starting from 0) based on the remote session description.

dataChannels JSON

The Peer connection list of Datachannel connections.

Properties
Name Type Description
#channelName JSON

The Peer connection Datachannel connection statistics.

Properties
Name Type Description
label String

The Peer connection Datachannel connection ID.

readyState String

The Peer connection Datachannel connection readyState. [Rel: Skylink.DATA_CHANNEL_STATE]

type String

The Peer connection Datachannel connection type. [Rel: Skylink.DATA_CHANNEL_TYPE]

currentTransferId String

The Peer connection Datachannel connection current progressing transfer session ID. Defined as null when there is currently no transfer session progressing on the Datachannel connection.

currentStreamId String

The Peer connection Datachannel connection current data streaming session ID. Defined as null when there is currently no data streaming session on the Datachannel connection.

constraints JSON

The constraints passed in when constructing the Peer connection object.

optional JSON

The optional constraints passed in when constructing the Peer connection object.

sdpConstraints JSON <optional>

The constraints passed in when creating Peer connection offer or answer.

error Error

The error object received. Defined only when state payload is RETRIEVE_ERROR.

Source:

streamList :Object

Properties:
Name Type Description
userMedia Object.<string, MediaStream> | null

The user media streams keyed by stream id.

screenshare MediaStream | null

The screenshare stream.

Source:

streamSources :Object

Properties:
Name Type Description
audio Object

The list of audio input (microphone) and output (speakers) sources.

Properties
Name Type Description
input Array.<Object>

The list of audio input (microphone) sources.

Properties
Name Type Attributes Description
deviceId String

The audio input source item device id.

label String

The audio input source item device label name.

groupId String <optional>

The audio input source item device physical device id. Note that there can be different deviceId due to differing sources but can share a groupId because it's the same device.

output Array.<Object>

The list of audio output (speakers) sources. Object signature matches audio.input format.

video Object

The list of video input (camera) sources.

Properties
Name Type Description
input Array.<Object>

The list of video input (camera) sources. Object signature matches audio.input format.

Source:

userDataMessage

Properties:
Name Type Description
type SkylinkConstants.SIG_MESSAGE_TYPE.UPDATE_USER
mid SkylinkUser.sid
rid SkylinkRoom.id
userData SkylinkUser.userData
state Number
Source:

videoStats

Properties:
Name Type Description
videoStats.sending JSON

The Peer connection sending video streaming statistics.

Properties
Name Type Attributes Description
ssrc Number

The Peer connection sending video streaming RTP packets SSRC.

bytes Number

The Peer connection current sending video streaming bytes. Note that value is in bytes so you have to convert that to bits for displaying for an example kbps.

totalBytes Number

The Peer connection total sending video streaming bytes. Note that value is in bytes so you have to convert that to bits for displaying for an example kbps.

packets Number

The Peer connection current sending video streaming packets.

totalPackets Number

The Peer connection total sending video streaming packets.

roundTripTime Number

The Peer connection sending video streaming Round-trip delay time. Defined as 0 if it's not present in original raw statistics before parsing.

jitter Number

This property has been deprecated and would be removed in future releases as it should not be in sending property.
The Peer connection sending video streaming RTP packets jitter in seconds. Defined as 0 if it's not present in original raw statistics before parsing.

qpSum Number <optional>

The Peer connection sending video streaming sum of the QP values of frames passed. Defined as null if it's not available in original raw statistics before parsing.

frames Number <optional>

The Peer connection sending video streaming frames. Defined as null if it's not available in original raw statistics before parsing.

frameWidth Number <optional>

The Peer connection sending video streaming frame width. Defined as null if it's not available in original raw statistics before parsing.

frameHeight Number <optional>

The Peer connection sending video streaming frame height. Defined as null if it's not available in original raw statistics before parsing.

hugeFramesSent Number <optional>

The Peer connection sending video streaming number of huge frames sent by this RTP stream. Huge frames, by definition, are frames that have an encoded size at least 2.5 times the average size of the frames. Defined as null if it's not available in original raw statistics before parsing.

framesPerSecond Number <optional>

The Peer connection sending video streaming fps. Defined as null if it's not available in original raw statistics before parsing.

framesEncoded Number <optional>

The Peer connection sending video streaming frames encoded. Defined as null if it's not available in original raw statistics before parsing.

nacks Number <optional>

The Peer connection current sending video streaming nacks. Defined as null if it's not available in original raw statistics before parsing.

totalNacks Number <optional>

The Peer connection total sending video streaming nacks. Defined as null if it's not available in original raw statistics before parsing.

plis Number <optional>

The Peer connection current sending video streaming plis. Defined as null if it's not available in original raw statistics before parsing.

totalPlis Number <optional>

The Peer connection total sending video streaming plis. Defined as null if it's not available in original raw statistics before parsing.

firs Number <optional>

The Peer connection current sending video streaming firs. Defined as null if it's not available in original raw statistics before parsing.

totalFirs Number <optional>

The Peer connection total sending video streaming firs. Defined as null if it's not available in original raw statistics before parsing.

codec JSON <optional>

The Peer connection sending video streaming selected codec information. Defined as null if local session description is not available before parsing.

Properties
Name Type Attributes Description
name String

The Peer connection sending video streaming selected codec name.

payloadType Number

The Peer connection sending video streaming selected codec payload type.

implementation String <optional>

The Peer connection sending video streaming selected codec implementation. Defined as null if it's not available in original raw statistics before parsing.

channels Number <optional>

The Peer connection sending video streaming selected codec channels (2 for stereo). Defined as null if it's not available in original raw statistics before parsing, and this is usually present in statistics.audio property.

clockRate Number <optional>

The Peer connection sending video streaming selected codec media sampling rate. Defined as null if it's not available in original raw statistics before parsing.

params String <optional>

The Peer connection sending video streaming selected codec parameters. Defined as null if it's not available in original raw statistics before parsing.

videoStats.receiving JSON

The Peer connection receiving video streaming statistics.

Properties
Name Type Attributes Description
ssrc Number

The Peer connection receiving video streaming RTP packets SSRC.

bytes Number

The Peer connection current receiving video streaming bytes. Note that value is in bytes so you have to convert that to bits for displaying for an example kbps.

totalBytes Number

The Peer connection total receiving video streaming bytes. Note that value is in bytes so you have to convert that to bits for displaying for an example kbps.

packets Number

The Peer connection current receiving video streaming packets.

totalPackets Number

The Peer connection total receiving video streaming packets.

packetsLost Number

The Peer connection current receiving video streaming packets lost.

totalPacketsLost Number

The Peer connection total receiving video streaming packets lost.

frames Number <optional>

The Peer connection receiving video streaming frames. Defined as null if it's not available in original raw statistics before parsing.

frameWidth Number <optional>

The Peer connection sending video streaming frame width. Defined as null if it's not available in original raw statistics before parsing.

frameHeight Number <optional>

The Peer connection sending video streaming frame height. Defined as null if it's not available in original raw statistics before parsing.

framesDecoded Number <optional>

The Peer connection receiving video streaming frames decoded. Defined as null if it's not available in original raw statistics before parsing.

framesDroped Number <optional>

The Peer connection receiving video streaming frames dropped. Defined as null if it's not available in original raw statistics before parsing.

nacks Number <optional>

The Peer connection current receiving video streaming nacks. Defined as null if it's not available in original raw statistics before parsing.

totalNacks Number <optional>

The Peer connection total receiving video streaming nacks. Defined as null if it's not available in original raw statistics before parsing.

plis Number <optional>

The Peer connection current receiving video streaming plis. Defined as null if it's not available in original raw statistics before parsing.

totalPlis Number <optional>

The Peer connection total receiving video streaming plis. Defined as null if it's not available in original raw statistics before parsing.

firs Number <optional>

The Peer connection current receiving video streaming firs. Defined as null if it's not available in original raw statistics before parsing.

totalFirs Number <optional>

The Peer connection total receiving video streaming firs. Defined as null if it's not available in original raw statistics before parsing.

codec JSON <optional>

The Peer connection receiving video streaming selected codec information. Defined as null if remote session description is not available before parsing. Note that if the value is polyfilled, the value may not be accurate since the remote Peer can override the selected codec. The value is derived from the remote session description.

Properties
Name Type Attributes Description
name String

The Peer connection receiving video streaming selected codec name.

payloadType Number

The Peer connection receiving video streaming selected codec payload type.

implementation String <optional>

The Peer connection receiving video streaming selected codec implementation. Defined as null if it's not available in original raw statistics before parsing.

channels Number <optional>

The Peer connection receiving video streaming selected codec channels (2 for stereo). Defined as null if it's not available in original raw statistics before parsing, and this is usually present in statistics.audio property.

clockRate Number <optional>

The Peer connection receiving video streaming selected codec media sampling rate. Defined as null if it's not available in original raw statistics before parsing.

params String <optional>

The Peer connection receiving video streaming selected codec parameters. Defined as null if it's not available in original raw statistics before parsing.

Source: