LGTM3

On Tuesday, September 29, 2026 at 3:58:41 PM UTC+2 Philip Jägenstedt wrote:

> LGTM2 to proceed with a flag and that shim linked from release notes.
>
> On Mon, Sep 21, 2026 at 12:05 PM Guido Urdaneta <[email protected]> wrote:
>
>>
>>
>> On Wed, Sep 16, 2026 at 5:13 PM Philip Jägenstedt <[email protected]> 
>> wrote:
>>
>>> First a point of clarification, the API is *createDTMFSender*, 
>>> not createDTMF, right?
>>>
>>>
>> Yes, it is *createDTMFSender*. Sorry for that mistake.
>>
>>  
>>
>>> Here's the code snipped from https://github.com/webrtc/samples/pull/873:
>>>
>>> ```js
>>> function enableDtmfSender() {
>>>   dtmfStatusDiv.textContent = 'DTMF activated';
>>>   if (localStream !== null) {
>>>     var localAudioTrack = localStream.getAudioTracks()[0];
>>>     dtmfSender = pc1.createDTMFSender(localAudioTrack);
>>>     trace('Created DTMFSender:\n');
>>>     dtmfSender.ontonechange = dtmfOnToneChange;
>>>   } else {
>>>     trace('No local stream to create DTMF Sender\n');
>>>   }
>>> }
>>> ```
>>>
>>> If there's an old migration guide somewhere that can be referenced, that 
>>> would be good enough I think. Failing that, can the guidance be written in 
>>> a few sentences and included in the release blog post?
>>>
>>>
>> In addition to the documents Philipp Hancke referenced, we can add the 
>> following shim to the notes, which should work in the vast majority of cases
>> (tested with Chrome, Chrome without createDTMFSender and Firefox). Note 
>> that the SyntaxError exceptions look a bit weird, but they match Chromium's 
>> C++ implementation 
>> <https://crsrc.org/c/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc;l=2526>
>> .
>>
>> if (window.RTCPeerConnection && 
>> !RTCPeerConnection.prototype.createDTMFSender && window.RTCRtpSender && 
>> 'dtmf' in RTCRtpSender.prototype) {
>>   RTCPeerConnection.prototype.createDTMFSender = function(track) {
>>     if (!(track instanceof MediaStreamTrack)) {
>>       throw new TypeError(
>>         "Failed to execute 'createDTMFSender' on 'RTCPeerConnection': 
>> parameter 1 is not of type 'MediaStreamTrack'."
>>       );
>>     }
>>     if (this.signalingState === 'closed') {
>>       throw new DOMException(
>>         "Failed to execute 'createDTMFSender' on 'RTCPeerConnection': The 
>> RTCPeerConnection's signalingState is 'closed'.",
>>         'InvalidStateError'
>>       );
>>     }
>>     if (track.kind !== 'audio') {
>>       throw new DOMException(
>>         "Failed to execute 'createDTMFSender' on 'RTCPeerConnection': 
>> track.kind is not 'audio'.",
>>         'SyntaxError'
>>       );
>>     }
>>     const sender = this.getSenders().find(s => s.track === track);
>>     if (!sender) {
>>       throw new DOMException(
>>         "Failed to execute 'createDTMFSender' on 'RTCPeerConnection': No 
>> RTCRtpSender is available for the track provided.",
>>         'SyntaxError'
>>       );
>>     }
>>     if (!sender.dtmf) {
>>       throw new DOMException(
>>         "Failed to execute 'createDTMFSender' on 'RTCPeerConnection': 
>> Unable to create DTMF sender for track",
>>         'SyntaxError'
>>       );
>>     }
>>     return sender.dtmf;
>>   };
>> }
>>
>>
>>
>>  
>>
>>> On Wed, Sep 16, 2026 at 4:44 PM Rick Byers <[email protected]> wrote:
>>>
>>>> Do we have any published guidance for developers relying on this API 
>>>> today? Like, to what extent does a library / API exist somewhere as a 
>>>> drop-in replacement? From a quick search, does RTCDTMFSender 
>>>> <https://developer.mozilla.org/en-US/docs/Web/API/RTCDTMFSender> 
>>>> accomplish 
>>>> all the same things this old API did, and so makes for an easy drop-in 
>>>> replacement? If you were a developer for one such call center app and 
>>>> started getting these exceptions with no idea what they meant, what 
>>>> resources would you likely find in a web search?
>>>>
>>>> I'm definitely supportive of removing this non-standard API, we just 
>>>> need to show we've done what we reasonably can to make it easy for people 
>>>> to understand and migrate to standards-based alternatives.
>>>>
>>>> Thanks,
>>>>    Rick
>>>>
>>>> On Mon, Sep 14, 2026 at 5:16 PM Alex Russell <[email protected]> 
>>>> wrote:
>>>>
>>>>> LGTM1 contingent on Philip's suggestion of a feature flagged rollout 
>>>>> and the requested reviews.
>>>>>
>>>>> On Wednesday, September 9, 2026 at 8:22:41 AM UTC-7 Philip Jägenstedt 
>>>>> wrote:
>>>>>
>>>>>> Can you upgrade the chromestatus entry to the "ship" state and fill 
>>>>>> out all of the reviews, notably the enterprise review chip?
>>>>>>
>>>>>> The use counter is at 
>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/1642 
>>>>>> and is around 0.001-0.003%.
>>>>>>
>>>>>> The compat risk is that code that calls pc.createDTMFSender() would 
>>>>>> start throwing an exception, and the size of the breakage depends on 
>>>>>> whether the exception is caught and where in the code it happens.
>>>>>>
>>>>>> Given the very low usage it doesn't seem helpful to have a 
>>>>>> deprecation period first, but it will be important to use a runtime flag 
>>>>>> for this so that can be turned back on with Finch if there's a problem.
>>>>>>
>>>>>> On Wed, Sep 9, 2026 at 1:19 PM 'Philipp Hancke' via blink-dev <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>   https://github.com/webrtc/samples/pull/873
>>>>>>> removed the sample for createDTMF nine years ago. Anyone who has not 
>>>>>>> updated...
>>>>>>> The usual suspects (sipjs, jssip and twilio's JS) prefer the spec 
>>>>>>> variant so this should be safe.
>>>>>>>
>>>>>>> Compared to setRemoteDescription the usage of DTMF is marginal:
>>>>>>>   
>>>>>>> https://webrtchacks.github.io/chromestatus/?buckets=1642,2381,3451&start=2026-01-01
>>>>>>> The RTCRtpSender.dtmf isn't clearly winning but at least it is ahead.
>>>>>>>
>>>>>>> The use counters can not tell you about callcenters running 
>>>>>>> Chromebooks and still using the chrome-only method though.
>>>>>>>
>>>>>>> Am Mi., 9. Sept. 2026 um 12:52 Uhr schrieb Yoav Weiss (@Shopify) <
>>>>>>> [email protected]>:
>>>>>>>
>>>>>>>> Generally it'd be good to expand a bit about the compatibility risk 
>>>>>>>> here. It'd odd that the section is missing.
>>>>>>>>
>>>>>>>> On Wednesday, September 9, 2026 at 12:51:34 PM UTC+2 Yoav Weiss 
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Are there any usecounters indicating usage? (Or another method of 
>>>>>>>>> estimating potential breakage)
>>>>>>>>>
>>>>>>>>> On Friday, September 4, 2026 at 12:21:47 PM UTC+2 Chromestatus 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> *Contact emails*
>>>>>>>>>> [email protected]
>>>>>>>>>>
>>>>>>>>>> *Explainer*
>>>>>>>>>> *No information provided*
>>>>>>>>>>
>>>>>>>>>> *Specification*
>>>>>>>>>> https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection 
>>>>>>>>>>
>>>>>>>>>> *Summary*
>>>>>>>>>> This is a legacy and obsolete method that does not exist in the 
>>>>>>>>>> WebRTC spec and the only major engine implementing it is Blink. 
>>>>>>>>>> Removing it 
>>>>>>>>>> is part of Interop 2026. 
>>>>>>>>>>
>>>>>>>>>> *Blink component*
>>>>>>>>>> Blink>WebRTC>PeerConnection 
>>>>>>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EWebRTC%3EPeerConnection%22>
>>>>>>>>>>
>>>>>>>>>> *Web Feature ID*
>>>>>>>>>> webrtc <https://webstatus.dev/features/webrtc> 
>>>>>>>>>>
>>>>>>>>>> *Motivation*
>>>>>>>>>> This is a legacy and obsolete method that does not exist in the 
>>>>>>>>>> WebRTC spec and the only major engine implementing it is Blink. 
>>>>>>>>>> Removing it 
>>>>>>>>>> is part of Interop 2026. 
>>>>>>>>>>
>>>>>>>>>> *Initial public proposal*
>>>>>>>>>> *No information provided*
>>>>>>>>>>
>>>>>>>>>> *Goals for experimentation*
>>>>>>>>>> None
>>>>>>>>>>
>>>>>>>>>> *Debuggability*
>>>>>>>>>> N/A 
>>>>>>>>>>
>>>>>>>>>> *Requires code in //chrome?*
>>>>>>>>>> False
>>>>>>>>>>
>>>>>>>>>> *Tracking bug*
>>>>>>>>>> http://crbug.com/553274713
>>>>>>>>>>
>>>>>>>>>> *Measurement*
>>>>>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/1642
>>>>>>>>>>
>>>>>>>>>> *Estimated milestones*
>>>>>>>>>> Shipping on desktop 160 
>>>>>>>>>> Shipping on Android 160 
>>>>>>>>>> Shipping on WebView 160 
>>>>>>>>>>
>>>>>>>>>> *Link to entry on the Chrome Platform Status*
>>>>>>>>>>
>>>>>>>>>> https://chromestatus.com/feature/5160724576993280?gate=5985122343059456
>>>>>>>>>>
>>>>>>>>>> This intent message was generated by Chrome Platform Status 
>>>>>>>>>> <https://chromestatus.com>. 
>>>>>>>>>>
>>>>>>>>> -- 
>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>> Groups "blink-dev" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>> send an email to [email protected].
>>>>>>>> To view this discussion visit 
>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/af35054b-bf48-43fd-9bcb-bb6a6cfc5682n%40chromium.org
>>>>>>>>  
>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/af35054b-bf48-43fd-9bcb-bb6a6cfc5682n%40chromium.org?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "blink-dev" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to [email protected].
>>>>>>>
>>>>>> To view this discussion visit 
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADxkKiJa6SqiyekJvCXw8qWZrn-O5KYcDnhsLGHvbT1URardHA%40mail.gmail.com
>>>>>>>  
>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADxkKiJa6SqiyekJvCXw8qWZrn-O5KYcDnhsLGHvbT1URardHA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "blink-dev" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> To view this discussion visit 
>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/87d9ae6f-ec0e-40ec-83d5-af43a5956f22n%40chromium.org
>>>>>  
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/87d9ae6f-ec0e-40ec-83d5-af43a5956f22n%40chromium.org?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/237cf204-b7d9-49b6-909d-b0d2afa41ea1n%40chromium.org.

Reply via email to