Regression: No audio when call comes from Skype/IP phone#24602
Merged
Regression: No audio when call comes from Skype/IP phone#24602
Conversation
Description : The audio was not rendered because of re-rendering of react element based on queueCounter and roomInfo. This causes the dom to re-render when call gets accepted because after accepting call, queueCounter changes. The audio element gets recreated. But VoIP user probably holds the old one. The behaviour is not predictable when such case happens. If everything gets cleanly setup, even if the audio element goes headless, it still continues to play the remote audio. But in other cases, it is unreferenced the one on dom has its srcObject as null. This causes no audio. This fix provides a way to re-initialise the rendering elements in VoIP user and calls this function on useEffect() if the re-render has happen.
|
This pull request introduces 1 alert when merging 378bacb into 8242369 - view on LGTM.com new alerts:
|
KevLehman
approved these changes
Feb 24, 2022
gabriellsh
added a commit
that referenced
this pull request
Feb 28, 2022
…age-template-2 * 'develop' of github.com:RocketChat/Rocket.Chat: (61 commits) Regression: Server crashing if Voip credentials are invalid (#24646) Regression: Extension List panel UI not aligned with designs (#24645) Regression: Queue counter aggregator for incoming/hanged calls (#24635) Regression: Fix double value on holdTime and empty msg on last message (#24630) Regression: If Asterisk suddenly goes down, server has no way to know. Causes server to get stuck. Needs restart (#24624) Regression: Prevent connect to asterisk when VoIP is disabled (#24601) Regression: Encode registration info as JWT when signing key is provided (#24626) Regression: Fix time fields and wrap up in Voip Room Contexual bar (#24625) Regression: Fix in-correct room status shown to agents (#24592) Regression: Do not show toast on incoming voip calls (#24619) Regression: Fix incoming voip call ringtone is not ringing (#24616) Regression: Mark all rooms as read modal closing instantly. (#24610) Regression: Fix translations for call started message (#24615) Regression: Bunch of settings fixes for VoIP (#24594) Regression: Admin Sidebar colors inverted (#24609) Regression: No audio when call comes from Skype/IP phone (#24602) Regression: Fixes in Voice Contextual Bar and Directory (#24596) Regression: Fix time format on Voip system messages (#24603) Regression: VoIP service button displayed when VoIP is disabled (#24598) Add support to namespace within micro services (#24581) ...
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed changes (including videos or screenshots)
The audio was not rendered because of re-rendering of react element based on
queueCounter and roomInfo. queueCounter and roomInfo cause the dom to re-render when call gets accepted
because after accepting call, queueCounter changes or a room gets created.
The audio element gets recreated. But VoIP user probably holds the old one.
The behaviour is not predictable when such case happens. If everything gets cleanly setup,
even if the audio element goes headless, it still continues to play the remote audio.
But in other cases, it is unreferenced the one on dom has its srcObject as null.
This causes no audio.
This fix provides a way to re-initialise the rendering elements in VoIP user
and calls this function on useEffect() if the re-render has happen.
Issue(s)
https://app.clickup.com/t/22hy1k4
Steps to test or reproduce
The issue is not consistently reproduced. Usually it is difficult to reproduce on local setup. It does not happen on Safari if the browser is refreshed for every call. But the reproducibility is > 40%.
Further comments
This reloading of DOM happens for room creation as well. But the problem is not that significant.