fix: exclude video calls from Call Pull list (WT-1618)#1443
Draft
SERDUN wants to merge 1 commit into
Draft
Conversation
Pulling a video call offers an audio-only INVITE; the server answer keeps the original video m-line, the offer/answer m-line layout no longer matches and setRemoteDescription rejects it, so the pulled call fails. Thread a nullable has_video flag from the signaling dialog_info through the model and the drift store, and exclude known-video dialogs from the pull list (DialogInfo.pullable). The flag is nullable: until the backend reports media type it stays null and behaviour is unchanged (audio pull keeps working); once the backend sends has_video=true for video dialogs they drop out of the list automatically, with no further client change. - SignalingDialogInfo: parse/serialize has_video - DialogInfo: hasVideo field + pullable gate - app_database: dialog_info.has_video column + schema migration v24 - tests: signaling parsing, pullable gate
762f567 to
b9ce1cb
Compare
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.
Overview
Pulling a video call via Call Pull crashes: the pull INVITE offers audio-only, the server answer keeps the original video m-line, the offer/answer m-line layout no longer matches and
setRemoteDescriptionrejects it, so the pulled call fails. Reproduced on-device (Android):setRemoteDescription failed: The order of m-lines in answer doesn't match order in offer. Rejecting answer.The client cannot currently tell audio from video before pulling, because
dialog_infocarries no media-type flag. This PR adds the client half of the fix, staged to activate when the backend (WT-1617) starts reporting media type.Changes
SignalingDialogInfo: parse/serialize a nullablehas_videofromdialog_info.DialogInfo:hasVideofield;pullablenow excludes dialogs withhasVideo == true.app_database:dialog_info.has_videocolumn + drift schema migration v24 (the Call Pull cubit reads dialogs from the drift store, so the flag must survive the DB round-trip).hasVideothrough the signaling and drift mappers.Behaviour
hasVideois nullable on purpose:So this is a no-op until the backend ships
has_video; once WT-1617 sendshas_video=truefor video dialogs they drop out of the list automatically with no further client change. Depends on WT-1617 to activate.