[hydra-commits] hydra/slice.git branch "master" updated.

Commits to the Hydra project code repositories hydra-commits at lists.digium.com
Fri Aug 6 13:41:11 CDT 2010


branch "master" has been updated
       via  2e3c6d0f4dd971faa13dbfbe8a0d905e4016500d (commit)
       via  7057f74ac2e6837bf683ac55600d825388746aaf (commit)
      from  5caa209193d349a49ebb6035201e093b68eba945 (commit)

Summary of changes:
 Core/Bridging/BridgeServiceIf.ice   |   93 +++++++++++++++++++++++++++++++++++
 Core/Bridging/CMakeLists.txt        |    2 +
 Core/CMakeLists.txt                 |    8 +++-
 Core/Channel/CMakeLists.txt         |    2 +
 Core/Channel/ChannelServiceIf.ice   |   78 +++++++++++++++++++++++++++++
 Core/{Service.ice => ServiceIf.ice} |    0
 6 files changed, 182 insertions(+), 1 deletions(-)
 create mode 100644 Core/Bridging/BridgeServiceIf.ice
 create mode 100644 Core/Bridging/CMakeLists.txt
 create mode 100644 Core/Channel/CMakeLists.txt
 create mode 100644 Core/Channel/ChannelServiceIf.ice
 rename Core/{Service.ice => ServiceIf.ice} (100%)


- Log -----------------------------------------------------------------
commit 2e3c6d0f4dd971faa13dbfbe8a0d905e4016500d
Merge: 7057f74 5caa209
Author: Brent Eagles <beagles at digium.com>
Date:   Fri Aug 6 16:09:28 2010 -0230

    Merge branch 'master' of ssh://git.asterisk.org/hydra/slice

diff --cc Core/CMakeLists.txt
index 8733d8d,1241d12..10def36
--- a/Core/CMakeLists.txt
+++ b/Core/CMakeLists.txt
@@@ -1,10 -1,7 +1,7 @@@
- # Compile our service locator slice definition so we can then use it
- hydra_compile_slice(ServiceLocatorI.ice lib "Slice Defined API" Core)
- 
- # Can't forget about events
- hydra_compile_slice(ServiceLocatorEventsI.ice lib "Slice Defined API" Core)
+ # Slice definitions for Discovery functionality
+ add_subdirectory(Discovery)
  
 -hydra_compile_slice(Service.ice lib "Slice Defined API" Core)
 +hydra_compile_slice(ServiceIf.ice lib "Slice Defined API" Core)
  
  # Slice definitions for Endpoint functionality
  add_subdirectory(Endpoint)

commit 7057f74ac2e6837bf683ac55600d825388746aaf
Author: Brent Eagles <beagles at digium.com>
Date:   Fri Aug 6 16:08:39 2010 -0230

    Initial adding of slice files for Channel and Bridging. Also changed the name of the Service interface

diff --git a/Core/Bridging/BridgeServiceIf.ice b/Core/Bridging/BridgeServiceIf.ice
new file mode 100644
index 0000000..7cbdc55
--- /dev/null
+++ b/Core/Bridging/BridgeServiceIf.ice
@@ -0,0 +1,93 @@
+#ifndef __HYDRA_BRIDGING_SERVICE_ICE
+#define __HYDRA_BRIDGING_SERVICE_ICE
+
+#include <Core/Service.ice>
+#include <Core/Channel/ChannelService.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;
+   };
+
+   /**
+    * EndpointAlreadyRegistered indicates that an attempt to register an ep
+    * has failed because it was registered already.
+    */
+   exception EndpointAlreadyRegistered
+   {
+      Endpoint::V1::EndpointId ep;
+   };
+
+
+   /**
+    * CallManager objects respond to activities on a bridge.
+    *
+    * Note: Currently CallManager objects simply implement the Channel's signalling
+    * callback methods. It might be more appropriate in the future to parallel these
+    * methods, but allow for additional information to be passed as arguments.
+    */
+   interface CallManager extends Channel::V1::SignalCallback
+   {
+   };
+
+   /**
+    * A Bridge manages the assocation between multiple eps participating in
+    * a call.
+    */
+   interface Bridge 
+   { 
+      void addEndpoint(Channel::V1::SessionEndpoint ep);
+      void removeEndpoint(Endpoint::V1::EndpointId id);
+      Channel::V1::SessionEndpointSeq listEndpoints();
+   };
+
+   interface BridgeEvents
+   {
+      void epAdded(Channel::V1::SessionEndpoint ep);
+      void epRemoved(Channel::V1::SessionEndpoint ep);
+      void shuttingDown();
+      void stopped();
+   };
+
+   interface BridgeHook
+   {
+      bool onAddEndpoint(Channel::V1::SessionEndpoint ep);
+      bool onRemoveEndpoint(Channel::V1::SessionEndpoint ep);
+      bool onListEndpoints(Channel::V1::SessionEndpointSeq input, out Channel::V1::SessionEndpointSeq output);
+      bool onShutdown();
+      bool onShutdownComplete();
+      bool onDestroy();
+   };
+
+   interface BridgeFactoryHook
+   {
+      bool onCreateBridge(Channel::V1::SessionEndpoint adminEndpoint, Channel::V1::SessionEndpointSeq eps);
+      bool onShutdown();
+      bool onShutdownCompleted();
+   };
+
+   interface BridgeFactory extends V1::Service
+   {
+      Bridge* createBridge(Channel::V1::SessionEndpoint adminEndpoint, Channel::V1::SessionEndpointSeq eps, 
+	CallManager* manager);
+   };
+};
+};
+};
+};
+#endif
diff --git a/Core/Bridging/CMakeLists.txt b/Core/Bridging/CMakeLists.txt
new file mode 100644
index 0000000..055cdb4
--- /dev/null
+++ b/Core/Bridging/CMakeLists.txt
@@ -0,0 +1,2 @@
+# Compile Bridging API 
+hydra_compile_slice(BridgeServiceIf.ice lib "BridgeService API" Core)
diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt
index c7d360c..8733d8d 100644
--- a/Core/CMakeLists.txt
+++ b/Core/CMakeLists.txt
@@ -4,10 +4,16 @@ hydra_compile_slice(ServiceLocatorI.ice lib "Slice Defined API" Core)
 # Can't forget about events
 hydra_compile_slice(ServiceLocatorEventsI.ice lib "Slice Defined API" Core)
 
