[asterisk-scf-commits] asterisk-scf/integration/sip.git branch "master" updated.
Commits to the Asterisk SCF project code repositories
asterisk-scf-commits at lists.digium.com
Fri Aug 20 18:37:23 CDT 2010
branch "master" has been updated
via 1c6fc6e9212a809ac4321e67edb859ea12772dea (commit)
via 893adc76158f7362466686741446d66ffa0e2862 (commit)
from 913141817e1a0b96744170af628828498375bcca (commit)
Summary of changes:
.gitmodules | 6 +-
CMakeLists.txt | 25 +
build/runcmake.bat | 6 +
core-slice/CMakeLists.txt | 14 -
core-slice/Core/Bridging/BridgeServiceEventsIf.ice | 24 -
core-slice/Core/Bridging/BridgeServiceIf.ice | 99 ----
core-slice/Core/Bridging/CMakeLists.txt | 3 -
core-slice/Core/CMakeLists.txt | 11 -
core-slice/Core/Discovery/CMakeLists.txt | 5 -
.../Core/Discovery/ServiceLocatorEventsIf.ice | 69 ---
core-slice/Core/Discovery/ServiceLocatorIf.ice | 164 -------
core-slice/Core/Endpoint/CMakeLists.txt | 4 -
core-slice/Core/Endpoint/EndpointI.ice | 41 --
core-slice/Core/Endpoint/EndpointIf.ice | 56 ---
core-slice/Core/Routing/CMakeLists.txt | 4 -
core-slice/Core/Routing/RoutingI.ice | 153 ------
core-slice/Core/Routing/RoutingIf.ice | 162 -------
core-slice/Media/CMakeLists.txt | 3 -
core-slice/Media/MediaIf.ice | 484 --------------------
core-slice/Media/RTP/CMakeLists.txt | 1 -
core-slice/Media/RTP/MediaRTPIf.ice | 141 ------
core-slice/Session/CMakeLists.txt | 2 -
core-slice/Session/SessionIf.ice | 67 ---
core-slice/System/CMakeLists.txt | 5 -
core-slice/System/Component/CMakeLists.txt | 2 -
core-slice/System/Component/ComponentServiceIf.ice | 63 ---
core-slice/System/Time/CMakeLists.txt | 2 -
core-slice/System/Time/TimeIf.ice | 19 -
local-slice/CMakeLists.txt | 2 +
local-slice/SipIf.ice | 39 ++-
slice | 1 +
src/CMakeLists.txt | 37 ++
src/SipChannelServiceApp.cpp | 359 +++++++++++++++
src/SipChannelServiceDataModel.h | 38 ++
src/SipChannelServiceEndpointLocator.cpp | 17 +
src/SipChannelServiceEndpointLocator.h | 34 ++
src/SipChannelServiceEventPublisher.cpp | 117 +++++
src/SipChannelServiceEventPublisher.h | 35 ++
src/SipEndpoint.cpp | 16 +
src/SipEndpoint.h | 2 +
src/SipEndpointFactory.cpp | 16 +
src/SipEndpointFactory.h | 25 +
test/CMakeLists.txt | 1 +
43 files changed, 771 insertions(+), 1603 deletions(-)
create mode 100644 CMakeLists.txt
create mode 100644 build/runcmake.bat
delete mode 100644 core-slice/CMakeLists.txt
delete mode 100644 core-slice/Core/Bridging/BridgeServiceEventsIf.ice
delete mode 100644 core-slice/Core/Bridging/BridgeServiceIf.ice
delete mode 100644 core-slice/Core/Bridging/CMakeLists.txt
delete mode 100644 core-slice/Core/CMakeLists.txt
delete mode 100644 core-slice/Core/Discovery/CMakeLists.txt
delete mode 100644 core-slice/Core/Discovery/ServiceLocatorEventsIf.ice
delete mode 100644 core-slice/Core/Discovery/ServiceLocatorIf.ice
delete mode 100644 core-slice/Core/Endpoint/CMakeLists.txt
delete mode 100644 core-slice/Core/Endpoint/EndpointI.ice
delete mode 100644 core-slice/Core/Endpoint/EndpointIf.ice
delete mode 100644 core-slice/Core/Routing/CMakeLists.txt
delete mode 100644 core-slice/Core/Routing/RoutingI.ice
delete mode 100644 core-slice/Core/Routing/RoutingIf.ice
delete mode 100644 core-slice/Media/CMakeLists.txt
delete mode 100644 core-slice/Media/MediaIf.ice
delete mode 100644 core-slice/Media/RTP/CMakeLists.txt
delete mode 100644 core-slice/Media/RTP/MediaRTPIf.ice
delete mode 100644 core-slice/Session/CMakeLists.txt
delete mode 100644 core-slice/Session/SessionIf.ice
delete mode 100644 core-slice/System/CMakeLists.txt
delete mode 100644 core-slice/System/Component/CMakeLists.txt
delete mode 100644 core-slice/System/Component/ComponentServiceIf.ice
delete mode 100644 core-slice/System/Time/CMakeLists.txt
delete mode 100644 core-slice/System/Time/TimeIf.ice
create mode 100644 local-slice/CMakeLists.txt
create mode 160000 slice
create mode 100644 src/CMakeLists.txt
create mode 100644 src/SipChannelServiceApp.cpp
create mode 100644 src/SipChannelServiceDataModel.h
create mode 100644 src/SipChannelServiceEndpointLocator.cpp
create mode 100644 src/SipChannelServiceEndpointLocator.h
create mode 100644 src/SipChannelServiceEventPublisher.cpp
create mode 100644 src/SipChannelServiceEventPublisher.h
create mode 100644 src/SipEndpoint.cpp
create mode 100644 src/SipEndpointFactory.cpp
create mode 100644 src/SipEndpointFactory.h
create mode 100644 test/CMakeLists.txt
- Log -----------------------------------------------------------------
commit 1c6fc6e9212a809ac4321e67edb859ea12772dea
Merge: 893adc7 9131418
Author: Ken Hunt <ken.hunt at digium.com>
Date: Fri Aug 20 18:37:22 2010 -0500
Merge branch 'dev'
Conflicts:
src/SipEndpoint.h
diff --cc src/SipEndpoint.h
index cebdf6b,5a07f0e..3bf4fab
--- a/src/SipEndpoint.h
+++ b/src/SipEndpoint.h
@@@ -1,6 -1,5 +1,7 @@@
+#pragma once
+
- #include "RoutingIf.h"
+ #include <Core/Endpoint/EndpointIf.h>
+ #include <Session/SessionIf.h>
namespace Hydra
{
commit 893adc76158f7362466686741446d66ffa0e2862
Author: Ken Hunt <ken.hunt at digium.com>
Date: Fri Aug 20 18:28:15 2010 -0500
Added shell of main App and some of the support classes as stubs.
Went back to using "slice" for the remote slices.
Added CMake scripts and insured everything will build.
You WILL need to manually add the prpoject source directory!
diff --git a/.gitmodules b/.gitmodules
index b16198b..841f83c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,6 @@
-[submodule "core-slice"]
- path = core-slice
- url = ../../integration/slice
[submodule "cmake"]
path = cmake
url = ../../release/cmake
+[submodule "slice"]
+ path = slice
+ url = ../../integration/slice
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..3d74d9b
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,25 @@
+# SIP Channel Service build system
+
+# Minimum we require is 2.6
+cmake_minimum_required(VERSION 2.6)
+
+# Include common Hydra build infrastructure. Make sure your submodules are pulled.
+include(cmake/Hydra_v4.cmake)
+
+# This project is C++ based and requires a minimum of 3.4 of Ice.
+hydra_project(SipChannelService 3.4 CXX)
+
+# We depend on pjsip, so this needs to be taken care of.
+include(cmake/modules/pjproject.cmake)
+pjproject_build(pjlib)
+pjproject_build(pjsip)
+
+# Pull in the slice definitions
+add_subdirectory(slice)
+add_subdirectory(local-slice)
+
+# Add our component's source code
+add_subdirectory(src)
+
+# Pull in the test suite
+add_subdirectory(test)
diff --git a/build/runcmake.bat b/build/runcmake.bat
new file mode 100644
index 0000000..f04369f
--- /dev/null
+++ b/build/runcmake.bat
@@ -0,0 +1,6 @@
+ at ECHO OFF
+REM -Wdev: Enable developer warnings.
+REM --build <sourcedir> : for out-of-source building
+
+cmake -Wdev --build .. -G "Visual Studio 9 2008"
+
diff --git a/core-slice/CMakeLists.txt b/core-slice/CMakeLists.txt
deleted file mode 100644
index c8abc9e..0000000
--- a/core-slice/CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-# Make all of our slice definitions available to... themselves!
-hydra_slice_include_directories(${CMAKE_CURRENT_SOURCE_DIR})
-
-# Slice definitions for core functionality
-add_subdirectory(Core)
-
-# Slice definitions for media functionality
-add_subdirectory(Media)
-
-# Slice definitions for system infrastructure
-add_subdirectory(System)
-
-# Slice definitions for session-oriented communications
-add_subdirectory(Session)
diff --git a/core-slice/Core/Bridging/BridgeServiceEventsIf.ice b/core-slice/Core/Bridging/BridgeServiceEventsIf.ice
deleted file mode 100644
index 2cbb637..0000000
--- a/core-slice/Core/Bridging/BridgeServiceEventsIf.ice
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-#include <Core/Endpoint/EndpointIf.ice>
-
-module Hydra
-{
-module Core
-{
-module Bridging
-{
-["suppress"]
-module V1
-{
- interface BridgeEvents
- {
- void endpointAdded(Endpoint::V1::BaseEndpoint ep);
- void endpointRemoved(Endpoint::V1::BaseEndpoint ep);
- void shuttingDown();
- void stopped();
- };
-}; // End of module V1
-}; // End of module Bridging
-}; // End of module Core
-}; // End of module Hydra
diff --git a/core-slice/Core/Bridging/BridgeServiceIf.ice b/core-slice/Core/Bridging/BridgeServiceIf.ice
deleted file mode 100644
index 4d5615c..0000000
--- a/core-slice/Core/Bridging/BridgeServiceIf.ice
+++ /dev/null
@@ -1,99 +0,0 @@
-#pragma once
-
-#include <Core/Endpoint/EndpointIf.ice>
-#include <System/Component/ComponentServiceIf.ice>
-
-module Hydra
-{
-module Core
-{
-module Bridging
-{
-["suppress"]
-module V1
-{
- const string Version = "V1";
-
- /**
- * UnknownEndpoint indicates that an operation that depended on locating
- * a specific ep has failed to find it.
- */
- exception UnknownEndpoint
- {
- Endpoint::V1::EndpointId ep;
- };
-
- /**
- * Occurs if two endpoints being added to a bridge collide in some way, including media conflicts, etc.
- */
- exception EndpointCollision
- {
- Endpoint::V1::EndpointId first;
- Endpoint::V1::EndpointId second;
- };
-
- /**
- * EndpointAlreadyRegistered indicates that an attempt to register an ep
- * has failed because it was registered already.
- */
- exception EndpointAlreadyRegistered
- {
- Endpoint::V1::EndpointId ep;
- };
-
- /**
- * The specified endpoint is not supported by this bridge.
- */
- exception UnsupportedEndpoint
- {
- Endpoint::V1::EndpointId ep;
- };
-
- /**
- * A Bridge manages the assocation between multiple endpoints participating in
- * a call.
- */
- interface Bridge
- {
- /**
- * Adds an endpoint to the bridge. In addition to simply adding the endpoint to a
- * list of endpoints participating in the bridge, the bridge object may
- * perform additional operations including, but not limited to, setting
- * up transcoding and resampling adapters.
- *
- * @param ep The new endpoint to be added to the bridge.
- * @throws EndpointAlreadyRegistered thrown when the endpoint
- */
- void addEndpoint(Endpoint::V1::BaseEndpoint ep);
- void removeEndpoint(Endpoint::V1::EndpointId id);
- Endpoint::V1::EndpointSeq listEndpoints();
- void shutdown();
- void destroy();
- };
-
- interface BridgeMonitor
- {
- bool onAddEndpoint(Endpoint::V1::BaseEndpoint ep);
- bool onRemoveEndpoint(Endpoint::V1::BaseEndpoint ep);
- bool onListEndpoints(Endpoint::V1::EndpointSeq input, out Endpoint::V1::EndpointSeq output);
- bool onShutdown();
- bool onShutdownComplete();
- bool onDestroy();
- };
-
- interface BridgeFactoryHook
- {
- bool onCreateBridge(Endpoint::V1::BaseEndpoint adminEndpoint, Endpoint::V1::EndpointSeq eps);
- bool onShutdown();
- bool onShutdownCompleted();
- };
-
- interface BridgeFactory extends System::Component::V1::ComponentService
- {
- Bridge* createBridge(Endpoint::V1::BaseEndpoint adminEndpoint, Endpoint::V1::EndpointSeq eps,
- BridgeMonitor* monitor);
- };
-}; // End of module V1
-}; // End of module Bridging
-}; // End of module Core
-}; // End of module Hydra
diff --git a/core-slice/Core/Bridging/CMakeLists.txt b/core-slice/Core/Bridging/CMakeLists.txt
deleted file mode 100644
index 69011bb..0000000
--- a/core-slice/Core/Bridging/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# Compile Bridging API
-hydra_compile_slice(BridgeServiceIf.ice lib "BridgeService API" Core)
-hydra_compile_slice(BridgeServiceEventsIf.ice lib "BridgeService Events API" Core)
diff --git a/core-slice/Core/CMakeLists.txt b/core-slice/Core/CMakeLists.txt
deleted file mode 100644
index 0b26c10..0000000
--- a/core-slice/Core/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-# Slice definitions for Discovery functionality
-add_subdirectory(Discovery)
-
-# Slice definitions for Endpoint functionality
-add_subdirectory(Endpoint)
-
-# Slice definitions for Routing functionality
-add_subdirectory(Routing)
-
-# Slice definitions for Bridging components
-add_subdirectory(Bridging)
diff --git a/core-slice/Core/Discovery/CMakeLists.txt b/core-slice/Core/Discovery/CMakeLists.txt
deleted file mode 100644
index 5a7e573..0000000
--- a/core-slice/Core/Discovery/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# Compile our service locator slice definition so we can then use it
-hydra_compile_slice(ServiceLocatorIf.ice lib "Slice Defined API" Core)
-
-# Can't forget about events
-hydra_compile_slice(ServiceLocatorEventsIf.ice lib "Slice Defined API" Core)
diff --git a/core-slice/Core/Discovery/ServiceLocatorEventsIf.ice b/core-slice/Core/Discovery/ServiceLocatorEventsIf.ice
deleted file mode 100644
index 33fed53..0000000
--- a/core-slice/Core/Discovery/ServiceLocatorEventsIf.ice
+++ /dev/null
@@ -1,69 +0,0 @@
-#pragma once
-
-module Hydra
-{
-
-module System
-{
-
-module Discovery
-{
-
- /**
- * Default topic used for service locator events.
- */
- const string TOPIC="::hydra::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);
-
- /**
- * 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 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 unsuspended.
- *
- * @param guid The unique identifier of the service.
- */
- void serviceUnsuspended(string guid);
- };
-
-}; // end module Discovery
-
-}; // end module System
-
-}; // end module Hydra
diff --git a/core-slice/Core/Discovery/ServiceLocatorIf.ice b/core-slice/Core/Discovery/ServiceLocatorIf.ice
deleted file mode 100644
index 08efca5..0000000
--- a/core-slice/Core/Discovery/ServiceLocatorIf.ice
+++ /dev/null
@@ -1,164 +0,0 @@
-#pragma once
-
-#include <Ice/BuiltinSequences.ice>
-
-module Hydra
-{
-
-module Core
-{
-
-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;
- };
-
-}; // end module V1
-
-}; // end module Discovery
-
-}; // end module Core
-
-}; // end module Hydra
diff --git a/core-slice/Core/Endpoint/CMakeLists.txt b/core-slice/Core/Endpoint/CMakeLists.txt
deleted file mode 100644
index 24a581c..0000000
--- a/core-slice/Core/Endpoint/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# Compile routing service API
-hydra_compile_slice(EndpointIf.ice lib "Endpoint API" Core)
-
-
diff --git a/core-slice/Core/Endpoint/EndpointI.ice b/core-slice/Core/Endpoint/EndpointI.ice
deleted file mode 100644
index 3c65f9b..0000000
--- a/core-slice/Core/Endpoint/EndpointI.ice
+++ /dev/null
@@ -1,41 +0,0 @@
-#pragma once
-
-module Hydra
-{
-module Core
-{
-module Endpoint
-{
-["suppress"]
-module V1
-{
- const string Version = "V1";
-
- /**
- * Unique id for an Endpoint.
- */
- class EndpointId
- {
- string endpointManagerId;
- string deviceId;
- };
-
- /**
- * A generic Endpoint.
- * TBD - NOTE: Not crazy about the name, but needs to be different from the module name!
- */
- class BaseEndpoint
- {
- EndpointId id;
- };
-
- sequence<BaseEndpoint> EndpointSeq;
-
-
- // TBD... only implemented minimum need for Routing Service.
-
-}; // module V1
-}; // module Endpoint
-}; // module Core
-}; // module Hydra
-
diff --git a/core-slice/Core/Endpoint/EndpointIf.ice b/core-slice/Core/Endpoint/EndpointIf.ice
deleted file mode 100644
index ed980f5..0000000
--- a/core-slice/Core/Endpoint/EndpointIf.ice
+++ /dev/null
@@ -1,56 +0,0 @@
-#pragma once
-
-#include <Ice/BuiltinSequences.ice>
-
-module Hydra
-{
-module Core
-{
-module Endpoint
-{
-["suppress"]
-module V1
-{
- const string Version = "V1";
-
- /**
- * Unique id for an Endpoint.
- */
- class EndpointId
- {
- string endpointManagerId;
- string destinationId;
- };
-
- /**
- * Exception thrown when an ID does not meet system requirements.
- */
- exception InvalidEndpointId
- {
- EndpointId badId;
- };
-
- /**
- * A generic Endpoint.
- * TBD - NOTE: Not crazy about the name, but needs to be different from the module name!
- */
- class BaseEndpoint
- {
- EndpointId id;
- };
-
- sequence<BaseEndpoint> EndpointSeq;
-
- interface EndpointManager
- {
- EndpointSeq getManagedEndpoints();
- Ice::StringSeq getManagedEndpointSpecification();
- };
-
- // TBD... only implemented minimum need for Routing Service.
-
-}; // module V1
-}; // module Endpoint
-}; // module Core
-}; // module Hydra
-
diff --git a/core-slice/Core/Routing/CMakeLists.txt b/core-slice/Core/Routing/CMakeLists.txt
deleted file mode 100644
index 5f8756e..0000000
--- a/core-slice/Core/Routing/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# Compile routing service API
-hydra_compile_slice(RoutingIf.ice lib "Routing Service API" Core)
-
-
diff --git a/core-slice/Core/Routing/RoutingI.ice b/core-slice/Core/Routing/RoutingI.ice
deleted file mode 100644
index 2e53b0d..0000000
--- a/core-slice/Core/Routing/RoutingI.ice
+++ /dev/null
@@ -1,153 +0,0 @@
-#pragma once
-
-#include "Core/Endpoint/EndpointI.ice"
-
-module Hydra
-{
-module Core
-{
-module Routing
-{
-["suppress"]
-module V1
-{
- const string Version = "V1";
-
- exception DestinationNotFoundException {};
-
- exception DestinationExistsException {};
-
- exception InvalidParamsException {};
-
- sequence<string> RegExSeq;
-
- /**
- * Provides lookup of an Endpoint based on a string Id.
- */
- interface EndpointLocator
- {
- /**
- * Returns the endpoints that match the specified destination id.
- * @param id String identifier of the the destination.
- */
- idempotent Endpoint::V1::EndpointSeq lookup(string destination)
- throws DestinationNotFoundException, InvalidParamsException;
- };
-
- /**
- * 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 LocatorRegistry extends EndpointLocator
- {
- /**
- * Add an EndpointLocator.
- * @param id A unique identifier for the added EndpointLocator.
- * @param destinationIdRangeList A set of regular expressions that define the valid endpoint ids
- * this locator supports.
- */
- void addEndpointLocator(string id, RegExSeq destinationIdRangeList)
- throws DestinationExistsException, InvalidParamsException;
-
- /**
- * Remove an EndpointLocator.
- * @param The unique id of the locator to remove.
- */
- void removeEndpointLocator(string id) throws DestinationNotFoundException;
-
- // Changes the range of device ids accessible via given EndpointLocator.
- /**
- * 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.
- */
- void setEndpointLocatorDeviceIds(string id, RegExSeq deviceIdRangeList)
- throws DestinationNotFoundException, InvalidParamsException;
- };
-
-
- /**
- * Administrative interface to the service.
- */
- interface RoutingServiceAdmin
- {
- /**
- * 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.
- */
- void setPolicy(string policy);
- };
-
-
- module Event
- {
- enum OperationResult
- {
- SUCCCESS,
- FAILED
- };
-
- const string TopicId = "::hydra::routing::event";
-
- /**
- * 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 setEndpointLocatorDeviceIds(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 setPolicy(string policy);
- };
- };
-
-}; // module V1
-}; // module Routing
-}; // module Core
-}; // module Hydra
-
diff --git a/core-slice/Core/Routing/RoutingIf.ice b/core-slice/Core/Routing/RoutingIf.ice
deleted file mode 100644
index 7080ebd..0000000
--- a/core-slice/Core/Routing/RoutingIf.ice
+++ /dev/null
@@ -1,162 +0,0 @@
-#pragma once
-
-#include <Core/Endpoint/EndpointIf.ice>
-
-module Hydra
-{
-module Core
-{
-module Routing
-{
-["suppress"]
-module V1
-{
- const string Version = "V1";
-
- exception DestinationNotFoundException
- {
- string destination;
- };
-
- exception InvalidParamsException {};
-
- sequence<string> RegExSeq;
-
- /**
- * Provides lookup of an Endpoint based on a string Id.
- */
- interface EndpointLocator
- {
- /**
- * Returns the endpoints that match the specified destination id.
- * @param id String identifier of the the destination.
- */
- 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 LocatorAlreadyRegisteredException
- {
- 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 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.
- */
- void addEndpointLocator(string id, RegExSeq destinationIdRangeList, EndpointLocator *locator)
- throws LocatorAlreadyRegisteredException, InvalidParamsException;
-
- /**
- * Remove an EndpointLocator.
- * @param The unique id of the locator to remove.
- */
- 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.
- */
- void setEndpointLocatorDestinationIds(string id, RegExSeq deviceIdRangeList)
- throws DestinationNotFoundException, InvalidParamsException;
- };
-
-
- /**
- * Administrative interface to the service.
- */
- interface RoutingServiceAdmin
- {
- /**
- * 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.
- */
- void setPolicy(string policy);
- };
-
-
- module Event
- {
- enum OperationResult
- {
- SUCCESS,
- FAILURE
- };
-
- const string TopicId = "::hydra::routing::event";
-
- /**
- * 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);
- };
- };
-
-}; // module V1
-}; // module Routing
-}; // module Core
-}; // module Hydra
-
diff --git a/core-slice/Media/CMakeLists.txt b/core-slice/Media/CMakeLists.txt
deleted file mode 100644
index 94a2c5c..0000000
--- a/core-slice/Media/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-hydra_compile_slice(MediaIf.ice lib "Slice Defined API" Core)
-
-add_subdirectory(RTP)
diff --git a/core-slice/Media/MediaIf.ice b/core-slice/Media/MediaIf.ice
deleted file mode 100644
index 42087a7..0000000
--- a/core-slice/Media/MediaIf.ice
+++ /dev/null
@@ -1,484 +0,0 @@
-#pragma once
-
-#include <Ice/BuiltinSequences.ice>
-#include "Core/Discovery/ServiceLocatorIf.ice"
-
-module Hydra
-{
-
-module Media
-{
-
-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 Hydra::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
-
-}; // end module Media
-
-}; // end module Hydra
diff --git a/core-slice/Media/RTP/CMakeLists.txt b/core-slice/Media/RTP/CMakeLists.txt
deleted file mode 100644
index 2cd97e7..0000000
--- a/core-slice/Media/RTP/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-hydra_compile_slice(MediaRTPIf.ice lib "RTP Media API" Core)
diff --git a/core-slice/Media/RTP/MediaRTPIf.ice b/core-slice/Media/RTP/MediaRTPIf.ice
deleted file mode 100644
index 2562bc5..0000000
--- a/core-slice/Media/RTP/MediaRTPIf.ice
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "Core/Discovery/ServiceLocatorIf.ice"
-#include "Media/MediaIf.ice"
-
-module Hydra
-{
-
-module Media
-{
-
-module RTP
-{
-
-module V1
-{
-
- /**
- * Extended discovery class for RTP media services.
- */
- class RTPServiceLocatorParams extends Hydra::Core::Discovery::V1::ServiceLocatorParams
- {
- /**
- * A sequence of formats that the RTP media service is expected to transport.
- */
- Hydra::Media::V1::FormatSeq formats;
- };
-
- /**
- * Interface to an RTP stream source.
- */
- interface StreamSourceRTP extends Hydra::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 Hydra::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, Hydra::Media::V1::Format> PayloadMap;
-
- /**
- * Interface to an RTP media session.
- */
- interface RTPSession extends Hydra::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(Hydra::Media::V1::FormatSeq formats);
- };
-
-}; // end module V1
-
-}; // end module RTP
-
-}; // end module Media
-
-}; // end module Hydra
diff --git a/core-slice/Session/CMakeLists.txt b/core-slice/Session/CMakeLists.txt
deleted file mode 100644
index 946aa22..0000000
--- a/core-slice/Session/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# Compile Session Oriented API
-hydra_compile_slice(SessionIf.ice lib "Sessions API" Session)
diff --git a/core-slice/Session/SessionIf.ice b/core-slice/Session/SessionIf.ice
deleted file mode 100644
index 0b06dda..0000000
--- a/core-slice/Session/SessionIf.ice
+++ /dev/null
@@ -1,67 +0,0 @@
-#pragma once
-
-#include <Core/Endpoint/EndpointIf.ice>
-#include <System/Time/TimeIf.ice>
-#include <System/Component/ComponentServiceIf.ice>
-#include <Core/Endpoint/EndpointIf.ice>
-#include <Media/MediaIf.ice>
-
-module Hydra
-{
-module Session
-{
-module V1
-{
- class SessionInfo
- {
- Core::Endpoint::V1::EndpointId caller;
- Core::Endpoint::V1::EndpointId destination;
- string currentState;
- string role;
- System::Time::V1::TimeMarker startTime;
- long connectedTime;
- };
-
- sequence<SessionInfo> SessionInfoSeq;
-
- class ResponseCode
- {
- int isdnCode;
- };
-
- interface SignalCallback
- {
- void ring(Core::Endpoint::V1::EndpointId ep);
- void connected(Core::Endpoint::V1::EndpointId ep);
- void terminated(Core::Endpoint::V1::EndpointId ep, ResponseCode response);
- void busy(Core::Endpoint::V1::EndpointId ep);
- void congestion(Core::Endpoint::V1::EndpointId ep, ResponseCode response);
- void hold(Core::Endpoint::V1::EndpointId ep);
- void unhold(Core::Endpoint::V1::EndpointId ep);
- void flash(Core::Endpoint::V1::EndpointId ep);
- void progress(Core::Endpoint::V1::EndpointId ep, ResponseCode response);
- };
-
- interface SignalCommands
- {
- bool call(Core::Endpoint::V1::EndpointId caller, Core::Endpoint::V1::EndpointId destination, SignalCallback callback);
- void terminate(Core::Endpoint::V1::EndpointId caller);
- };
-
- class SessionEndpoint extends Core::Endpoint::V1::BaseEndpoint
- {
- SignalCommands* command;
- SignalCallback* callback;
- Media::V1::Session* mediaSession;
- };
-
- sequence<SessionEndpoint> SessionEndpointSeq;
-
- interface SessionManager extends System::Component::V1::ComponentService
- {
- SessionInfoSeq listCurrentSessions();
- };
-
-}; // End of V1
-}; // End of Session
-}; // End of Hydra
diff --git a/core-slice/System/CMakeLists.txt b/core-slice/System/CMakeLists.txt
deleted file mode 100644
index 526c3fe..0000000
--- a/core-slice/System/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# Slice definitions for Component functionality
-add_subdirectory(Component)
-
-# Slice definitions for Time services functionality
-add_subdirectory(Time)
diff --git a/core-slice/System/Component/CMakeLists.txt b/core-slice/System/Component/CMakeLists.txt
deleted file mode 100644
index fafe3e9..0000000
--- a/core-slice/System/Component/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# Compile Component API
-hydra_compile_slice(ComponentServiceIf.ice lib "ComponentService API" System)
diff --git a/core-slice/System/Component/ComponentServiceIf.ice b/core-slice/System/Component/ComponentServiceIf.ice
deleted file mode 100644
index 0cd1a12..0000000
--- a/core-slice/System/Component/ComponentServiceIf.ice
+++ /dev/null
@@ -1,63 +0,0 @@
-#pragma once
-module Hydra
-{
-module System
-{
-module Component
-{
-module V1
-{
- const string Version = "V1";
-
- /**
- * ShuttingDown is thrown when an operation is performed when a service is in the process
- * of shutting itself down. This exception may be thrown from other interface methods
- */
- exception ShuttingDown {};
-
- /**
- * Suspended is thrown when a service cannot perform an operation because it is a suspended
- * state.
- */
- exception Suspended {};
-
- /**
- * Service is the base interface for all Hydra services. Most components will include an implementation
- * of this or a derived interface.
- */
- interface ComponentService
- {
- /**
- * Suspends activity in the service. In general this means that the primary activity of a service
- * is suspended. Queries about state etc, may or may not be available. Calling suspend on a service
- * that is suspended should be treated as a no-op.
- *
- * @throws ShuttingDown if the service is in the process of shutting down.
- */
- void suspend() throws ShuttingDown;
-
- /**
- * Resumes a service that has been suspended. After this call returns the suspended service
- * must be ready to handle requests in a manner consistent with its state at the time the service
- * was suspended.
- *
- * @throws ShuttingDown if the service is in the process of shutting down.
- */
- void resume() throws ShuttingDown;
-
- /**
- * Commences a clean shutdown of the services. The details of shutdown are implementation specific.
- * For example, some services will begin to reject requests immediately after being shutdown but
- * resume requests currently being handled. Others might abort requests in progress. A component
- * implementing this interface should indicate if requests will be aborted or not on shutdown.
- *
- * @throws Suspended if the service is suspended.
- */
- void shutdown() throws Suspended;
- };
-
-}; // End of module V1
-}; // End of module Component
-}; // End of module System
-}; // End of module Hydra
-
diff --git a/core-slice/System/Time/CMakeLists.txt b/core-slice/System/Time/CMakeLists.txt
deleted file mode 100644
index e0f10ae..0000000
--- a/core-slice/System/Time/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# Compile Time API
-hydra_compile_slice(TimeIf.ice lib "Time services API" System)
diff --git a/core-slice/System/Time/TimeIf.ice b/core-slice/System/Time/TimeIf.ice
deleted file mode 100644
index c9aa376..0000000
--- a/core-slice/System/Time/TimeIf.ice
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-module Hydra
-{
-module System
-{
-module Time
-{
-module V1
-{
- class TimeMarker
- {
- long markTime;
- float scale;
- };
-}; // End of V1
-}; // End of Time
-}; // End of System
-}; // End of Hydra
diff --git a/local-slice/CMakeLists.txt b/local-slice/CMakeLists.txt
new file mode 100644
index 0000000..4f986a0
--- /dev/null
+++ b/local-slice/CMakeLists.txt
@@ -0,0 +1,2 @@
+# Compile SIP Channel Service Component's own slice
+hydra_compile_slice(SipIf.ice lib "SIP Service Slice Types" SipChannelService)
\ No newline at end of file
diff --git a/local-slice/SipIf.ice b/local-slice/SipIf.ice
index c7360b9..39e7c1e 100644
--- a/local-slice/SipIf.ice
+++ b/local-slice/SipIf.ice
@@ -1,9 +1,44 @@
+#pragma once
+
module Hydra
{
-
module SIP
{
+["suppress"]
+module V1
+{
+ const string Version = "V1";
+ const string ComponentServiceDiscoveryCategory = "SipChannelService";
-}; //module SIP
+ // A submodule for our event publication.
+ module Event
+ {
+ const string TopicId = "::hydra::sip::event";
+
+ enum OperationResult
+ {
+ SUCCESS,
+ FAILURE
+ };
+
+ /**
+ * Interface for monitoring the SIP Channel Service events.
+ */
+ interface SipChannelServiceEvents
+ {
+ /**
+ * Notification that a lookup was attempted on our published EndpointLocator.
+ * @param destinationId The destination being looked up.
+ * @param result Indicates whether or not the attempt was successful.
+ */
+ void lookupEvent(string destinationId, OperationResult result);
+
+ //TBD... Add all the other internal events you want to publish.
+
+ };
+
+ }; // module Event
+}; // module V1
+}; //module SIP
}; //module Hydra
diff --git a/slice b/slice
new file mode 160000
index 0000000..e88ddfb
--- /dev/null
+++ b/slice
@@ -0,0 +1 @@
+Subproject commit e88ddfb27c75ef7e4315a598c9c2749052cc0f5b
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..33c2dd7
... 800 lines suppressed ...
--
asterisk-scf/integration/sip.git
More information about the asterisk-scf-commits
mailing list