[asterisk-scf-commits] asterisk-scf/integration/slice.git branch "resample" updated.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Tue Sep 13 21:20:05 CDT 2011


branch "resample" has been updated
       via  ff44d0e1ff76a086e4851c15604cf9d1ba9ad3fc (commit)
       via  ec6e9d9693aeb9935ba6665a10b81f2552349071 (commit)
       via  767842b03dab3430d585abb505eb7772753f60c3 (commit)
       via  72ed2a9023730c39c02999ae681bf591f3b3f574 (commit)
       via  b51c5c4e696cceb3a49318ee9ff76c08dc8328c4 (commit)
       via  d9c45ee516bb6e0fb4a64851c8f71278c85f62ca (commit)
       via  a2b0b33c81ba48bacfe985007af3c18ceca180ef (commit)
       via  12b8d9c16293991aa0ecc59767d011694d19513c (commit)
       via  b7c0e575e27fb0575c3c3f23007444a35a4caca7 (commit)
       via  47285632c983664f7cc3a5ef11dfaf0ae07887e0 (commit)
       via  0a0f8a476847b42dd3fa66576cfeed3591bc2169 (commit)
      from  08371c40e29b89e72a3acdc051757ae15f3c78b4 (commit)

Summary of changes:
 slice/AsteriskSCF/Media/Formats/AudioFormats.ice   |    9 +
 slice/AsteriskSCF/Media/MediaIf.ice                |   70 +++-
 .../PartyIdentificationIf.ice                      |  145 ++----
 .../SessionCommunicationsIf.ice                    |  499 +++++++++++---------
 .../SessionCommunications/SessionCookieIf.ice      |   56 +++
 slice/AsteriskSCF/System/Logger/LoggerIf.ice       |   16 +-
 6 files changed, 469 insertions(+), 326 deletions(-)
 create mode 100644 slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice


- Log -----------------------------------------------------------------
commit ff44d0e1ff76a086e4851c15604cf9d1ba9ad3fc
Author: Mark Michelson <mmichelson at digium.com>
Date:   Tue Sep 13 21:21:19 2011 -0500

    Remove the decode and encode methods because they're dumb and won't work.

diff --git a/slice/AsteriskSCF/Media/MediaIf.ice b/slice/AsteriskSCF/Media/MediaIf.ice
index 4744446..6e5c7eb 100644
--- a/slice/AsteriskSCF/Media/MediaIf.ice
+++ b/slice/AsteriskSCF/Media/MediaIf.ice
@@ -481,22 +481,6 @@ module V1
          * @return bool True if compatible, false if not.
          */
         idempotent bool checkCompatible(Format format1, Format format2);
-
-        /**
-         * Method that decodes a frame payload from the network.
-         *
-         * @param toDecode Raw bytes from the network.
-         * @return An AsteriskSCF Frame payload that encapsulates the data
-         */
-        FramePayload decodePayload(Ice::ByteSeq toDecode);
-
-        /**
-         * Method that encodes a frame for the network to use.
-         *
-         * @param toDecode The frame payload to encode
-         * @return A byte sequence directly writeable to the network
-         */
-        Ice::ByteSeq encodePayload(FramePayload toEncode);
     };
 
     /**

commit ec6e9d9693aeb9935ba6665a10b81f2552349071
Merge: b7c0e57 767842b
Author: Mark Michelson <mmichelson at digium.com>
Date:   Tue Sep 13 14:08:17 2011 -0500

    Merge branch 'master' into resample
    
    Conflicts:
    	slice/AsteriskSCF/Media/Formats/AudioFormats.ice


commit 767842b03dab3430d585abb505eb7772753f60c3
Author: Mark Michelson <mmichelson at digium.com>
Date:   Tue Sep 13 13:42:39 2011 -0500

    Squashed commit of the following:
    
    commit 2f28b8f7396b52bfd3a4298f65d798df599671a9
    Merge: 91f56f1 72ed2a9
    Author: Mark Michelson <mmichelson at digium.com>
    Date:   Tue Sep 13 12:01:56 2011 -0500
    
        Merge branch 'master' into media-operation
    
    commit 91f56f1e7a481e13a0b42d0fb1d323ac3ad3cb91
    Author: Mark Michelson <mmichelson at digium.com>
    Date:   Wed Aug 17 13:57:31 2011 -0500
    
        Add constants for locating media operations.
    
    commit ce9020326cff79fc41acb596241ff6641ea5af5f
    Author: Mark Michelson <mmichelson at digium.com>
    Date:   Wed Aug 17 13:38:58 2011 -0500
    
        Create a constant to use for the format names for ulaw and alaw.
    
    commit c1a96c506d66c71c874b2107c187bc5a28e8b4c3
    Author: Mark Michelson <mmichelson at digium.com>
    Date:   Mon Aug 15 11:56:45 2011 -0500
    
        Allow createMediaOperation to throw an exception if bad formats are given.
    
    commit 8e5e1f624b5fb5e498bb7d84a1172fa337e8bee3
    Author: Mark Michelson <mmichelson at digium.com>
    Date:   Thu Aug 11 17:24:01 2011 -0500
    
        Fix a typo.
    
    commit 1a56884ce4ac84e41ab64499a635834f6cd71f63
    Author: Mark Michelson <mmichelson at digium.com>
    Date:   Thu Aug 11 14:48:21 2011 -0500
    
        Return a proxy to a media operation.
    
    commit 990dd70ce8143d48a2064b0100f4f34a9ec1d344
    Author: Mark Michelson <mmichelson at digium.com>
    Date:   Thu Aug 11 14:05:48 2011 -0500
    
        Create slice definitions for media operations.

diff --git a/slice/AsteriskSCF/Media/Formats/AudioFormats.ice b/slice/AsteriskSCF/Media/Formats/AudioFormats.ice
index 349f1b7..645c427 100644
--- a/slice/AsteriskSCF/Media/Formats/AudioFormats.ice
+++ b/slice/AsteriskSCF/Media/Formats/AudioFormats.ice
@@ -46,6 +46,8 @@ module V1
          */
     };
 
