122 lines
4.3 KiB
Text
122 lines
4.3 KiB
Text
Coverage is based on the following editor draft:
|
|
https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html
|
|
|
|
7. insertDTMF
|
|
|
|
[Trivial]
|
|
- The tones parameter is treated as a series of characters.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
- The characters 0 through 9, A through D, #, and * generate the associated
|
|
DTMF tones.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
- The characters a to d MUST be normalized to uppercase on entry and are equivalent
|
|
to A to D.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
- As noted in [RTCWEB-AUDIO] Section 3, support for the characters 0 through 9,
|
|
A through D, #, and * are required.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
- The character ',' MUST be supported, and indicates a delay of 2 seconds before
|
|
processing the next character in the tones parameter.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
- All other characters (and only those other characters) MUST
|
|
be considered unrecognized.
|
|
|
|
[Trivial]
|
|
- The duration parameter indicates the duration in ms to use for each character passed
|
|
in the tones parameters.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
- The duration cannot be more than 6000 ms or less than 40 ms.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
- The default duration is 100 ms for each tone.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
- The interToneGap parameter indicates the gap between tones in ms. The user agent
|
|
clamps it to at least 30 ms. The default value is 70 ms.
|
|
|
|
[Untestable]
|
|
- The browser MAY increase the duration and interToneGap times to cause the times
|
|
that DTMF start and stop to align with the boundaries of RTP packets but it MUST
|
|
not increase either of them by more than the duration of a single RTP audio packet.
|
|
|
|
[Trivial]
|
|
When the insertDTMF() method is invoked, the user agent MUST run the following steps:
|
|
|
|
[Trivial]
|
|
1. let sender be the RTCRtpSender used to send DTMF.
|
|
|
|
[Trivial]
|
|
2. Let transceiver be the RTCRtpTransceiver object associated with sender.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
3. If transceiver.stopped is true, throw an InvalidStateError.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
4. If transceiver.currentDirection is recvonly or inactive, throw an
|
|
InvalidStateError.
|
|
|
|
[Trivial]
|
|
5. Let tones be the method's first argument.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
6. If tones contains any unrecognized characters, throw an InvalidCharacterError.
|
|
|
|
[RTCDTMFSender-insertDTMF]
|
|
7. Set the object's toneBuffer attribute to tones.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
8. If the value of the duration parameter is less than 40, set it to 40.
|
|
|
|
[RTCDTMFSender-ontonechange-long]
|
|
If, on the other hand, the value is greater than 6000, set it to 6000.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
9. If the value of the interToneGap parameter is less than 30, set it to 30.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
10. If toneBuffer is an empty string, abort these steps.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
11. If a Playout task is scheduled to be run; abort these steps;
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
otherwise queue a task that runs the following steps (Playout task):
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
1. If transceiver.stopped is true, abort these steps.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
2. If transceiver.currentDirection is recvonly or inactive, abort these steps.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
3. If toneBuffer is an empty string, fire an event named tonechange with an
|
|
empty string at the RTCDTMFSender object and abort these steps.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
4. Remove the first character from toneBuffer and let that character be tone.
|
|
|
|
[Untestable]
|
|
5. Start playout of tone for duration ms on the associated RTP media stream,
|
|
using the appropriate codec.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
6. Queue a task to be executed in duration + interToneGap ms from now that
|
|
runs the steps labelled Playout task.
|
|
|
|
[RTCDTMFSender-ontonechange]
|
|
7. Fire an event named tonechange with a string consisting of tone at the
|
|
RTCDTMFSender object.
|
|
|
|
Coverage Report
|
|
|
|
Tested 31
|
|
Not Tested 0
|
|
Untestable 1
|
|
|
|
Total 32
|