[asterisk-scf-commits] asterisk-scf/integration/slice.git branch "operation-context-propogation" updated.
Commits to the Asterisk SCF project code repositories
asterisk-scf-commits at lists.digium.com
Fri Jan 27 17:16:21 CST 2012
branch "operation-context-propogation" has been updated
via 15eebd137a6bda4a45255219cea1faf59f51ee3c (commit)
via 4d2dcb5bb5aab4977850e2a87b6c9a8d9f84bc29 (commit)
via 9af2f0cef96c70925100d325e1eb336e9b056221 (commit)
from cad2c8230444e178fda64d626c5bcc8ef509a8cb (commit)
Summary of changes:
.../Core/Discovery/ServiceLocatorEventsIf.ice | 12 +-
.../Core/Discovery/ServiceLocatorIf.ice | 28 ++-
slice/AsteriskSCF/Core/Routing/RoutingIf.ice | 120 +++++-----
slice/AsteriskSCF/Media/MediaExtractionIf.ice | 11 +-
slice/AsteriskSCF/Media/MediaIf.ice | 31 ++-
slice/AsteriskSCF/Media/MediaInjectionIf.ice | 10 +-
slice/AsteriskSCF/Media/MediaOperationIf.ice | 11 +-
slice/AsteriskSCF/Media/RTP/MediaRTCPIf.ice | 32 +++-
slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice | 42 +++-
slice/AsteriskSCF/Media/SDP/MediaSDPIf.ice | 11 +-
slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice | 8 +-
slice/AsteriskSCF/Presence/PresenceIf.ice | 22 ++-
slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice | 8 +-
slice/AsteriskSCF/SIP/SIPRegistrarIf.ice | 15 +-
.../SessionCommunicationsExtensionPointsIf.ice | 46 +++--
.../SessionCommunicationsIf.ice | 227 +++++++++++++-------
.../SessionCommunications/TelephonyEventsIf.ice | 27 ++-
.../System/Component/ComponentServiceIf.ice | 14 +-
.../System/Component/ConfigurationIf.ice | 19 ++-
slice/AsteriskSCF/System/Component/ReplicaIf.ice | 16 +-
slice/AsteriskSCF/System/Logger/LoggerIf.ice | 7 +-
slice/AsteriskSCF/System/NAT/NATTraversalIf.ice | 4 +-
22 files changed, 468 insertions(+), 253 deletions(-)
- Log -----------------------------------------------------------------
commit 15eebd137a6bda4a45255219cea1faf59f51ee3c
Author: Ken Hunt <ken.hunt at digium.com>
Date: Fri Jan 27 17:15:11 2012 -0600
Applying OperationContext and idempotent tag to enhance retry logic.
diff --git a/slice/AsteriskSCF/Core/Discovery/ServiceLocatorEventsIf.ice b/slice/AsteriskSCF/Core/Discovery/ServiceLocatorEventsIf.ice
index 53fd522..6578c25 100644
--- a/slice/AsteriskSCF/Core/Discovery/ServiceLocatorEventsIf.ice
+++ b/slice/AsteriskSCF/Core/Discovery/ServiceLocatorEventsIf.ice
@@ -40,42 +40,42 @@ module Discovery
*
* @param guid The unique identifier of the comparator.
*/
- void comparisonRegistered(string guid);
+ idempotent 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);
+ idempotent 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);
+ idempotent 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);
+ idempotent 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);
+ idempotent 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);
+ idempotent void serviceUnsuspended(string guid);
};
}; /* end module Discovery */
diff --git a/slice/AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice b/slice/AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice
index 4874c9d..6b2bc8b 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
{
@@ -162,36 +163,41 @@ module V1
/**
* Method which adds supported discovery parameters to a registered service.
*
+ * @param operationContext Provides unique id for 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();
/**
* 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();
/**
* Method which unregisters this service from the service locator.
*/
- void unregister();
+ idempotent void unregister();
};
/**
@@ -224,7 +230,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);
};
/**
@@ -241,19 +247,19 @@ module V1
*
* @return A proxy to the service management interface for this service.
*/
- ServiceManagement *addService(Object *service, string guid);
+ idempotent ServiceManagement *addService(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.
@@ -264,7 +270,7 @@ module V1
*
* @throws DuplicateCompare if an existing comparator was found using the given guid.
*/
- void addCompare(string compareguid, ServiceLocatorParamsCompare *compare) throws DuplicateCompare;
+ idempotent void addCompare(string compareguid, ServiceLocatorParamsCompare *compare) throws DuplicateCompare;
/**
* Method which removes a comparator from the service locator.
@@ -273,7 +279,7 @@ module V1
*
* @throws CompareNotFound if the given comparator could not be found.
*/
- void removeCompare(string compareguid) throws CompareNotFound;
+ idempotent void removeCompare(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..1af6c20 100644
--- a/slice/AsteriskSCF/Core/Routing/RoutingIf.ice
+++ b/slice/AsteriskSCF/Core/Routing/RoutingIf.ice
@@ -129,8 +129,8 @@ module V1
*
* @throws InvalidParamsException if any parameters are invalid.
*/
- void addEndpointLocator(string id, RegExSeq destinationIdRangeList, EndpointLocator *locator)
- throws LocatorAlreadyRegisteredException, InvalidParamsException;
+ idempotent void addEndpointLocator(string id, RegExSeq destinationIdRangeList, EndpointLocator *locator)
+ throws LocatorAlreadyRegisteredException, InvalidParamsException;
/**
* Method which unregisters an EndpointLocator.
@@ -139,7 +139,7 @@ module V1
*
* @throws DestinationNotFoundException if the EndpointLocator of the given id is not registered.
*/
- void removeEndpointLocator(string id) throws DestinationNotFoundException;
+ idempotent void removeEndpointLocator(string id) throws DestinationNotFoundException;
/**
* Method which modifies the range of device ids managed by a previously added EndpointLocator.
@@ -153,8 +153,8 @@ module V1
*
* @throws InvalidParamsException if any parameters are invalid.
*/
- void setEndpointLocatorDestinationIds(string id, RegExSeq deviceIdRangeList)
- throws DestinationNotFoundException, InvalidParamsException;
+ idempotent void setEndpointLocatorDestinationIds(string id, RegExSeq deviceIdRangeList)
+ throws DestinationNotFoundException, InvalidParamsException;
};
@@ -166,7 +166,7 @@ module V1
/**
* Method which informs routing to drop references to all EndpointLocators that have been registered.
*/
- void clearEndpointLocators();
+ idempotent void clearEndpointLocators();
/**
* Method which sends a policy string to the Lua script processor. The default implementation is a no-op,
@@ -174,7 +174,7 @@ module V1
*
* @param policy A site-specific policy specification.
*/
- void setPolicy(string policy);
+ idempotent void setPolicy(string policy);
};
module Event
@@ -198,59 +198,59 @@ 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 destinationId The destination being looked up.
+ *
+ * @param result Indicates whether or not the attempt was successful.
+ */
+ idempotent 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.
+ */
+ idempotent 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.
+ */
+ idempotent 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.
+ */
+ idempotent 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.
+ */
+ idempotent void setPolicyEvent(string policy);
+ };
};
}; /* module V1 */
diff --git a/slice/AsteriskSCF/Media/MediaExtractionIf.ice b/slice/AsteriskSCF/Media/MediaExtractionIf.ice
index 16b7d86..195703d 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 id for 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 id for 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..971a326 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 id for 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 id for 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,7 @@ module V1
* @note There can only be one cookie of a given type associated
* with a session.
*/
- void setCookies(SessionCookies cookies);
+ idempotent void setCookies(SessionCookies cookies);
/**
* Remove cookies from the session.
@@ -264,7 +271,7 @@ 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(SessionCookies cookies);
/**
* Get cookies stored on the session.
@@ -276,7 +283,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 +311,14 @@ module V1
*
* @param destination A proxy to a stream sink where media will be sent to.
*/
- void addSink(StreamSink* destination);
+ idempotent void addSink(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(StreamSink* destination);
/**
* Method which retrieves the current stream sinks for media.
@@ -337,11 +344,14 @@ module V1
/**
* Method which requests that the source change the format of frames being sent to ALL sinks.
*
+ * @param operationContext Provides unique id for 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;
};
/**
@@ -353,6 +363,7 @@ module V1
* Method which gives the implementation a sequence of frames which it will then deal with in an implementation
* specific manner.
*
+ * @param operationContext Provides unique id for this operation.
* @param frames A sequence of frames.
*
* @throws UnsupportedMediaFormatException if the format of a frame is not supported by the sink.
diff --git a/slice/AsteriskSCF/Media/MediaInjectionIf.ice b/slice/AsteriskSCF/Media/MediaInjectionIf.ice
index 714e0e9..87efc48 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 id for 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..11ce8c9 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,19 +45,21 @@ 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;
};
diff --git a/slice/AsteriskSCF/Media/RTP/MediaRTCPIf.ice b/slice/AsteriskSCF/Media/RTP/MediaRTCPIf.ice
index 5923ddf..f6a9b67 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,18 @@ module V1
*
* Note that this must be called before RTCP will be sent.
*
+ * @param operationContext Provides unique id for 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 +150,44 @@ module V1
/**
* Method called when statistics information is updated for a source
*
+ * @param operationContext Provides unique id for 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 id for 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 id for 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);
};
/**
@@ -197,14 +217,14 @@ module V1
*
* @param listener A proxy to the listener to add
*/
- void addListener(InformationListener *listener);
+ idempotent void addListener(InformationListener *listener);
/**
* Method used to remove a listener
*
* @param listener A proxy to the listener to move
*/
- void removeListener(InformationListener *listener);
+ idempotent void removeListener(InformationListener *listener);
};
}; /* end module V1 */
diff --git a/slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice b/slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice
index 5b3584a..6692d6c 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,7 @@ module V1
*
* @throws InvalidAddress when the address passed in is invalid.
*/
- void setRemoteDetails(string address, int port) throws InvalidAddress;
+ idempotent void setRemoteDetails(string address, int port) throws InvalidAddress;
/**
* Method which retrieves the remote IP address.
@@ -155,14 +155,17 @@ module V1
/**
* Method which associates payloads and media formats.
*
+ * @param operationContext Provides unique id for 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 +222,8 @@ module V1
*
* Set the key information for the local endpoint.
*
+ * @param operationContext Provides unique id for 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 +235,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 id for 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 +263,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 +289,8 @@ module V1
/**
* Method which creates a new RTP session and returns a proxy to it.
*
+ * @param operationContext Provides unique id for this operation.
+ *
* @param params Parameters to configure the RTP session with.
*
* @return RTPSession* A proxy to the new RTP session.
@@ -279,7 +298,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..e57bc50 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
{
@@ -97,6 +98,8 @@ module V1
/**
* Method which retrieves a media format concrete class given a specific name.
*
+ * @param operationContext Provides unique id for this operation.
+ *
* @param name Name of the media format, may contain additional details according to the descriptor service.
*
* @param sampleRate The sample rate for the frames.
@@ -107,8 +110,12 @@ 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(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ 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..7d0c8d7 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
{
@@ -173,6 +174,8 @@ module V1
/**
* Method which creates a new UDPTL session and returns a proxy to it.
*
+ * @param operationContext Provides unique id for this operation.
+ *
* @param params Parameters to configure the UDPTL session with.
*
* @return UDPTLSession* A proxy to the new UDPTL session.
@@ -180,7 +183,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..aadd260 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 id for 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 id for 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 id for 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..974ecb0 100644
--- a/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice
+++ b/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice
@@ -197,7 +197,7 @@ module V1
* 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 +224,9 @@ module V1
interface AuthExtensionPoint
{
- void addAuthHook(AuthHook *hook, int priority, RequestTypeSeq requestTypes);
- void removeAuthHook(AuthHook *hook);
- void clearAuthHooks();
+ idempotent void addAuthHook(AuthHook *hook, int priority, RequestTypeSeq requestTypes);
+ idempotent void removeAuthHook(AuthHook *hook);
+ idempotent void clearAuthHooks();
};
}; /* End of module V1 */
diff --git a/slice/AsteriskSCF/SIP/SIPRegistrarIf.ice b/slice/AsteriskSCF/SIP/SIPRegistrarIf.ice
index c9ec943..0cfd3f9 100644
--- a/slice/AsteriskSCF/SIP/SIPRegistrarIf.ice
+++ b/slice/AsteriskSCF/SIP/SIPRegistrarIf.ice
@@ -81,8 +81,11 @@ 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(BindingUpdateSeq contacts);
/**
* Alerts the listener that contacts have been removed.
* There is no specific call for indicating that an AoR
@@ -90,7 +93,7 @@ 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(BindingUpdateSeq contacts);
};
/**
@@ -106,19 +109,19 @@ interface Registrar
* The return value is the map of all AoRs and their
* bindings.
*/
- ["amd"] ContactDict addListener(RegistrarListener *listener);
+ ["amd"] idempotent ContactDict addListener(RegistrarListener *listener);
/**
* Remove a listener.
*/
- ["amd"] void removeListener(RegistrarListener *listener);
+ ["amd"] idempotent void removeListener(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..5865792 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
{
@@ -59,7 +60,9 @@ module V1
* @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(
+ SessionCreationHookData originalData,
+ out SessionCreationHookData replacementData);
};
sequence<SessionCreationHook*> SessionCreationHookSeq;
@@ -69,15 +72,15 @@ module V1
/**
* Add a new session decorator hook
*/
- void addSessionCreationHook(SessionCreationHook* hook);
+ idempotent void addSessionCreationHook(SessionCreationHook* hook);
/**
* Remove a session decorator hook
*/
- void removeSessionCreationHook(SessionCreationHook* hook);
+ idempotent void removeSessionCreationHook(SessionCreationHook* hook);
/**
* Remove all session decorator hooks
*/
- void clearSessionCreationHooks();
+ idempotent void clearSessionCreationHooks();
};
const string BridgeCreationExtensionPointCategory = "BridgeCreationHook";
@@ -116,7 +119,8 @@ module V1
/**
* Interpose some operations when creating bridge objects.
*/
- AsteriskSCF::System::Hook::V1::HookResult execute(BridgeCreationHookData originalData,
+ idempotent AsteriskSCF::System::Hook::V1::HookResult execute(
+ BridgeCreationHookData originalData,
out BridgeCreationHookData alteredData);
};
@@ -128,17 +132,17 @@ 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(BridgeCreationHook* hook);
/**
* Remove the bridge creation hook that matches the proxy provided.
*/
- void removeHook(BridgeCreationHook* hook);
+ idempotent void removeHook(BridgeCreationHook* hook);
/**
* Clear all registered hooks.
*/
- void clearHooks();
+ idempotent void clearHooks();
};
const string PartyIdentificationHookLocatorCategory = "PartyIdHook";
@@ -160,7 +164,7 @@ module V1
* @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::SessionCommunications::V1::Session *sendingSession,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine receivedConnectedLineUpdate,
out AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine replacementConnectedLineUpdate);
@@ -187,7 +191,7 @@ module V1
* @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::SessionCommunications::V1::Session *sendingSession,
AsteriskSCF::SessionCommunications::V1::Session *destinationSession,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine receivedConnectedLine,
@@ -215,7 +219,7 @@ module V1
* @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::SessionCommunications::V1::Session *sendingSession,
AsteriskSCF::SessionCommunications::V1::Session *destinationSession,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller receivedCaller,
@@ -244,7 +248,7 @@ module V1
* @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::SessionCommunications::V1::Session *sendingSession,
AsteriskSCF::SessionCommunications::V1::Session *destinationSession,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections receivedRedirections,
@@ -257,47 +261,47 @@ module V1
/**
* Add a hook for received ConnectedLine party id.
*/
- void addReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
+ idempotent void addReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
/**
* Add a hook to invoke when forwarding ConnectedLine party id.
*/
- void addForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
+ idempotent void addForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
/**
* Add a hook to invoke when forwarding ConnectedLine party id.
*/
- void addForwardingCallerPartyIdHook(ForwardingCallerPartyIdHook* hook);
+ idempotent void addForwardingCallerPartyIdHook(ForwardingCallerPartyIdHook* hook);
/**
* Add a hook to invoke when forwarding Redirections party id record.
*/
- void addForwardingRedirectionsPartyIdHook(ForwardingRedirectionsPartyIdHook* hook);
+ idempotent void addForwardingRedirectionsPartyIdHook(ForwardingRedirectionsPartyIdHook* hook);
/**
* Remove a received ConnectedLine hook
*/
- void removeReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
+ idempotent void removeReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
/**
* Remove a forwarding ConnectedLine hook
*/
- void removeForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
+ idempotent void removeForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
/**
* Remove a forwarding ConnectedLine hook
*/
- void removeForwardingCallerPartyIdHook(ForwardingCallerPartyIdHook* hook);
+ idempotent void removeForwardingCallerPartyIdHook(ForwardingCallerPartyIdHook* hook);
/**
* Remove a forwarding Redirections hook
*/
- void removeForwardingRedirectionsPartyIdHook(ForwardingRedirectionsPartyIdHook* hook);
+ idempotent void removeForwardingRedirectionsPartyIdHook(ForwardingRedirectionsPartyIdHook* hook);
/**
* Remove all party identification hooks
*/
- void clearPartyIdentificationHooks();
+ idempotent void clearPartyIdentificationHooks();
};
}; /* End of module V1 */
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index 23c1236..1dd53a6 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -300,6 +300,8 @@ module V1
/**
* Notification that some indication event has occurred on the session.
*
+ * @param operationContext Provides unique id for this operation.
+ *
* @param source The session the event occurred on.
*
* @param event The indication event that has occurred.
@@ -310,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;
@@ -344,54 +350,78 @@ module V1
/**
* Method called to change the state of streams.
*
+ * @param operationContext Provides unique id for 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 id for 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 id for 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 id for 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 id for 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 id for 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);
};
/**
@@ -417,48 +447,50 @@ module V1
*
* @see SessionInfo
*/
- ["amd"] SessionInfo addListener(SessionListener* listener);
+ ["amd"] idempotent SessionInfo addListener(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 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(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 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(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 id for this operation.
+ *
* @param event The indication event to perform.
*
* @throws IndicationException if an error occurs.
@@ -467,7 +499,9 @@ 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.
@@ -476,7 +510,7 @@ module V1
*
* @see SessionEndpoint
*/
- ["amd"] SessionEndpoint* getEndpoint();
+ ["amd"] idempotent SessionEndpoint* getEndpoint();
/**
* Method which retrieves information about the current session's state.
@@ -485,14 +519,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.
@@ -502,7 +536,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
@@ -510,12 +544,12 @@ module V1
*
* @param listener A proxy to the listener to the remove.
*/
- void removeListener(SessionListener* listener);
+ idempotent void removeListener(SessionListener* listener);
/**
* Start a session dialogue with a peer.
*/
- void start();
+ idempotent void start();
/**
* End the dialogue with the peer, sending the
@@ -523,7 +557,7 @@ module V1
*
* @param response Code identifying the reason the dialog stopped.
*/
- void stop(ResponseCode response);
+ idempotent void stop(ResponseCode response);
/**
* Gets the bridge object this Session is associated with.
@@ -532,7 +566,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.
@@ -543,7 +577,7 @@ module V1
*
* @return A current copy of the session information.
*/
- ["amd"] SessionInfo setBridge(Bridge* newBridge, SessionListener* listener);
+ ["amd"] idempotent SessionInfo setBridge(Bridge* newBridge, SessionListener* listener);
/**
* Removes this Session from it's associated Bridge.
@@ -552,7 +586,7 @@ module V1
*
* @throws NotBridged if the session is not currently in a bridge.
*/
- ["amd"] void removeBridge(SessionListener* listener) throws NotBridged;
+ ["amd"] idempotent void removeBridge(SessionListener* listener) throws NotBridged;
/**
* Method which sets the session controller proxy to be contacted when actions
@@ -576,7 +610,7 @@ module V1
*
* @see SessionController
*/
- ["amd"] SessionController *setAndGetSessionController(SessionController* controller) throws
+ ["amd"] idempotent SessionController *setAndGetSessionController(SessionController* controller) throws
ControllerAlreadySet;
/**
@@ -588,7 +622,7 @@ module V1
*
* @param controller A proxy to the session controller to remove.
*/
- ["amd"] void removeSessionController(SessionController* controller);
+ ["amd"] idempotent void removeSessionController(SessionController* controller);
/**
* Method which retrieves caller party identification information
@@ -735,7 +769,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 id for this operation.
*
* @param source The initiating session.
*
@@ -752,7 +786,9 @@ module V1
* @throws BridgingException if the bridge could not be setup properly.
*/
["amd"]
- idempotent 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,
@@ -766,7 +802,7 @@ module V1
* session routable by the destination param.
* The session specified may optionally be replaced.
*
- * @param operationId Unique id for this operation.
+ * @param operationContext Provides unique id for 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
@@ -791,7 +827,7 @@ module V1
*/
["amd"]
idempotent void connectBridgedSessionsWithDestination(
- string operationId,
+ AsteriskSCF::System::V1::OperationContext operationContext,
Session* sessionToReplace,
string destination,
bool replaceSession,
@@ -805,7 +841,7 @@ module V1
* 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 id for this operation.
*
* @param sessionToReplace The session that is to be replaced in a
* bridge. The bridge obejct associated with this session will survive, and
@@ -829,7 +865,7 @@ module V1
*/
["amd"]
idempotent void connectBridgedSessions(
- string operationId,
+ AsteriskSCF::System::V1::OperationContext operationContext,
Session* sessionToReplace,
Session* bridgedSession,
bool replaceSession)
@@ -847,6 +883,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 id for 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
@@ -856,8 +894,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.
@@ -872,28 +913,28 @@ module V1
* any sessions created henceforth, until the default listener
* is removed.
*/
- void addDefaultSessionListener(SessionListener* listener);
+ idempotent void addDefaultSessionListener(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(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(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(SessionCookies cookies);
};
/**
@@ -1112,7 +1153,8 @@ module V1
* @see AsteriskSCF::System::V1::OperationContext
*/
["amd"]
- idempotent void replaceSession(AsteriskSCF::System::V1::OperationContext operationContext, Session* sessionToReplace,
+ idempotent void replaceSession(AsteriskSCF::System::V1::OperationContext operationContext,
+ Session* sessionToReplace,
SessionWithSessionInfoSeq newSessionInfos)
throws InvalidSessions, SessionNotFound, BridgeSessionOperationFailed,
AsteriskSCF::System::V1::OperationCallCancelledException;
@@ -1187,17 +1229,25 @@ module V1
/**
* Called when sessions have been added to a bridge.
*
+ * @param operationContext Information about the logical operation context.
+ *
* @param sessionBridge The bridge object the sessions were added to.
*
* @param sessions A sequence of session proxies that were added to the bridge.
*
* @param cookies A sequence of bridge cookies that are associated with the bridge.
*/
- idempotent void sessionsAdded(Bridge* sessionBridge, SessionSeq sessions, BridgeCookies cookies);
+ idempotent void sessionsAdded(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Bridge* sessionBridge,
+ SessionSeq sessions,
+ BridgeCookies cookies);
/**
* Called when sessions have been removed from a bridge.
*
+ * @param operationContext Information about the logical operation context.
+ *
* @param sessionBridge The bridge object the sessions were removed from.
*
* @param sessions A sequence of session proxies that were removed from
@@ -1205,7 +1255,11 @@ module V1
*
* @param cookies A sequence of bridge cookies that are associated with the bridge.
*/
- idempotent void sessionsRemoved(Bridge* sessionBridge, SessionSeq sessions, BridgeCookies cookies);
+ idempotent void sessionsRemoved(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Bridge* sessionBridge,
+ SessionSeq sessions,
+ BridgeCookies cookies);
/**
* Called when a bridge has completed shutdown/destruction.
@@ -1268,8 +1322,9 @@ module V1
*
*/
["amd"]
- idempotent Bridge* createBridge(Session* initiator,
+ idempotent Bridge* createBridge(
AsteriskSCF::System::V1::OperationContext operationContext,
+ Session* initiator,
SessionSeq destinations,
BridgeListener* listener,
AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller callerID,
@@ -1379,7 +1434,7 @@ module V1
/**
* Notice that routeSession operation was called.
*
- * @param operationId Unique id for this operation.
+ * @param operationContext Provides unique id for this operation.
*
* @param source The initiating session.
*
@@ -1387,12 +1442,16 @@ module V1
*
* @param result Operation outcome.
*/
- void routeSessionEvent(string operationId, Session* source, string destination, OperationResult result);
+ idempotent void routeSessionEvent(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Session* source,
+ string destination,
+ OperationResult result);
/**
* Notice that connectBridgedSessionsWithDestinationEvent operation was called.
*
- * @param operationId Unique id for this operation.
+ * @param operationContext Provides unique id for this operation.
*
* @param sessionToReplace The session that is to be replaced in the
* bridge. The bridge obejct is obtained from the accessor on this
@@ -1402,12 +1461,16 @@ module V1
*
* @param result Operation outcome.
*/
- void connectBridgedSessionsWithDestinationEvent(string operationId, Session* sessionToReplace, string destination, OperationResult result);
+ idempotent void connectBridgedSessionsWithDestinationEvent(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Session* sessionToReplace,
+ string destination,
+ OperationResult result);
/**
* Notice that connectBridgedSessionsEvent operation was called.
*
- * @param operationId Unique id for this operation.
+ * @param operationContext Provides unique id for this operation.
*
* @param sessionToReplace The session that is to be replaced in the
* bridge. The bridge obejct is obtained from the accessor on this
@@ -1419,7 +1482,11 @@ module V1
*
* @param result Operation outcome.
*/
- void connectBridgedSessionsEvent(string operationId, Session* sessionToReplace, Session* bridgedSession, OperationResult result);
+ idempotent void connectBridgedSessionsEvent(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ Session* sessionToReplace,
+ Session* bridgedSession,
+ OperationResult result);
};
}; /* End of module Event */
diff --git a/slice/AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice b/slice/AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice
index 2e7443b..0d41eff 100644
--- a/slice/AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice
@@ -15,6 +15,9 @@
*/
#pragma once
+
+#include <AsteriskSCF/System/OperationsIf.ice>
+
module AsteriskSCF
{
@@ -99,13 +102,21 @@ module V1
{
/**
* Add sinks to send telephony events to.
+ *
+ * @param operationContext Provides unique id for this operation.
+ *
+ * @param sinks The sinks to add.
*/
- ["amd"] void addSinks(TelephonyEventSinkSeq sinks);
+ ["amd"] idempotent void addSinks(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ TelephonyEventSinkSeq sinks);
/**
* Remove sinks.
*/
- ["amd"] void removeSinks(TelephonyEventSinkSeq sinks);
+ ["amd"] idempotent void removeSinks(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ TelephonyEventSinkSeq sinks);
/**
* Get a list of the sinks to which this source sends events
@@ -125,9 +136,17 @@ module V1
interface TelephonyEventSink
{
/**
- * Send a telephony event to this sink
+ * Send a telephony event to this sink.
+ *
+ * @param operationContext Provides unique id for this operation.
+ *
+ * @param event
*/
- ["amd"] void write(TelephonyEvent event) throws TelephonyEventException;
+ ["amd"] idempotent void write(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ TelephonyEvent event)
+ throws TelephonyEventException;
+
/**
* Set the source for this sink
*/
diff --git a/slice/AsteriskSCF/System/Component/ComponentServiceIf.ice b/slice/AsteriskSCF/System/Component/ComponentServiceIf.ice
index e3fe84f..fb4b4b0 100644
--- a/slice/AsteriskSCF/System/Component/ComponentServiceIf.ice
+++ b/slice/AsteriskSCF/System/Component/ComponentServiceIf.ice
@@ -58,7 +58,7 @@ module V1
*
* @throws ShuttingDown if the service is in the process of shutting down.
*/
- void suspend() throws ShuttingDown;
+ idempotent void suspend() throws ShuttingDown;
/**
* Resumes a service that has been suspended. After this call returns the suspended service
@@ -67,7 +67,7 @@ module V1
*
* @throws ShuttingDown if the service is in the process of shutting down.
*/
- void resume() throws ShuttingDown;
+ idempotent void resume() throws ShuttingDown;
/**
* Commences a clean shutdown of the services. The details of shutdown are implementation specific.
@@ -77,7 +77,7 @@ module V1
*
* @throws Suspended if the service is suspended.
*/
- void shutdown() throws Suspended;
+ idempotent void shutdown() throws Suspended;
};
/**
@@ -97,17 +97,17 @@ module V1
* Set a test mode. The meaning of the mode is specific
* to a given component and it's tests.
*/
- void setTestMode(string mode);
+ idempotent void setTestMode(string mode);
/**
* Set a test mode with params. The meaning of the mode and paramters is specific
* to a given component and it's tests.
*/
- void setTestModeWithArgs(string mode, ComponentTestParamSeq params);
+ idempotent void setTestModeWithArgs(string mode, ComponentTestParamSeq params);
- void clearTestMode(string mode);
+ idempotent void clearTestMode(string mode);
- void clearTestModes();
+ idempotent void clearTestModes();
};
}; /* End of V1 */
diff --git a/slice/AsteriskSCF/System/Component/ConfigurationIf.ice b/slice/AsteriskSCF/System/Component/ConfigurationIf.ice
index b2ecce2..1dacf4d 100644
--- a/slice/AsteriskSCF/System/Component/ConfigurationIf.ice
+++ b/slice/AsteriskSCF/System/Component/ConfigurationIf.ice
@@ -16,6 +16,8 @@
#pragma once
+#include <AsteriskSCF/System/OperationsIf.ice>
+
module AsteriskSCF
{
@@ -151,28 +153,37 @@ module V1
/**
* Update the configuration of one or more configuration groups.
*
+ * @param operationContext Provides unique id for this operation.
* @param groups The groups and configuration items to update (or add).
*
* @throws SerialConflict when serial number of a configuration item is out of date.
*
*/
- idempotent void setConfiguration(ConfigurationGroupSeq groups) throws SerialConflict;
+ idempotent void setConfiguration(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ConfigurationGroupSeq groups) throws SerialConflict;
/**
* Remove specific configuration items from a configuration group.
*
+ * @param operationContext Provides unique id for this operation.
* @param groups The groups or configuration items to remove.
*
*/
- void removeConfigurationItems(ConfigurationGroupSeq groups);
+ idempotent void removeConfigurationItems(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ConfigurationGroupSeq groups);
/**
* Remove a configuration group and all configuration items.
*
+ * @param operationContext Provides unique id for this operation.
* @param groups The groups or configuration items to remove.
*
*/
- void removeConfigurationGroups(ConfigurationGroupSeq groups);
+ idempotent void removeConfigurationGroups(
+ AsteriskSCF::System::V1::OperationContext operationContext,
+ ConfigurationGroupSeq groups);
};
/**
@@ -191,7 +202,7 @@ module V1
*
* @param service A proxy to the listener.
*/
- void registerConfigurationService(AsteriskSCF::System::Configuration::V1::ConfigurationService *service);
+ idempotent void registerConfigurationService(AsteriskSCF::System::Configuration::V1::ConfigurationService *service);
};
}; /* End of namespace V1 */
diff --git a/slice/AsteriskSCF/System/Component/ReplicaIf.ice b/slice/AsteriskSCF/System/Component/ReplicaIf.ice
index 4164b7a..5a9c739 100644
--- a/slice/AsteriskSCF/System/Component/ReplicaIf.ice
+++ b/slice/AsteriskSCF/System/Component/ReplicaIf.ice
@@ -51,7 +51,7 @@ module V1
*
* @return true if active, false if in standby mode.
*/
- bool isActive();
+ idempotent bool isActive();
/**
* tells the replica object to transition from standby to active mode.
@@ -59,14 +59,14 @@ module V1
*
* @return true if activated, false if failed to activate.
*/
- bool activate();
+ idempotent bool activate();
/**
* standby tells the replica object to transition from active to standby mode.
* Calling standby on a replica that is already in standby mode should have
* no effect.
*/
- void standby();
+ idempotent void standby();
/**
* addListener adds a ReplicaListener object that will receive notifications
@@ -74,7 +74,7 @@ module V1
*
* @param listener The ReplicaListener object to be added.
*/
- void addListener(ReplicaListener* listener);
+ idempotent void addListener(ReplicaListener* listener);
/**
* removeListener removes a ReplicaListener object from the list of listeners
@@ -82,7 +82,7 @@ module V1
*
* @param listener The ReplicaListener object to be removed.
*/
- void removeListener(ReplicaListener* listener);
+ idempotent void removeListener(ReplicaListener* listener);
};
/**
@@ -98,14 +98,14 @@ module V1
*
* @param source The replica under transition.
*/
- void activated(Replica* source);
+ idempotent void activated(Replica* source);
/**
* Called when a replica has moved from active to standby state.
*
* @param source The replica under transition.
*/
- void onStandby(Replica* source);
+ idempotent void onStandby(Replica* source);
/**
* A replica may periodically notify listeners of its state.
@@ -114,7 +114,7 @@ module V1
*
* @param isActive the current status of replica, true if active, false if on standby.
*/
- void heartbeat(Replica* source, bool isActive);
+ idempotent void heartbeat(Replica* source, bool isActive);
};
}; /* End of namespace V1 */
diff --git a/slice/AsteriskSCF/System/Logger/LoggerIf.ice b/slice/AsteriskSCF/System/Logger/LoggerIf.ice
index 2fb8032..121fb1f 100644
--- a/slice/AsteriskSCF/System/Logger/LoggerIf.ice
+++ b/slice/AsteriskSCF/System/Logger/LoggerIf.ice
@@ -16,6 +16,8 @@
#pragma once
+#include <AsteriskSCF/System/OperationsIf.ice>
+
module AsteriskSCF
{
@@ -148,9 +150,12 @@ module Logging
/**
* Notification of a new configuration.
*
... 42 lines suppressed ...
--
asterisk-scf/integration/slice.git
More information about the asterisk-scf-commits
mailing list