+    const string G711uLAWName = "ulaw";
+
     /**
      * G.711 a-Law Audio Format
      */
@@ -56,6 +58,8 @@ module V1
          */
     };
 
+    const string G711aLAWName = "alaw";
+
 }; /*  end module V1 */
 
 }; /*  end module Audio */
diff --git a/slice/AsteriskSCF/Media/MediaOperationIf.ice b/slice/AsteriskSCF/Media/MediaOperationIf.ice
new file mode 100644
index 0000000..9dfcd96
--- /dev/null
+++ b/slice/AsteriskSCF/Media/MediaOperationIf.ice
@@ -0,0 +1,91 @@
+/*
+ * 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
+
+#include <AsteriskSCF/Media/MediaIf.ice>
+#include <AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice>
+
+module AsteriskSCF
+{
+
+module Media
+{
+
+module V1
+{
+
+/**
+ * This is meant to be used in ServiceLocatorParams as the
+ * "category" for all media operations.
+ */
+const string MediaOperationDiscoveryCategory = "MediaOperation";
+
+/**
+ * This is Meant to be used in ServiceLocatorParams as the "service"
+ * when a translator is needed. The service set by media operations
+ * that do not perform translation may use a descriptive term for
+ * their service instead, like "pitch shifter" or "volume adjustment."
+ */
+const string MediaOperationDiscoveryTranslatorService = "Translator";
+
+interface MediaOperation
+{
+    StreamSource* getSource();
+    StreamSink* getSink();
+    void destroy();
+};
+
+interface MediaOperationFactory
+{
+    /**
+     * Create a new instance of a media operation.
+     * @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(
+            StreamSource* source,
+            StreamSink* sink) throws UnsupportedMediaFormatException;
+};
+
+struct MediaOperationAttributes
+{
+    /**
+     * The input format for a specific operation
+     */
+    Format inputFormat;
+    /**
+     * The output format for a specific operation
+     */
+    Format outputFormat;
+    /**
+     * The cost of the operation.
+     * Lower cost indicates an "easier" translation,
+     * either because it is faster or uses fewer resources.
+     */
+    int cost;
+};
+
+sequence<MediaOperationAttributes> MediaOperationAttributesSeq;
+
+unsliceable class MediaOperationServiceLocatorParams extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
+{
+    MediaOperationAttributesSeq attributes;
+};
+
+}; /* end module V1 */
+}; /* end module Media */
+}; /* end module AsteriskSCF */

commit 72ed2a9023730c39c02999ae681bf591f3b3f574
Merge: b51c5c4 4728563
Author: Mark Michelson <mmichelson at digium.com>
Date:   Tue Sep 13 11:48:11 2011 -0500

    Merge branch 'replacement'


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

