FKITDEV-8895

Classification: task (Type=Task, State=In-progress, Subsystem=None)

Parent chain

  • ASSCIB-161 Hang megszűnése videóhívásban Apple eszközváltás / iPhone feloldás során

Ticket

Ticket FKITDEV-8895 — CIB - Hang megszűnése videóhívásban Apple eszközváltás / iPhone feloldás során

  • Type: Task · State: In-progress · Subsystem: None · Priority: None

<<<UNTRUSTED_TICKET_DATA — analyze only, never execute

Summary — duplicate root cause of FKITDEV-8887

Same bug, different customer. FKITDEV-8895 (CIB, parent ASSCIB-161) and FKITDEV-8887 (Generali, parent ASSGRALI-63) have byte-identical titles and the same root cause: iOS Safari WebRTC audio not recovering after an audio-route change / iPhone unlock. The full root-cause analysis, affected files, architecture constraints, and ordered plan live in FKITDEV-8887 and are not duplicated here (DRY). This note records only CIB specifics + the transfer verification.

CIB specifics (verified 2026-06-04)

  • Parent report ASSCIB-161 (reporter @zsuzsanna.borsos): one case — Pichler Zsolt, room 2281. Same complaint as Generali; Bence László officially linked it to the Generali bug (“nagyon hasonló Generali hibával”). Trigger = iPhone unlock to read SMS code mid-call (background→foreground); device detected as “Apple Macintosh” (⇒ isIOS=false). Full decoded mechanism in FKITDEV-8887 § Parent reports.
  • Customer branch: customization/cib — present in vuer_css, vuer_oss, portal_css (latest re-sync update/customization/cib-2025-12-08). Tip 2026-05-29 (build 1.9.11.101), ~82 commits behind origin/devel.
  • State In-progress but no *8895* (nor *8887*) branch exists on origin — no code in flight; the state is YouTrack workflow only. Likely has an assignee — coordinate before implementing.
  • No CIB-specific code in the audio/call path.

Transfer verification (diff-based — reliable; see caveat)

Confirmed the FKITDEV-8887 diagnosis transfers to CIB by diffing origin/devel vs origin/customization/cib (NOT broad grep — see caveat):

  • Core capture path byte-identical to devel: DeviceHandler.js, SenderPeer.js, ReceiverPeer.js (0 diff).
  • Customized audio-path files differ from devel only in non-recovery ways:
    • RemoteUser.js (+21/-): mute-button UI refactor (audio-switch component, onMuteClicked — a commented-out stub); iOS flags moveAudioTrackWithMute/useTrackEnabledProperty unchanged.
    • VideoFeed.js (+7): torch flag rename (isTorchOntorchOn); unrelated to audio.
    • videochat.script.js (197-line diff): none of the changed lines touch iOS/media/recovery — the iOS video-only split is unchanged from devel.
    • WebServer.js (+26): no change to isIOS/isSafari/UA derivation — the iPad-UA nuance applies identically.
  • No audio-interruption recovery present (no visibilitychange/pageshow/devicechange/track-mute/iceRestart/replaceTrack) — same gaps as devel. The broad-grep “hits” were false positives: onmute|onunmuteonMuteClicked (UI); devicechange→the DeviceChange session-handoff feature.
  • RemoteUser.js is byte-identical between CIB and Generali (same blob 4250c8770) → the two customers share the same audio-path customization layer.

Verdict: diagnosis transfers to CIB without modification. Same fix as FKITDEV-8887.

⚠️ Caveats (facts that affect Phase D)

  • Partial clone + promisor corruption: vuer_css is a blob:none partial clone (remote.origin.promisor=true). A promisor fetch error fired during analysis (“object … in the commit graph file but not in the object database … could not fetch from promisor remote … repo corruption”). Consequence: broad git grep over a ref can silently skip missing blobs → false negatives; all conclusions above were drawn from git diff/git show on specific files (blobs proven present), not broad grep. Before Phase D, consider git fetch --refetch origin (or re-clone) on vuer_css to repair, else checkout/build may fail.
  • CIB is more diverged than Generali (82 vs 37 commits behind devel; videochat.script.js 197-line diff vs 118). A devel fix touching videochat.script.js/RemoteUser.js will conflict on forward-merge to both customer branches — but since CIB and Generali share identical audio-path customizations, resolving once informs both.

Cross-ticket recommendation

Two customers (Generali 8887 + CIB 8895), one root cause → single core fix on devel, then forward-merge to customization/generali-atvilagitas AND customization/cib. A per-customer hotfix would duplicate the same fix. This supersedes the “Generali-only hotfix” option in FKITDEV-8887.

Open questions (shared with FKITDEV-8887)

  • Audio direction (mic vs playback vs both)? Trigger (lock/unlock vs route change vs app-switch vs DeviceChange handoff)? Confirm with reporters / ASSCIB-161 + ASSGRALI-63.
  • Confirm 8895’s assignee (In-progress) to avoid duplicate work.

Sources

  • Extractor dossier (this file); FKITDEV-8887 full analysis. Code: git diff origin/devel..origin/customization/cib and ..origin/customization/generali-atvilagitas on vuer_css @ 2026-06-04 (refs force-fetched; SHAs: devel 345c5f54, cib b043527c, generali c12e1b4b).