[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