[asterisk-scf-commits] asterisk-scf/release/slice.git branch "master" updated.
Commits to the Asterisk SCF project code repositories
asterisk-scf-commits at lists.digium.com
Sun Jul 10 09:48:34 CDT 2011
branch "master" has been updated
via 3a25fc4bb24402fe9aa141db97b5b3682601d0fd (commit)
from 1325c7885168376402c709476967af251cf63514 (commit)
Summary of changes:
slice/AsteriskSCF/Media/Formats/AudioFormats.ice | 67 ++
slice/AsteriskSCF/Media/MediaIf.ice | 885 +++++++++-----------
slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice | 133 +++
.../SessionCommunicationsIf.ice | 3 +-
4 files changed, 597 insertions(+), 491 deletions(-)
create mode 100644 slice/AsteriskSCF/Media/Formats/AudioFormats.ice
create mode 100644 slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice
- Log -----------------------------------------------------------------
commit 3a25fc4bb24402fe9aa141db97b5b3682601d0fd
Author: Joshua Colp <jcolp at digium.com>
Date: Sun Jul 10 11:35:50 2011 -0300
Merge revised media design.
diff --git a/slice/AsteriskSCF/Media/Formats/AudioFormats.ice b/slice/AsteriskSCF/Media/Formats/AudioFormats.ice
new file mode 100644
index 0000000..349f1b7
--- /dev/null
+++ b/slice/AsteriskSCF/Media/Formats/AudioFormats.ice
@@ -0,0 +1,67 @@
+/*
+ * Asterisk SCF -- An open-source communications framework.
+ *
+ * Copyright (C) 2011, Digium, Inc.
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk SCF project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE.txt file
+ * at the top of the source tree.
+ */
+
+#include <AsteriskSCF/Media/MediaIf.ice>
+
+module AsteriskSCF
+{
+
+module Media
+{
+
+module Formats
+{
+
+module Audio
+{
+
+["suppress"]
+module V1
+{
+ /**
+ * String representation of the version of this interface
+ */
+ const string Version = "V1";
+
+ /**
+ * G.711 u-Law Audio Format
+ */
+ unsliceable class G711uLAW extends AsteriskSCF::Media::V1::AudioFormat
+ {
+ /**
+ * u-Law is so basic that no additional parameters are required
+ */
+ };
+
+ /**
+ * G.711 a-Law Audio Format
+ */
+ unsliceable class G711aLAW extends AsteriskSCF::Media::V1::AudioFormat
+ {
+ /**
+ * a-Law is so basic that no additional parameters are required
+ */
+ };
+
+}; /* end module V1 */
+
+}; /* end module Audio */
+
+}; /* end module Formats */
+
+}; /* end module Media */
+
+}; /* end module AsteriskSCF */
diff --git a/slice/AsteriskSCF/Media/MediaIf.ice b/slice/AsteriskSCF/Media/MediaIf.ice
index 9c79cd6..456064d 100644
--- a/slice/AsteriskSCF/Media/MediaIf.ice
+++ b/slice/AsteriskSCF/Media/MediaIf.ice
@@ -28,496 +28,401 @@ module Media
["suppress"]
module V1
{
- /**
- * String representation of the version of this interface
- */
- const string Version = "V1";
-
- /**
- * Forward declaration of the Frame class so we can define a sequence of them.
- */
- ["visitor"] local class FrameVisitor
- {
- };
-
- class Frame;
-
- /**
- * Forward declaration of the Format class so we can define a sequence of them.
- */
- ["visitor"] local class FormatVisitor
- {
- };
-
- class Format;
-
- /**
- * Forward declaration of the StreamSource interface so we can define a sequence of proxies to them.
- */
- interface StreamSource;
-
- /**
- * Forward declaration of the StreamSink interface so we can define a sequence of proxies to them.
- */
- interface StreamSink;
-
- /**
- * A sequence of stream source proxies.
- */
- sequence<StreamSource*> StreamSourceSeq;
-
- /**
- * A sequence of stream sink proxies.
- */
- sequence<StreamSink*> StreamSinkSeq;
-
- /**
- * A sequence of concrete formats.
- */
- sequence<Format> FormatSeq;
-
- /**
- * A sequence of concrete frames.
- */
- sequence<Frame> FrameSeq;
-
- /**
- * Interface to a container of media sources and sinks.
- */
- interface Session
- {
- /**
- * Method which returns the stream sources that are on the session.
- *
- * @return StreamSourceSeq A sequence of stream sources.
- */
- StreamSourceSeq getSources();
-
- /**
- * Method which returns the stream sinks that are on the session.
- *
- * @return StreamSinkSeq A sequence of stream sinks.
- */
- StreamSinkSeq getSinks();
-
- /**
- * Method which returns a unique identifier for the session.
- *
- * @return string A string identifier for the session.
- */
- idempotent string getId();
- };
-
- /**
- * Exception that gets thrown if a sink receives a format that it can not handle.
- */
- exception UnsupportedMediaFormatException { };
-
- /**
- * Exception that gets thrown if a fatal error occurs on a stream or sink.
- */
- exception FatalStreamException { };
-
- /**
- * Exception that gets thrown if a source can not switch to a different format.
- */
- exception MediaFormatSwitchException { };
-
-
- /**
- * Interface to a source of media.
- */
- interface StreamSource
- {
- /**
- * Method which changes where the implementation should send media that originates from itself.
- *
- * @param destination A proxy to a stream sink where media will be sent to.
- */
- idempotent void setSink(StreamSink* destination);
-
- /**
- * Method which retrieves the current stream sink for media.
- *
- * @return StreamSink* A proxy to the stream sink where media is being sent to.
- */
- idempotent StreamSink* getSink();
-
- /**
- * Method which returns the formats that frames from this source may come in.
- *
- * @return FormatSeq A sequence of concrete format classes.
- */
- idempotent FormatSeq getFormats();
-
- /**
- * Method which returns a unique identifier for the source.
- *
- * @return string A string identifier for the source.
- */
- idempotent string getId();
-
- /**
- * Method which requests that the source change the format of frames being sent to the sink.
- *
- * @param Format A concrete class describing the format to change to.
- *
- * @throws MediaFormatSwitchException if the source could not be switched to the requested format.
- */
- void requestFormat(Format newformat) throws MediaFormatSwitchException;
- };
-
-
- /**
- * Interface to a sink for media.
- */
- interface StreamSink
- {
- /**
- * Method which gives the implementation a sequence of frames which it will then deal with in an implementation
- * specific manner.
- *
- * @param frames A sequence of frames.
- *
- * @throws UnsupportedMediaFormatException if the format of a frame is not supported by the sink.
- *
- * @throws FatalStreamException if the frame could not be handled due to reasons outside the control of the sink.
- */
- void write(FrameSeq frames) throws UnsupportedMediaFormatException, FatalStreamException;
-
- /**
- * Method which changes the source of media being sent to this sink.
- *
- * @param source A proxy to the stream source that media is being received from.
- */
- idempotent void setSource(StreamSource* source);
-
- /**
- * Method which retrieves the current stream source of media.
- *
- * @return StreamSource* A proxy to the stream source that media is being received from.
- */
- idempotent StreamSource* getSource();
-
- /**
- * Method which returns the formats of frames that this sink can handle.
- *
- * @return FormatSeq A sequence of concrete format classes.
- */
- idempotent FormatSeq getFormats();
-
- /**
- * Method which returns a unique identifier for the sink.
- *
- * @return string A string identifier for the sink.
- */
- idempotent string getId();
- };
-
- /**
- * Interface to a media operation session. This extends the normal Session interface and provides additional
- * resource specific methods.
- */
- interface MediaOperationSession extends Session
- {
- /**
- * Method which releases any resources associated with this media operation session.
- */
- void release();
- };
-
- /**
- * A generic format discovery class that can be extended for adding parameters. The parameters are used to find
- * a component capable of interpreting and providing a concrete class for a format.
- */
- unsliceable class FormatDiscovery extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
- {
- };
-
- /**
- * A format discovery class that allows finding a format based on name.
- */
- unsliceable class FormatDiscoveryName extends FormatDiscovery
- {
- /**
- * A string identifier for the format.
- */
- string name;
- };
-
- /**
- * A sequence of strings with each string containing a format specific parameter from SDP.
- */
- sequence<string> SDPFormatParameterSeq;
-
- /**
- * A format discovery class that allows finding a format based on information taken from SDP.
- */
- unsliceable class FormatDiscoverySDP extends FormatDiscovery
- {
- /**
- * Numerical payload value given in the SDP.
- */
- int payload;
-
- /**
- * String type of the format (audio/video/etc)
- */
- string type;
-
- /**
- * String subtype of the format (in the case of audio something like PCMU)
- */
- string subtype;
-
- /**
- * Numerical sample rate of the format.
- */
- int samplerate;
-
- /**
- * A sequence of format specific parameters.
- */
- SDPFormatParameterSeq parameters;
- };
-
- /**
- * A format discovery class that allows finding a format based on numerical value, used for IAX2.
- */
- unsliceable class FormatDiscoveryIAX2 extends FormatDiscovery
- {
- /**
- * Numerical codec flag value.
- */
- int codec;
- };
-
- /**
- * A format discovery class that allows finding an audio format based on a few parameters.
- */
- unsliceable class FormatDiscoveryGenericAudio extends FormatDiscovery
- {
- /**
- * String name of the codec being used.
- */
- string name;
-
- /**
- * Numerical sample rate.
- */
- int samplerate;
-
- /**
- * Number of channels present.
- */
- int channels;
- };
-
- /**
- * Interface to a service that interprets format discovery parameters and returns a concrete class
- * representing them.
- */
- interface MediaFormatService
- {
- /**
- * Method which returns a concrete format class given discovery parameters.
- *
- * @param format A concrete format discovery class containing parameters of the format.
- *
- * @return Format A concrete format class representing the format as described in the
- * format discovery class.
- */
- idempotent Format getFormat(FormatDiscovery format);
- };
-
- /**
- * A generic media operation class that can be extended for adding parameters. The parameters are used to find
- * a component capable of performing the described operation.
- */
- ["visitor"] local class MediaOperationVisitor
- {
- };
-
- ["visitor:MediaOperationVisitor"] class MediaOperation
- {
- };
-
- /**
- * A sequence of media operations. These are ordered in the order in which they should be
- * executed.
- */
- sequence<MediaOperation> MediaOperationSeq;
-
- /**
- * A transcoding media operation class that is used to transcode from one format to other.
- */
- class MediaOperationTranscode extends MediaOperation
- {
- /**
- * A concrete format class describing the format that frames will be received in.
- */
- Format from;
-
- /**
- * A concrete format class describing the format that frames should be sent in.
- */
- Format to;
- };
-
- /**
- * A media operation query result class, this gets returned by a media operation service when queried.
- */
- ["visitor"] local class MediaOperationQueryResultVisitor
- {
- };
-
- ["visitor:MediaOperationQueryResultVisitor"] class MediaOperationQueryResult
- {
- /**
- * A concrete class describing the operation that the media operation service can perform.
- */
- MediaOperation operation;
-
- /**
- * An arbitrary numerical score from 1 to 100 of how well the media operation service can perform
- * the above operation. This value is used to determine the best route and best component to use
- * for a sequence of media operations when faced with multiple choices.
- */
- int score;
- };
-
- /**
- * A sequence of media operation query results, returned by the MediaOperationService interface.
- */
- sequence<MediaOperationQueryResult> MediaOperationQueryResultSeq;
-
- /**
- * Interface to a service which performs a media operation.
- */
- interface MediaOperationService
- {
- /**
- * Method which determines how well supported operations are.
- *
- * @param operations A sequence of media operations that are to be performed.
- *
- * @return MediaOperationQueryResultSeq A sequence of supported operations with a score of how well
- * they can be performed.
- */
- idempotent MediaOperationQueryResultSeq isSupported(MediaOperationSeq operations);
-
- /**
- * Method which allocates a media operation session.
- *
- * @param operations A sequence of media operations that are to be performed.
- *
- * @return MediaOperationSession* A proxy to a media operation session that will perform the given media
- * operations.
- */
- MediaOperationSession *allocate(MediaOperationSeq operations);
- };
-
- /**
- * A generic frame class that contains common details about frames. Additional classes should extend this to provide
- * additional details about the frame.
- */
- ["visitor:FrameVisitor"] class Frame
- {
- /**
- * A concrete format class describing the format that this frame is in.
- */
- Format mediaformat;
-
- /**
- * A sequence of bytes which contain the actual data payload of this frame.
- */
- Ice::ByteSeq payload;
- };
-
- /**
- * An additional frame class which is provided for stream based frames.
- */
- class StreamFrame extends Frame
- {
- /**
- * Timestamp of the frame.
- */
- long timestamp;
-
- /**
- * Numerical sequence number of the frame.
- */
- long seqno;
- };
-
- /**
- * An additional frame class which is provided for audio frames.
- */
- class AudioFrame extends StreamFrame
- {
- };
-
- /**
- * An additional frame class which is provided for video frames.
- */
- class VideoFrame extends StreamFrame
- {
- };
-
- /**
- * A generic format class that provides common information about formats. Additional classes should extend
- * this to provide additional details about the format.
- */
- ["visitor:FormatVisitor"] class Format
- {
- /**
- * A string containing a human readable name for the format, this may not be unique and is
- * only meant to be used in logging and event messages.
- */
- string name;
- };
-
- /**
- * An additional format class which is provided for audio formats.
- */
- class AudioFormat extends Format
- {
- /**
- * Numerical sample rate.
- */
- int sampleRate;
-
- /**
- * Numerical frame size.
- */
- int frameSize;
-
- /**
- * Numerical maximum frame size that is supported.
- */
- int maximumFrameSize;
-
- /**
- * Numerical minimum frame size that is supported.
- */
- int minimumFrameSize;
- };
-
- /**
- * An additional format class which is provided for video formats.
- */
- class VideoFormat extends Format
- {
- /**
- * Numerical maximum allowed bandwidth.
- */
- int maximumBandwidth;
-
- /**
- * Numerical maximum allowed bitrate.
- */
- int maximumBitrate;
- };
+ /**
+ * String representation of the version of this interface
+ */
+ const string Version = "V1";
+
+ /**
+ * Forward declaration of the Frame class so we can define a sequence of them.
+ */
+ class Frame;
+
+ /**
+ * Visitor class for frames.
+ */
+ ["visitor"] local class FrameVisitor
+ {
+ };
+
+ /**
+ * Forward declaration of the Format class so we can define a sequence of them.
+ */
+ class Format;
+
+ /**
+ * Visitor class for formats.
+ */
+ ["visitor"] local class FormatVisitor
+ {
+ };
+
+ /**
+ * Forward declaration of the StreamSource interface so we can define a sequence of proxies to them.
+ */
+ interface StreamSource;
+
+ /**
+ * Forward declaration of the StreamSink interface so we can define a sequence of proxies to them.
+ */
+ interface StreamSink;
+
+ /**
+ * A sequence of stream source proxies.
+ */
+ sequence<StreamSource*> StreamSourceSeq;
+
+ /**
+ * A sequence of stream sink proxies.
+ */
+ sequence<StreamSink*> StreamSinkSeq;
+
+ /**
+ * A sequence of concrete formats.
+ */
+ sequence<Format> FormatSeq;
+
+ /**
+ * A sequence of concrete frames.
+ */
+ sequence<Frame> FrameSeq;
+
+ /**
+ * States that a stream can be in.
+ */
+ enum StreamState
+ {
+ /**
+ * Media is being sent and received.
+ */
+ SendAndReceive,
+
+ /**
+ * Media is only being sent out.
+ */
+ SendOnly,
+
+ /**
+ * Media is only being received.
+ */
+ ReceiveOnly,
+
+ /**
+ * Media is not being sent or received.
+ */
+ Inactive,
+
+ /**
+ * The stream is no longer available.
+ */
+ Removed,
+ };
+
+ /**
+ * Class which contains information about a stream.
+ */
+ class StreamInformation
+ {
+ /**
+ * Current state of the stream.
+ *
+ * Default value is to send and receive media.
+ */
+ StreamState state = SendAndReceive;
+
+ /**
+ * Formats carried over this stream.
+ */
+ FormatSeq formats;
+
+ /**
+ * Sinks where media can be sent.
+ */
+ StreamSinkSeq sinks;
+
+ /**
+ * Sources where media may come from.
+ */
+ StreamSourceSeq sources;
+ };
+
+ /**
+ * A dictionary of streams. The key is a unique identifier for the stream.
+ * The value is information about the stream.
+ */
+ dictionary<string, StreamInformation> StreamInformationDict;
+
+ /**
+ * A dictionary of streams and states. This is used to change the state of
+ * streams.
+ */
+ dictionary<string, StreamState> StreamStateDict;
+
+ /**
+ * Interface to a container of media sources and sinks.
+ */
+ interface Session
+ {
+ /**
+ * Method which returns the stream sources that are on the session.
+ *
+ * @return StreamSourceSeq A sequence of stream sources.
+ */
+ StreamSourceSeq getSources();
+
+ /**
+ * Method which returns the stream sinks that are on the session.
+ *
+ * @return StreamSinkSeq A sequence of stream sinks.
+ */
+ StreamSinkSeq getSinks();
+
+ /**
+ * Method which returns a unique identifier for the session.
+ *
+ * @return string A string identifier for the session.
+ */
+ idempotent string getId();
+ };
+
+ /**
+ * Exception that gets thrown if a sink receives a format that it cannot handle.
+ */
+ exception UnsupportedMediaFormatException { };
+
+ /**
+ * Exception that gets thrown if a fatal error occurs on a stream or sink.
+ */
+ exception FatalStreamException { };
+
+ /**
+ * Exception that gets thrown if a source cannot switch to a different format.
+ */
+ exception MediaFormatSwitchException { };
+
+ /**
+ * Interface to a source of media.
+ */
+ interface StreamSource
+ {
+ /**
+ * Method which adds a sink that media will be written to.
+ *
+ * @param destination A proxy to a stream sink where media will be sent to.
+ */
+ void addSink(StreamSink* destination);
+
+ /**
+ * Method which removes a sink. Once removed media will no longer be written to it.
+ *
+ * @param destination A proxy to the stream sink to be removed.
+ */
+ void removeSink(StreamSink* destination);
+
+ /**
+ * Method which retrieves the current stream sinks for media.
+ *
+ * @return StreamSinkSeq A sequence of proxies where media is being written to.
+ */
+ idempotent StreamSinkSeq getSinks();
+
+ /**
+ * Method which returns the formats that frames from this source may come in.
+ *
+ * @return FormatSeq A sequence of concrete format classes.
+ */
+ idempotent FormatSeq getFormats();
+
+ /**
+ * Method which returns a unique identifier for the source.
+ *
+ * @return string A string identifier for the source.
+ */
+ idempotent string getId();
+
+ /**
+ * Method which requests that the source change the format of frames being sent to ALL sinks.
+ *
+ * @param Format A concrete class describing the format to change to.
+ *
+ * @throws MediaFormatSwitchException if the source could not be switched to the requested format.
+ */
+ void requestFormat(Format newformat) throws MediaFormatSwitchException;
+ };
+
+ /**
+ * Interface to a sink for media.
+ */
+ interface StreamSink
+ {
+ /**
+ * Method which gives the implementation a sequence of frames which it will then deal with in an implementation
+ * specific manner.
+ *
+ * @param frames A sequence of frames.
+ *
+ * @throws UnsupportedMediaFormatException if the format of a frame is not supported by the sink.
+ *
+ * @throws FatalStreamException if the frame could not be handled due to reasons outside the control of the sink.
+ */
+ void write(FrameSeq frames) throws UnsupportedMediaFormatException, FatalStreamException;
+
+ /**
+ * Method which changes the source of media being sent to this sink.
+ *
+ * NOTE: This operation should only be called by the StreamSource itself.
+ *
+ * @param source A proxy to the stream source that media is being received from.
+ */
+ idempotent void setSource(StreamSource* source);
+
+ /**
+ * Method which retrieves the current stream source of media.
+ *
+ * @return StreamSource* A proxy to the stream source that media is being received from.
+ */
+ idempotent StreamSource* getSource();
+
+ /**
+ * Method which returns the formats of frames that this sink can handle.
+ *
+ * @return FormatSeq A sequence of concrete format classes.
+ */
+ idempotent FormatSeq getFormats();
+
+ /**
+ * Method which returns a unique identifier for the sink.
+ *
+ * @return string A string identifier for the sink.
+ */
+ idempotent string getId();
+ };
+
+ /**
+ * A generic frame class that contains common details about frames. Additional classes should extend this to provide
+ * additional details about the frame.
+ */
+ ["visitor:FrameVisitor"] class Frame
+ {
+ /**
+ * A concrete format class describing the format that this frame is in.
+ */
+ Format mediaFormat;
+
+ /**
+ * A sequence of bytes which contain the actual data payload of this frame.
+ */
+ Ice::ByteSeq payload;
+ };
+
+ /**
+ * An additional frame class which is provided for frames that are part of a stream.
+ */
+ class StreamFrame extends Frame
+ {
+ /**
+ * Timestamp of the frame.
+ */
+ long timestamp;
+
+ /**
+ * Numerical sequence number of the frame.
+ */
+ long seqno;
+ };
+
+ /**
+ * An additional frame class which is provided for audio frames.
+ */
+ class AudioFrame extends StreamFrame
+ {
+ };
+
+ /**
+ * An additional frame class which is provided for video frames.
+ */
+ class VideoFrame extends StreamFrame
+ {
+ };
+
+ /**
+ * Interface used to perform operations on a format.
+ */
+ interface FormatOperationsService
+ {
+ /**
+ * Method which determines if two formats are compatible or not.
+ *
+ * @param format1 First format.
+ *
+ * @param format2 Second format.
+ *
+ * @return bool True if compatible, false if not.
+ */
+ idempotent bool checkCompatible(Format format1, Format format2);
+ };
+
+ /**
+ * A generic format class that provides common information about formats. Additional classes should extend
+ * this to provide additional details about their format.
+ */
+ ["visitor:FormatVisitor"] class Format
+ {
+ /**
+ * A string containing a name for the format, this should be unique to the specifications of the format
+ * and is used to do a baseline comparison of two formats to decide if they contain similar details.
+ *
+ * This *must* be populated.
+ */
+ string name;
+
+ /**
+ * A proxy to a service that can perform operations relating to this format.
+ */
+ FormatOperationsService *operations;
+ };
+
+ /**
+ * An additional format class which is provided for audio formats.
+ */
+ class AudioFormat extends Format
+ {
+ /**
+ * Numerical sample rate specified in Hz.
+ */
+ int sampleRate;
+
+ /**
+ * Numerical samples per frame.
+ */
+ int frameSize;
+
+ /**
+ * Numerical maximum samples per frame that is supported.
+ */
+ int maximumFrameSize;
+
+ /**
+ * Numerical minimum samples per frame that is supported.
+ */
+ int minimumFrameSize;
+ };
+
+ /**
+ * An additional format class which is provided for video formats.
+ */
+ class VideoFormat extends Format
+ {
+ /**
+ * Numerical maximum allowed bandwidth specified in Kbps.
+ */
+ int maximumBandwidth;
+
+ /**
+ * Numerical maximum allowed bitrate specified in Kbps.
+ */
+ int maximumBitrate;
+ };
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice b/slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice
new file mode 100644
index 0000000..6b166fb
--- /dev/null
+++ b/slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice
@@ -0,0 +1,133 @@
+/*
+ * Asterisk SCF -- An open-source communications framework.
+ *
+ * Copyright (C) 2011, Digium, Inc.
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk SCF project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE.txt file
+ * at the top of the source tree.
+ */
+
+#include <AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice>
+#include <AsteriskSCF/Media/MediaIf.ice>
+
+module AsteriskSCF
+{
+
+module Media
+{
+
+module SDP
+{
+
+["suppress"]
+module V1
+{
+ /**
+ * String representation of the version of this interface
+ */
+ const string Version = "V1";
+
+ /**
+ * Extended discovery class for SDP descriptor services.
+ */
+ unsliceable class SDPDescriptorServiceLocatorParams extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
+ {
+ /**
+ * Name of the media format.
+ */
+ string name;
+ };
+
+ /**
+ * A sequence of strings with each string containing a format specific parameter from SDP.
+ */
+ sequence<string> SDPFormatParameterSeq;
+
+ /**
+ * SDP Descriptor class. Contains description information for a media format.
+ */
+ class SDPDescriptor
+ {
+ /**
+ * Numerical payload value given in the SDP.
+ *
+ * If this is set to -1 the user of this descriptor should assign a dynamic payload
+ * themselves.
+ */
+ int payload;
+
+ /**
+ * String type of the format (audio/video/etc)
+ */
+ string type;
+
+ /**
+ * String subtype of the format (in the case of audio something like PCMU)
+ */
+ string subtype;
+
+ /**
+ * Numerical sample rate of the format.
+ */
+ int samplerate;
+
+ /**
+ * A sequence of format specific parameters.
+ */
+ SDPFormatParameterSeq parameters;
+ };
+
+ /**
+ * Interface to the SDP descriptor service which translates between SDP and media formats.
+ */
+ interface SDPDescriptorService
+ {
+ /**
+ * Method which retrieves a media format concrete class given a specific name.
+ *
+ * @param name Name of the media format, may contain additional details according to the descriptor service.
+ *
+ * @param sampleRate The sample rate for the frames.
+ *
+ * @param frameSize The amount of audio contained within the frames.
+ *
+ * @param formatSpecific Any format specific information that is not understood.
+ *
+ * @return Format A concrete class containing media format details for the given format.
+ */
+ idempotent AsteriskSCF::Media::V1::Format getNamedFormat(string name, int sampleRate, int frameSize,
+ Ice::StringSeq formatSpecific);
+
+ /**
+ * Method which retrieves a media format concrete class given an SDP descriptor concrete class.
+ *
+ * @param descriptor Populated SDP descriptor class.
+ *
+ * @return Format A concrete class containing media format details for the SDP.
+ */
+ idempotent AsteriskSCF::Media::V1::Format getDescribedFormat(SDPDescriptor descriptor);
+
+ /**
+ * Method which retrieves an SDP descriptor concrete class given a media format concrete class.
+ *
+ * @param mediaformat Media format concrete class.
+ *
+ * @return SDPDescriptor A concrete class containing SDP describing the media format.
+ */
+ idempotent SDPDescriptor getDescriptor(AsteriskSCF::Media::V1::Format mediaformat);
+ };
+
+}; /* end module V1 */
+
+}; /* end module SDP */
+
+}; /* end module Media */
+
+}; /* end module AsteriskSCF */
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index 7edc171..5fdec3e 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -625,7 +625,8 @@ module V1
{
/**
* Creates a session for the specified destination, optionally registering
- * a SessionListener object for notification of changes to the session.
+ * a SessionListener object for notification of changes to the session and also
+ * optionally specifying the streams that should be present on the session.
*
* @param destination A stringified identifier or address for the destination.
*
-----------------------------------------------------------------------
--
asterisk-scf/release/slice.git
More information about the asterisk-scf-commits
mailing list