Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for group calls using MSC3401 #2553

Merged
merged 364 commits into from
Nov 7, 2022
Merged

Add support for group calls using MSC3401 #2553

merged 364 commits into from
Nov 7, 2022
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Oct 19, 2021

  1. Group call improvements (#1985)

    * Add group call events to EventType
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    * Use EventType instead of a const
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    * Make logging around sending group call member state event a bit better
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    * Fix m.calls elements being null
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    SimonBrandner committed Oct 19, 2021
    Configuration menu
    Copy the full SHA
    0148ad0 View commit details
    Browse the repository at this point in the history
  2. Rermove session id

    robertlong committed Oct 19, 2021
    Configuration menu
    Copy the full SHA
    e9b52e2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    431d7a0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8131b39 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    159e825 View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2021

  1. Configuration menu
    Copy the full SHA
    0555f9d View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2021

  1. Configuration menu
    Copy the full SHA
    305de54 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5110e0b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3b0d1b2 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2021

  1. Configuration menu
    Copy the full SHA
    b4d8c0b View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2021

  1. Start processing member state events only after we've set out own (#2000

    )
    
    This avoids a race condition where the other side would first receive the to-device messages and only then the member state event which would result in the call being ignored
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    SimonBrandner committed Oct 25, 2021
    Configuration menu
    Copy the full SHA
    fc8a867 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2021

  1. Configuration menu
    Copy the full SHA
    119ce2e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9f3f999 View commit details
    Browse the repository at this point in the history
  3. clarify the factoring

    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    aeeed6e View commit details
    Browse the repository at this point in the history
  4. make it build

    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    24406d2 View commit details
    Browse the repository at this point in the history
  5. fix example in readme

    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    56c0c9b View commit details
    Browse the repository at this point in the history
  6. switch encryptAndSendToDevices to return a promise rather than use a cb

    and assert that olm sessions are open to the destination devices
    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    5a83635 View commit details
    Browse the repository at this point in the history
  7. lint

    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    53397ee View commit details
    Browse the repository at this point in the history
  8. don't choke on missing promise

    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    f46355e View commit details
    Browse the repository at this point in the history
  9. chain promises correctly; log rejects

    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    2f09e96 View commit details
    Browse the repository at this point in the history
  10. fix the tests (thanks @turt2live!!!)

    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    a48546f View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    841e6e9 View commit details
    Browse the repository at this point in the history
  12. lint

    ara4n authored and robertlong committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    067ac62 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    32aca09 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    13d62e7 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2021

  1. Configuration menu
    Copy the full SHA
    923e9c4 View commit details
    Browse the repository at this point in the history
  2. Fix handling null call

    robertlong committed Oct 28, 2021
    Configuration menu
    Copy the full SHA
    8c5f88c View commit details
    Browse the repository at this point in the history
  3. Sanitize call member state

    robertlong committed Oct 28, 2021
    Configuration menu
    Copy the full SHA
    4c9648a View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2021

  1. Configuration menu
    Copy the full SHA
    d99428f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6f695c1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5a92597 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2021

  1. Configuration menu
    Copy the full SHA
    bdc12a2 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2021

  1. Configuration menu
    Copy the full SHA
    7998817 View commit details
    Browse the repository at this point in the history
  2. Fix indentation

    robertlong committed Nov 4, 2021
    Configuration menu
    Copy the full SHA
    c1f56ba View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2021

  1. Configuration menu
    Copy the full SHA
    b253ad9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    17f7dc5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f76f708 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2021

  1. Configuration menu
    Copy the full SHA
    4b87907 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    74c5a20 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'robertlong/group-call' of github.com:matrix-org/matrix-…

    …js-sdk into robertlong/group-call
    robertlong committed Nov 8, 2021
    Configuration menu
    Copy the full SHA
    a2e255c View commit details
    Browse the repository at this point in the history
  4. Re-enable safari hack

    robertlong committed Nov 8, 2021
    Configuration menu
    Copy the full SHA
    f28cb48 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2021

  1. Configuration menu
    Copy the full SHA
    97e8fce View commit details
    Browse the repository at this point in the history
  2. Add restart ICE

    robertlong committed Nov 9, 2021
    Configuration menu
    Copy the full SHA
    e880cec View commit details
    Browse the repository at this point in the history
  3. Add retry call loop

    robertlong committed Nov 9, 2021
    Configuration menu
    Copy the full SHA
    28da62c View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2021

  1. Configuration menu
    Copy the full SHA
    7d48a83 View commit details
    Browse the repository at this point in the history
  2. Clean up logging

    robertlong committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    3139112 View commit details
    Browse the repository at this point in the history
  3. Add unknown device errors

    robertlong committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    4e26f29 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c2fe2ab View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2021

  1. Configuration menu
    Copy the full SHA
    139904f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3291846 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5f06df8 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2021

  1. Configuration menu
    Copy the full SHA
    64c3ac5 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2021

  1. Configuration menu
    Copy the full SHA
    0683133 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    96ef535 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d0e37ee View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2021

  1. Configuration menu
    Copy the full SHA
    ffbd10a View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2021

  1. Configuration menu
    Copy the full SHA
    d1a62ed View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2021

  1. Configuration menu
    Copy the full SHA
    fcc4b71 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2021

  1. Configuration menu
    Copy the full SHA
    e336ace View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    06d9d62 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2022

  1. Disable retries

    robertlong committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    549f9b7 View commit details
    Browse the repository at this point in the history
  2. Emit sent voip events

    robertlong committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    bef5579 View commit details
    Browse the repository at this point in the history
  3. Log opponentDeviceId

    robertlong committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    7993dd7 View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2022

  1. Emit sent voip events

    robertlong committed Jan 7, 2022
    Configuration menu
    Copy the full SHA
    f3f9e41 View commit details
    Browse the repository at this point in the history
  2. Log opponentDeviceId

    robertlong committed Jan 7, 2022
    Configuration menu
    Copy the full SHA
    18bb5c3 View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2022

  1. Configuration menu
    Copy the full SHA
    87bf115 View commit details
    Browse the repository at this point in the history

