From dc13b7b84e03c4cd767ff42091166e8cb1ff2a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Sat, 31 Dec 2011 02:49:20 -0500 Subject: [PATCH] For Call1, move the DTMF to the Content where it belongs --- spec/Call_Content_Interface_DTMF.xml | 241 ++++++++++++++++++++++++++++++++++ spec/Channel_Interface_DTMF.xml | 11 +- spec/all.xml | 6 +- 3 files changed, 247 insertions(+), 11 deletions(-) create mode 100644 spec/Call_Content_Interface_DTMF.xml diff --git a/spec/Call_Content_Interface_DTMF.xml b/spec/Call_Content_Interface_DTMF.xml new file mode 100644 index 0000000..aad8d09 --- /dev/null +++ b/spec/Call_Content_Interface_DTMF.xml @@ -0,0 +1,241 @@ + + + Copyright © 2005-2010 Collabora Limited + Copyright © 2005-2010 Nokia Corporation + Copyright © 2006 INdT + +

This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version.

+ +

This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details.

+ +

You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

+
+ + (draft 1) + + + + An interface that gives audio Contents the ability to send DTMF events + which have been established using the Call1 channel + type. The event codes used are in common with those defined in RFC4733, and are + listed in the DTMF_Event enumeration. + + + + + A numeric event code from the DTMF_Event enum. + + + +

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.

+ + The client may wish to control the exact duration and timing of the + tones sent as a result of user's interaction with the dialpad, thus + starting and stopping the tone sending explicitly. + + +

Tone overlaping or queueing is not supported, so this method can only + be called if no DTMF tones are already being played.

+
+ + + + + The event id was invalid. + + + + + DTMF tones are already being played. + + + +
+ + + + Stop sending any DTMF tones which have been started using the + StartTone or + MultipleTones methods. + If there is no current tone, this method will do nothing. + If MultipleTones was used, the client should not assume the + sending has stopped immediately; instead, the client should wait + for the StoppedTones signal. + + On some protocols it might be impossible to cancel queued tones + immediately. + + + + + + + Continuous tones are not supported by this stream. Deprecated, + since stream IDs are ignored. + + + + + + + + +

A string representation of one or more DTMF + events. Implementations of this method MUST support all of the + following characters in this string:

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

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.

+ + +

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.

+
+ + + + + The supplied Tones string was invalid. + + + + + DTMF tones are already being played. + + + +
+ + + + Indicates whether there are DTMF tones currently being sent in the + channel. If so, the client should wait for + StoppedTones signal before trying to + send more tones. + + + + + +

If non-empty in a channel request that will create a new channel, + the connection manager should send the tones immediately after + at least one eligible audio stream has been created in the + channel.

+
+
+ + + +

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.

+
+
+ + + + + The new non-empty value of + DeferredTones. + + +

Emitted when 'w' or 'W', indicating "wait for the user to continue", + is encountered while playing a DTMF string queued by + MultipleTones or + InitialTones. 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.

+
+
+ + + + DTMF string (one or more events) that is to be played. + + + +

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.

+
+
+ + + + True if the DTMF tones were actively cancelled via + StopTone. + + +

DTMF tones have finished playing on streams in this channel.

+
+
+
+
+ diff --git a/spec/Channel_Interface_DTMF.xml b/spec/Channel_Interface_DTMF.xml index bb579a1..a7469ec 100644 --- a/spec/Channel_Interface_DTMF.xml +++ b/spec/Channel_Interface_DTMF.xml @@ -19,15 +19,10 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

- - - - + The Stream_IDs in this - interface should now be ignored by CMs. This is primarily to allow this - interface to be used with Call1 - channels. + interface can now be ignored by CMs. + An interface that gives a Channel the ability to send DTMF events over diff --git a/spec/all.xml b/spec/all.xml index 87bcf75..6c3c01f 100644 --- a/spec/all.xml +++ b/spec/all.xml @@ -192,9 +192,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.These interfaces are only applicable to channels of type StreamedMedia, with the exception of the Hold and - DTMF - interfaces, which may also appear on Hold + interface, which may also appear on Call1 channels.

@@ -241,6 +240,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + -- 1.7.7.4