[asterisk-scf-commits] asterisk-scf/integration/slice.git branch "master" updated.
Commits to the Asterisk SCF project code repositories
asterisk-scf-commits at lists.digium.com
Thu Oct 21 18:10:15 CDT 2010
branch "master" has been updated
via 0ed8dc2fbfe2764786c0c6fccb4735e2af7ed73a (commit)
from 71b02b7071eab51d417f059566dc4aef1ebc2f2f (commit)
Summary of changes:
CMakeLists.txt | 2 +-
Core/Discovery/ServiceLocatorEventsIf.ice | 92 +-
Core/Discovery/ServiceLocatorIf.ice | 288 +++---
Core/Endpoint/EndpointIf.ice | 44 +-
Core/Routing/RoutingIf.ice | 245 +++--
Media/MediaIf.ice | 942 +++++++++---------
Media/RTP/MediaRTPIf.ice | 247 +++---
SessionCommunications/SessionCommunicationsIf.ice | 1106 ++++++++++++---------
System/CMakeLists.txt | 4 +-
System/Component/CMakeLists.txt | 2 +-
System/Component/ComponentServiceIf.ice | 24 +-
System/Component/ReplicaIf.ice | 177 ++--
System/Logger/CMakeLists.txt | 2 +-
System/Logger/LoggerIf.ice | 186 ++--
System/Time/CMakeLists.txt | 2 +-
System/Time/TimeIf.ice | 25 +-
16 files changed, 1862 insertions(+), 1526 deletions(-)
- Log -----------------------------------------------------------------
commit 0ed8dc2fbfe2764786c0c6fccb4735e2af7ed73a
Author: Joshua Colp <jcolp at digium.com>
Date: Thu Oct 21 16:08:22 2010 -0700
Perform major cleanup of slice files. Whitespace is now gone, everything follows the same format, everything is documented, and idempotents have been added to a few places.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a4d35d4..cfa7f97 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,5 +18,5 @@ add_subdirectory(Core)
# Slice definitions for media functionality
add_subdirectory(Media)
-# Slice definitions for session-oriented communications
+# Slice definitions for session-oriented communications
add_subdirectory(SessionCommunications)
diff --git a/Core/Discovery/ServiceLocatorEventsIf.ice b/Core/Discovery/ServiceLocatorEventsIf.ice
index 4036271..046b819 100644
--- a/Core/Discovery/ServiceLocatorEventsIf.ice
+++ b/Core/Discovery/ServiceLocatorEventsIf.ice
@@ -17,58 +17,58 @@ module System
module Discovery
{
- /**
- * Default topic used for service locator events.
- */
- const string TOPIC="::asterisk_scf::service::locator";
+ /**
+ * Default topic used for service locator events.
+ */
+ const string TOPIC="::asterisk_scf::service::locator";
- /**
- * Interface used to publish service locator related events.
- */
- interface Events
- {
- /**
- * Method which is called when a comparator is registered.
- *
- * @param guid The unique identifier of the comparator.
- */
- void comparisonRegistered(string guid);
+ /**
+ * Interface used to publish service locator related events.
+ */
+ interface Events
+ {
+ /**
+ * Method which is called when a comparator is registered.
+ *
+ * @param guid The unique identifier of the comparator.
+ */
+ void comparisonRegistered(string guid);
- /**
- * Method which is called when a comparator is unregistered.
- *
- * @param guid The unique identifier of the comparator.
- */
- void comparisonUnregistered(string guid);
+ /**
+ * Method which is called when a comparator is unregistered.
+ *
+ * @param guid The unique identifier of the comparator.
+ */
+ void comparisonUnregistered(string guid);
- /**
- * Method which is called when a service is registered.
- *
- * @param guid The unique identifier of the service.
- */
- void serviceRegistered(string guid);
+ /**
+ * Method which is called when a service is registered.
+ *
+ * @param guid The unique identifier of the service.
+ */
+ void serviceRegistered(string guid);
- /**
- * Method which is called when a service is unregistered.
- *
- * @param guid The unique identifier of the service.
- */
- void serviceUnregistered(string guid);
+ /**
+ * Method which is called when a service is unregistered.
+ *
+ * @param guid The unique identifier of the service.
+ */
+ void serviceUnregistered(string guid);
- /**
- * Method which is called when a service is suspended.
- *
- * @param guid The unique identifier of the service.
- */
- void serviceSuspended(string guid);
+ /**
+ * Method which is called when a service is suspended.
+ *
+ * @param guid The unique identifier of the service.
+ */
+ void serviceSuspended(string guid);
- /**
- * Method which is called when a service is unsuspended.
- *
- * @param guid The unique identifier of the service.
- */
- void serviceUnsuspended(string guid);
- };
+ /**
+ * Method which is called when a service is unsuspended.
+ *
+ * @param guid The unique identifier of the service.
+ */
+ void serviceUnsuspended(string guid);
+ };
}; // end module Discovery
diff --git a/Core/Discovery/ServiceLocatorIf.ice b/Core/Discovery/ServiceLocatorIf.ice
index fb44c35..990dbaa 100644
--- a/Core/Discovery/ServiceLocatorIf.ice
+++ b/Core/Discovery/ServiceLocatorIf.ice
@@ -22,146 +22,154 @@ module Discovery
["suppress"]
module V1
{
- /**
- * String representation of the version of this interface
- */
- const string Version = "V1";
-
- /**
- * Exception used for service locator requests to indicate that no service could be found.
- */
- exception ServiceNotFound { };
-
- /**
- * Exception used for indicating that a comparator is already registered with a given guid.
- */
- exception DuplicateCompare { };
-
- /**
- * Exception used for indicating that a comparator was not found.
- */
- exception CompareNotFound { };
-
- /**
- * Generic service locator parameters class that more specific parameter classes can extend.
- */
- ["preserved"] class ServiceLocatorParams
- {
- /**
- * Basic category for the service, such as bridge or channel service.
- */
- string category;
- };
-
- /**
- * Interface used to perform service locator requests.
- */
- interface ServiceLocator
- {
- /**
- * Method which performs a locator request using provided parameters but only returns a single
- * proxy.
- *
- * @param params A concrete class containing parameters describing the service that is trying to be found.
- *
- * @return A proxy to the service matching the given parameters.
- */
- idempotent Object *locate(ServiceLocatorParams params) throws ServiceNotFound;
-
- /**
- * Method which performs a location request using provided parameters but can return multiple
- * proxies.
- *
- * @param params A concrete class containing parameters describing the service that is trying to be found.
- *
- * @return A sequence of proxies which match the given parameters.
- */
- idempotent Ice::ObjectProxySeq locateAll(ServiceLocatorParams params) throws ServiceNotFound;
- };
-
- /**
- * Interface to the service locator component which allows manipulation of registered service.
- */
- interface ServiceManagement
- {
- /**
- * Method which adds supported discovery parameters to a registered service.
- *
- * @param params A concrete class containing parameters describing what is supported.
- *
- * @param compareguid The unique identifier of a comparator which can perform a lower level
- * comparison to determine whether supplied parameters in a locator request
- * are truly supported or not. This is optional.
- */
- void addLocatorParams(ServiceLocatorParams params, string compareguid);
-
- /**
- * Method which suspends this service from being considered when a locator request
- * is performed.
- */
- void suspend();
-
- /**
- * Method which unsuspends this service. Once this method is called the service will
- * be able to found again when a locator request is performed.
- */
- void unsuspend();
-
- /**
- * Method which unregisters this service from the service locator.
- */
- void unregister();
- };
-
- /**
- * Interface to an external component which performs a service locator parameters comparison.
- */
- interface ServiceLocatorParamsCompare
- {
- /**
- * Method which determines whether provided parameters are supported by the
- * comparator or not.
- *
- * @param params A concrete class containing parameters describing the service that is trying to be found.
- *
- * @return A boolean value with true meaning the parameters are supported and false if not.
- *
- */
- bool isSupported(ServiceLocatorParams params);
- };
-
- /**
- * Interface to do service locator management, such as adding services and comparators.
- */
- interface ServiceLocatorManagement
- {
- /**
- * Method which adds a service to the service locator.
- *
- * @param service A proxy to the service that is being registered.
- *
- * @param guid A unique identifier for the service which is used in events.
- *
- * @return A proxy to the service management interface for this service.
- */
- ServiceManagement *addService(Object *service, string guid);
-
- /**
- * Method which adds a comparator to the service locator.
- *
- * @param compareguid A unique identifier for this comparator.
- *
- * @param compare A proxy to the comparator service.
- */
- void addCompare(string compareguid, ServiceLocatorParamsCompare *compare) throws DuplicateCompare;
-
- /**
- * Method which removes a comparator from the service locator.
- *
- * @param compareguid The unique identifier for the comparator to remove.
- */
- void removeCompare(string compareguid) throws CompareNotFound;
- };
+ /**
+ * String representation of the version of this interface
+ */
+ const string Version = "V1";
+
+ /**
+ * Exception used for service locator requests to indicate that no service could be found.
+ */
+ exception ServiceNotFound { };
+
+ /**
+ * Exception used for indicating that a comparator is already registered with a given guid.
+ */
+ exception DuplicateCompare { };
+
+ /**
+ * Exception used for indicating that a comparator was not found.
+ */
+ exception CompareNotFound { };
+
+ /**
+ * Generic service locator parameters class that more specific parameter classes can extend.
+ */
+ ["preserved"] class ServiceLocatorParams
+ {
+ /**
+ * Basic category for the service, such as bridge or channel service.
+ */
+ string category;
+ };
+
+ /**
+ * Interface used to perform service locator requests.
+ */
+ interface ServiceLocator
+ {
+ /**
+ * Method which performs a locator request using provided parameters but only returns a single
+ * proxy.
+ *
+ * @param params A concrete class containing parameters describing the service that is trying to be found.
+ *
+ * @return A proxy to the service matching the given parameters.
+ *
+ * @throws ServiceNotFound if no service could be found that matches the given parameters.
+ */
+ idempotent Object *locate(ServiceLocatorParams params) throws ServiceNotFound;
+
+ /**
+ * Method which performs a location request using provided parameters but can return multiple
+ * proxies.
+ *
+ * @param params A concrete class containing parameters describing the service that is trying to be found.
+ *
+ * @return A sequence of proxies which match the given parameters.
+ *
+ * @throws ServiceNotFound if no service could be found that matches the given parameters.
+ */
+ idempotent Ice::ObjectProxySeq locateAll(ServiceLocatorParams params) throws ServiceNotFound;
+ };
+
+ /**
+ * Interface to the service locator component which allows manipulation of registered service.
+ */
+ interface ServiceManagement
+ {
+ /**
+ * Method which adds supported discovery parameters to a registered service.
+ *
+ * @param params A concrete class containing parameters describing what is supported.
+ *
+ * @param compareguid The unique identifier of a comparator which can perform a lower level
+ * comparison to determine whether supplied parameters in a locator request
+ * are truly supported or not. This is optional.
+ */
+ void addLocatorParams(ServiceLocatorParams params, string compareguid);
+
+ /**
+ * Method which suspends this service from being considered when a locator request
+ * is performed.
+ */
+ void suspend();
+
+ /**
+ * Method which unsuspends this service. Once this method is called the service will
+ * be able to found again when a locator request is performed.
+ */
+ void unsuspend();
+
+ /**
+ * Method which unregisters this service from the service locator.
+ */
+ void unregister();
+ };
+
+ /**
+ * Interface to an external component which performs a service locator parameters comparison.
+ */
+ interface ServiceLocatorParamsCompare
+ {
+ /**
+ * Method which determines whether provided parameters are supported by the
+ * comparator or not.
+ *
+ * @param params A concrete class containing parameters describing the service that is trying to be found.
+ *
+ * @return A boolean value with true meaning the parameters are supported and false if not.
+ *
+ */
+ bool isSupported(ServiceLocatorParams params);
+ };
+
+ /**
+ * Interface to do service locator management, such as adding services and comparators.
+ */
+ interface ServiceLocatorManagement
+ {
+ /**
+ * Method which adds a service to the service locator.
+ *
+ * @param service A proxy to the service that is being registered.
+ *
+ * @param guid A unique identifier for the service which is used in events.
+ *
+ * @return A proxy to the service management interface for this service.
+ */
+ ServiceManagement *addService(Object *service, string guid);
+
+ /**
+ * Method which adds a comparator to the service locator.
+ *
+ * @param compareguid A unique identifier for this comparator.
+ *
+ * @param compare A proxy to the comparator service.
+ *
+ * @throws DuplicateCompare if an existing comparator was found using the given guid.
+ */
+ void addCompare(string compareguid, ServiceLocatorParamsCompare *compare) throws DuplicateCompare;
+
+ /**
+ * Method which removes a comparator from the service locator.
+ *
+ * @param compareguid The unique identifier for the comparator to remove.
+ *
+ * @throws CompareNotFound if the given comparator could not be found.
+ */
+ void removeCompare(string compareguid) throws CompareNotFound;
+ };
}; // end module V1
diff --git a/Core/Endpoint/EndpointIf.ice b/Core/Endpoint/EndpointIf.ice
index 1ba8e45..c2c73b8 100644
--- a/Core/Endpoint/EndpointIf.ice
+++ b/Core/Endpoint/EndpointIf.ice
@@ -12,35 +12,63 @@
module AsteriskSCF
{
+
module Core
{
+
module Endpoint
{
+
["suppress"]
module V1
{
+ /**
+ * String representation of the version of this interface
+ */
const string Version = "V1";
/**
- * A generic Endpoint.
+ * Generic base endpoint interface
*/
interface BaseEndpoint
{
- string getId();
+ /**
+ * Method which returns the identifier for the endpoint.
+ *
+ * @return A string containing the identifier of the endpoint.
+ */
+ idempotent string getId();
};
+ /**
+ * A sequence of endpoint proxies
+ */
sequence<BaseEndpoint*> EndpointSeq;
- interface EndpointManager
+ /**
+ * Endpoint manager interface used to manage endpoints
+ */
+ interface EndpointManager
{
- EndpointSeq getManagedEndpoints();
- Ice::StringSeq getManagedEndpointSpecifications();
- };
+ /**
+ * Method which returns a list of endpoints managed by the endpoint manager in proxy form.
+ *
+ * @return A sequence containing proxies to managed endpoints.
+ */
+ idempotent EndpointSeq getManagedEndpoints();
- // TBD... only implemented minimum need for Routing Service.
+ /**
+ * Method which returns a list of endpoints managed by the endpoint manager in string form.
+ *
+ * @return A sequence containing names of managed endpoints.
+ */
+ idempotent Ice::StringSeq getManagedEndpointSpecifications();
+ };
}; // module V1
+
}; // module Endpoint
+
}; // module Core
-}; // module AsteriskSCF
+}; // module AsteriskSCF
diff --git a/Core/Routing/RoutingIf.ice b/Core/Routing/RoutingIf.ice
index cb2ee29..db8533b 100644
--- a/Core/Routing/RoutingIf.ice
+++ b/Core/Routing/RoutingIf.ice
@@ -12,165 +12,242 @@
module AsteriskSCF
{
+
module Core
{
+
module Routing
{
+
["suppress"]
module V1
{
+ /**
+ * String representation of the version of this interface
+ */
const string Version = "V1";
-
- // Discovery Category Id's
+
+ /**
+ * String name of the service locator category for the routing service component interface.
+ */
const string ComponentServiceDiscoveryCategory = "RoutingService";
+
+ /**
+ * String name of the service locator category for the routing service locator registry interface.
+ */
const string RoutingServiceLocatorRegistryDiscoveryCategory = "RoutingServiceLocatorRegistry";
- const string RoutingServiceAdminDiscoveryCategory = "RoutingServiceAdmin";
+
+ /**
+ * String name of the service locator category for the routing service administration interface.
+ */
+ const string RoutingServiceAdminDiscoveryCategory = "RoutingServiceAdmin";
+
+ /**
+ * String name of the service locator category for the routing service session router interface.
+ */
const string SessionRouterDiscoveryCategory = "SessionRouter";
-
- exception DestinationNotFoundException
+
+ /**
+ * Exception used for indicating that a destination could not be found.
+ */
+ exception DestinationNotFoundException
{
+ /**
+ * A string containing the destination that could not be found.
+ */
string destination;
};
- exception InvalidParamsException {};
+ /**
+ * Exception used for indicating that given parameters were considered invalid.
+ */
+ exception InvalidParamsException { };
+ /**
+ * A sequence of strings which should be regular expressions
+ */
sequence<string> RegExSeq;
/**
- * Provides lookup of an Endpoint based on a string Id.
+ * Interface which provides lookups of endpoints based on a string identifier
*/
interface EndpointLocator
{
/**
- * Returns the endpoints that match the specified destination id.
- * @param id String identifier of the the destination.
+ * Method which returns the endpoints that match the specified destination id.
+ *
+ * @param destination String identifier of the the destination.
+ *
+ * @return A sequence of endpoint proxies that match the destination.
+ *
+ * @throws DestinationNotFoundException if no endpoints could be found that match the destination.
+ *
+ * @throws InvalidParamsException if the destination contains invalid information.
*/
- idempotent Endpoint::V1::EndpointSeq lookup(string destination)
- throws DestinationNotFoundException, InvalidParamsException;
+ idempotent Endpoint::V1::EndpointSeq lookup(string destination)
+ throws DestinationNotFoundException, InvalidParamsException;
};
/**
- * Indicates an attempt was made to register a locator twice under the same name.
+ * Exception used for indicating an attempt was made to register a locator twice under the same name.
*/
- exception LocatorAlreadyRegisteredException
+ exception LocatorAlreadyRegisteredException
{
- string locatorId;
+ /**
+ * A string containing the identifier of the locator.
+ */
+ string locatorId;
};
/**
- * A registry of Endpoints. In addition to providing the EndpointLocator interface, a registry
- * can be augmented with other EndpointLocators. A LocatorRegistry is expected to be able to return
- * a lookup for any of the EndpointLocators added to it.
+ * Interface which extends the locator interface to provide locator registration capabilities. A LocatorRegistry
+ * is expected to be able to return a lookup for any of the EndpointLocators added to it.
*/
interface LocatorRegistry extends EndpointLocator
{
/**
- * Register an EndpointLocator that can provide endpoints.
- * @param id A unique identifier for the added EndpointLocator.
- * @param destinationIdRangeList A set of regular expressions that define the valid endpoint ids
- * the locator being added supports.
+ * Method which registers an EndpointLocator that can provide endpoints.
+ *
+ * @param id A unique identifier for the added EndpointLocator.
+ *
+ * @param destinationIdRangeList A set of regular expressions that define the valid endpoint ids
+ * the locator being added supports.
+ *
+ * @param locator A proxy to the endpoint locator.
+ *
+ * @throws LocatorAlreadyRegisteredException if a locator has already been registered with the given id.
+ *
+ * @throws InvalidParamsException if any parameters are invalid.
*/
- void addEndpointLocator(string id, RegExSeq destinationIdRangeList, EndpointLocator *locator)
- throws LocatorAlreadyRegisteredException, InvalidParamsException;
+ void addEndpointLocator(string id, RegExSeq destinationIdRangeList, EndpointLocator *locator)
+ throws LocatorAlreadyRegisteredException, InvalidParamsException;
/**
- * Remove an EndpointLocator.
- * @param The unique id of the locator to remove.
+ * Method which unregisters an EndpointLocator.
+ *
+ * @param id The unique id of the locator to remove.
+ *
+ * @throws DestinationNotFoundException if the EndpointLocator of the given id is not registered.
*/
void removeEndpointLocator(string id) throws DestinationNotFoundException;
/**
- * Modify the range of device ids managed by a previously added EndpointLocator.
- * @param id A unique identifier for the added EndpointLocator.
- * @param A list of reqular expressions that define the the valid endpoint ids. This
- * set of regular expressions completely replaces the current set.
+ * Method which modifies the range of device ids managed by a previously added EndpointLocator.
+ *
+ * @param id The unique identifier for the added EndpointLocator.
+ *
+ * @param A list of reqular expressions that define the the valid endpoint ids. This
+ * set of regular expressions completely replaces the current set.
+ *
+ * @throws DestinationNotFoundException if the EndpointLocator of the given id is not registered.
+ *
+ * @throws InvalidParamsException if any parameters are invalid.
*/
- void setEndpointLocatorDestinationIds(string id, RegExSeq deviceIdRangeList)
- throws DestinationNotFoundException, InvalidParamsException;
+ void setEndpointLocatorDestinationIds(string id, RegExSeq deviceIdRangeList)
+ throws DestinationNotFoundException, InvalidParamsException;
};
- /**
- * Administrative interface to the service.
+ /**
+ * Interface which provides some administrative control over routing
*/
interface RoutingServiceAdmin
{
/**
- * Drop references to all EndpointLocators that have been registered.
+ * Method which informs routing to drop references to all EndpointLocators that have been registered.
*/
void clearEndpointLocators();
/**
- * Sends a policy string to the Lua script processor. The default implementation is a no-op,
- * but site-specific scripts may make use it.
- * @param policy A site-specific policy specification.
+ * Method which sends a policy string to the Lua script processor. The default implementation is a no-op,
+ * but site-specific scripts may make use it.
+ *
+ * @param policy A site-specific policy specification.
*/
void setPolicy(string policy);
};
-
module Event
{
+ /**
+ * An enum for whether the result of an operation was successful or not
+ */
enum OperationResult
{
- SUCCESS,
- FAILURE
+ SUCCESS,
+ FAILURE
};
+ /**
+ * String name of the IceStorm topic used for routing related events.
+ */
const string TopicId = "::asterisk_scf::routing::event";
-
+
/**
- * Interface for monitoring the basic routing service events.
+ * Interface for monitoring the basic routing service events.
*/
interface RoutingEvents
{
- /**
- * Notification that a lookup was attempted.
- * @param destinationId The destination being looked up.
- * @param result Indicates whether or not the attempt was successful.
- */
- void lookupEvent(string destinationId, OperationResult result);
-
- /**
- * Notification that an attempt to add an EndpointLocator was made.
- * @param id The identifier of the EndpointLocator being added.
- * @param destinationIdRangeList A set of regular expressions that define the endpoints available.
- * @param result Indicates whether or not the attempt was successful.
- */
- void addEndpointLocatorEvent(string id, RegExSeq destinationIdRangeList, OperationResult result);
-
- /**
- * Notification that an attempt was made to remove an EndpointLocator.
- * @param id The identifier of the EndpointLocator being removed.
- * @param result Indicates whether or not the attempt was successful.
- */
- void removeEndpointLocatorEvent(string id, OperationResult result);
-
- /**
- * Notification that an attempt was made to modify the range of destinationIds
- * accessible from a given EndpointLocator.
- * @param id The destination being looked up.
- * @param destinationIdRangeList A list of regular expressions to be representative of the new valid ids.
- * @param result Indicates whether or not the attempt was successful.
- */
- void setEndpointLocatorDestinationIdsEvent(string id, RegExSeq destinationIdRangeList, OperationResult result);
-
- /**
- * Called when the EndpointLocator cache has been cleared by an administrative action.
- */
- void clearEndpointLocatorsEvent();
-
- /**
- * Called when an administation operation has set the routing service policy.
- * @param policy The new policy.
- */
- void setPolicyEvent(string policy);
+ /**
+ * Notification that a lookup was attempted.
+ *
+ * @param destinationId The destination being looked up.
+ *
+ * @param result Indicates whether or not the attempt was successful.
+ */
+ void lookupEvent(string destinationId, OperationResult result);
+
+ /**
+ * Notification that an attempt to add an EndpointLocator was made.
+ *
+ * @param id The identifier of the EndpointLocator being added.
+ *
+ * @param destinationIdRangeList A set of regular expressions that define the endpoints available.
+ *
+ * @param result Indicates whether or not the attempt was successful.
+ */
+ void addEndpointLocatorEvent(string id, RegExSeq destinationIdRangeList, OperationResult result);
+
+ /**
+ * Notification that an attempt was made to remove an EndpointLocator.
+ *
+ * @param id The identifier of the EndpointLocator being removed.
+ *
+ * @param result Indicates whether or not the attempt was successful.
+ */
+ void removeEndpointLocatorEvent(string id, OperationResult result);
+
+ /**
+ * Notification that an attempt was made to modify the range of destinationIds
+ * accessible from a given EndpointLocator.
+ *
+ * @param id The destination being looked up.
+ *
+ * @param destinationIdRangeList A list of regular expressions to be representative of the new valid ids.
+ *
+ * @param result Indicates whether or not the attempt was successful.
+ */
+ void setEndpointLocatorDestinationIdsEvent(string id, RegExSeq destinationIdRangeList, OperationResult result);
+
+ /**
+ * Called when the EndpointLocator cache has been cleared by an administrative action.
+ */
+ void clearEndpointLocatorsEvent();
+
+ /**
+ * Called when an administration operation has set the routing service policy.
+ *
+ * @param policy The new policy.
+ */
+ void setPolicyEvent(string policy);
};
};
}; // module V1
+
}; // module Routing
+
}; // module Core
-}; // module AsteriskSCF
+}; // module AsteriskSCF
diff --git a/Media/MediaIf.ice b/Media/MediaIf.ice
index 29a50c4..292f484 100644
--- a/Media/MediaIf.ice
+++ b/Media/MediaIf.ice
@@ -9,481 +9,491 @@
#pragma once
#include <Ice/BuiltinSequences.ice>
-#include "Core/Discovery/ServiceLocatorIf.ice"
+#include <Core/Discovery/ServiceLocatorIf.ice>
module AsteriskSCF
{
module Media
{
+
["suppress"]
module V1
{
-
- /**
- * Forward declaration of the Frame class so we can define a sequence of them.
- */
- class Frame;
-
- /**
- * Forward declaration of the Format class so we can define a sequence of them.
- */
- 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.
- */
- 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.
- */
- 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.
- */
- class FormatDiscovery extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
- {
- };
-
- /**
- * A format discovery class that allows finding a format based on name.
- */
- 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.
- */
- 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.
- */
- 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.
- */
- 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.
- */
- class MediaOperation
- {
- };
-
- /**
- * 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 sequence of media operations. These are ordered in the order in which they should be
- * executed.
- */
- sequence<MediaOperation> MediaOperationSeq;
-
- /**
- * A media operation query result class, this gets returned by a media operation service when queried.
- */
- 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.
- */
- 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.
- */
- 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;
+
+ /**
+ * Forward declaration of the Format class so we can define a sequence of them.
+ */
+ 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.
+ */
+ class FormatDiscovery extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
+ {
+ };
+
+ /**
+ * A format discovery class that allows finding a format based on name.
+ */
+ 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.
+ */
+ 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.
+ */
+ 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.
+ */
+ 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.
+ */
+ class MediaOperation
+ {
+ };
+
+ /**
+ * 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 sequence of media operations. These are ordered in the order in which they should be
+ * executed.
+ */
+ sequence<MediaOperation> MediaOperationSeq;
+
+ /**
+ * A media operation query result class, this gets returned by a media operation service when queried.
+ */
+ 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.
+ */
+ 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.
+ */
+ 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;
+ };
}; // end module V1
diff --git a/Media/RTP/MediaRTPIf.ice b/Media/RTP/MediaRTPIf.ice
index 5b3d694..37561fc 100644
--- a/Media/RTP/MediaRTPIf.ice
+++ b/Media/RTP/MediaRTPIf.ice
@@ -6,8 +6,8 @@
* All rights reserved.
*/
-#include "Core/Discovery/ServiceLocatorIf.ice"
-#include "Media/MediaIf.ice"
+#include <Core/Discovery/ServiceLocatorIf.ice>
+#include <Media/MediaIf.ice>
module AsteriskSCF
{
@@ -18,127 +18,132 @@ module Media
module RTP
{
+["suppress"]
module V1
{
-
- /**
- * Extended discovery class for RTP media services.
- */
- class RTPServiceLocatorParams extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
- {
- /**
- * A sequence of formats that the RTP media service is expected to transport.
- */
- AsteriskSCF::Media::V1::FormatSeq formats;
- };
-
- /**
- * Interface to an RTP stream source.
- */
- interface StreamSourceRTP extends AsteriskSCF::Media::V1::StreamSource
- {
- /**
- * Method which retrieves the local listening IP address of this source.
- *
- * @return string A string representation of the IP address.
- */
- idempotent string getLocalAddress();
-
- /**
- * Method which retrieves the local listening port of this source.
- *
- * @return int An integer containing the port.
- */
- idempotent int getLocalPort();
- };
-
- /**
- * Interface to an RTP stream sink.
- */
- interface StreamSinkRTP extends AsteriskSCF::Media::V1::StreamSink
- {
- /**
- * Method which changes the IP address and port that media will be sent to.
- *
- * @param address A string representation of the IP address.
- *
- * @param port An integer containing the port.
- */
- void setRemoteDetails(string address, int port);
-
- /**
- * Method which retrieves the remote IP address.
- *
- * @return string A string representation of the IP address.
- */
- idempotent string getRemoteAddress();
-
- /**
- * Method which retrieves the remote port.
- *
- * @return int An integer containing the port.
- */
- idempotent int getRemotePort();
- };
-
- /**
- * Interface to an RTCP session.
- */
- interface RTCPSession
- {
- };
-
- /**
- * A dictionary mapping payloads to media formats.
- */
- dictionary<int, AsteriskSCF::Media::V1::Format> PayloadMap;
-
- /**
- * Interface to an RTP media session.
- */
- interface RTPSession extends AsteriskSCF::Media::V1::Session
- {
- /**
- * Method which associates payloads and media formats.
- *
- * @param mappings The payload and media format mappings.
- */
- void associatePayloads(PayloadMap mappings);
-
- /**
- * Method which enables or disables RTCP on the RTP session.
- *
- * @param enable A boolean value with true meaning RTCP should be used and false meaning it should not.
- */
- void useRTCP(bool enable);
-
- /**
- * Method which retrieves a proxy to an RTCP session.
- *
- * @return RTCPSession* A proxy to the RTCP session associated with this RTP session.
- */
- RTCPSession* getRTCPSession();
-
- /**
- * Method which releases the RTP session. Once called the RTP session will no longer exist.
- */
- void release();
- };
-
- /**
- * Interface to an RTP media service.
- */
- interface RTPMediaService
- {
- /**
- * Method which creates a new RTP session and returns a proxy to it.
- *
- * @param formats The media formats the session is expected to carry.
- *
- * @return RTPSession* A proxy to the new RTP session.
- */
- RTPSession* allocate(AsteriskSCF::Media::V1::FormatSeq formats);
- };
+ /**
+ * String representation of the version of this interface
+ */
+ const string Version = "V1";
+
+ /**
+ * Extended discovery class for RTP media services.
+ */
+ class RTPServiceLocatorParams extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
+ {
+ /**
+ * A sequence of formats that the RTP media service is expected to transport.
+ */
+ AsteriskSCF::Media::V1::FormatSeq formats;
+ };
+
+ /**
+ * Interface to an RTP stream source.
+ */
+ interface StreamSourceRTP extends AsteriskSCF::Media::V1::StreamSource
+ {
+ /**
+ * Method which retrieves the local listening IP address of this source.
+ *
+ * @return string A string representation of the IP address.
+ */
+ idempotent string getLocalAddress();
+
+ /**
+ * Method which retrieves the local listening port of this source.
+ *
+ * @return int An integer containing the port.
+ */
+ idempotent int getLocalPort();
+ };
+
+ /**
+ * Interface to an RTP stream sink.
+ */
+ interface StreamSinkRTP extends AsteriskSCF::Media::V1::StreamSink
+ {
... 1908 lines suppressed ...
--
asterisk-scf/integration/slice.git
More information about the asterisk-scf-commits
mailing list