Commits on Jan 11, 2022

  1. Configuration menu
    Copy the full SHA
    c91617a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    487bfc8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3fac6d7 View commit details
    Browse the repository at this point in the history

Commits on Jan 12, 2022

  1. Configuration menu
    Copy the full SHA
    7529af4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ee995cb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    eeacf8c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d8285aa View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    28f3169 View commit details
    Browse the repository at this point in the history

Commits on Jan 13, 2022

  1. Configuration menu
    Copy the full SHA
    42fef0e View commit details
    Browse the repository at this point in the history

Commits on Jan 14, 2022

  1. Configuration menu
    Copy the full SHA
    015eb5d View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2022

  1. Re-enable retries

    robertlong committed Jan 18, 2022
    Configuration menu
    Copy the full SHA
    592fb0c View commit details
    Browse the repository at this point in the history
  2. Remove log

    robertlong committed Jan 18, 2022
    Configuration menu
    Copy the full SHA
    bbf7020 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2022

  1. Configuration menu
    Copy the full SHA
    1a78301 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2022

  1. Configuration menu
    Copy the full SHA
    4a4465b View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2022

  1. Configuration menu
    Copy the full SHA
    d42e2fe View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b4fe00a View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2022

  1. Configuration menu
    Copy the full SHA
    c801690 View commit details
    Browse the repository at this point in the history
  2. Avoid glare

    robertlong committed Feb 12, 2022
    Configuration menu
    Copy the full SHA
    d8e597c View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2022

  1. Remove safari hack

    robertlong committed Feb 15, 2022
    Configuration menu
    Copy the full SHA
    d12bccd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a2a127d View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2022

  1. Enable max-bundle (#2182)

    No particular reason to worry about old user agents here
    dbkr committed Feb 16, 2022
    Configuration menu
    Copy the full SHA
    3db056a View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2022

  1. Log complete sync errors

    robertlong committed Feb 17, 2022
    Configuration menu
    Copy the full SHA
    fa5eae7 View commit details
    Browse the repository at this point in the history
  2. 1 Configuration menu
    Copy the full SHA
    7f21f56 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2022

  1. Configuration menu
    Copy the full SHA
    353d6ba View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7a249e3 View commit details
    Browse the repository at this point in the history

Commits on Feb 19, 2022

  1. Add callId to all logs

    robertlong committed Feb 19, 2022
    Configuration menu
    Copy the full SHA
    0ef6c2e View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2022

  1. Fix call log

    robertlong committed Feb 23, 2022
    Configuration menu
    Copy the full SHA
    e270f07 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    17f5ab4 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2022

  1. Configuration menu
    Copy the full SHA
    c819ac6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e68cabc View commit details
    Browse the repository at this point in the history

Commits on Feb 25, 2022

  1. Configuration menu
    Copy the full SHA
    49994ac View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    09fee4a View commit details
    Browse the repository at this point in the history
  3. Fix import

    robertlong committed Feb 25, 2022
    Configuration menu
    Copy the full SHA
    94c5e37 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2022

  1. Configuration menu
    Copy the full SHA
    6e25b13 View commit details
    Browse the repository at this point in the history
  2. Fix bug with ine-way audio after a transfer (#2193)

    Seems chrome at least will give you a disabled audio track if you
    already had another user media audio track and disabled it, so make
    sure our tracks are enabled when we add them. We already did this
    on one code path but it didn't get moved over when a new code path
    was added.
    
    On the plus side, we now know the reason for the ancient code that
    had the comment asking what it was for, so update that.
    dbkr authored and robertlong committed Mar 1, 2022
    Configuration menu
    Copy the full SHA
    2a0dc39 View commit details
    Browse the repository at this point in the history
  3. Don't remove streams that still have tracks (#2104)

    If a renogotiation ends up with one track being removed, we removed
    the whole stream, which would cause us to lose, for example, audio
    rather than just video.
    dbkr authored and robertlong committed Mar 1, 2022
    Configuration menu
    Copy the full SHA
    ee4cbd1 View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2022

  1. Configuration menu
    Copy the full SHA
    96ba061 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2022

  1. Support for PTT group call mode (#2338)

    * Add PTT call mode & mute by default in PTT calls (#2311)
    
    No other parts of PTT calls implemented yet
    
    * Make the tests pass again (#2316)
    
    3280394
    made call use a bunch of methods that weren't mocked in the tests.
    
    * Add maximum trasmit time for PTT (#2312)
    
    on sender side by muting mic after the max transmit time has elapsed.
    
    * Don't allow user to unmute if another user is speaking  (#2313)
    
    * Add maximum trasmit time for PTT
    
    on sender side by muting mic after the max transmit time has elapsed.
    
    * Don't allow user to unmute if another user is speaking
    
    Based on #2312
    For element-hq/element-call#298
    
    * Fix createGroupCall arguments (#2325)
    
    Comma instead of a colon...
    dbkr committed May 3, 2022
    Configuration menu
    Copy the full SHA
    8d9cd0f View commit details
    Browse the repository at this point in the history

Commits on May 9, 2022

  1. Configuration menu
    Copy the full SHA
    d82c041 View commit details
    Browse the repository at this point in the history
  2. Remove test 'fix'

    as I can't work out why it was needed, so I can't justify keeping
    it in the group calls merge. It should be PRed to develop separately
    if needed.
    dbkr committed May 9, 2022
    Configuration menu
    Copy the full SHA
    9702e8a View commit details
    Browse the repository at this point in the history

Commits on May 10, 2022

  1. Make tests pass again

    Now we know what that bit in the crypto unit test was for...
    dbkr committed May 10, 2022
    Configuration menu
    Copy the full SHA
    85a6a55 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    83f61c9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f475251 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f4f0555 View commit details
    Browse the repository at this point in the history
  5. More setTimeout typings

    dbkr committed May 10, 2022
    Configuration menu
    Copy the full SHA
    da615fd View commit details
    Browse the repository at this point in the history
  6. Merge branch 'dbkr/group-call-merge' of github.com:matrix-org/matrix-…

    …js-sdk into dbkr/group-call-merge
    dbkr committed May 10, 2022
    Configuration menu
    Copy the full SHA
    acef1d7 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2022

  1. Remove PTT 'other user speaking' logic (#2362)

    This was also in Element Call, and whilst js-=sdk might be a more
    sensible place, EC has all the information to do it properly (this
    impl didn't take admin talk-over into account).
    dbkr committed May 11, 2022
    Configuration menu
    Copy the full SHA
    38e54ae View commit details
    Browse the repository at this point in the history

Commits on May 13, 2022

  1. Fix races when muting/unmuting (#2370)

    await on the async operation so the promise we return resolves once
    everything's actuall complete
    dbkr committed May 13, 2022
    Configuration menu
    Copy the full SHA
    87791cd View commit details
    Browse the repository at this point in the history

Commits on May 18, 2022

  1. Configuration menu
    Copy the full SHA
    942a28d View commit details
    Browse the repository at this point in the history

Commits on May 19, 2022

  1. Handle other members having no e2e keys (#2383)

    Fetch the device info once at the start of the cal and cache it
    rather than fetching every time, and throw if we're supposed to be
    using e2e but the other end has no e2e keys.
    dbkr committed May 19, 2022
    Configuration menu
    Copy the full SHA
    aa0d3bd View commit details
    Browse the repository at this point in the history

Commits on May 26, 2022

  1. Wait for mute event to send in PTT mode (#2401)

    This waits until the mute metadata update is sent to all the calls
    before telling the user they're unmuted, when in PTT mode (and only
    when starting to talk, ie. unmuting). This should help avoid situations
    where the signalling connection is slow enough that the unmute event
    takes long enough to reach the other side that you hear someone speak
    before they've apparently unmuted.
    
    Involves splitting out the method to send the metadata update.
    dbkr committed May 26, 2022
    Configuration menu
    Copy the full SHA
    18e2052 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2022

  1. Mute disconnected peers in PTT mode (#2421)

    When we lose ICE connection to peers, set the status of their feeds
    to muted so to end their talking session.
    
    For element-hq/element-call#331
    dbkr committed May 31, 2022
    Configuration menu
    Copy the full SHA
    34ef7bc View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2022

  1. Set PTT mode on call correctly (#2445)

    And not always to true. This was causing audio & video to start muted
    sometimes on normal calls because the ICE connection state would change
    to 'checking', causing the feeds to be muted.
    dbkr committed Jun 8, 2022
    Configuration menu
    Copy the full SHA
    5e76697 View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2022

  1. Emit unknown device errors for group call participants without e2e (#…

    …2447)
    
    * Emit unknown device errors for group call participants without e2e
    
    There are a number of different cases here: there were some before
    when dealing with versions that didn't send deviceId. This catches
    all of them and makes all these cases emit the same error.
    
    * Add type
    dbkr committed Jun 10, 2022
    Configuration menu
    Copy the full SHA
    b97b862 View commit details
    Browse the repository at this point in the history
  2. Only clone streams on Safari (#2450)

    Only enable the stream cloning behaviour on Safari: it was causing
    the audio renderer on Chrome (both desktop and Android) to hang,
    causing audio to fail sometimes in Element Call and other Chrome
    tabs (eg. YouTube) to fail to play audio.
    
    Fixes element-hq/element-call#267
    dbkr committed Jun 10, 2022
    Configuration menu
    Copy the full SHA
    404f8e1 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2022

  1. Change CODEOWNERS for element-call feature branch (#2457)

    To reduce review requests going to the "wrong" team. The team has been mirrored from the vector-im side.
    turt2live committed Jun 13, 2022
    Configuration menu
    Copy the full SHA
    04d0d61 View commit details
    Browse the repository at this point in the history
  2. Disable playback of audio for muted users (#2456)

    * Disable playback of audio for muted users
    
    As hopefully explained by the comment
    
    * forEach instead of map
    dbkr committed Jun 13, 2022
    Configuration menu
    Copy the full SHA
    9192b87 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2022

  1. Expire call member state events after 1 hour (#2446)

    * Expire call member state events after 1 hour
    
    * Fix lints
    
    * Avoid a possible race
    robintown committed Jun 16, 2022
    Configuration menu
    Copy the full SHA
    70449ea View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    df9ffdc View commit details
    Browse the repository at this point in the history
  3. Don't block muting on determining whether the device exists (#2461)

    * Don't block muting on determining whether the device exists
    
    * Add comments
    robintown committed Jun 16, 2022
    Configuration menu
    Copy the full SHA
    5b4263b View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2022

  1. Configuration menu
    Copy the full SHA
    ebcb26f View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2022

  1. Fix call.collectCallStats() (#2480)

    Regressed by #2352
    (you can just use RTCStatsReport as an iterator directly (which
    was was what that code was doing before) which uses entries(
    which gives you key/value pairs, but using forEach gives you just
    the value.
    dbkr committed Jun 29, 2022
    Configuration menu
    Copy the full SHA
    c89bbf4 View commit details
    Browse the repository at this point in the history
  2. Remove the feature to disable audio from muted members (#2479)

    At the moment it looks like its more valuable to get the audio from
    people even if they're not actually shown as speaking. We can always
    re-introduce it later.
    dbkr committed Jun 29, 2022
    Configuration menu
    Copy the full SHA
    f553854 View commit details
    Browse the repository at this point in the history
  3. Enable DTX on audio tracks in calls (#2482)

    This greatly reduces the amount of bandwidth used when transmitting
    silence.
    robintown committed Jun 29, 2022
    Configuration menu
    Copy the full SHA
    e7493fd View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2022

  1. Fix some MatrixCall leaks and use a shared AudioContext (#2484)

    * Fix some MatrixCall leaks and use a shared AudioContext
    
    These leaks, combined with the dozens of AudioContexts floating around in memory across different CallFeeds, could cause some really bad performance issues and audio crashes on Chrome.
    
    * Fully release the AudioContext in CallFeed's dispose method
    
    * Fix tests
    robintown committed Jul 1, 2022
    Configuration menu
    Copy the full SHA
    f9672cf View commit details
    Browse the repository at this point in the history
  2. Revert hack to only clone streams on safari (#2485)

    Reverts #2450
    
    Looks like this wasn't really the problem (although may have made it
    happens faster) and the actual problem was multiple audio contexts
    and/or leaking peer connections as fixed in #2484
    dbkr committed Jul 1, 2022
    Configuration menu
    Copy the full SHA
    ca5ac79 View commit details
    Browse the repository at this point in the history
  3. Remove empty decryption listener (#2486)

    * Remove empty decryption listener
    
    This listener looks like it was left over from something as it just
    did nothing at all. The todevice event gets put into the call
    event buffer which awaits on decryption for each event before
    processing, so it should already wait for decryption.
    
    More info: element-hq/element-call#428
    
    * Unused import
    
    * Unused function!
    dbkr committed Jul 1, 2022
    Configuration menu
    Copy the full SHA
    6ea2885 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2022

  1. Don't mute the remote side immediately in PTT calls (#2487)

    This clause was causing all PTT calls to mute the remote side
    immediately upon ICE connection status changing to 'checking'.
    robintown committed Jul 2, 2022
    Configuration menu
    Copy the full SHA
    e980c88 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2022

  1. Configuration menu
    Copy the full SHA
    9a15094 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2022

  1. Set max average bitrate on PTT calls (#2499)

    * Set max average bitrate on PTT calls
    
    Via SDP munging. Also makes the SDP munging a bit more generic and
    codec-specific (we were previously adding usedtx to any codec that had an fmtp
    line already, which was probably not really the intention).
    
    * Make SDP munging for codecs that don't already have fmtp lines
    
    * Use sensible typescript syntax
    
    Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
    dbkr and SimonBrandner committed Jul 6, 2022
    Configuration menu
    Copy the full SHA
    bdb91b3 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2022

  1. Prevent double mute status changed events (#2502)

    Audio & video mute status were set in separate calls but share a
    mute status changed event, so you'd always get two mute status
    changed events emitted. We could suppress events where the mute
    status didn't change, but this would still get two events saying
    the same thing when they both changed. Instead, merge setAudioMuted
    & setVideoMuted into a single call that sets either or both.
    dbkr committed Jul 8, 2022
    Configuration menu
    Copy the full SHA
    984dd26 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2022

  1. Merge develop into group call branch again (#2513)

    * Send call version `1` as a string (#2471)
    
    * test typescriptification - backup.spec (#2468)
    
    * renamed:    spec/unit/crypto/crypto-utils.js -> spec/unit/crypto/crypto-utils.ts
    
    * ts fixes in crypto-utils
    
    * renamed:    spec/unit/crypto/backup.spec.js -> spec/unit/crypto/backup.spec.ts
    
    * ts fixes in backup.spec
    
    * remove fit
    
    * remove debug
    
    * Prepare changelog for v19.0.0-rc.1
    
    * v19.0.0-rc.1
    
    * Update jest monorepo (#2476)
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    
    * Update all (#2475)
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    
    * Update dependency @types/jest to v28 (#2478)
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    
    * Fix call.collectCallStats() (#2480)
    
    Regressed by #2352
    (you can just use RTCStatsReport as an iterator directly (which
    was was what that code was doing before) which uses entries(
    which gives you key/value pairs, but using forEach gives you just
    the value.
    
    * Go back to forEach in collectcallstats (#2481)
    
    Older typescript library doesn't know about .values() on the stats
    object, so it was failing in react sdk which had an older typescript.
    matrix-org/matrix-react-sdk#8935 was an
    attempt to upgrade it but did not seem to be helping on CI, despite
    being fine locally.
    
    * Update babel monorepo to v7.18.6 (#2477)
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    
    * Expose KNOWN_SAFE_ROOM_VERSION (#2474)
    
    * Fix return type on funcs in matrixClient to be optionally null (#2488)
    
    * Update pull_request.yaml (#2490)
    
    * Lock file maintenance (#2491)
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    
    * Prepare changelog for v19.0.0
    
    * v19.0.0
    
    * Resetting package fields for development
    
    * Improve VoIP integrations testing (#2495)
    
    * Remove MSC3244 support (#2504)
    
    * Actually store the identity server in the client when given as an option (#2503)
    
    * Actually store the identity server in the client when given as an option
    
    * Update requestRegisterEmailToken to a modern spec version too
    
    * Properly re-insert room ID in bundled thread relation messages from sync (#2505)
    
    Events returned by the `/sync` endpoint, including relations bundled with other events, may have their `room_id`s stripped out. This causes decryption errors if the IDs aren't repopulated.
    
    Fixes element-hq/element-web#22094.
    
    * Remove `setNow` from `realtime-callbacks.ts` (#2509)
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    * Remove dead code (#2510)
    
    * Don't crash with undefined room in `processBeaconEvents()` (#2500)
    
    * Add a basic PR checklist for all PRs (#2511)
    
    It'll be mildly annoying for core developers who have to constantly remove or edit this, but it'll also serve as a good reminder to do these things.
    
    Note that signoff is not required for core developers.
    
    * Fix tests
    
    Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
    Co-authored-by: Kerry <kerrya@element.io>
    Co-authored-by: RiotRobot <releases@riot.im>
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Co-authored-by: Michael Weimann <michaelw@matrix.org>
    Co-authored-by: texuf <texuf.eth@gmail.com>
    Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
    Co-authored-by: Travis Ralston <travisr@matrix.org>
    Co-authored-by: Faye Duxovni <fayed@element.io>
    10 people committed Jul 12, 2022
    Configuration menu
    Copy the full SHA
    544b1c6 View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2022

  1. Configuration menu
    Copy the full SHA
    e876482 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    38a6949 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2022

  1. Make SDP munging media type specific (#2526)

    * Make SDP munging media type specific
    
    We were trying to apply modifications to all media types which led
    to confusing warning messages saying opus wasn't present (when it
    was for the video stream). Make the modifications media-type specific
    to avoid this.
    
    * Make codec * mediatype into enums
    dbkr committed Jul 28, 2022
    Configuration menu
    Copy the full SHA
    9e2e144 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8ba2d25 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2022

  1. Configuration menu
    Copy the full SHA
    b711781 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2022

  1. Configuration menu
    Copy the full SHA
    22c5999 View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2022

  1. Merge changes from develop (#2563)

    * Prepare changelog for v19.2.0-rc.1
    
    * v19.2.0-rc.1
    
    * Sliding sync: add missing filters from latest MSC
    
    * Gracefully handle missing room_ids
    
    * Prepare changelog for v19.2.0
    
    * v19.2.0
    
    * Resetting package fields for development
    
    * Use EventType enum values instead of hardcoded strings (#2557)
    
    * Retry to-device messages (#2549)
    
    * Retry to-device messages
    
    This adds a queueToDevice API alongside sendToDevice which is a
    much higher-level API that adds the messages to a queue, stored in
    persistent storage, and retries them periodically. Also converts
    sending of megolm keys to use the new API.
    
    Other uses of sendToDevice are nopt converted in this PR, but could
    be later.
    
    Requires matrix-org/matrix-mock-request#17
    
    * Bump matrix-mock-request
    
    * Add more waits to make indexeddb tests pass
    
    * Switch some test expectations to queueToDevice
    
    * Stop straight away if the client has been stopped
    
    Hopefully will fix tests being flakey and logging after tests have
    finished.
    
    * Add return types & fix constant usage
    
    * Fix return type
    
    Co-authored-by: Germain <germains@element.io>
    
    * Fix return type
    
    Co-authored-by: Germain <germains@element.io>
    
    * Fix return type
    
    Co-authored-by: Germain <germains@element.io>
    
    * Stop the client in all test cases
    
    Co-authored-by: Germain <germains@element.io>
    
    * Add support for sending user-defined encrypted to-device messages (#2528)
    
    * Add support for sending user-defined encrypted to-device messages
    
    This is a port of the same change from the robertlong/group-call branch.
    
    * Fix tests
    
    * Expose the method in MatrixClient
    
    * Fix a code smell
    
    * Fix types
    
    * Test the MatrixClient method
    
    * Fix some types in Crypto test suite
    
    * Test the Crypto method
    
    * Fix tests
    
    * Upgrade matrix-mock-request
    
    * Move useRealTimers to afterEach
    
    * Remove stream-replacement (#2551)
    
    * Reintroduce setNewStream method, fix test, update yarn.lock
    
    Co-authored-by: RiotRobot <releases@riot.im>
    Co-authored-by: Kegan Dougal <kegan@matrix.org>
    Co-authored-by: Germain <germains@element.io>
    Co-authored-by: Robin <robin@robin.town>
    Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
    6 people committed Aug 4, 2022
    Configuration menu
    Copy the full SHA
    2cc51e0 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2022

  1. Configuration menu
    Copy the full SHA
    c0dacb5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    471f174 View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2022

  1. Fix return types of event sending functions (#2576)

    These had somehow got mixed up so the type check was failing.
    Nothing uses the response return type, so just return void.
    dbkr committed Aug 9, 2022
    Configuration menu
    Copy the full SHA
    88ce017 View commit details
    Browse the repository at this point in the history
  2. Add basic creation / entering tests for group calls (#2575)

    * Add basic creation / entering tests for group calls
    
    * Missing space
    
    Co-authored-by: Robin <robin@robin.town>
    
    * Assert more of the group call member event
    
    and also move call leaving to a finally so it doesn't leaving a call
    hagning if it fails.
    
    Co-authored-by: Robin <robin@robin.town>
    dbkr and robintown committed Aug 9, 2022
    Configuration menu
    Copy the full SHA
    0b8de25 View commit details
    Browse the repository at this point in the history
  3. Support nested Matrix clients via the widget API (#2473)

    * WIP RoomWidgetClient
    
    * Wait for the widget API to become ready before backfilling
    
    * Add support for sending user-defined encrypted to-device messages
    
    This is a port of the same change from the robertlong/group-call branch.
    
    * Fix tests
    
    * Emit an event when the client receives TURN servers
    
    * Expose the method in MatrixClient
    
    * Override the encryptAndSendToDevices method
    
    * Add support for TURN servers in embedded mode and make calls mostly work
    
    * Don't put unclonable objects into VoIP events
    
    RoomWidget clients were unable to send m.call.candidate events, because
    the candidate objects were not clonable for use with postMessage.
    Converting such objects to their canonical JSON form before attempting
    to send them over the wire solves this.
    
    * Fix types
    
    * Fix more types
    
    * Fix lint
    
    * Upgrade matrix-widget-api
    
    * Save lockfile
    
    * Untangle dependencies to fix tests
    
    * Add some preliminary tests
    
    * Fix tests
    
    * Fix indirect export
    
    * Add more tests
    
    * Resolve TODOs
    
    * Add queueToDevice to RoomWidgetClient
    robintown committed Aug 9, 2022
    Configuration menu
    Copy the full SHA
    3334c01 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2022

  1. Configuration menu
    Copy the full SHA
    5f5a9b1 View commit details
    Browse the repository at this point in the history
  2. Tidy up imports (#2584)

    Duplicate 'call' imports
    dbkr committed Aug 10, 2022
    Configuration menu
    Copy the full SHA
    0207431 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2022

  1. Test placing a call in a group call (#2593)

    * Test placing a call in a group call
    
    Refactors a bit of the call testing stuff
    
    Fixes element-hq/element-call#521
    
    * Unused imports
    
    * Use expect.toHaveBeenCalledWith()
    
    * Types
    
    * More types
    
    * Add comment on mock typing
    
    * Use toHaveBeenCalledWith()
    
    * Initialise groupcall & room in beforeEach
    
    * Initialise mockMediahandler sensibly
    
    * Add type params to mock
    
    * Rename mute tests
    
    * Move comment
    
    * Join / leave in parallel
    
    * Remove leftover expect
    dbkr committed Aug 16, 2022
    Configuration menu
    Copy the full SHA
    e8f682f View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2022

  1. Configuration menu
    Copy the full SHA
    c698317 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e4cf5b2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    099cac0 View commit details
    Browse the repository at this point in the history
  4. Add tests for incoming calls in group calls (#2597)

    * Add tests for incoming calls in group calls
    
    Inspiration wwlecome for the renamed describe group which we're
    really abusing for a bunch of things that happen to have the same
    dependencies.
    
    Fixes element-hq/element-call#532
    
    * Extract incoming call tests out into their own describe
    
    and get the lexicographical ordering to match who should be calling who
    
    * Trailing space
    dbkr committed Aug 17, 2022
    Configuration menu
    Copy the full SHA
    2566c40 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9589a97 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2022

  1. Configuration menu
    Copy the full SHA
    448a5c9 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2022

  1. Update lockfile (#2603)

    robintown committed Aug 19, 2022
    Configuration menu
    Copy the full SHA
    e95947d View commit details
    Browse the repository at this point in the history
  2. Add disposed to CallFeed (#2604)

    SimonBrandner committed Aug 19, 2022
    Configuration menu
    Copy the full SHA
    45e56f8 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2022

  1. Add unit tests for hangup / reject (#2606)

    * Add unit tests for hangup / reject
    
    Fixes element-hq/element-call#537
    
    * Fix some bugs where we carried on with the call after it had been ended
    dbkr committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    92cd84f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e7a7ec0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5f9369a View commit details
    Browse the repository at this point in the history
  4. Fix imports

    dbkr committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    be94f5e View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2022

  1. 1:1 screenshare tests

    dbkr committed Aug 23, 2022
    Configuration menu
    Copy the full SHA
    4a294c9 View commit details
    Browse the repository at this point in the history
  2. Revert 4a294c9

    Pushed to wrong branch
    dbkr committed Aug 23, 2022
    Configuration menu
    Copy the full SHA
    c527f85 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2022

  1. 1:1 screenshare tests (#2617)

    * 1:1 screenshare tests
    
    Fixes element-hq/element-call#548
    
    * Always hang up calls after tests
    
    to prevent hanging tests
    
    Also fix a null dereference as we may not have an invitee or opponent
    member when sending voip events if not using to-device messages.
    
    * use mockImplementationOnce
    
    Co-authored-by: Robin <robin@robin.town>
    
    * use mockImplementationOnce
    
    Co-authored-by: Robin <robin@robin.town>
    
    * Add type on mock
    
    * Add corresponding call.off
    
    * Merge enable & disable screenshare tests
    
    Co-authored-by: Robin <robin@robin.town>
    dbkr and robintown committed Aug 24, 2022
    Configuration menu
    Copy the full SHA
    9e1b126 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2022

  1. Fix ICE end-of-candidates messages (#2622)

    * Fix ICE end-of-candidates messages
    
    We were casting a POJO to an RTCIceCandidate for the dummy
    end-of-candidates candidate, but #2473
    started calling .toJSON() on these objects.
    
    Store separately whether we've seen the end of candidates rather than
    adding on a dummy candidate object.
    
    A test for this will follow, but a) I want to get this fix out and
    b) I'm currently rewriting the call test file to add typing.
    
    Fixes element-hq/element-call#553
    
    * Remove hacks for testing
    
    * Switch if branches
    dbkr committed Aug 26, 2022
    Configuration menu
    Copy the full SHA
    965f4fb View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2022

  1. Add types to the call unit test suites (#2627)

    * Add types to the call unit test suites
    
    Still involves quite a few casts to any unfortunately as it turns
    out we access quite a few private methods on the Call class in these
    tests.
    
    * Remove commented line & use better expect syntax
    
    * Replace more calls.length with toHaveBeenCalled
    
    * Remove mistakenly added id field
    dbkr committed Aug 31, 2022
    Configuration menu
    Copy the full SHA
    d5b82e3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    db32420 View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2022

  1. Add GroupCallEventHandlerEvent.Room (#2631)

    * Add GroupCalEventHandlerEvent.Room
    
    Emit an event when the group call event handler has processed all
    pending group calls.
    
    * Remove unused return value
    
    * Add void return type
    
    Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
    dbkr and SimonBrandner committed Sep 1, 2022
    Configuration menu
    Copy the full SHA
    0981652 View commit details
    Browse the repository at this point in the history
  2. Wait for client to start syncing before making group calls (#2632)

    As hopefully explained in comment
    
    Fixes #2589
    dbkr committed Sep 1, 2022
    Configuration menu
    Copy the full SHA
    d656b84 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2022

  1. Test disabling screenshare in group calls (#2634)

    Also add a few more types
    dbkr committed Sep 2, 2022
    Configuration menu
    Copy the full SHA
    40ecfa7 View commit details
    Browse the repository at this point in the history
  2. Refactor the group call placing calls test (#2636)

    Add some types & use mock-typed versions directly - it's clearer which
    client we're making assertions about.
    dbkr committed Sep 2, 2022
    Configuration menu
    Copy the full SHA
    0d6a93b View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2022

  1. Test that calls in a group call are retried (#2637)

    * Test that calls in a group call are retried
    
    * Add new flushpromises file
    dbkr committed Sep 5, 2022
    Configuration menu
    Copy the full SHA
    c78631b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    aca51fd View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2022

  1. Add client.waitUntilRoomReadyForGroupCalls() (#2641)

    See comment, although this still feels like a poor solution to the
    problem. Might be better if the js-sdk processed everything internally
    before emitting the 'Room' event (or indeed before joinRoom resolved)
    so the app knows everything is ready when it gets that event.
    dbkr committed Sep 6, 2022
    Configuration menu
    Copy the full SHA
    98d119d View commit details
    Browse the repository at this point in the history
  2. Log ID instead of object (#2643)

    as otherwise it recurses and logs the entire client + store
    dbkr committed Sep 6, 2022
    Configuration menu
    Copy the full SHA
    fa6f70f View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2022

  1. MediaHandler Tests (#2646)

    * MediaHandler Tests, part 1
    
    Haven't got through all the methods yet
    
    For element-hq/element-call#544
    
    * Didn't need these in the end
    
    * Rest of the media handler tests
    
    * getUserMediaStream takes args
    
    * use mockResolvedValue
    
    * Add .off & reuse the mock we already made
    
    * Re-use mock handler again
    
    * Move updateLocalUsermediaStream to beforeEach
    
    * add .off
    
    * Add types
    
    * Add more .offs
    dbkr committed Sep 7, 2022
    Configuration menu
    Copy the full SHA
    83c8480 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2022

  1. Configuration menu
    Copy the full SHA
    d950cda View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    60e175a View commit details
    Browse the repository at this point in the history
  3. GroupCallEventhandler Tests (#2654)

    * GroupCallEventhandler Tests
    
    Fixes element-hq/element-call#545
    
    * Fix long line
    
    * Fix strict mode error
    
    Co-authored-by: Robin <robin@robin.town>
    
    * Fix typo
    
    Co-authored-by: Robin <robin@robin.town>
    
    Co-authored-by: Robin <robin@robin.town>
    dbkr and robintown committed Sep 8, 2022
    Configuration menu
    Copy the full SHA
    aebe26d View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2022

  1. Misc fixes for group call widgets (#2657)

    * Fix GroupCallEventHandler in matryoshka mode
    
    GroupCallEventHandler needs to see a 'Syncing' event before it starts handling any events, so emit one immediately in matryoshka mode.
    
    * Implement joinRoom on RoomWidgetClient
    
    Element Call has undergone some changes to how it loads rooms, meaning that this method must be implemented for the app to work in matryoshka mode.
    
    * Allow audio and video to be muted before local call feed exists
    
    This is desirable for the Element Web integration of Element Call, because we need to be able to mute our devices before ever joining the call or creating a call feed, if the users requests it.
    
    * Fix a strict mode error
    robintown committed Sep 9, 2022
    Configuration menu
    Copy the full SHA
    36a6117 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    02f6a09 View commit details
    Browse the repository at this point in the history
  3. Test fallback screensharing (#2659)

    * Test fallback screensharing
    
    * Test replacetrack is called
    
    * Unused import
    
    * Return type
    
    * Fix other test after new track IDs
    dbkr committed Sep 9, 2022
    Configuration menu
    Copy the full SHA
    00629e6 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2022

  1. Add test for removing RTX codec (#2660)

    * Add test for removing RTX codec
    
    * Use mocked to cast
    dbkr committed Sep 12, 2022
    Configuration menu
    Copy the full SHA
    3711899 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    276849f View commit details
    Browse the repository at this point in the history
  3. Fix import in failed merge

    dbkr committed Sep 12, 2022
    Configuration menu
    Copy the full SHA
    3e1e99f View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2022

  1. Fix race in creating calls (#2662)

    * Fix race in creating calls
    
    We ran an async function between checking for an existing call and
    adding the new one to the map, so it would have been possible to
    start creating another call while we were placing the first call.
    This changes the code to add the call to the map as soon as we've
    created it.
    
    Also adds more logging.
    
    * Switch to logger.debug
    
    * Fix unit tests
    dbkr committed Sep 13, 2022
    Configuration menu
    Copy the full SHA
    41cee6f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c605310 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2022

  1. Add tests for call answering / candidate sending (#2666)

    * Add tests for call answering / candidate sending
    
    * Remopve unused stuff
    
    * Capitalise
    
    Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    * Capitalisation
    
    * Capitalise
    
    * Fix typescript strict error
    
    * Actually fix TS strict error(?)
    
    * TS strict mode try 3
    
    Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
    dbkr and SimonBrandner committed Sep 14, 2022
    Configuration menu
    Copy the full SHA
    586a313 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c05cb3a View commit details
    Browse the repository at this point in the history
  3. Unused imports from merge

    dbkr committed Sep 14, 2022
    Configuration menu
    Copy the full SHA
    f52c5eb View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2022

  1. Configuration menu
    Copy the full SHA
    6fc9827 View commit details
    Browse the repository at this point in the history
  2. Target widget actions at a specific room (#2670)

    Otherwise, the RoomWidgetClient class can end up accidentally sending and receiving events from rooms it didn't intend to, if it's an always-on-screen widget.
    robintown committed Sep 16, 2022
    Configuration menu
    Copy the full SHA
    de69445 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f41b770 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2022

  1. Add a few new GroupCall tests (#2678)

    Co-authored-by: Robin <robin@robin.town>
    SimonBrandner and robintown committed Sep 20, 2022
    Configuration menu
    Copy the full SHA
    c400dd4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    72b89fd View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2022

  1. Configuration menu
    Copy the full SHA
    72a6ec0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2a0ffe1 View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2022

  1. Merge remote-tracking branch 'upstream/develop' into SimonBrandner/ta…

    …sk/gc-merge
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    SimonBrandner committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    6f7a72d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4625ed7 View commit details
    Browse the repository at this point in the history
  3. Add MatrixClient group call tests (#2692)

    Co-authored-by: Robin <robin@robin.town>
    SimonBrandner and robintown committed Sep 23, 2022
    Configuration menu
    Copy the full SHA
    a2981ef View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2022

  1. Add CallEventHandler tests (#2696)

    * Add `CallEventHandler` tests
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    * Avoid tests hanging
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    SimonBrandner committed Sep 26, 2022
    Configuration menu
    Copy the full SHA
    af6f9d4 View commit details
    Browse the repository at this point in the history
  2. Add more MatrixCall tests (#2697)

    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    
    Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
    SimonBrandner committed Sep 26, 2022
    Configuration menu
    Copy the full SHA
    ab39ee3 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2022

  1. Fix ICE restarts (#2702)

    We didn't reset the 'seen end of candidates' flag when doign an ICE
    restart, so we would have ignored all locally gathered candidates
    on an ICE restart.
    dbkr committed Sep 27, 2022
    Configuration menu
    Copy the full SHA
    e48d919 View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2022

  1. Configuration menu
    Copy the full SHA
    9355177 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2022

  1. Merge pull request #2712 from robintown/merge

    Merge develop
    robintown committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    ce3b72c View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2022

  1. Don't block muting/unmuting on network requests

    (PTT mode will still block on them, as expected)
    robintown committed Oct 13, 2022
    Configuration menu
    Copy the full SHA
    c0a5299 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #2754 from robintown/unblock-mute

    Don't block muting/unmuting on network requests
    robintown committed Oct 13, 2022
    Configuration menu
    Copy the full SHA
    d521f97 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2022

  1. Configuration menu
    Copy the full SHA
    3c33c42 View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2022

  1. Configuration menu
    Copy the full SHA
    dfe535b View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2022

  1. Fix screenshare failing after several attempts (#2771)

    * Fix screenshare failing after several attempts
    
    Re-use any existing transceivers when screen sharing. This prevents
    transceivers accumulating and making the SDP too big: see linked bug.
    
    This also switches from `addTrack()` to `addTransceiver ()` which is
    not that large of a change, other than having to explicitly find the
    transceivers after an offer has arrived rather than just adding tracks
    and letting WebRTC take care of it.
    
    Fixes element-hq/element-call#625
    
    * Fix tests
    
    * Unused import
    
    * Use a map instead of an array
    
    * Add comment
    
    * more comment
    
    * Remove commented code
    
    * Remove unintentional debugging
    
    * Add test for screenshare transceiver re-use
    
    * Type alias for transceiver map
    dbkr committed Oct 19, 2022
    Configuration menu
    Copy the full SHA
    c57c897 View commit details
    Browse the repository at this point in the history
  2. Fix connectivity regressions (#2780)

    * Fix connectivity regressions
    
    Switches back to addTrack, digging the transceivers out manually
    to re-use, because the only way to group tracks into streams re-using
    trasceivers from the offer is to use setStreams which FF doesn't
    implement.
    
    * Remove comments
    dbkr committed Oct 19, 2022
    Configuration menu
    Copy the full SHA
    5a07873 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2022

  1. Add throwOnFail to groupCall.setScreensharingEnabled (#2787)

    * Add throwOnFail to groupCall.setScreensharingEnabled
    
    For element-hq/element-call#652
    
    * Update mediaHandler.ts
    dbkr committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    eddd0ca View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8cd5aac View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    193d8a4 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #2797 from robintown/matryoshka-events

    Add event and message capabilities to RoomWidgetClient
    robintown committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    35f697a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b4ab7fc View commit details
    Browse the repository at this point in the history
  6. Merge pull request #2800 from matrix-org/dbkr/gcmerge_oct22_3

    Merge develop into group-call branch
    dbkr committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    450ff00 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2022

  1. TS strict mode compliance in the call / groupcall code (#2805)

    * TS strict mode compliance in the call / groupcall code
    
    * Also the test
    
    * Fix initOpponentCrypto
    
    to not panic if it doesn't actually need to init crypto
    dbkr committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    c374ba2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    384116c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0d211df View commit details
    Browse the repository at this point in the history
  4. Fix types

    dbkr committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    0f10122 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #2807 from matrix-org/dbkr/gcmerge_26oct22

    Merge changes from develop again
    dbkr committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    4cd50e4 View commit details
    Browse the repository at this point in the history
  6. More TS strict mode fixes

    dbkr committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    5679c86 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    87115d1 View commit details
    Browse the repository at this point in the history
  8. Merge pull request #2808 from matrix-org/dbkr/groupcall_more_strict

    More TS strict mode fixes
    dbkr committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    13c751c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    dbdaa15 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2022

  1. A few more strict mode fixes

    dbkr committed Oct 27, 2022
    Configuration menu
    Copy the full SHA
    d979302 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #2816 from matrix-org/dbkr/groupcall_more_strict

    A few more strict mode fixes
    dbkr committed Oct 27, 2022
    Configuration menu
    Copy the full SHA
    77ef855 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9ff6b35 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4c6e1e5 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #2815 from robintown/keepalive-leave

    Let leave requests outlive the window
    robintown committed Oct 27, 2022
    Configuration menu
    Copy the full SHA
    849e3d6 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2022

  1. Configuration menu
    Copy the full SHA
    f0d4ef7 View commit details
    Browse the repository at this point in the history
  2. Resolve races between initLocalCallFeed and leave

    Unfortunately there are still other methods that could race with leave and result in broken group call state, such as enter and terminate. For the future, should consider writing a more careful specification of how the whole group call state machine is meant to work.
    robintown committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    b9cccf9 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #2826 from robintown/init-leave-race

    Resolve races between `initLocalCallFeed` and `leave`
    robintown committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    94072a0 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2022

  1. Configuration menu
    Copy the full SHA
    6729c7d View commit details
    Browse the repository at this point in the history
  2. Add public/private modifiers

    dbkr committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    cb8123d View commit details
    Browse the repository at this point in the history
  3. Add more access modifiers

    dbkr committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    476f6f7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7ec726e View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2022

  1. Configuration menu
    Copy the full SHA
    7fb313c View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2022

  1. Configuration menu
    Copy the full SHA
    32d535c View commit details
    Browse the repository at this point in the history
  2. Merge pull request #2844 from robintown/dont-remove-self

    Don't remove our own member for a split second when entering a call
    robintown committed Nov 3, 2022
    Configuration menu
    Copy the full SHA
    8235b65 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2022

  1. Configuration menu
    Copy the full SHA
    fff4cda View commit details
    Browse the repository at this point in the history
  2. Fix strict mode errors

    dbkr committed Nov 4, 2022
    Configuration menu
    Copy the full SHA
    2dda837 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #2854 from matrix-org/dbkr/gcmerge_20221104

    Merge changes from develop
    dbkr committed Nov 4, 2022
    Configuration menu
    Copy the full SHA
    c8dc71e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4f63ff2 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2022

  1. Configuration menu
    Copy the full SHA
    f09853c View commit details
    Browse the repository at this point in the history