Skip to content

fix: keep DTMF senders alive and observers of other wrappers registered - #458

Merged
devopvoid merged 1 commit into
mainfrom
fix/dtmf-observer-lifecycle
Oct 28, 2026
Merged

devopvoid merged 1 commit into
mainfrom
fix/dtmf-observer-lifecycle

Conversation

@devopvoid

Copy link
Copy Markdown
Owner
  • getDtmfSender() handed out a pointer it held no reference on, so using the DTMF sender after the connection had closed and the RTCRtpSender was disposed crashed the VM. The Java object now holds a reference, released by the new RTCDtmfSender.dispose().
  • Unregistering or disposing one wrapper of a DTLS transport, sender, receiver or DTMF sender removed the observer another wrapper of the same native object had registered since. A process-wide registry now records which observer is registered, and a wrapper only unregisters its own.

getDtmfSender() handed out a pointer it held no reference on, so using
the DTMF sender after the connection had closed and the RTCRtpSender was
disposed crashed the VM. The Java object now holds a reference, released
by the new RTCDtmfSender.dispose().

Unregistering or disposing one wrapper of a DTLS transport, sender,
receiver or DTMF sender removed the observer another wrapper of the same
native object had registered since. A process-wide registry now records
which observer is registered, and a wrapper only unregisters its own.
@devopvoid
devopvoid merged commit ecdd3e0 into main Oct 28, 2026
25 checks passed
@devopvoid
devopvoid deleted the fix/dtmf-observer-lifecycle branch October 28, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant