* refactor packet2JSON to not use jquery
also added unit tests for it and switched to use chrome-headless instead
of phantomjs
* update package-lock
* squash: undo sha512 to sha1 conversion in package-lock
* wip: initial version of the new AnalyticsAdapter.
* ref: Restructures the ICE duration and state change events.
* ref: Restructures the JitsiLocalTrack events.
* ref: Restructures the TTFM events.
* ref: Updates the user feedback event.
* ref: Restructures the _CONNECTION_TIMES_ and TTFM events.
* ref: Restructures the BRIDGE_DOWN and NO_DATA_FROM_SOURCE events.
* ref: Restructures the FOCUS_LEFT event.
* ref: Restructures the DATA_CHANNEL_OPEN event.
* ref: Removes the ICE_FAILED event (it is a duplicate of a state change event).
* ref: Restructures the device list events.
Uses one event per device, since the new format does not allow non-atomic attributes.
* fix: Does not obey "unmute" commands from the focus.
* ref: Restructures the "remotely muted" event.
* ref: Restructures the CONFERENCE_ERROR events.
* ref: Removes the CONNECTION_INTERRUPTED event
We can use ICE_STATE_CHANGED instead.
* ref: Renames isreconnect to isReconnect.
* ref: Removes the CONNECTION_RESTORED event. Use ICE state changes instead.
* ref: Restructures the p2p events.
* ref: Restructures the jingle events.
* ref: Restructures the RTP statistics event.
* ref: Restructures the CONNECTION_FAILED and DISCONNECTED events.
* ref: Restructures the getUserMedia analytics events.
* ref: Cleans up AnalyticsEvents and restructures some of the events.
* fix: Adds error logs to the analytics adapter.
* ref: Refactor Statistics.sendEventToAll
Renames to sendEventAndLog, supports the object-based API, uses the
function where appropriate.
* fix: Addresses PR feedback.
* fix: Addresses Lyubomir's feedback.
* ref: Remove unused functions, adds documentation.
* feat: Adds a Statistics.sendAnalytics shortcut.
* ref: Uses the conference name as the default containerId.
* fix: Adrdesses Lenny's feedback.
* fix: Addresses more feedback.
* fix: Uses 'operational' as the default event type.
* doc: Updates the documentation.
* fix: Fixes adding of permanent properties.
* ref: Uses consistent naming for events' attributes.
Uses "_" as a separator instead of camel case or ".".
* feat: Adds the conference name as a permanent property automatically.
* ref: Don't expose Setting.machineId.
* fix: Adds a "p2p" attribute to jingle events.
* ref: Uses "action" instead of "name".
* ref: Uses underscore in events' attribute names.
* ref: Logs a message to the logger/console
instead of callstats in sendAnalyticsAndLog().
Uses optional statsId to report to callstats and push it to presence. (#608)
* Uses optional statsId to report to callstats and push it to presence.
The feature is behind a flag which is disabled by default.
* Renames statsId to statsID.
* Fixes doc.
ESLint 4.8.0 discovers a lot of error related to formatting. While I
tried to fix as many of them as possible, a portion of them actually go
against our coding style. In such a case, I've disabled the indent rule
which effectively leaves it as it was before ESLint 4.8.0.
* ref: Moves the deployment info variables to config.js
instead of using globals.
* feat: If configured, adds the user's region to presence.
* fix: Guards against accessing undefined properties,
and uses the crossRegion variable from the config.
* style: Fixes formatting.
Sending the bare jid, speeds call setup as otherwise jigasi needs to do a feature discovery finding the conference component address and use it to construct the room address to join.
* ref(RTC): store remote tracks in peer TPC
In order to implement P2P <-> JVB connection switching we need to
be able to associate remote tracks with the TraceablePeerConnections.
* feat(ChatRoom): multiple presence handlers
Add support for more than 1 presence handler per tag name.
* feat(JitsiLocalTrack): update stored MSID
* ref(stats): add peer connection arg to BYTE_SENT_STATS
Required to store local SSRCs in TraceablePeerConnection.
* ref: change local SSRCs strategy
* fix: generate recvonly SSRC if 0 video tracks
Video SSRC has to be generated for the recvonly stream if there are no
video tracks in the PeerConnection.
* feat: add "attach" and "detach" methods
* feat(jitsi tracks): improve logging
Adds toString methods and improve log messages around local and remote
tracks.
* ref(modify SSRCs): optimisations + fixes
- adds _doRenegotiate to JingleSessionPC that wraps some of
the duplicated logic
- fixes problems with attach/detach
- renames methods to reflect what that they really do (operate on
JitsiTrack rather than streams)
* ref(JingleSessionPC): remove duplication
Extracts common code for the 'modificationQueue' execution
* ref(VideoMuteSdpHack): rename, add docs, fix minor
Renames, adds docs and moves 'modified' flag and media direction
modification.
* ref(TPC): add 'isSimulcastOn'
* ref(MungeLocalSdp): move to RTC module
* ref: move "ufrag" events to the RTC module
* ref(JitsiConference): use promises for mute
* feat(XMPPEvents): add CONNECTION_ESTABLISHED
* feat: add peer to peer
* fix(P2P): deal with everyone's a moderator + fixes
* feat(P2P): implement "backToP2PDelay"
* fix(TPC): crash on FF accessing LD/RD
Firefox return null/undefined for localDescription/remoteDescription
objects if they have not been set yet, while Chrome does return empty
object instead. This commit makes the behaviour consistent by making
sure that at least empty object is returned for all browsers.
* fix(TPC): replace isFirefox with feature
* fix(JSPC): fix renegotiate crash on FF
FF does not allow to call 'createAnswer' in 'have-local-offer' state
* fix(JSPC): fix addIceCandidate crash on FF
* doc(JitsiConference): fix outdated comment
To be squashed with "ref(ChatRoom): remove unnecessary JingleSessionPC dependency"
* style(JitsiConference): rename arg to "jingleSession"
* feat(stats): add 'p2p' to 'transport'
The new p2p field will inform whether the transport comes from the peer
to peer type of connection or not.
* doc(TPC): describe local maps
* fix(P2P): multiplex between JVB and P2P ICE status
Will make sure that when in P2P mode the conference will be updated
with the ICE state coming from P2P and when in the JVB mode will get
the JVB one.
* doc(TPC): fixes docs and adds FIXME
* ref: use 'doesVideoMuteByStreamRemove'
* feat(P2P): stop P2P when ICE enters FAILED
The conference will switch back to the JVB connection when P2P
connection breaks (ICE enters failed state).
* feat(P2P): "connectivity-error" for ICE failed
Will use "connectivity-error" reason element name when ending P2P
session due to ICE failure.
* feat(xmpp): make P2P Stun servers configurable
STUN servers used in the P2P connection can be configured through
"p2pStunServers" option.
* ref(JitsiConference): use 'getActivePeerConnection'
* fix(P2P): re-create 'dtmfManager'
* ref(P2P): deal with ICE "completed" state
* ref(RTC): rename "owner" to "ownerEndpointId"
* fix(MungeLocalSdp): fix directions
* ref(ParticipantConnectionStatus): use for..of and () =>
* remove double 'l'
* ref: fix ESLint errors
* fix(MungeLocalSdp): adopt to new SdpTransformerUtil
* ref(MungeLocalSdp): use for .. of
* ref(SdpTransformUtil): remove "forEachSSRCAttr"
* fix(SDPDiffer): fix invalid "arrayEquals" call
* doc(MungeLocalSdp): add fixme
* fix(P2PEnabledConference): JVB tracks not added
* ref(JitsiConference): doc + rename mute methods
* ref(JitsiConference): adjust log level
* fix(JitsiConference): remove invalid eslint comments
Some mistake during rebase merge
* doc(JitsiConference): add FIXME
* ref(JitsiConferenceEventManager): stick to "tpc"
* ref(JitsiLocalTrack): use Set for "peerConnections"
* ref(JitsiLocalTrack): simplify expression
* ref(MungeLocalSdp): style + doc fixes
* ref: rename MungeLocalSdp to LocalSdpMunger
* ref(ParticipantConn..Status): rename method
* ref(SignalingLayerImpl): use Map and =>
* fix(strophe.jingle.js): minor style fixes + rename
* doc(XMPPEvents): typo
* doc(P2PEnabledConference): typo and style
* ref(P2PEnabledConference): rename methods
* ref(P2PEnabledConference): do not use "window"
* fix(P2PEnabledConference): cleanup deferred task
* ref(TPC): make options the last arg
* ref(TPC): use Map
* ref(TPC): syntax and other fixes...
* doc(ChatRoom): remove comment
* ref: remove P2PEnabledConference
* fix: remove JSUtil.js
* ref(LocalSdpMunger): re-use 'RtxModifier'
Reuses RtxModifier for injecting local RTX SSRCs as part of
the LocalSdpMunger logic.
* doc(LocalSdpMunger): remove confusing FIXME
* fix(TPC): setLocalDescription for FF
* fix(LocalSdpMunger): crash on react-native
* fix(JingleSessionPC): no events when ended
The instance once terminated should not emit connection state events.
* fix(P2P): do not start P2P on react-native
* fix: log meaningful error
Prior to this change you would see something like:
JitsiConference <error>: null
* fix(JingleSessionPC): no IQs once ended
* fix(JingleSessionPC): Jingle error logging
* fix: arguments order
* fix: make audio SSRC consistent
Audio SSRC needs to stay consistent between detach and attach operations
in order to avoid source-remove/source-add.
* fix(P2P): disable P2P on FF
There are problems with going back from P2P to JVB in FireFox. Other
participants will not see FF video. Looks like something related to
detach/attach.
* fix(JitsiConference): attach local tracks
Local tracks should be attached back to the JVB connection only
if the P2P was established.
* ref(JitsiConference): PR review fixes
ref(JitsiConference): else if
ref(JitsiConference): use getter
doc(JitsiConference): add comment
style(JitsiConference): remove extra line
log(JitsiConference): misleading msg
ref(JitsiConference): rename method
* ref(RTC): del _iteratePeerConnections
* ref: move getUfrag to SDPUtil
* fix(LocalSdpMunger): docs and if check
* fix(TPC): docs and typo
* ref(JingleSessionPC): PR review fixes
ref(JingleSessionPC): rename 'candidates'
ref(JitsiConference): remove extra check
ref(JitsiConference): rename isP2PEstablished
ref(JitsiConference): rename field (typo)
* doc(JitsiConferenceEventManager): typo
* ref(JitsiLocalTrack): rename var
* ref(JitsiConference): PR review fixes
ref(JitsiConference): rename var
doc(JitsiConference): add comment
doc(JitsiConference): add comment
doc(JitsiConference): fix comment
ref(JitsiConference): rename listener
ref(JitsiConference): rename var
* doc(RTC): remove duplicated arg description
doc(RTC): fill docs
* doc(SignalingLayerImpl): remove fixed FIXME
* ref(strophe.jingle.js): remove comment and break line
* style(TPC): formatting
doc(TPC): add FIXME
ref(TPC): remove unused code
doc(TPC): add docs
* doc(JingleSessionPC): mark "send" methods private
style(JingleSessionPC): extra lines