Methods
StartTone | (y: Event) | → | nothing | |
StopTone | () | → | nothing | |
MultipleTones | (s: Tones) | → | nothing |
Signals
TonesDeferred | (s: Tones) | |
SendingTones | (s: Tones) | |
StoppedTones | (b: Cancelled) |
Properties
CurrentlySendingTones | b | Read only | ||
DeferredTones | s | Read only |
Description
Methods
StartTone (y: Event) → nothing
Parameters
- Event — y (DTMF_Event)
Start sending a DTMF tone to all eligible streams in the channel. Where possible, the tone will continue until StopTone is called. On certain protocols, it may only be possible to send events with a predetermined length. In this case, the implementation MAY emit a fixed-length tone, and the StopTone method call SHOULD return NotAvailable.
Rationale:
Tone overlaping or queueing is not supported, so this method can only be called if no DTMF tones are already being played.
Possible Errors
- Network Error
- Invalid Argument
- Service Busy
StopTone () → nothing
Rationale:
Possible Errors
- Network Error
- Not Available
MultipleTones (s: Tones) → nothing
Parameters
- Tones — s
- the digits 0-9, letters A-D and a-d, and symbols '*' and '#' correspond to the members of DTMF_Event
- any of 'p', 'P', 'x', 'X' or ',' (comma) results in an implementation-defined pause, typically for 3 seconds
- 'w' or 'W' waits for the user to continue, by stopping interpretation of the string, and if there is more to be played, emitting the TonesDeferred signal with the rest of the string as its argument: see that signal for details
A string representation of one or more DTMF events. Implementations of this method MUST support all of the following characters in this string:
Send multiple DTMF events to all eligible streams in the channel. Each tone will be played for an implementation-defined number of milliseconds (typically 250ms), followed by a gap before the next tone is played (typically 100ms). The duration and gap are defined by the protocol or connection manager.
Rationale:
In cases where the client knows in advance the tone sequence it wants to send, it's easier to use this method than manually start and stop each tone in the sequence.
The tone and gap lengths may need to vary for interoperability,
according to the protocol and other implementations' ability to
recognise tones. At the time of writing, GStreamer uses a
minimum of 250ms tones and 100ms gaps when playing in-band DTMF
in the normal audio stream, or 70ms tones and 50ms gaps when
encoding DTMF as audio/telephone-event
.
Tone overlaping or queueing is not supported, so this method can only be called if no DTMF tones are already being played.
Possible Errors
- Network Error
- Invalid Argument
- Service Busy
Signals
TonesDeferred (s: Tones)
Parameters
- Tones — s
Emitted when 'w' or 'W', indicating "wait for the user to continue", is encountered while playing a DTMF string queued by MultipleTones. Any queued DTMF events after the 'w', which have not yet been played, are placed in the DeferredTones property and copied into this signal's argument.
When the channel handler is ready to continue, it MAY pass the value of DeferredTones to MultipleTones, to resume sending. Alternatively, it MAY ignore the deferred tones, or even play different tones instead. Any deferred tones are discarded the next time a tone is played.
This signal SHOULD NOT be emitted if there is nothing left to play, i.e. if the 'w' was the last character in the DTMF string.
SendingTones (s: Tones)
Parameters
- Tones — s
DTMF tone(s)are being sent to all eligible streams in the channel. The signal is provided to indicating the fact that the streams are currently being used to send one or more DTMF tones, so any other media input is not getting through to the audio stream. It also serves as a cue for the StopTone method.
Properties
CurrentlySendingTones — b
DeferredTones — s
The tones waiting for the user to continue, if any.
When this property is set to a non-empty value, TonesDeferred is emitted. When any tones are played (i.e. whenever SendingTones is emitted), this property is reset to the empty string.