This is the first step in adding support for multiple
streams per endpoint. Each source(stream?) needs to have
an identifier. For now always generate the 0 index name
until the machinery for sending more than 1 stream is put
in place.
* send only MSID attribute
* add feature flag for source name signaling
* log a msg if source name signaling is enabled
fix(JitsiConference):2 instances for the same room
If a second JitsiConference instance for the same room is created we were
throwing an error but some listeners were already attached. This commit
makes sure that we throw the error as soon as possible and no listeners
are added.
Instead of logging the full IQs for Jingle messages like session-initiate, source-add and source-remove which can be very long, log just the formatted source information.
* feat: Support plain endpoint ID.
Support the ID of the owner of sources being encoded directly instead of
using the full JID.
* feat: Support JSON-encoded sources.
* feat: Advertise support for JSON-encoded sources.
fix(JingleSessionPC): Fix startMuted cases for p2p unified plan.
Chrome doesn't create a decoder for ssrc in the remote description when there is no local source and the endpoint is offerer. Initiating a renegotiation with the endpoint as a responder fixes this issue. Add a workaround until Chrome fixes this bug.
fix(JingleSessionPC): Disable unified-plan for p2p chrome.
Do not enable unified plan for p2p chrome by default until StartMutedTest is fixed.
Fix media direction for case when there are no local and remote sources, should be set to 'inactive' in that case.
fix(TPC): Do not remove ssrcs from remote desc for p2p.
In unified plan, re-use of m-line (i.e., adding an SSRC, removing it and then adding it back) causes the browser to not render the media on Chrome and Safari. The WebRTC spec is not clear as to how browsers have to behave, this doesn't cause any issues on Firefox. As a workaround, only change the media direction and leave the ssrc in the remote desc. This automatically triggers a 'removetrack' event on the associated MediaStream and the track can be removed from the UI.
fix(RTC): Adjust the media direction for p2p conn.
For p2p connections, the media direction needs to be adjusted after every source-add/source-remove is processed based on the availability of local sources.
fix(JingleSessionPC): Add a workaround for chrome issue.
The 'signalingstatechange' event for 'stable' is fired after the 'iceconnectionstatechange' event for 'completed' is fired on chrome in Unified plan. This prevents the client from switching the media connection to the p2p connection once the ice connection for p2p gets established.
* fix(xmpp): use text parameter instead of attr for message
bug: msg with elementName != 'body' ->
Cannot read property 'appendChild' of null
fix leads to another problem - there is some magic in the 'c' function:
"This function moves the current element pointer to the child,
unless text is provided"
apply the same magic here. will be removed in the next commit
* fix(xmpp): do not rely on internals of Strophe.c
* squash: Fixes tests.
Co-authored-by: damencho <damencho@jitsi.org>
fix(JingleSessionPC): Do not try to re-use inactive mid for new remote ssrcs.
The direction was marked as 'inactive' only on Firefox as Safari had audio issues when an inactive mid is re-used. Chrome (in unified-plan) needs the direction of the mid in remote desc to be set to 'inactive' for a 'removetrack' to be fired on the associated media stream whenever a remote source is removed.
fix(RTC): Do not suppress the source updates on Firefox.
If the msid attribute is missing, then remove the ssrc from the transformed description so that a source-remove is signaled to Jicofo. This happens when the direction of the transceiver (or m-line) is set to 'inactive' or 'recvonly' on Firefox. Not signaling these source updates creates issues with remote track handling on the other endpoints in the call.
* feat: Audio/Video moderation.
* squash: Fix docs.
* squash: Adds some warning logs when execution is rejected.
* squash: Changes a field name in the message for adding jid to whitelist.
* squash: Send to participants only message about approval.
Skips sending the whole list.
* squash: Fixes tests.
* squash: Adds more logs.
* feat: Separates enable/disable by media type.
Adds actor to the messages to inform who enabled it.
* squash: Fixes log line.
* squash: Fixes comments.
* squash: Fixes log messages.
* squash: Fixes comments.
fix(JingleSession): Move the ssrc identifier generation to LocalSdpMunger.
When a msid attribute is missing in the 'a=ssrc' line, use the local endpoint id as an indentifier. Move this generation logic to LocalSdpMunger. Also suppress notifying Jicfo of a ssrc change on Firefox when the change is a result of the media being suspended on the jvb connection.
fix(JingleSession): Add a unique identifier for source on Firefox.
In certain cases, when RTCPeerconnection#addTrack is used, the browser doesn't produce the streamid in the 'a=msid' line which is being used by Jicofo as a unique identifier for the associated ssrc. Whenever the msid is missing in the local description, generate an ID using the local endpoint id.
fix(screenshare): Disable SS simulcast based on fps requested.
Disable simulcast for low fps screenshare and enable it for high fps screenshare. testing.capScreenshareBitrate config.js setting has now been deprecated.
* squash: Extracts parsing disco info in utility method.
* squash: Extracts parsing disco info identities and features in utility method.
* squash: Skip disco-info on reconnection.
Doing disco info queries only once.
If the call is longer than 24-hours turn credentials may be expired.
* feat: Adds handler for early messages with conference info data.
* feat: JiConOp handling for shard name.
* squash: Drops unneeded check.
* squash: Changes message type to service-info.
* squash: Moves utility parseDiscoInfo out of the Caps class.