[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