Skip to content

Bug: Media bridge uses stale pre-existing transceiver tracks instead of live Track events #127

@davidcforbes

Description

@davidcforbes

Description

Calls sometimes have one-way or no audio because bridge_pcs() eagerly starts forwarding from pre-existing transceiver tracks that can become stale.

Root Cause

bridge_pcs() in media_bridge.rs starts forward_track forwarders from pre-existing transceivers found at bridge startup. These tracks can become stale after the PeerConnection processes internal events, resulting in no audio being forwarded. The Track events from pc.recv() carry live track instances and fire almost immediately.

Fix

Log pre-existing transceivers but do not start forwarders from them. Wait for Track events instead, falling back to pre-existing transceivers only after a 200ms timeout if no Track events fire.

File: src/proxy/proxy_call/media_bridge.rs

Fix commit: davidcforbes/rustpbx@9a8fff5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions