| 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 |