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