-hydra_compile_slice(Service.ice lib "Slice Defined API" Core)
+hydra_compile_slice(ServiceIf.ice lib "Slice Defined API" Core)
 
 # Slice definitions for Endpoint functionality
 add_subdirectory(Endpoint)
 
 # Slice definitions for Routing functionality
 add_subdirectory(Routing)
+
+# Slice definitions for Channels
+add_subdirectory(Channel)
+
+# Slice definitions for Bridging components
+add_subdirectory(Bridging)
diff --git a/Core/Channel/CMakeLists.txt b/Core/Channel/CMakeLists.txt
new file mode 100644
index 0000000..f45f939
--- /dev/null
+++ b/Core/Channel/CMakeLists.txt
@@ -0,0 +1,2 @@
+# Compile Channel API 
+hydra_compile_slice(ChannelServiceIf.ice lib "ChannelService API" Core)
diff --git a/Core/Channel/ChannelServiceIf.ice b/Core/Channel/ChannelServiceIf.ice
new file mode 100644
index 0000000..74c3a36
--- /dev/null
+++ b/Core/Channel/ChannelServiceIf.ice
@@ -0,0 +1,78 @@
+#pragma once
+
+#include <Core/Endpoint/EndpointI.ice>
+#include <Core/Service.ice>
+#include <Media/MediaI.ice>
+
+module Hydra
+{
+module Core
+{
+module Channel
+{
+["suppress"]
+module V1
+{
+   const string Version = "V1";
+
+   ["preserve"]
+   class SessionInfo
+   {
+      Endpoint::V1::EndpointId caller;
+      Endpoint::V1::EndpointId destination;
+      string currentState;
+      string role;
+      long startTime;
+      long connectedTime;
+   };
+
+   sequence<SessionInfo> SessionInfoSeq;
+
+   class ResponseCode
+   {
+      int isdnCode;
+   };
+
+   interface SignalCallback
+   {
+      void ring(Endpoint::V1::EndpointId ep);
+      void connected(Endpoint::V1::EndpointId ep);
+      void terminated(Endpoint::V1::EndpointId ep, ResponseCode response);
+      void busy(Endpoint::V1::EndpointId ep);
+      void congestion(Endpoint::V1::EndpointId ep, ResponseCode response);
+      void hold(Endpoint::V1::EndpointId ep);
+      void unhold(Endpoint::V1::EndpointId ep);
+      void flash(Endpoint::V1::EndpointId ep);
+      void progress(Endpoint::V1::EndpointId ep, ResponseCode response);
+   };
+
+   interface SignalCommands
+   {
+      bool call(Endpoint::V1::EndpointId caller, Endpoint::V1::EndpointId destination, SignalCallback callback);
+      void terminate(Endpoint::V1::EndpointId caller);
+   };
+
+   class SessionEndpoint extends Endpoint::V1::BaseEndpoint   
+   {
+      SignalCommands* command;
+      SignalCallback* callback;
+      Media::V1::Session* mediaSession;
+   };
+
+   /**
+    * A ChannelService is a session-oriented ep manager. 
+    *
+    */
+   interface ChannelService extends V1::Service
+   {
+      SessionInfoSeq listCurrentSessions();
+      SessionEndpoint getEndpoint(Endpoint::V1::EndpointId id);
+   };
+
+   sequence<SessionEndpoint> SessionEndpointSeq;
+
+}; // End of V1
+}; // End of Channel
+}; // End of Core
+}; // End of Hydra
+
diff --git a/Core/Service.ice b/Core/ServiceIf.ice
similarity index 100%
rename from Core/Service.ice
rename to Core/ServiceIf.ice

-----------------------------------------------------------------------


-- 
hydra/slice.git




More information about the asterisk-scf-commits mailing list