[asterisk-scf-commits] asterisk-scf/release/slice.git branch "master" updated.
Commits to the Asterisk SCF project code repositories
asterisk-scf-commits at lists.digium.com
Tue May 8 17:29:41 CDT 2012
branch "master" has been updated
via af7ce795989a052e9cfe7d8ed4708d61fdd40656 (commit)
from 68b207aeb191cd49674450b2238d8bc797e32c10 (commit)
Summary of changes:
.../Core/Discovery/ServiceLocatorEventsIf.ice | 32 ++-
.../Core/Discovery/ServiceLocatorIf.ice | 47 ++-
slice/AsteriskSCF/Core/Routing/RoutingIf.ice | 146 ++++---
slice/AsteriskSCF/Media/MediaExtractionIf.ice | 11 +-
slice/AsteriskSCF/Media/MediaIf.ice | 43 ++-
slice/AsteriskSCF/Media/MediaInjectionIf.ice | 10 +-
slice/AsteriskSCF/Media/MediaOperationIf.ice | 14 +-
slice/AsteriskSCF/Media/NetworkIf.ice | 7 +-
slice/AsteriskSCF/Media/RTP/MediaRTCPIf.ice | 39 ++-
slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice | 45 ++-
slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice | 8 +-
slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice | 16 +-
slice/AsteriskSCF/Presence/PresenceIf.ice | 22 +-
slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice | 20 +-
slice/AsteriskSCF/SIP/SIPRegistrarIf.ice | 27 +-
.../SessionCommunicationsExtensionPointsIf.ice | 85 +++-
.../SessionCommunicationsIf.ice | 423 ++++++++++++++------
.../SessionCommunications/TelephonyEventsIf.ice | 33 ++-
.../System/Component/ComponentServiceIf.ice | 37 ++-
.../System/Component/ConfigurationIf.ice | 23 +-
slice/AsteriskSCF/System/Component/ReplicaIf.ice | 31 +-
slice/AsteriskSCF/System/Logger/LoggerIf.ice | 7 +-
slice/AsteriskSCF/System/NAT/NATTraversalIf.ice | 10 +-
slice/AsteriskSCF/System/OperationsIf.ice | 67 +++
24 files changed, 889 insertions(+), 314 deletions(-)
create mode 100644 slice/AsteriskSCF/System/OperationsIf.ice
- Log -----------------------------------------------------------------
commit af7ce795989a052e9cfe7d8ed4708d61fdd40656
Author: Ken Hunt <ken.hunt at digium.com>
Date: Tue May 8 12:10:22 2012 -0500
Changes for new retry logic.
diff --git a/slice/AsteriskSCF/Core/Discovery/ServiceLocatorEventsIf.ice b/slice/AsteriskSCF/Core/Discovery/ServiceLocatorEventsIf.ice
index 53fd522..ef49389 100644
--- a/slice/AsteriskSCF/Core/Discovery/ServiceLocatorEventsIf.ice
+++ b/slice/AsteriskSCF/Core/Discovery/ServiceLocatorEventsIf.ice
@@ -16,6 +16,8 @@
#pragma once
+#include <AsteriskSCF/System/OperationsIf.ice>
+
module AsteriskSCF
{
@@ -38,44 +40,62 @@ module Discovery
/**
* Method which is called when a comparator is registered.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param guid The unique identifier of the comparator.
*/
- void comparisonRegistered(string guid);
+ idempotent void comparisonRegistered(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string guid);
/**
* Method which is called when a comparator is unregistered.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param guid The unique identifier of the comparator.
*/
- void comparisonUnregistered(string guid);
+ idempotent void comparisonUnregistered(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string guid);
/**
* Method which is called when a service is registered.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param guid The unique identifier of the service.
*/
- void serviceRegistered(string guid);
+ idempotent void serviceRegistered(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string guid);
/**
* Method which is called when a service is unregistered.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param guid The unique identifier of the service.
*/
- void serviceUnregistered(string guid);
+ idempotent void serviceUnregistered(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string guid);
/**
* Method which is called when a service is suspended.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param guid The unique identifier of the service.
*/
- void serviceSuspended(string guid);
+ idempotent void serviceSuspended(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string guid);
/**
* Method which is called when a service is unsuspended.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param guid The unique identifier of the service.
*/
- void serviceUnsuspended(string guid);
+ idempotent void serviceUnsuspended(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string guid);
};
}; /* end module Discovery */
diff --git a/slice/AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice b/slice/AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice
index 447f5a6..bb9607d 100644
--- a/slice/AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice
+++ b/slice/AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice
@@ -17,6 +17,7 @@
#pragma once
#include <Ice/BuiltinSequences.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -164,41 +165,46 @@ module V1
/**
* Method which adds supported discovery parameters to a registered service.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @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);
+ idempotent void addLocatorParams(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ServiceLocatorParams params,
+ string compareguid);
/**
* Gets the status of this registered service.
*/
["cpp:const"]
- ServiceStatus getStatus();
+ idempotent ServiceStatus getStatus();
/**
* Method which suspends this service from being considered when a locator request
* is performed.
*/
- void suspend();
+ idempotent void suspend(AsteriskSCF::System::V1::OperationContext operationContext);
/**
* 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();
+ idempotent void unsuspend(AsteriskSCF::System::V1::OperationContext operationContext);
/**
* Method which unregisters this service from the service locator.
*/
- void unregister();
+ idempotent void unregister(AsteriskSCF::System::V1::OperationContext operationContext);
- /**
- * Returns a sequence containing all ServiceLocatorParams added to this object.
- */
- idempotent ServiceLocatorParamsSeq getLocatorParams();
+ /**
+ * Returns a sequence containing all ServiceLocatorParams added to this object.
+ */
+ idempotent ServiceLocatorParamsSeq getLocatorParams();
};
/**
@@ -231,7 +237,7 @@ module V1
* @return A boolean value with true meaning the parameters are supported and false if not.
*
*/
- bool isSupported(ServiceLocatorParams params);
+ idempotent bool isSupported(ServiceLocatorParams params);
};
/**
@@ -248,30 +254,37 @@ module V1
*
* @return A proxy to the service management interface for this service.
*/
- ServiceManagement *addService(Object *service, string guid);
+ idempotent ServiceManagement *addService(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Object *service,
+ string guid);
/**
* Returns a list of all registered services.
*/
["cpp:const"]
- ServiceInfoSeq getServices();
+ idempotent ServiceInfoSeq getServices();
/**
* Returns the registered service with the given guid.
*/
["cpp:const"]
- ServiceInfo getService(string guid);
+ idempotent ServiceInfo getService(string guid);
/**
* Method which adds a comparator to the service locator.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @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;
+ idempotent void addCompare(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string compareguid,
+ ServiceLocatorParamsCompare *compare)
+ throws DuplicateCompare;
/**
* Method which removes a comparator from the service locator.
@@ -280,7 +293,9 @@ module V1
*
* @throws CompareNotFound if the given comparator could not be found.
*/
- void removeCompare(string compareguid) throws CompareNotFound;
+ idempotent void removeCompare(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string compareguid) throws CompareNotFound;
};
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/Core/Routing/RoutingIf.ice b/slice/AsteriskSCF/Core/Routing/RoutingIf.ice
index 85ab304..b70fa6b 100644
--- a/slice/AsteriskSCF/Core/Routing/RoutingIf.ice
+++ b/slice/AsteriskSCF/Core/Routing/RoutingIf.ice
@@ -16,6 +16,7 @@
#pragma once
+#include <AsteriskSCF/System/OperationsIf.ice>
#include <AsteriskSCF/Core/Endpoint/EndpointIf.ice>
module AsteriskSCF
@@ -118,6 +119,8 @@ module V1
/**
* Method which registers an EndpointLocator that can provide endpoints.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param id A unique identifier for the added EndpointLocator.
*
* @param destinationIdRangeList A set of regular expressions that define the valid endpoint ids
@@ -129,23 +132,28 @@ module V1
*
* @throws InvalidParamsException if any parameters are invalid.
*/
- void addEndpointLocator(string id, RegExSeq destinationIdRangeList, EndpointLocator *locator)
- throws LocatorAlreadyRegisteredException, InvalidParamsException;
+ idempotent void addEndpointLocator(AsteriskSCF::System::V1::OperationContext operationContext,
+ string id, RegExSeq destinationIdRangeList, EndpointLocator *locator)
+ throws LocatorAlreadyRegisteredException, InvalidParamsException;
/**
* Method which unregisters an EndpointLocator.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @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;
+ idempotent void removeEndpointLocator(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string id)
+ throws DestinationNotFoundException;
/**
* Method which modifies the range of device ids managed by a previously added EndpointLocator.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @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.
*
@@ -153,8 +161,10 @@ module V1
*
* @throws InvalidParamsException if any parameters are invalid.
*/
- void setEndpointLocatorDestinationIds(string id, RegExSeq deviceIdRangeList)
- throws DestinationNotFoundException, InvalidParamsException;
+ idempotent void setEndpointLocatorDestinationIds(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string id, RegExSeq deviceIdRangeList)
+ throws DestinationNotFoundException, InvalidParamsException;
};
@@ -165,16 +175,19 @@ module V1
{
/**
* Method which informs routing to drop references to all EndpointLocators that have been registered.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
*/
- void clearEndpointLocators();
+ idempotent void clearEndpointLocators(AsteriskSCF::System::V1::OperationContext operationContext);
/**
* 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 operationContext Provides unique context for each call to this operation.
* @param policy A site-specific policy specification.
*/
- void setPolicy(string policy);
+ idempotent void setPolicy(AsteriskSCF::System::V1::OperationContext operationContext, string policy);
};
module Event
@@ -198,59 +211,70 @@ module V1
*/
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, EndpointLocator *locator, 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);
- };
+ /**
+ * Notification that a lookup was attempted.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
+ * @param destinationId The destination being looked up.
+ * @param result Indicates whether or not the attempt was successful.
+ */
+ idempotent void lookupEvent(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string destinationId, OperationResult result);
+
+ /**
+ * Notification that an attempt to add an EndpointLocator was made.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
+ * @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.
+ */
+ idempotent void addEndpointLocatorEvent(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string id, RegExSeq destinationIdRangeList, EndpointLocator *locator, OperationResult result);
+
+ /**
+ * Notification that an attempt was made to remove an EndpointLocator.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
+ * @param id The identifier of the EndpointLocator being removed.
+ * @param result Indicates whether or not the attempt was successful.
+ */
+ idempotent void removeEndpointLocatorEvent(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string id, OperationResult result);
+
+ /**
+ * Notification that an attempt was made to modify the range of destinationIds
+ * accessible from a given EndpointLocator.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
+ * @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.
+ */
+ idempotent void setEndpointLocatorDestinationIdsEvent(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string id, RegExSeq destinationIdRangeList, OperationResult result);
+
+ /**
+ * Called when the EndpointLocator cache has been cleared by an administrative action.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
+ */
+ void clearEndpointLocatorsEvent(AsteriskSCF::System::V1::OperationContext operationContext);
+
+ /**
+ * Called when an administration operation has set the routing service policy.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
+ * @param policy The new policy.
+ */
+ idempotent void setPolicyEvent(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string policy);
+ };
};
}; /* module V1 */
diff --git a/slice/AsteriskSCF/Media/MediaExtractionIf.ice b/slice/AsteriskSCF/Media/MediaExtractionIf.ice
index 16b7d86..2522873 100644
--- a/slice/AsteriskSCF/Media/MediaExtractionIf.ice
+++ b/slice/AsteriskSCF/Media/MediaExtractionIf.ice
@@ -18,6 +18,7 @@
#include <AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice>
#include <AsteriskSCF/Media/MediaIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -108,18 +109,24 @@ module V1
/**
* Method used to request that media extraction occurs.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param requests The media extraction requests.
*
* @return ExtractInstanceDict A dictionary of media extraction instances.
*/
- ExtractInstanceDict startExtraction(ExtractRequestInfoDict requests);
+ ExtractInstanceDict startExtraction(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ExtractRequestInfoDict requests);
/**
* Method used to request that media extraction stop.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param instances The media extraction instances that should stop.
*/
- void stopExtraction(ExtractInstanceSeq instances);
+ void stopExtraction(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ExtractInstanceSeq instances);
};
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/Media/MediaIf.ice b/slice/AsteriskSCF/Media/MediaIf.ice
index c945aac..4dbec41 100644
--- a/slice/AsteriskSCF/Media/MediaIf.ice
+++ b/slice/AsteriskSCF/Media/MediaIf.ice
@@ -18,6 +18,7 @@
#include <Ice/BuiltinSequences.ice>
#include <AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -136,16 +137,22 @@ module V1
/**
* Method used to establish direct media connections external to Asterisk SCF.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param connections The direct connections that are to be established.
*/
- ["amd"] void connectStreams(DirectMediaConnectionDict connections);
+ ["amd"] idempotent void connectStreams(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ DirectMediaConnectionDict connections);
/**
* Method used to tear down direct media connections.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param streams A sequence of streams that should no longer be directly connected.
*/
- ["amd"] void disconnectStreams(Ice::StringSeq streams);
+ ["amd"] idempotent void disconnectStreams(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Ice::StringSeq streams);
};
/**
@@ -229,14 +236,14 @@ module V1
*
* @return StreamSourceSeq A sequence of stream sources.
*/
- StreamSourceSeq getSources();
+ idempotent StreamSourceSeq getSources();
/**
* Method which returns the stream sinks that are on the session.
*
* @return StreamSinkSeq A sequence of stream sinks.
*/
- StreamSinkSeq getSinks();
+ idempotent StreamSinkSeq getSinks();
/**
* Method which returns a unique identifier for the session.
@@ -254,7 +261,9 @@ module V1
* @note There can only be one cookie of a given type associated
* with a session.
*/
- void setCookies(SessionCookies cookies);
+ idempotent void setCookies(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCookies cookies);
/**
* Remove cookies from the session.
@@ -264,7 +273,9 @@ module V1
* Only the concrete type of each cookie passed in is used to
* determine which cookies to remove.
*/
- void removeCookies(SessionCookies cookies);
+ idempotent void removeCookies(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCookies cookies);
/**
* Get cookies stored on the session.
@@ -276,7 +287,7 @@ module V1
* with types that match the types of the template cookies
* provided in the cookieTypes parameter.
*/
- ["amd"] SessionCookies getCookies(SessionCookies cookieTypes);
+ ["amd"] idempotent SessionCookies getCookies(SessionCookies cookieTypes);
};
/**
@@ -304,14 +315,18 @@ module V1
*
* @param destination A proxy to a stream sink where media will be sent to.
*/
- void addSink(StreamSink* destination);
+ idempotent void addSink(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ StreamSink* destination);
/**
* Method which removes a sink. Once removed media will no longer be written to it.
*
* @param destination A proxy to the stream sink to be removed.
*/
- void removeSink(StreamSink* destination);
+ idempotent void removeSink(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ StreamSink* destination);
/**
* Method which retrieves the current stream sinks for media.
@@ -337,11 +352,15 @@ module V1
/**
* Method which requests that the source change the format of frames being sent to ALL sinks.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @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;
+ idempotent void requestFormat(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Format newformat) throws
+ MediaFormatSwitchException;
};
/**
@@ -368,7 +387,9 @@ module V1
*
* @param source A proxy to the stream source that media is being received from.
*/
- idempotent void setSource(StreamSource* source);
+ idempotent void setSource(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ StreamSource* source);
/**
* Method which retrieves the current stream source of media.
diff --git a/slice/AsteriskSCF/Media/MediaInjectionIf.ice b/slice/AsteriskSCF/Media/MediaInjectionIf.ice
index 714e0e9..4c08794 100644
--- a/slice/AsteriskSCF/Media/MediaInjectionIf.ice
+++ b/slice/AsteriskSCF/Media/MediaInjectionIf.ice
@@ -18,6 +18,7 @@
#include <AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice>
#include <AsteriskSCF/Media/MediaIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -107,18 +108,23 @@ module V1
/**
* Method used to request that media injection occurs.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param requests The media injection requests.
*
* @return InjectInstanceDict A dictionary of media injection instances.
*/
- InjectInstanceDict startInjection(InjectRequestInfoDict requests);
+ idempotent InjectInstanceDict startInjection(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ InjectRequestInfoDict requests);
/**
* Method used to request that media injection stop.
*
* @param instances The media injection instances that should stop.
*/
- void stopInjection(InjectInstanceSeq instances);
+ idempotent void stopInjection(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ InjectInstanceSeq instances);
};
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/Media/MediaOperationIf.ice b/slice/AsteriskSCF/Media/MediaOperationIf.ice
index 9dfcd96..ee23ba4 100644
--- a/slice/AsteriskSCF/Media/MediaOperationIf.ice
+++ b/slice/AsteriskSCF/Media/MediaOperationIf.ice
@@ -18,6 +18,7 @@
#include <AsteriskSCF/Media/MediaIf.ice>
#include <AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -44,21 +45,24 @@ const string MediaOperationDiscoveryTranslatorService = "Translator";
interface MediaOperation
{
- StreamSource* getSource();
- StreamSink* getSink();
- void destroy();
+ idempotent StreamSource* getSource();
+ idempotent StreamSink* getSink();
+ idempotent void destroy();
};
interface MediaOperationFactory
{
/**
* Create a new instance of a media operation.
+ * @param operationContext Provides unique id for this request.
* @param source optional source of media that will enter the operation
* @param sink optional source of media that the operation will write to
*/
- MediaOperation* createMediaOperation(
+ idempotent MediaOperation* createMediaOperation(
+ AsteriskSCF::System::V1::OperationContext operationContext,
StreamSource* source,
- StreamSink* sink) throws UnsupportedMediaFormatException;
+ StreamSink* sink) throws
+ UnsupportedMediaFormatException;
};
struct MediaOperationAttributes
diff --git a/slice/AsteriskSCF/Media/NetworkIf.ice b/slice/AsteriskSCF/Media/NetworkIf.ice
index 65d686d..6e62f0a 100644
--- a/slice/AsteriskSCF/Media/NetworkIf.ice
+++ b/slice/AsteriskSCF/Media/NetworkIf.ice
@@ -16,6 +16,8 @@
#pragma once
+#include <AsteriskSCF/System/OperationsIf.ice>
+
module AsteriskSCF
{
@@ -80,7 +82,10 @@ module V1
*
* @throws InvalidAddress when the address passed in is invalid.
*/
- idempotent void setRemoteDetails(string address, int port) throws InvalidAddress;
+ idempotent void setRemoteDetails(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string address, int port) throws
+ InvalidAddress;
/**
* Method which returns the remote address information that we are sending to.
diff --git a/slice/AsteriskSCF/Media/RTP/MediaRTCPIf.ice b/slice/AsteriskSCF/Media/RTP/MediaRTCPIf.ice
index 5923ddf..e3ca165 100644
--- a/slice/AsteriskSCF/Media/RTP/MediaRTCPIf.ice
+++ b/slice/AsteriskSCF/Media/RTP/MediaRTCPIf.ice
@@ -15,6 +15,7 @@
*/
#include <AsteriskSCF/Media/RTP/MediaRTPIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -127,13 +128,19 @@ module V1
*
* Note that this must be called before RTCP will be sent.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param address A string representation of the address.
*
* @param port An integer containing the port.
*
* @throws InvalidAddress when the address passed in is invalid.
*/
- void setRemoteDetails(string address, int port) throws AsteriskSCF::Media::RTP::V1::InvalidAddress;
+ idempotent void setRemoteDetails(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string address,
+ int port) throws
+ AsteriskSCF::Media::RTP::V1::InvalidAddress;
};
/**
@@ -144,30 +151,44 @@ module V1
/**
* Method called when statistics information is updated for a source
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param source The source the statistics were updated on
*
* @param newStatistics Updated statistics information
*/
- void sourceStatisticsUpdated(AsteriskSCF::Media::RTP::V1::StreamSourceRTP* source, Statistics newStatistics);
+ idempotent void sourceStatisticsUpdated(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::Media::RTP::V1::StreamSourceRTP* source,
+ Statistics newStatistics);
/**
* Method called when statistics information is updated for a sink
*
+ * @param operationContext Provides unique context for each call to this operation.
*
* @param sink The sink the statistics were updated on
*
* @param newStatistics Updated statistics information
*/
- void sinkStatisticsUpdated(AsteriskSCF::Media::RTP::V1::StreamSinkRTP* sink, Statistics newStatistics);
+ void sinkStatisticsUpdated(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::Media::RTP::V1::StreamSinkRTP* sink,
+ Statistics newStatistics);
/**
* Method called when the SSRC changes for a source
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param source The source that the SSRC has changed on
*
* @param ssrc The new SSRC value
*/
- void sourceSsrcChanged(AsteriskSCF::Media::RTP::V1::StreamSourceRTP* source, int ssrc);
+ void sourceSsrcChanged(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::Media::RTP::V1::StreamSourceRTP* source,
+ int ssrc);
};
/**
@@ -195,16 +216,22 @@ module V1
/**
* Method used to add a listener which receives statistics information at the RTCP interval
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param listener A proxy to the listener to add
*/
- void addListener(InformationListener *listener);
+ idempotent void addListener(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ InformationListener *listener);
/**
* Method used to remove a listener
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param listener A proxy to the listener to move
*/
- void removeListener(InformationListener *listener);
+ idempotent void removeListener(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ InformationListener *listener);
};
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice b/slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice
index 5b3584a..687837d 100644
--- a/slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice
+++ b/slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice
@@ -17,7 +17,7 @@
#include <AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice>
#include <AsteriskSCF/Media/MediaIf.ice>
#include <AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice>
-
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -125,7 +125,10 @@ module V1
*
* @throws InvalidAddress when the address passed in is invalid.
*/
- void setRemoteDetails(string address, int port) throws InvalidAddress;
+ idempotent void setRemoteDetails(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string address, int port) throws
+ InvalidAddress;
/**
* Method which retrieves the remote IP address.
@@ -155,14 +158,17 @@ module V1
/**
* Method which associates payloads and media formats.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param mappings The payload and media format mappings.
*/
- void associatePayloads(PayloadMap mappings);
+ void associatePayloads(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ PayloadMap mappings);
/**
* Method which releases the RTP session. Once called the RTP session will no longer exist.
*/
- void release();
+ idempotent void release();
};
class RTPOptions
@@ -219,6 +225,8 @@ module V1
*
* Set the key information for the local endpoint.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param suiteName The type of crypto suite to be used.
*
* @param keyInfo The key for the specified crypto suite (may be empty).
@@ -230,12 +238,19 @@ module V1
* @throws SRTPUnavailable if the SRTP functionality is unavailable at the moment, really should not happen.
*
*/
- void setOptions(string suiteName, string keyInfo, bool enableAuthentication, bool enableEncryption)
- throws SRTPUnavailable;
+ idempotent void setOptions(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string suiteName,
+ string keyInfo,
+ bool enableAuthentication,
+ bool enableEncryption)
+ throws SRTPUnavailable;
/**
* Set the key information and initiates communication with peer.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param suiteName The type of crypto suite to be used.
*
* @param keyInfo The key for the specified crypto suite (may be empty).
@@ -251,8 +266,13 @@ module V1
* @throws SRTPAlreadyStarted if this is a duplicate call to start.
*
*/
- void start(string suiteName, string keyInfo, bool enableAuthentication, bool enableEncryption) throws
- SRTPUnavailable, SRTPFailure, SRTPAlreadyStarted;
+ idempotent void start(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string suiteName,
+ string keyInfo,
+ bool enableAuthentication,
+ bool enableEncryption) throws
+ SRTPUnavailable, SRTPFailure, SRTPAlreadyStarted;
};
/**
@@ -272,6 +292,8 @@ module V1
/**
* Method which creates a new RTP session and returns a proxy to it.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param params Parameters to configure the RTP session with.
*
* @return RTPSession* A proxy to the new RTP session.
@@ -279,7 +301,12 @@ module V1
* @throws SessionAllocationFailure if the media service is unable to allocate a session
* to match the provided parameters.
*/
- RTPSession* allocate(RTPServiceLocatorParams params, RTPOptions options, out RTPAllocationOutputs outputs) throws SessionAllocationFailure;
+ idempotent RTPSession* allocate(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ RTPServiceLocatorParams params,
+ RTPOptions options,
+ out RTPAllocationOutputs outputs)
+ throws SessionAllocationFailure;
};
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice b/slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice
index f6489b2..99727fb 100644
--- a/slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice
+++ b/slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice
@@ -16,6 +16,7 @@
#include <AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice>
#include <AsteriskSCF/Media/MediaIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -107,8 +108,11 @@ module V1
*
* @return Format A concrete class containing media format details for the given format.
*/
- idempotent AsteriskSCF::Media::V1::Format getNamedFormat(string name, int sampleRate, int frameSize,
- Ice::StringSeq formatSpecific);
+ idempotent AsteriskSCF::Media::V1::Format getNamedFormat(
+ string name,
+ int sampleRate,
+ int frameSize,
+ Ice::StringSeq formatSpecific);
/**
* Method which retrieves a media format concrete class given an SDP descriptor concrete class.
diff --git a/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice b/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice
index e0388c3..314c7ef 100644
--- a/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice
+++ b/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice
@@ -17,6 +17,7 @@
#include <AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice>
#include <AsteriskSCF/Media/MediaIf.ice>
#include <AsteriskSCF/Media/NetworkIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -114,7 +115,9 @@ module V1
*
* @param datagramSize Maximum datagram size.
*/
- idempotent void setFarMaxDatagram(int datagramSize);
+ idempotent void setFarMaxDatagram(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ int datagramSize);
/**
* Method which returns the maximum datagram size of this source.
@@ -135,7 +138,9 @@ module V1
*
* @param ErrorCorrectionScheme The error correction scheme to use.
*/
- idempotent void setErrorCorrectionScheme(ErrorCorrectionScheme scheme);
+ idempotent void setErrorCorrectionScheme(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ErrorCorrectionScheme scheme);
/**
* Method which gets the error correction scheme.
@@ -173,6 +178,8 @@ module V1
/**
* Method which creates a new UDPTL session and returns a proxy to it.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param params Parameters to configure the UDPTL session with.
*
* @return UDPTLSession* A proxy to the new UDPTL session.
@@ -180,7 +187,10 @@ module V1
* @throws SessionAllocationFailure if the media service is unable to allocate a session
* to match the provided parameters.
*/
- UDPTLSession* allocate(UDPTLServiceLocatorParams params) throws SessionAllocationFailure;
+ idempotent UDPTLSession* allocate(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ UDPTLServiceLocatorParams params)
+ throws SessionAllocationFailure;
};
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/Presence/PresenceIf.ice b/slice/AsteriskSCF/Presence/PresenceIf.ice
index dad6e6c..dfb69db 100644
--- a/slice/AsteriskSCF/Presence/PresenceIf.ice
+++ b/slice/AsteriskSCF/Presence/PresenceIf.ice
@@ -17,6 +17,7 @@
#pragma once
#include <Ice/BuiltinSequences.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -130,11 +131,15 @@ module V1
/**
* Method used to indicate that an resource has updated its status.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param resource Name of the resource that the status is for.
*
* @param newStatus Concrete class containing the status of the resource.
*/
- void update(ResourceStatusDict newStatus);
+ void update(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ResourceStatusDict newStatus);
};
/**
@@ -181,6 +186,8 @@ module V1
*
* Note that the current status for each resource will be sent to the consumer before returning.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param authToken Authentication token received when authenticate was called.
*
* @param resources A sequence of resources to subscribe to.
@@ -189,16 +196,25 @@ module V1
*
* @see Consumer
*/
- void subscribe(Token authToken, Ice::StringSeq resources, Consumer *presenceConsumer);
+ idempotent void subscribe(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Token authToken,
+ Ice::StringSeq resources,
+ Consumer *presenceConsumer);
/**
* Method used to unsubscribe from specific resource status updates.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param resources A sequence of resources that will no longer be subscribed to.
*
* @param presenceConsumer A proxy to the consumer that was subscribed.
*/
- void unsubscribe(Ice::StringSeq resources, Consumer *presenceConsumer);
+ idempotent void unsubscribe(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Ice::StringSeq resources,
+ Consumer *presenceConsumer);
};
}; /* End of module V1 */
diff --git a/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice b/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice
index fc00dc5..6dee7fc 100644
--- a/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice
+++ b/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice
@@ -18,6 +18,7 @@
#include <Ice/BuiltinSequences.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
#include <AsteriskSCF/System/Hook/HookIf.ice>
module AsteriskSCF
@@ -191,13 +192,14 @@ module V1
* authentication challenge (i.e. WWW-Authenticate header) that Asterisk
* SCF will send to the UAC
*/
- AsteriskSCF::System::Hook::V1::HookResult challengeRequest(RequestInfo info, out DigestChallengeSeq challenges);
+ idempotent AsteriskSCF::System::Hook::V1::HookResult challengeRequest(RequestInfo info, out DigestChallengeSeq challenges);
+
/**
* Called when Asterisk SCF is a UAC. This is used to formulate the
* authentication response (i.e. Authorization header) that Asterisk
* SCF will send to the UAS that has sent an authentication challenge
*/
- AsteriskSCF::System::Hook::V1::HookResult respondToChallenge(string endpointName, Ice::StringSeq realms, out ClientAuthSeq auths);
+ idempotent AsteriskSCF::System::Hook::V1::HookResult respondToChallenge(string endpointName, Ice::StringSeq realms, out ClientAuthSeq auths);
};
sequence<AuthHook*> AuthHookSeq;
@@ -224,9 +226,17 @@ module V1
interface AuthExtensionPoint
{
- void addAuthHook(AuthHook *hook, int priority, RequestTypeSeq requestTypes);
- void removeAuthHook(AuthHook *hook);
- void clearAuthHooks();
+ idempotent void addAuthHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AuthHook *hook,
+ int priority,
+ RequestTypeSeq requestTypes);
+
+ idempotent void removeAuthHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AuthHook *hook);
+
+ idempotent void clearAuthHooks(AsteriskSCF::System::V1::OperationContext operationContext);
};
}; /* End of module V1 */
diff --git a/slice/AsteriskSCF/SIP/SIPRegistrarIf.ice b/slice/AsteriskSCF/SIP/SIPRegistrarIf.ice
index c9ec943..5cd2b16 100644
--- a/slice/AsteriskSCF/SIP/SIPRegistrarIf.ice
+++ b/slice/AsteriskSCF/SIP/SIPRegistrarIf.ice
@@ -17,6 +17,7 @@
#pragma once
#include <Ice/BuiltinSequences.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -81,8 +82,14 @@ interface RegistrarListener
* Alerts the listener that contacts have been added.
* The AoR may be new or it may have previous
* bindings.
+ *
+ * @param contacts The added contacts.
+ *
*/
- void contactsAdded(BindingUpdateSeq contacts);
+ idempotent void contactsAdded(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ BindingUpdateSeq contacts);
+
/**
* Alerts the listener that contacts have been removed.
* There is no specific call for indicating that an AoR
@@ -90,7 +97,9 @@ interface RegistrarListener
* method has been called, listeners should take
* appropriate action if the AoR has no bound contacts.
*/
- void contactsRemoved(BindingUpdateSeq contacts);
+ idempotent void contactsRemoved(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ BindingUpdateSeq contacts);
};
/**
@@ -106,19 +115,25 @@ interface Registrar
* The return value is the map of all AoRs and their
* bindings.
*/
- ["amd"] ContactDict addListener(RegistrarListener *listener);
+ ["amd"] idempotent ContactDict addListener(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ RegistrarListener *listener);
+
/**
* Remove a listener.
*/
- ["amd"] void removeListener(RegistrarListener *listener);
+ ["amd"] idempotent void removeListener(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ RegistrarListener *listener);
+
/**
* Get the mapping of all active registrations.
*/
- ["amd"] BindingsDict getAllBindings();
+ ["amd"] idempotent BindingsDict getAllBindings();
/**
* Get all bindings associated with a particular AoR
*/
- ["amd"] BindingSeq getAORBindings(string aor);
+ ["amd"] idempotent BindingSeq getAORBindings(string aor);
};
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
index d464a95..b1da497 100755
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
@@ -18,6 +18,7 @@
#include <AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice>
#include <AsteriskSCF/System/Hook/HookIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
module AsteriskSCF
{
@@ -55,11 +56,15 @@ module V1
* session proxy so that all session methods may be hooked into. The hook may
* instead modify the session by adding or removing cookies.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param originalData Data that the session gateway has for the session
* @param[out] replacementData Modified data for the session
* @return A HookResult indicating whether the hook was successful
*/
- AsteriskSCF::System::Hook::V1::HookResult modifySession(SessionCreationHookData originalData, out SessionCreationHookData replacementData);
+ idempotent AsteriskSCF::System::Hook::V1::HookResult modifySession(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCreationHookData originalData,
+ out SessionCreationHookData replacementData);
};
sequence<SessionCreationHook*> SessionCreationHookSeq;
@@ -69,15 +74,22 @@ module V1
/**
* Add a new session decorator hook
*/
- void addSessionCreationHook(SessionCreationHook* hook);
+ idempotent void addSessionCreationHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCreationHook* hook);
+
/**
* Remove a session decorator hook
*/
- void removeSessionCreationHook(SessionCreationHook* hook);
+ idempotent void removeSessionCreationHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCreationHook* hook);
+
/**
* Remove all session decorator hooks
*/
- void clearSessionCreationHooks();
+ idempotent void clearSessionCreationHooks(
+ AsteriskSCF::System::V1::OperationContext operationContext);
};
const string BridgeCreationExtensionPointCategory = "BridgeCreationHook";
@@ -116,7 +128,9 @@ module V1
/**
* Interpose some operations when creating bridge objects.
*/
- AsteriskSCF::System::Hook::V1::HookResult execute(BridgeCreationHookData originalData,
+ idempotent AsteriskSCF::System::Hook::V1::HookResult execute(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ BridgeCreationHookData originalData,
out BridgeCreationHookData alteredData);
};
@@ -128,17 +142,21 @@ module V1
* Add a new bridge creation hook. Matches on ID and refreshes the proxy if an object with
* that ID has already been added.
*/
- void addHook(BridgeCreationHook* hook);
+ idempotent void addHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ BridgeCreationHook* hook);
/**
* Remove the bridge creation hook that matches the proxy provided.
*/
- void removeHook(BridgeCreationHook* hook);
+ idempotent void removeHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ BridgeCreationHook* hook);
/**
* Clear all registered hooks.
*/
- void clearHooks();
+ idempotent void clearHooks(AsteriskSCF::System::V1::OperationContext operationContext);
};
const string PartyIdentificationHookLocatorCategory = "PartyIdHook";
@@ -155,12 +173,14 @@ module V1
* to the hook. This hook is expected to return the original ConnectedLine record
* or an updated version of it.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param sendingSession The session that has sent ConnectedLine information.
* @param receivedConnectedLineUpdate The data received from the sending session.
* @param[out] replacementConnectedLineUpdate Modified data to be used
* @return A HookResult indicating whether the hook was successful
*/
- AsteriskSCF::System::Hook::V1::HookResult modifyReceivedConnectedLine(
+ idempotent AsteriskSCF::System::Hook::V1::HookResult modifyReceivedConnectedLine(
+ AsteriskSCF::System::V1::OperationContext operationContext,
AsteriskSCF::SessionCommunications::V1::Session *sendingSession,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine receivedConnectedLineUpdate,
out AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine replacementConnectedLineUpdate);
@@ -181,13 +201,15 @@ module V1
* This hook is expected to return the original ConnectedLine record
* or an updated version of it.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param sendingSession The session that has sent ConnectedLine information.
* @param destinationSession The session that will receive the ConnectedLine information.
* @param[out] receivedConnectedLine The data received from the sending session.
* @param[out] replacementConnectedLine Modified data to be used.
* @return A HookResult indicating whether the hook was successful
*/
- AsteriskSCF::System::Hook::V1::HookResult modifyForwardingConnectedLine(
+ idempotent AsteriskSCF::System::Hook::V1::HookResult modifyForwardingConnectedLine(
+ AsteriskSCF::System::V1::OperationContext operationContext,
AsteriskSCF::SessionCommunications::V1::Session *sendingSession,
AsteriskSCF::SessionCommunications::V1::Session *destinationSession,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine receivedConnectedLine,
@@ -209,13 +231,15 @@ module V1
* This hook is expected to return the original ConnectedLine record
* or an updated version of it.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param sendingSession The session that has sent ConnectedLine information.
* @param destinationSession The session that will receive the ConnectedLine information.
* @param[out] receivedConnectedLine The data received from the sending session.
* @param[out] replacementConnectedLine Modified data to be used.
* @return A HookResult indicating whether the hook was successful
*/
- AsteriskSCF::System::Hook::V1::HookResult modifyForwardingCaller(
+ idempotent AsteriskSCF::System::Hook::V1::HookResult modifyForwardingCaller(
+ AsteriskSCF::System::V1::OperationContext operationContext,
AsteriskSCF::SessionCommunications::V1::Session *sendingSession,
AsteriskSCF::SessionCommunications::V1::Session *destinationSession,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller receivedCaller,
@@ -238,13 +262,15 @@ module V1
* This hook is expected to return the original Redirections record
* or an updated version of it.
*
+ * @param operationContext Provides unique context for each call to this operation.
* @param sendingSession The session that has sent Redirections information.
* @param destinationSession The session that will receive the Redirections information.
* @param[out] receivedRedirections The data received from the sending session.
* @param[out] replacementRedirections Modified data to be used.
* @return A HookResult indicating whether the hook was successful
*/
- AsteriskSCF::System::Hook::V1::HookResult modifyForwardingRedirections(
+ idempotent AsteriskSCF::System::Hook::V1::HookResult modifyForwardingRedirections(
+ AsteriskSCF::System::V1::OperationContext operationContext,
AsteriskSCF::SessionCommunications::V1::Session *sendingSession,
AsteriskSCF::SessionCommunications::V1::Session *destinationSession,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections receivedRedirections,
@@ -257,47 +283,64 @@ module V1
/**
* Add a hook for received ConnectedLine party id.
*/
- void addReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
+ idempotent void addReceivedConnectedLinePartyIdHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ReceivedConnectedLinePartyIdHook* hook);
/**
* Add a hook to invoke when forwarding ConnectedLine party id.
*/
- void addForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
+ idempotent void addForwardingConnectedLinePartyIdHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ForwardingConnectedLinePartyIdHook* hook);
/**
* Add a hook to invoke when forwarding ConnectedLine party id.
*/
- void addForwardingCallerPartyIdHook(ForwardingCallerPartyIdHook* hook);
+ idempotent void addForwardingCallerPartyIdHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ForwardingCallerPartyIdHook* hook);
/**
* Add a hook to invoke when forwarding Redirections party id record.
*/
- void addForwardingRedirectionsPartyIdHook(ForwardingRedirectionsPartyIdHook* hook);
+ idempotent void addForwardingRedirectionsPartyIdHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ForwardingRedirectionsPartyIdHook* hook);
/**
* Remove a received ConnectedLine hook
*/
- void removeReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
+ idempotent void removeReceivedConnectedLinePartyIdHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ReceivedConnectedLinePartyIdHook* hook);
/**
* Remove a forwarding ConnectedLine hook
*/
- void removeForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
+ idempotent void removeForwardingConnectedLinePartyIdHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ForwardingConnectedLinePartyIdHook* hook);
/**
* Remove a forwarding ConnectedLine hook
*/
- void removeForwardingCallerPartyIdHook(ForwardingCallerPartyIdHook* hook);
+ idempotent void removeForwardingCallerPartyIdHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ForwardingCallerPartyIdHook* hook);
/**
* Remove a forwarding Redirections hook
*/
- void removeForwardingRedirectionsPartyIdHook(ForwardingRedirectionsPartyIdHook* hook);
+ idempotent void removeForwardingRedirectionsPartyIdHook(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ForwardingRedirectionsPartyIdHook* hook);
/**
* Remove all party identification hooks
*/
- void clearPartyIdentificationHooks();
+ idempotent void clearPartyIdentificationHooks(
+ AsteriskSCF::System::V1::OperationContext operationContext);
};
}; /* End of module V1 */
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index b938374..fac949f 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -20,6 +20,7 @@
#include <AsteriskSCF/Core/Routing/RoutingIf.ice>
#include <AsteriskSCF/System/Component/ComponentServiceIf.ice>
#include <AsteriskSCF/System/ExceptionsIf.ice>
+#include <AsteriskSCF/System/OperationsIf.ice>
#include <AsteriskSCF/System/Time/TimeIf.ice>
#include <AsteriskSCF/Media/MediaIf.ice>
#include <AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice>
@@ -299,6 +300,8 @@ module V1
/**
* Notification that some indication event has occurred on the session.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param source The session the event occurred on.
*
* @param event The indication event that has occurred.
@@ -309,7 +312,11 @@ module V1
*
* @see Indication
*/
- void indicated(Session* source, Indication event, SessionCookies cookies);
+ idempotent void indicated(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Session* source,
+ Indication event,
+ SessionCookies cookies);
};
sequence<SessionListener*> SessionListenerSeq;
@@ -343,54 +350,77 @@ module V1
/**
* Method called to change the state of streams.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param streams A dictionary of streams and their new state.
*/
- ["amd"] void changeStreamStates(AsteriskSCF::Media::V1::StreamStateDict streams);
+ ["amd"] idempotent void changeStreamStates(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::Media::V1::StreamStateDict streams);
/**
* Method called to add streams.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param streams A dictionary of streams with state and requested formats.
*
* @return StreamInformationDict A dictionary of streams actually added with state
* and formats. The identifier for each stream must be that of the requested stream.
*/
- ["amd"] AsteriskSCF::Media::V1::StreamInformationDict addStreams(AsteriskSCF::Media::V1::StreamInformationDict
- streams);
+ ["amd"] idempotent AsteriskSCF::Media::V1::StreamInformationDict addStreams(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::Media::V1::StreamInformationDict streams);
/**
* Method called to remove streams.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param streams A dictionary of streams to remove.
*/
- ["amd"] void removeStreams(AsteriskSCF::Media::V1::StreamInformationDict streams);
+ ["amd"] idempotent void removeStreams(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::Media::V1::StreamInformationDict streams);
/**
* Method which updates connected line party identification.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param connectedLine Connected line party information.
*
* @see Asterisk::SessionCommunications::PartyIdentifcation::V1::ConnectedLine
*/
- void updateConnectedLine(AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine connectedLine);
+ idempotent void updateConnectedLine(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine connectedLine);
/**
* Method which updates caller party identification.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param connectedLine Caller party information.
*
* @see Asterisk::SessionCommunications::PartyIdentifcation::V1::Caller
*/
- void updateCallerID(AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller callerID);
+ idempotent void updateCallerID(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller callerID);
/**
* Method which provides notification of redirections that have occurred.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param redirections Redirections that have occurred
*
* @see Asterisk::SessionCommunications::PartyIdentifcation::V1::Redirections
*/
- void updateRedirections(AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections redirections);
+ idempotent void updateRedirections(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections redirections);
};
/**
@@ -416,48 +446,60 @@ module V1
*
* @see SessionInfo
*/
- ["amd"] SessionInfo addListener(SessionListener* listener);
+ ["amd"] idempotent SessionInfo addListener(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionListener* listener);
- /**
- * Set (or replace) cookies on the session.
- *
- * @param cookies A sequence of one or more concrete objects,
- * each of which are of a type derived from SessionCookie.
- * The session manager will store these cookies on the
- * session, replacing any existing cookies with matching
- * types.
- *
- * @note There can only be one cookie of a given type associated
- * with a session.
- **/
- void setCookies(SessionCookies cookies);
+ /**
+ * Set (or replace) cookies on the session.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
+ *
+ * @param cookies A sequence of one or more concrete objects,
+ * each of which are of a type derived from SessionCookie.
+ * The session manager will store these cookies on the
+ * session, replacing any existing cookies with matching
+ * types.
+ *
+ * @note There can only be one cookie of a given type associated
+ * with a session.
+ **/
+ idempotent void setCookies(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCookies cookies);
- /**
- * Remove cookies from the session.
- *
- * @param cookies A sequence of one or more concrete objects,
- * each of which are of a type derived from SessionCookie.
- * The session manager will remove any cookies on the session
- * with types that match the ones in this sequence; the
- * content of the supplied cookies is not compared.
- **/
- void removeCookies(SessionCookies cookies);
+ /**
+ * Remove cookies from the session.
+ *
+ * @param operationContext Provides unique context for each call to this operation.
+ *
+ * @param cookies A sequence of one or more concrete objects,
+ * each of which are of a type derived from SessionCookie.
+ * The session manager will remove any cookies on the session
+ * with types that match the ones in this sequence; the
+ * content of the supplied cookies is not compared.
+ **/
+ idempotent void removeCookies(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCookies cookies);
- /**
- * Get cookies stored on the session.
- *
- * @param cookieTypes A sequence of zero or more concrete objects,
- * each of which are of a type derived from SessionCookie.
- *
- * @return A sequence of zero or more cookies from the session,
- * with types that match the types of the template cookies
- * provided in the cookieTypes parameter.
- **/
- ["amd"] SessionCookies getCookies(SessionCookies cookieTypes);
+ /**
+ * Get cookies stored on the session.
+ *
+ * @param cookieTypes A sequence of zero or more concrete objects,
+ * each of which are of a type derived from SessionCookie.
+ *
+ * @return A sequence of zero or more cookies from the session,
+ * with types that match the types of the template cookies
+ * provided in the cookieTypes parameter.
+ **/
+ ["amd"] idempotent SessionCookies getCookies(SessionCookies cookieTypes);
/**
* Request that an indication be performed on a session.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param event The indication event to perform.
*
* @throws IndicationException if an error occurs.
@@ -466,7 +508,10 @@ module V1
*
* @see IndicationException
*/
- ["amd"] void indicate(Indication event) throws IndicationException;
+ ["amd"] idempotent void indicate(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Indication event) throws
+ IndicationException;
/**
* Method which retrieves a proxy to the endpoint object that created the current session.
@@ -475,7 +520,7 @@ module V1
*
* @see SessionEndpoint
*/
- ["amd"] SessionEndpoint* getEndpoint();
+ ["amd"] idempotent SessionEndpoint* getEndpoint();
/**
* Method which retrieves information about the current session's state.
@@ -484,14 +529,14 @@ module V1
*
* @see SessionInfo
*/
- ["amd"] SessionInfo getInfo();
+ ["amd"] idempotent SessionInfo getInfo();
/**
* Method which retrieves streams on the session.
*
* @return A StreamInformationDict containing streams and information about them.
*/
- ["amd"] AsteriskSCF::Media::V1::StreamInformationDict getStreams();
+ ["amd"] idempotent AsteriskSCF::Media::V1::StreamInformationDict getStreams();
/**
* Retrieve a media session instance, if available, for the current session.
@@ -501,7 +546,7 @@ module V1
* @return An AsteriskSCF media session for the current session. May be a
* nil reference if the media part of the session has not been initialized.
*/
- ["amd"] AsteriskSCF::Media::V1::Session* getMediaSession();
+ ["amd"] idempotent AsteriskSCF::Media::V1::Session* getMediaSession();
/**
* Removes a listener from the current list. Once removed, a listener
@@ -509,12 +554,14 @@ module V1
*
* @param listener A proxy to the listener to the remove.
*/
- void removeListener(SessionListener* listener);
+ idempotent void removeListener(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionListener* listener);
/**
* Start a session dialogue with a peer.
*/
- void start();
+ idempotent void start(AsteriskSCF::System::V1::OperationContext operationContext);
/**
* End the dialogue with the peer, sending the
@@ -522,7 +569,9 @@ module V1
*
* @param response Code identifying the reason the dialog stopped.
*/
- void stop(ResponseCode response);
+ idempotent void stop(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ResponseCode response);
/**
* Gets the bridge object this Session is associated with.
@@ -531,7 +580,7 @@ module V1
*
* @throws NotBridged if the session is not currently in a bridge.
*/
- ["amd"] Bridge* getBridge() throws NotBridged;
+ ["amd"] idempotent Bridge* getBridge() throws NotBridged;
/**
* Set the Bridge for this session.
@@ -542,7 +591,10 @@ module V1
*
* @return A current copy of the session information.
*/
- ["amd"] SessionInfo setBridge(Bridge* newBridge, SessionListener* listener);
+ ["amd"] idempotent SessionInfo setBridge(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Bridge* newBridge,
+ SessionListener* listener);
/**
* Removes this Session from it's associated Bridge.
@@ -551,7 +603,10 @@ module V1
*
* @throws NotBridged if the session is not currently in a bridge.
*/
- ["amd"] void removeBridge(SessionListener* listener) throws NotBridged;
+ ["amd"] idempotent void removeBridge(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionListener* listener) throws
+ NotBridged;
/**
* Method which sets the session controller proxy to be contacted when actions
@@ -566,6 +621,8 @@ module V1
* the session so it can also perform controller intervention and receive
* notification from the component that passed in the SessionController.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param controller A proxy to the SessionController object implemented by the caller.
*
* @return SessionController* A proxy to the session controller implemented by
@@ -575,8 +632,10 @@ module V1
*
* @see SessionController
*/
- ["amd"] SessionController *setAndGetSessionController(SessionController* controller) throws
- ControllerAlreadySet;
+ ["amd"] idempotent SessionController *setAndGetSessionController(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionController* controller) throws
+ ControllerAlreadySet;
/**
* Method which removes a session controller from a session.
@@ -587,7 +646,9 @@ module V1
*
* @param controller A proxy to the session controller to remove.
*/
- ["amd"] void removeSessionController(SessionController* controller);
+ ["amd"] idempotent void removeSessionController(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionController* controller);
/**
* Method which retrieves caller party identification information
@@ -734,7 +795,7 @@ module V1
* Attempts to establish an end-to-end communication between an
* existing session and destination identified by an address or ID.
*
- * @param operationId Unique id for this operation.
+ * @param operationContext Provides unique context for each call to this operation.
*
* @param source The initiating session.
*
@@ -751,21 +812,23 @@ module V1
* @throws BridgingException if the bridge could not be setup properly.
*/
["amd"]
- void routeSession(string operationId, Session* source,
+ idempotent void routeSession(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Session* source,
string destination,
AsteriskSCF::SessionCommunications::ExtensionPoints::V1::SessionCreationHook* oneShotHook,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller callerID,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections redirects)
throws AsteriskSCF::Core::Routing::V1::DestinationNotFoundException,
EndpointUnreachableException, SessionCreationException,
- SourceTerminatedPreBridgingException, BridgingException ;
+ SourceTerminatedPreBridgingException, BridgingException;
/**
* Connect sessions bridged with one session with a new
* session routable by the destination param.
* The session specified may optionally be replaced.
*
- * @param operationId Unique id for this operation.
+ * @param operationContext Provides unique context for each call to this operation.
*
* @param sessionToReplace The session whose bridged sessions are connected
* with a newly created session. The bridge object is obtained from the accessor on this
@@ -789,22 +852,22 @@ module V1
* @throws NotBridged if the provided session is not currently in a bridge.
*/
["amd"]
- void connectBridgedSessionsWithDestination(
- string operationId,
+ idempotent void connectBridgedSessionsWithDestination(
+ AsteriskSCF::System::V1::OperationContext operationContext,
Session* sessionToReplace,
string destination,
bool replaceSession,
AsteriskSCF::SessionCommunications::ExtensionPoints::V1::SessionCreationHook* oneShotHook)
throws AsteriskSCF::Core::Routing::V1::DestinationNotFoundException,
SessionCreationException,
- SourceTerminatedPreBridgingException, BridgingException, NotBridged ;
+ SourceTerminatedPreBridgingException, BridgingException, NotBridged;
/**
* Replace one session in a Bridge with sessions from another bridge.
* No routing is actually performed. This operation exists here for consistency,
* since connectBridgedSessionsWithDestination(...) is implemented by this interface.
*
- * @param operationId Unique id for this operation.
+ * @param operationContext Provides unique context for each call to this operation.
*
* @param sessionToReplace The session that is to be replaced in a
* bridge. The bridge obejct associated with this session will survive, and
@@ -827,12 +890,12 @@ module V1
* @throws NotBridged if the session provided in sessionToReplace is not currently in a bridge.
*/
["amd"]
- void connectBridgedSessions(
- string operationId,
+ idempotent void connectBridgedSessions(
+ AsteriskSCF::System::V1::OperationContext operationContext,
Session* sessionToReplace,
Session* bridgedSession,
bool replaceSession)
- throws SourceTerminatedPreBridgingException, BridgingException, NotBridged ;
+ throws SourceTerminatedPreBridgingException, BridgingException, NotBridged;
};
/**
@@ -846,6 +909,8 @@ module V1
* a SessionListener object for notification of changes to the session and also
* optionally specifying the streams that should be present on the session.
*
+ * @param operationContext Provides unique context for each call to this operation.
+ *
* @param destination A stringified identifier or address for the destination.
*
* @param callback A SessionListener object to be registered as a listener on the
@@ -855,8 +920,11 @@ module V1
* @return A newly created session object for the destination.
*
*/
- Session* createSession(string destination, SessionListener* callback,
- AsteriskSCF::SessionCommunications::ExtensionPoints::V1::SessionCreationHook* oneShotHook);
+ idempotent Session* createSession(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ string destination,
+ SessionListener* callback,
+ AsteriskSCF::SessionCommunications::ExtensionPoints::V1::SessionCreationHook* oneShotHook);
/**
* Returns the active sessions for this session endpoint.
@@ -871,28 +939,36 @@ module V1
* any sessions created henceforth, until the default listener
* is removed.
*/
- void addDefaultSessionListener(SessionListener* listener);
+ idempotent void addDefaultSessionListener(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionListener* listener);
/**
* Removes a default SessionListener. Doesn't remove the
* the listener from any existing sessions, but rather
* stops adding the listener to future sessions.
*/
- void removeDefaultSessionListener(SessionListener* listener);
+ idempotent void removeDefaultSessionListener(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionListener* listener);
/**
* Adds default SessionCookies for sessions created for this endpoint.
* Does not alter any existing sessions, but any sessions created
* henceforth will have these cookies set.
*/
- void addDefaultSessionCookies(SessionCookies cookies);
+ idempotent void addDefaultSessionCookies(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCookies cookies);
/**
* Removes a set of default SessionCookies for sessions created for this endpoint.
* Doesn't remove cookies from any existing sessions, but new
* sessions for this endpoint will not have these cookies set.
*/
- void removeDefaultSessionCookies(SessionCookies cookies);
+ idempotent void removeDefaultSessionCookies(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionCookies cookies);
};
/**
@@ -994,22 +1070,26 @@ module V1
* Add a sequence of session proxies to the bridge. Sessions are started
* if necessary.
*
+ * @param operationContext Information about the logical operation context.
* @param session A sequence of session proxies.
*
* @throws InvalidSessions if any of the provided sessions are invalid.
+ * @throws BridgeSessionOperationFailed if any of the sessions could not be bridged.
*
* @see Session
* @see InvalidSessions
+ * @see AsteriskSCF::System::V1::OperationContext
*/
["amd"]
- void addSessions(
- SessionWithSessionInfoSeq sessionInfos)
- throws InvalidSessions, BridgeSessionOperationFailed;
+ idempotent void addSessions(AsteriskSCF::System::V1::OperationContext operationContext,
+ SessionWithSessionInfoSeq sessionInfos) throws
+ InvalidSessions, BridgeSessionOperationFailed;
/**
- * Abruptly destroy the bridge. Sessions will not be stopped.
+ * Abruptly destroy the bridge. Sessions will not be stopped. Calls subsequent to the initial call will either
+ * be ignored or an ObjectNotExistException will be thrown.
*/
- void destroy();
+ idempotent void destroy(AsteriskSCF::System::V1::OperationContext operationContext);
/**
* List the sessions currently on the bridge.
@@ -1022,46 +1102,62 @@ module V1
* Removes one or more sessions from the bridge. Sessions are not stopped
* as they are removed.
*
+ * @param operationContext Information about the logical operation context.
* @param sessions A sequence of session proxies.
*
... 843 lines suppressed ...
--
asterisk-scf/release/slice.git
More information about the asterisk-scf-commits
mailing list