commit 47285632c983664f7cc3a5ef11dfaf0ae07887e0
Author: Mark Michelson <mmichelson at digium.com>
Date:   Mon Aug 29 14:15:03 2011 -0500

    Add boolean parameter to router's transfer operations.
    
    This makes it so that the session may either be replaced or not
    depending on which is desired.

diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index 1cea172..78ca6f4 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -684,21 +684,23 @@ module V1
            SourceTerminatedPreBridgingException, BridgingException ;
 
         /**
-         * Replace one session in a Bridge with a new
+         * Connect sessions bridged with one session with a new
          * session routable by the destination param.
-         *
-         * Note that the session to replace will not be removed
-         * from its bridge nor will it be stopped.
+         * The session specified may optionally be replaced.
          *
          * @param operationId Unique id for this operation.
          *
-         * @param sessionToReplace The session that is to be replaced in a
-         *   bridge. The bridge obejct is obtained from the accessor on this
+         * @param sessionToReplace The session whose bridged sessions are connected
+         *   with a newly created session. The bridge object is obtained from the accessor on this
          *   proxy.
          *
          * @param destination The identifier for the destination to be added to
          *   the bridge in place of sessionToReplace.
          *
+         * @param replaceSession If true, then sessionToReplace will be removed from the bridge
+         *   and shut down. If not, then new sessions will be added to sessionToReplace's bridge
+         *   without removing or shutting down sessionToReplace.
+         *
          * @throws DestinationNotFoundException if the given destination could not be found.
          *
          * @throws SessionCreationException if the destination endpoint could not create a session.
@@ -710,7 +712,11 @@ module V1
          * @throws NotBridged if the provided session is not currently in a bridge.
          */
         ["amd"]
-        void connectBridgedSessionsWithDestination(string operationId, Session* sessionToReplace, string destination,
+        void connectBridgedSessionsWithDestination(
+                string operationId,
+                Session* sessionToReplace,
+                string destination,
+                bool replaceSession,
                 AsteriskSCF::SessionCommunications::ExtensionPoints::V1::SessionCreationHook* oneShotHook)
            throws AsteriskSCF::Core::Routing::V1::DestinationNotFoundException,
            SessionCreationException,
@@ -733,6 +739,10 @@ module V1
          *   their current bridge before being added to the bridge currenltly attached to
          *   sessionToReplace.
          *
+         * @param replaceSession If true, then sessionToReplace will be removed from its bridge
+         *   and shut down. If false, then sessions bridged to bridgedSession will be added to
+         *   sessionToReplace's bridge.
+         *
          * @throws SourceTerminatedPreBridgingException if the source session was terminated early.
          *
          * @throws BridgingException if the bridge could not be setup properly.
@@ -740,7 +750,11 @@ module V1
          * @throws NotBridged if the session provided in sessionToReplace is not currently in a bridge.
          */
         ["amd"]
-        void connectBridgedSessions(string operationId, Session* sessionToReplace, Session* bridgedSession)
+        void connectBridgedSessions(
+                string operationId,
+                Session* sessionToReplace,
+                Session* bridgedSession,
+                bool replaceSession)
            throws SourceTerminatedPreBridgingException, BridgingException, NotBridged ;
     };
 
@@ -964,8 +978,6 @@ module V1
         * 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.
         *
-        * Note that the session to replace is neither removed from the bridge nor stopped.
-        *
         * @param sessionToReplace The session being replaced. The bridge associated with this
         *   session is used for the newSessions.
         *

commit 0a0f8a476847b42dd3fa66576cfeed3591bc2169
Author: Mark Michelson <mmichelson at digium.com>
Date:   Mon Aug 29 12:39:13 2011 -0500

    Add documentation that explains that sessions replaced will not be unbridged or stopped.

diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index f3e92d8..1cea172 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -687,6 +687,9 @@ module V1
          * Replace one session in a Bridge with a new
          * session routable by the destination param.
          *
+         * Note that the session to replace will not be removed
+         * from its bridge nor will it be stopped.
+         *
          * @param operationId Unique id for this operation.
          *
          * @param sessionToReplace The session that is to be replaced in a
@@ -961,6 +964,8 @@ module V1
         * 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.
         *
+        * Note that the session to replace is neither removed from the bridge nor stopped.
+        *
         * @param sessionToReplace The session being replaced. The bridge associated with this
         *   session is used for the newSessions.
         *

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


-- 
asterisk-scf/integration/slice.git



More information about the asterisk-scf-commits mailing list