[asterisk-scf-commits] asterisk-scf/integration/slice.git branch "partidextensionpoint" created.
Commits to the Asterisk SCF project code repositories
asterisk-scf-commits at lists.digium.com
Thu Sep 15 19:36:17 CDT 2011
branch "partidextensionpoint" has been created
at d139e1075c3d853de80146c883c6f748ba184446 (commit)
- Log -----------------------------------------------------------------
commit d139e1075c3d853de80146c883c6f748ba184446
Author: Ken Hunt <ken.hunt at digium.com>
Date: Thu Sep 15 19:34:26 2011 -0500
- Support for party id modification extension point.
- Modified Redirecting class structure.
- Changed name of updateRedirecting operation.
diff --git a/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice b/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
index 66292b4..d20cc77 100644
--- a/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
@@ -115,9 +115,9 @@ module V1
};
/**
- * Base class for redirecting information
+ * Describes an instance of redirection.
*/
- unsliceable class Redirecting extends AsteriskSCF::SessionCommunications::V1::SessionCookie
+ unsliceable class RedirectingInfo
{
/**
* Party identification information for who the session is being redirected away from
@@ -127,12 +127,16 @@ module V1
/**
* Party identification information for who the session is being redirected to
*/
- Id to;
+ Id to;
+ };
+ sequence <RedirectingInfo> RedirectingInfoSeq;
- /**
- * Number of times the session has been redirected
- */
- int count;
+ /**
+ * Base class for redirecting information.
+ */
+ unsliceable class Redirecting extends AsteriskSCF::SessionCommunications::V1::SessionCookie
+ {
+ RedirectingInfoSeq redirects;
};
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
index 0ddc97b..784896c 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
@@ -80,6 +80,124 @@ module V1
void clearSessionCreationHooks();
};
+ const string PartyIdentificationHookLocatorCategory = "PartyIdHook";
+
+ /**
+ * Hook into party identification ConnectedLine record for
+ * incoming ConnectedLine updates received by the bridge.
+ */
+ interface ReceivedConnectedLinePartyIdHook
+ {
+ /**
+ * This hook operation is called when ConnectedLine updates are received by the
+ * bridge. The bridge provides the session who sent the ConnectedLine record
+ * to the hook. This hook is expected to return the original ConnectedLine record
+ * or an updated version of it.
+ *
+ * @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(
+ AsteriskSCF::SessionCommunications::V1::Session *sendingSession,
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine receviedConnectedLineUpdate,
+ out AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine replacementConnectedLineUpdate);
+ };
+
+ /**
+ * Hook into party identification ConnectedLine record
+ * for modifying ConnectedLine information being sent to
+ * specific Session from the bridge.
+ */
+ interface ForwardingConnectedLinePartyIdHook
+ {
+ /**
+ * This hook is called when ConnectedLine updates are being sent by the
+ * bridge. The bridge provides the session that will receive the ConnectedLine information
+ * to the hook, as well as the session that sent the updated record.
+ * This hook is expected to return the original ConnectedLine record
+ * or an updated version of it.
+ *
+ * @param sendingSession The session that has sent ConnectedLine information.
+ * @param destinationSession The session that will receive the ConnectedLine information.
+ * @param[out] 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 modifyForwardingConnectedLine(
+ AsteriskSCF::SessionCommunications::V1::Session *sendingSession,
+ AsteriskSCF::SessionCommunications::V1::Session *destinationSession,
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine receviedConnectedLineUpdate,
+ out AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine replacementConnectedLineUpdate);
+ };
+
+ /**
+ * Hook into party identification Redirecting record. This hook
+ * allows modifying a Redirecting record prior to sending it to
+ * each connected Session in the bridge.
+ */
+ interface ForwardingRedirectingPartyIdHook
+ {
+ /**
+ *
+ * This hook is called when Redirecting updates are being forwarded by the
+ * bridge. The bridge provides the session that will receive the Redirecting information
+ * to the hook, as well as the session that sent the updated record.
+ * This hook is expected to return the original Redirecting record
+ * or an updated version of it.
+ *
+ * @param sendingSession The session that has sent Redirecting information.
+ * @param destinationSession The session that will receive the Redirecting information.
+ * @param[out] receivedRedirecting The data received from the sending session.
+ * @param[out] replacementRedirecting Modified data to be used.
+ * @return A HookResult indicating whether the hook was successful
+ */
+ AsteriskSCF::System::Hook::V1::HookResult modifyForwardingRedirecting(
+ AsteriskSCF::SessionCommunications::V1::Session *sendingSession,
+ AsteriskSCF::SessionCommunications::V1::Session *destinationSession,
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting receivedRedirecting,
+ out AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting replacementRedirecting);
+ };
+
+ interface PartyIdentificationExtensionPoint
+ {
+ /**
+ * Add a hook for received ConnectedLine party id.
+ */
+ void addReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
+
+ /**
+ * Add a hook to invoke when the bridge forwards ConnectedLine party id.
+ */
+ void addForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
+
+ /**
+ * Add a hook to invoke when the bridge forwards Redirecting party id.
+ */
+ void addForwardingRedirectingPartyIdHook(ForwardingRedirectingPartyIdHook* hook);
+
+ /**
+ * Remove a received ConnectedLine hook
+ */
+ void removeReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
+
+ /**
+ * Remove a forwarding ConnectedLine hook
+ */
+ void removeForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
+
+ /**
+ * Remove a forwarding Redirecting hook
+ */
+ void removeForwardingRedirectingPartyIdHook(ForwardingRedirectingPartyIdHook* hook);
+
+ /**
+ * Remove all party identification hooks
+ */
+ void clearPartyIdentificationHooks();
+ };
+
}; /* End of module V1 */
}; /* End of module ExtensionPoints */
}; /* End of module SessionCommunications */
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index 2343151..a2f9277 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -351,7 +351,9 @@ module V1
["amd"] void removeStreams(AsteriskSCF::Media::V1::StreamInformationDict streams);
/**
- * Method which updates connected line party identification.
+ * Method which updates connected line party identification. This operation
+ * allows an external component to set the ConnectedLine information for
+ * a session.
*
* @param connectedLine Connected line party information.
*
@@ -360,13 +362,14 @@ module V1
void updateConnectedLine(AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine connectedLine);
/**
- * Method which updates redirecting party information.
+ * Method which provides notification that the redirecting record of the
+ * external component has been changed.
*
- * @param connectedLine Connected line party information.
+ * @param redirecting Redirected line party information.
*
* @see Asterisk::SessionCommunications::PartyIdentifcation::V1::Redirecting
*/
- void updateRedirecting(AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting redirecting);
+ void redirectingUpdated(AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting redirecting);
};
/**
commit b51c5c4e696cceb3a49318ee9ff76c08dc8328c4
Author: Ken Hunt <ken.hunt at digium.com>
Date: Mon Sep 12 12:10:17 2011 -0500
Support for formatted logging.
diff --git a/slice/AsteriskSCF/System/Logger/LoggerIf.ice b/slice/AsteriskSCF/System/Logger/LoggerIf.ice
index dd2f926..f793039 100644
--- a/slice/AsteriskSCF/System/Logger/LoggerIf.ice
+++ b/slice/AsteriskSCF/System/Logger/LoggerIf.ice
@@ -111,9 +111,23 @@ module Logging
* @param logLevel The level of the logging message.
*
* @param message The log message itself.
+ *
+ * @param hostname Hostname for the component's host server.
+ *
+ * @param pid Process ID of the host process.
+ *
+ * @param componentCategory Category of the component. Part of the
+ * service locator params for this component.
+ *
+ * @param componentServiceId Service identifier for the component. Part of the
+ * service locator params for this component.
+ *
+ * @param componentId The component's instance Id. Part of the
+ * service locator params for this component.
*/
["cpp:const"]
- idempotent void logs(string name, Level logLevel, string message);
+ idempotent void logs(string name, Level logLevel, string message, string hostname,
+ long pid, string componentCategory, string componentServiceId, string componentId);
/**
* Method which returns the current configuration for this server.
commit d9c45ee516bb6e0fb4a64851c8f71278c85f62ca
Author: Ken Hunt <ken.hunt at digium.com>
Date: Sun Sep 11 22:53:02 2011 -0500
API changes to support Media Session cookies.
diff --git a/slice/AsteriskSCF/Media/MediaIf.ice b/slice/AsteriskSCF/Media/MediaIf.ice
index f9bb522..d13b005 100644
--- a/slice/AsteriskSCF/Media/MediaIf.ice
+++ b/slice/AsteriskSCF/Media/MediaIf.ice
@@ -34,6 +34,27 @@ module V1
const string Version = "V1";
/**
+ * Generic base class for 'cookies', opaque data items that can be
+ * stored on a Session.
+ *
+ * @see SessionCookies
+ */
+ unsliceable class SessionCookie
+ {
+ };
+
+ /**
+ * A sequence of cookies, allowing for a variable number of them
+ * to be passed in a single operation or event.
+ */
+ sequence <SessionCookie> SessionCookies;
+
+ /**
+ * A dictionary of cookies, used for storing them.
+ */
+ dictionary<string, SessionCookie> SessionCookieDict;
+
+ /**
* Forward declaration of the Frame class so we can define a sequence of them.
*/
class Frame;
@@ -223,6 +244,39 @@ module V1
* @return string A string identifier for the session.
*/
idempotent string getId();
+
+ /**
+ * 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.
+ *
+ * @note There can only be one cookie of a given type associated
+ * with a session.
+ */
+ 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.
+ * Only the concrete type of each cookie passed in is used to
+ * determine which cookies to remove.
+ */
+ void removeCookies(SessionCookies cookies);
+
+ /**
+ * Get cookies stored on the session.
+ *
+ * @param cookieTypes A sequence of zero or more cookie objects,
+ * each of which is 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);
};
/**
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index fbf4c7b..2343151 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -394,42 +394,42 @@ module V1
*/
["amd"] 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.
+ **/
+ 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.
+ **/
+ 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.
- */
- 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"] SessionCookies getCookies(SessionCookies cookieTypes);
/**
* Request that an indication be performed on a session.
commit a2b0b33c81ba48bacfe985007af3c18ceca180ef
Author: Ken Hunt <ken.hunt at digium.com>
Date: Sun Sep 11 21:39:18 2011 -0500
Changes to Party Identification support. Removed Identification Manager and distributed its operations to Session and SessionController.
diff --git a/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice b/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
index 7046ec2..66292b4 100644
--- a/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
@@ -16,6 +16,8 @@
#pragma once
+#include <AsteriskSCF/SessionCommunications/SessionCookieIf.ice>
+
module AsteriskSCF
{
@@ -38,10 +40,10 @@ module V1
*/
unsliceable class Name
{
- /**
- * String representation of the name
- */
- string partyName;
+ /**
+ * String representation of the name
+ */
+ string partyName;
};
/**
@@ -49,10 +51,10 @@ module V1
*/
unsliceable class Number
{
- /**
- * String representation of the number
- */
- string partyNumber;
+ /**
+ * String representation of the number
+ */
+ string partyNumber;
};
/**
@@ -60,15 +62,15 @@ module V1
*/
unsliceable class Id
{
- /**
- * Name of the party
- */
- Name partyName;
-
- /**
- * Number of the party
- */
- Number partyNumber;
+ /**
+ * Name of the party
+ */
+ Name partyName;
+
+ /**
+ * Number of the party
+ */
+ Number partyNumber;
};
/**
@@ -79,104 +81,61 @@ module V1
/**
* Base class for dialed party information
*/
- unsliceable class Dialed
+ unsliceable class Dialed extends AsteriskSCF::SessionCommunications::V1::SessionCookie
{
- /**
- * Number that was dialed
- */
- Number partyNumber;
+ /**
+ * Number that was dialed
+ */
+ Number partyNumber;
};
- /**
- * Base class for calling party information
+ /**
+ * Class for identifying a session.
*/
- unsliceable class Caller
+ unsliceable class SessionOwnerId extends AsteriskSCF::SessionCommunications::V1::SessionCookie
{
- /**
- * Identities of the caller
- */
- IdSeq ids;
+ /**
+ * Party identification associated with the session owner.
+ */
+ IdSeq ids;
};
/**
- * Derived class for connected line information, currently exactly like Caller
+ * Class for calling party information
*/
- unsliceable class ConnectedLine extends Caller
+ unsliceable class Caller extends SessionOwnerId
{
};
/**
- * Base class for redirecting information
+ * Derived class for connected line information, currently exactly like Caller
*/
- unsliceable class Redirecting
+ unsliceable class ConnectedLine extends Caller
{
- /**
- * Party identification information for who the session is being redirected away from
- */
- Id from;
-
- /**
- * Party identification information for who the session is being redirected to
- */
- Id to;
-
- /**
- * Number of times the session has been redirected
- */
- int count;
};
/**
- * Interface for party identification retrieval and setting
+ * Base class for redirecting information
*/
- interface IdentificationManager
+ unsliceable class Redirecting extends AsteriskSCF::SessionCommunications::V1::SessionCookie
{
- /**
- * Method which retrieves caller party identification information
- *
- * @return Concrete class containing caller party information
- *
- * @see Caller
- */
- idempotent Caller getCaller();
-
- /**
- * Method which retrieves dialed party identification information
- *
- * @return Concrete class containing dialed party information
- *
- * @see Dialed
- */
- idempotent Dialed getDialed();
-
- /**
- * Method which retrieves redirecting party identification information
- *
- * @return Concrete class containing redirecting party information
- *
- * @see Redirecting
- */
- idempotent Redirecting getRedirecting();
-
- /**
- * Method which updates connected line party information
- *
- * @param party Connected line party information
- *
- * @see ConnectedLine
- */
- void updateConnectedLine(ConnectedLine party);
-
- /**
- * Method which updates redirecting party information
- *
- * @param party Redirecting party information
- *
- * @see Redirecting
- */
- void updateRedirecting(Redirecting party);
+ /**
+ * Party identification information for who the session is being redirected away from
+ */
+ Id from;
+
+ /**
+ * Party identification information for who the session is being redirected to
+ */
+ Id to;
+
+ /**
+ * Number of times the session has been redirected
+ */
+ int count;
};
+
}; /* End of module V1 */
}; /* End of module PartyIdentification */
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index d370c63..fbf4c7b 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -1,4 +1,4 @@
-/*
+/**
* Asterisk SCF -- An open-source communications framework.
*
* Copyright (C) 2010, Digium, Inc.
@@ -23,6 +23,8 @@
#include <AsteriskSCF/System/Time/TimeIf.ice>
#include <AsteriskSCF/Media/MediaIf.ice>
#include <AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice>
+#include <AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice>
+#include <AsteriskSCF/SessionCommunications/SessionCookieIf.ice>
module AsteriskSCF
{
@@ -127,19 +129,6 @@ module V1
};
/**
- * Generic base class for 'cookies', opaque data items that can be
- * stored on a Session and retrieved via the SessionListener
- * interface when events occur on that Session.
- *
- * @see SessionListener
- *
- * @see SessionCookies
- */
- unsliceable class SessionCookie
- {
- };
-
- /**
* Indication visitor class.
*/
["visitor"] local class IndicationVisitor
@@ -208,19 +197,6 @@ module V1
};
/**
- * A sequence of cookies, allowing for a variable number of them
- * to be passed in a single operation or event.
- *
- * @see SessionListener
- */
- sequence <SessionCookie> SessionCookies;
-
- /**
- * A dictionary of cookies, used for storing them.
- */
- dictionary<string, SessionCookie> SessionCookieDict;
-
- /**
* Indication that a session has completed.
*/
unsliceable class StoppedIndication extends TelephonyIndication
@@ -311,8 +287,8 @@ module V1
* @param source The session the event occurred on.
*
* @param event The indication event that has occurred.
- *
- * @param cookies Any cookies present on the session.
+ *
+ * @param cookies Any cookies present on the session.
*
* @see Session
*
@@ -373,6 +349,24 @@ module V1
* @param streams A dictionary of streams to remove.
*/
["amd"] void removeStreams(AsteriskSCF::Media::V1::StreamInformationDict streams);
+
+ /**
+ * Method which updates connected line party identification.
+ *
+ * @param connectedLine Connected line party information.
+ *
+ * @see Asterisk::SessionCommunications::PartyIdentifcation::V1::ConnectedLine
+ */
+ void updateConnectedLine(AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine connectedLine);
+
+ /**
+ * Method which updates redirecting party information.
+ *
+ * @param connectedLine Connected line party information.
+ *
+ * @see Asterisk::SessionCommunications::PartyIdentifcation::V1::Redirecting
+ */
+ void updateRedirecting(AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting redirecting);
};
/**
@@ -400,42 +394,42 @@ module V1
*/
["amd"] 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);
-
- /**
- * 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);
-
- /**
- * 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.
- **/
- SessionCookies getCookies(SessionCookies cookieTypes);
+ /**
+ * 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);
+
+ /**
+ * 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);
+
+ /**
+ * 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.
+ */
+ SessionCookies getCookies(SessionCookies cookieTypes);
/**
* Request that an indication be performed on a session.
@@ -570,6 +564,61 @@ module V1
* @param controller A proxy to the session controller to remove.
*/
["amd"] void removeSessionController(SessionController* controller);
+
+ /**
+ * Method which retrieves caller party identification information
+ *
+ * @return Concrete class containing caller party information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller
+ getCaller();
+
+ /**
+ * Method which retrieves dialed party identification information
+ *
+ * @return Concrete class containing dialed party information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::Dialed
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Dialed
+ getDialed();
+
+ /**
+ * Method which retrieves identities associated with the owning Session.
+ *
+ * @return Concrete class containing SessionOwnerId information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::SessionOwnerId
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::SessionOwnerId
+ getSessionOwnerId();
+
+ /**
+ * Method which retrieves redirecting party identification information
+ *
+ * @return Concrete class containing redirecting party information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting
+ getRedirecting();
+
+ /**
+ * Method which retrieves connected line identification information
+ *
+ * @return Concrete class containing connected line party information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine
+ getConnectedLine();
};
/**
@@ -583,6 +632,7 @@ module V1
* Get a sequence of the telephony event sources for this session
*/
["amd"] TelephonyEventSourceSeq getSources();
+
/**
* Get a sequence of the telephony event sinks for this session
*/
@@ -832,7 +882,7 @@ module V1
* When such an exception occurs, it can be assumed that the operation succeeded for any session proxy that is in
* the SessionErrorSeq.
*
- **/
+ */
struct SessionError
{
Session* failedSession;
@@ -890,126 +940,126 @@ module V1
*/
interface Bridge
{
- /**
- * Add a sequence of session proxies to the bridge. Sessions are started
- * if necessary.
- *
- * @param session A sequence of session proxies.
- *
- * @throws InvalidSessions if any of the provided sessions are invalid.
- *
- * @see Session
- * @see InvalidSessions
- */
- ["amd"]
- void addSessions(SessionSeq session)
- throws InvalidSessions, BridgeSessionOperationFailed;
+ /**
+ * Add a sequence of session proxies to the bridge. Sessions are started
+ * if necessary.
+ *
+ * @param session A sequence of session proxies.
+ *
+ * @throws InvalidSessions if any of the provided sessions are invalid.
+ *
+ * @see Session
+ * @see InvalidSessions
+ */
+ ["amd"]
+ void addSessions(SessionSeq session)
+ throws InvalidSessions, BridgeSessionOperationFailed;
- /**
- * Abruptly destroy the bridge. Sessions will not be stopped.
- */
- void destroy();
+ /**
+ * Abruptly destroy the bridge. Sessions will not be stopped.
+ */
+ void destroy();
- /**
- * List the sessions currently on the bridge.
- *
- * @return a sequence of session proxies participating in the bridge.
- */
- idempotent SessionSeq listSessions();
+ /**
+ * List the sessions currently on the bridge.
+ *
+ * @return a sequence of session proxies participating in the bridge.
+ */
+ idempotent SessionSeq listSessions();
- /**
- * Removes one or more sessions from the bridge. Sessions are not stopped
- * as they are removed.
- *
- * @param sessions A sequence of session proxies.
- *
- * @throws InvalidSessions if any of the provided sessions are invalid.
- *
- * @see Session
- * @see InvalidSessions
- */
- ["amd"]
- void removeSessions(SessionSeq sessions)
- throws InvalidSessions, BridgeSessionOperationFailed;
+ /**
+ * Removes one or more sessions from the bridge. Sessions are not stopped
+ * as they are removed.
+ *
+ * @param sessions A sequence of session proxies.
+ *
+ * @throws InvalidSessions if any of the provided sessions are invalid.
+ *
+ * @see Session
+ * @see InvalidSessions
+ */
+ ["amd"]
+ void removeSessions(SessionSeq sessions)
+ throws InvalidSessions, BridgeSessionOperationFailed;
- /**
- * Nicely shutdown the bridge. Participating sessions are disconnected.
- */
- void shutdown();
+ /**
+ * Nicely shutdown the bridge. Participating sessions are disconnected.
+ */
+ void shutdown();
- /**
- * Adds a listener object to the bridge. The listener will receive notification
- * of future changes to the bridge as they occur.
- *
- * @param listener A reference to a BridgeListener object.
- *
- * @see BridgeListener
- */
- void addListener(BridgeListener* listener);
+ /**
+ * Adds a listener object to the bridge. The listener will receive notification
+ * of future changes to the bridge as they occur.
+ *
+ * @param listener A reference to a BridgeListener object.
+ *
+ * @see BridgeListener
+ */
+ void addListener(BridgeListener* listener);
- /**
- * Removes a listener object from the bridge. The listen will cease receiving
- * notifications of changes to the bridge.
- *
- * @param listener A reference to the listener object to be removed.
- *
- * @see BridgeListener
- */
- void removeListener(BridgeListener* listener);
+ /**
+ * Removes a listener object from the bridge. The listen will cease receiving
+ * notifications of changes to the bridge.
+ *
+ * @param listener A reference to the listener object to be removed.
+ *
+ * @see BridgeListener
+ */
+ void removeListener(BridgeListener* listener);
- /**
- * Replaces a session that is on the bridge with another session. Useful for transfers, etc.
- * where a participant is replaced as part of the code flow.
- *
- * @param sessionToReplace The session being replaced. The bridge associated with this
- * session is used for the newSessions.
- *
- * @param newSessions The sessions to add to the bridge. The sessions are assumed to not
- * be already participating in another bridge.
- *
- * @throws InvalidSessions if any of the provided sessions are invalid.
- *
- * @throws SessionNotFound if the session to be replaced is not on the bridge.
- */
- ["amd"]
- void replaceSession(Session* sessionToReplace, SessionSeq newSessions)
- throws InvalidSessions, SessionNotFound, BridgeSessionOperationFailed;
-
- /**
- * Set (or replace) cookies on the Bridge.
- *
- * @param cookies A sequence of one or more concrete objects,
- * each of which are of a type derived from BridgeCookie. The
- * bridge will store these cookies on the bridge, replacing any
- * existing cookies with matching types.
- *
- * @note There can only be one cookie of a given type associated
- * with a Bridge.
- **/
- void setCookies(BridgeCookies cookies);
-
- /**
- * Remove cookies from the Bridge.
- *
- * @param cookies A sequence of one or more concrete objects,
- * each of which are of a type derived from BridgeCookie.
- * The bridge will remove any cookies on the bridge
- * with types that match the ones in this sequence; the
- * content of the supplied cookies is not compared.
- **/
- void removeCookies(BridgeCookies cookies);
-
- /**
- * Get cookies stored on the Bridge.
- *
- * @param cookieTypes A sequence of zero or more concrete objects,
- * each of which are of a type derived from BridgeCookie.
- *
- * @return A sequence of zero or more cookies from the bridge,
- * with types that match the types of the template cookies
- * provided in the cookieTypes parameter.
- **/
- BridgeCookies getCookies(BridgeCookies cookieTypes);
+ /**
+ * Replaces a session that is on the bridge with another session. Useful for transfers, etc.
+ * where a participant is replaced as part of the code flow.
+ *
+ * @param sessionToReplace The session being replaced. The bridge associated with this
+ * session is used for the newSessions.
+ *
+ * @param newSessions The sessions to add to the bridge. The sessions are assumed to not
+ * be already participating in another bridge.
+ *
+ * @throws InvalidSessions if any of the provided sessions are invalid.
+ *
+ * @throws SessionNotFound if the session to be replaced is not on the bridge.
+ */
+ ["amd"]
+ void replaceSession(Session* sessionToReplace, SessionSeq newSessions)
+ throws InvalidSessions, SessionNotFound, BridgeSessionOperationFailed;
+
+ /**
+ * Set (or replace) cookies on the Bridge.
+ *
+ * @param cookies A sequence of one or more concrete objects,
+ * each of which are of a type derived from BridgeCookie. The
+ * bridge will store these cookies on the bridge, replacing any
+ * existing cookies with matching types.
+ *
+ * @note There can only be one cookie of a given type associated
+ * with a Bridge.
+ */
+ void setCookies(BridgeCookies cookies);
+
+ /**
+ * Remove cookies from the Bridge.
+ *
+ * @param cookies A sequence of one or more concrete objects,
+ * each of which are of a type derived from BridgeCookie.
+ * The bridge will remove any cookies on the bridge
+ * with types that match the ones in this sequence; the
+ * content of the supplied cookies is not compared.
+ */
+ void removeCookies(BridgeCookies cookies);
+
+ /**
+ * Get cookies stored on the Bridge.
+ *
+ * @param cookieTypes A sequence of zero or more concrete objects,
+ * each of which are of a type derived from BridgeCookie.
+ *
+ * @return A sequence of zero or more cookies from the bridge,
+ * with types that match the types of the template cookies
+ * provided in the cookieTypes parameter.
+ */
+ BridgeCookies getCookies(BridgeCookies cookieTypes);
};
/**
@@ -1078,11 +1128,11 @@ module V1
*/
interface BridgeManager
{
- /**
- * Method called to add a listener to the bridge manager.
- *
- * @param listener A proxy to the bridge manager listener to add.
- */
+ /**
+ * Method called to add a listener to the bridge manager.
+ *
+ * @param listener A proxy to the bridge manager listener to add.
+ */
void addListener(BridgeManagerListener* listener);
/**
@@ -1104,27 +1154,27 @@ module V1
*/
void removeListener(BridgeManagerListener* listener);
- /**
- * Method called to add a listener to the list of bridge listeners that
- * will automatically be added to every bridge that is created.
- *
- * @param listener A proxy to the bridge listener to add.
- *
- * @throws NullProxyException if the listener proxy is a null proxy.
- *
- */
+ /**
+ * Method called to add a listener to the list of bridge listeners that
+ * will automatically be added to every bridge that is created.
+ *
+ * @param listener A proxy to the bridge listener to add.
+ *
+ * @throws NullProxyException if the listener proxy is a null proxy.
+ *
+ */
void addDefaultBridgeListener(BridgeListener* listener)
throws AsteriskSCF::System::V1::NullProxyException;
- /**
- * Method called to remove a listener to the list of bridge listeners that
- * will automatically be added to every bridge that is created.
- *
- * @param listener A proxy to the bridge listener to remove.
- *
- * @throws NullProxyException if the listener proxy is a null proxy.
- *
- */
+ /**
+ * Method called to remove a listener to the list of bridge listeners that
+ * will automatically be added to every bridge that is created.
+ *
+ * @param listener A proxy to the bridge listener to remove.
+ *
+ * @throws NullProxyException if the listener proxy is a null proxy.
+ *
+ */
void removeDefaultBridgeListener(BridgeListener* listener)
throws AsteriskSCF::System::V1::NullProxyException;
@@ -1146,13 +1196,13 @@ module V1
*/
interface BridgeManagerListener
{
- /**
- * Notice that a bridge was created.
- *
- * @param manager A proxy to the bridge manager that created the bridge.
- *
- * @param newBridge A proxy to the newly created bridge.
- */
+ /**
+ * Notice that a bridge was created.
+ *
+ * @param manager A proxy to the bridge manager that created the bridge.
+ *
+ * @param newBridge A proxy to the newly created bridge.
+ */
void bridgeCreated(BridgeManager* manager, Bridge* newBridge);
/**
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice
new file mode 100644
index 0000000..7812c9d
--- /dev/null
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice
@@ -0,0 +1,56 @@
+/**
+ * Asterisk SCF -- An open-source communications framework.
+ *
+ * Copyright (C) 2011, Digium, Inc.
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk SCF project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE.txt file
+ * at the top of the source tree.
+ */
+
+#pragma once
+
+module AsteriskSCF
+{
+module SessionCommunications
+{
+
+["suppress"]
+module V1
+{
+
+ /**
+ * Generic base class for 'cookies', opaque data items that can be
+ * stored on a Session and retrieved via the SessionListener
+ * interface when events occur on that Session.
+ *
+ * @see SessionListener
+ *
+ * @see SessionCookies
+ */
+ unsliceable class SessionCookie
+ {
+ };
+
+ /**
+ * A sequence of cookies, allowing for a variable number of them
+ * to be passed in a single operation or event.
+ *
+ * @see SessionListener
+ */
+ sequence <SessionCookie> SessionCookies;
+
+ /**
+ * A dictionary of cookies, used for storing them.
+ */
+ dictionary<string, SessionCookie> SessionCookieDict;
+
+}; /* End of module V1 */
+}; /* End of module SessionCommunications */
+}; /* End of module AsteriskSCF */
commit 12b8d9c16293991aa0ecc59767d011694d19513c
Author: David M. Lee <dlee at digium.com>
Date: Fri Sep 9 14:42:03 2011 -0500
Fixed comments for slice2java.
slice2java, with an unpatched libmcpp, doesn't properly handle trailing
C++-style comments.
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index f3e92d8..d370c63 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -38,9 +38,9 @@ module V1
interface SessionCreationHook;
-}; //module V1
+}; /* module V1 */
-}; //module ExtensionPoints
+}; /* module ExtensionPoints */
["suppress"]
module V1
-----------------------------------------------------------------------
--
asterisk-scf/integration/slice.git
More information about the asterisk-scf-commits
mailing list