[asterisk-scf-commits] asterisk-scf/release/slice.git branch "master" updated.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Fri Sep 30 17:54:22 CDT 2011


branch "master" has been updated
       via  38c625182693d9900c734ded0055a66ca24fe01e (commit)
      from  11fde89592c2d13346d7322b8d3591f2f104c5b0 (commit)

Summary of changes:
 .../PartyIdentificationIf.ice                      |   20 ++--
 .../SessionCommunicationsExtensionPointsIf.ice     |  122 ++++++++++++++++++++
 .../SessionCommunicationsIf.ice                    |   20 ++--
 3 files changed, 144 insertions(+), 18 deletions(-)


- Log -----------------------------------------------------------------
commit 38c625182693d9900c734ded0055a66ca24fe01e
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Fri Sep 30 17:26:53 2011 -0500

    Defines extension points that modify party identification records.

diff --git a/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice b/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
index 66292b4..a0e11f1 100644
--- a/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
@@ -115,24 +115,28 @@ module V1
     };
 
     /**
-     * Base class for redirecting information
+     * Describes an instance of redirection. 
      */
-    unsliceable class Redirecting extends AsteriskSCF::SessionCommunications::V1::SessionCookie
+    unsliceable class Redirection
     {
         /**
          * Party identification information for who the session is being redirected away from
          */
-        Id from;
+        Id fromId;
 
         /**
          * Party identification information for who the session is being redirected to
          */
-        Id to;
+        Id toId; 
+    };
+    sequence <Redirection> RedirectionSeq;
 
-        /**
-         * Number of times the session has been redirected
-         */
-        int count;
+    /**
+     * Base class for redirection information.
+     */
+    unsliceable class Redirections extends AsteriskSCF::SessionCommunications::V1::SessionCookie
+    {
+        RedirectionSeq redirects;
     };
 
 
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
index 107d129..86de504 100755
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
@@ -140,6 +140,128 @@ module V1
          */
         void clearHooks();
     };
+
+    const string PartyIdentificationHookLocatorCategory = "PartyIdHook";
+
+    /**
+     * Hook into party identification ConnectedLine record for
+     * incoming ConnectedLine updates.
+     */
+    interface ReceivedConnectedLinePartyIdHook
+    {
+        /**
+         * This hook operation is called when ConnectedLine updates are received. 
+         * The caller of the hook will provide 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 receivedConnectedLineUpdate,
+            out AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine replacementConnectedLineUpdate);
+    };
+    sequence<ReceivedConnectedLinePartyIdHook*> ReceivedConnectedLinePartyIdHookSeq;
+
+    /**
+     * Hook into party identification ConnectedLine record
+     * for modifying ConnectedLine information being sent to a 
+     * specific Session. 
+     */
+    interface ForwardingConnectedLinePartyIdHook
+    {
+        /**
+         * This hook is called when ConnectedLine updates are being sent to a particular
+         * session. The caller 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] receivedConnectedLine The data received from the sending session.
+         * @param[out] replacementConnectedLine Modified data to be used.
+         * @return A HookResult indicating whether the hook was successful
+         */
+        AsteriskSCF::System::Hook::V1::HookResult modifyForwardingConnectedLine(
+            AsteriskSCF::SessionCommunications::V1::Session *sendingSession, 
+            AsteriskSCF::SessionCommunications::V1::Session *destinationSession, 
+            AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine receivedConnectedLine,
+            out AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine replacementConnectedLine);
+    };
+    sequence<ForwardingConnectedLinePartyIdHook*> ForwardingConnectedLinePartyIdHookSeq;
+
+    /**
+     * Hook into party identification Redirections record. This hook
+     * allows modifying a Redirections record prior to sending it to
+     * each connected Session that may be affected.
+     */
+    interface ForwardingRedirectionsPartyIdHook
+    {
+        /**
+         * 
+         * This hook is called when Redirections are being forwarded to a session. 
+         * The caller provides the session that will receive the Redirections information
+         * to the hook, as well as the session that sent the record.
+         * This hook is expected to return the original Redirections record
+         * or an updated version of it. 
+         *
+         * @param sendingSession The session that has sent Redirections information.
+         * @param destinationSession The session that will receive the Redirections information.
+         * @param[out] receivedRedirections The data received from the sending session.
+         * @param[out] replacementRedirections Modified data to be used.
+         * @return A HookResult indicating whether the hook was successful
+         */
+        AsteriskSCF::System::Hook::V1::HookResult modifyForwardingRedirections(
+            AsteriskSCF::SessionCommunications::V1::Session *sendingSession, 
+            AsteriskSCF::SessionCommunications::V1::Session *destinationSession, 
+            AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections receivedRedirections,
+           out AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections replacementRedirections);
+    };
+    sequence<ForwardingRedirectionsPartyIdHook*> ForwardingRedirectionsPartyIdHookSeq;
+
+    interface PartyIdentificationExtensionPoint
+    {
+        /**
+         * Add a hook for received ConnectedLine party id. 
+         */
+        void addReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
+
+        /**
+         * Add a hook to invoke when forwarding ConnectedLine party id. 
+         */
+        void addForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
+
+        /**
+         * Add a hook to invoke when forwarding Redirections party id record. 
+         */
+        void addForwardingRedirectionsPartyIdHook(ForwardingRedirectionsPartyIdHook* hook);
+
+        /**
+         * Remove a received ConnectedLine hook
+         */
+        void removeReceivedConnectedLinePartyIdHook(ReceivedConnectedLinePartyIdHook* hook);
+
+        /**
+         * Remove a forwarding ConnectedLine hook
+         */
+        void removeForwardingConnectedLinePartyIdHook(ForwardingConnectedLinePartyIdHook* hook);
+
+        /**
+         * Remove a forwarding Redirections hook
+         */
+        void removeForwardingRedirectionsPartyIdHook(ForwardingRedirectionsPartyIdHook* 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 c83931d..4127870 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -351,7 +351,7 @@ module V1
         ["amd"] void removeStreams(AsteriskSCF::Media::V1::StreamInformationDict streams);
 
          /**
-          * Method which updates connected line party identification.
+          * Method which updates connected line party identification. 
           *
           * @param connectedLine Connected line party information.
           *
@@ -360,13 +360,13 @@ module V1
          void updateConnectedLine(AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine connectedLine);
 
          /**
-          * Method which updates redirecting party information.
+          * Method which provides notification of redirections that have occurred. 
           *
-          * @param connectedLine Connected line party information.
+          * @param redirections Redirections that have occurred
           * 
-          * @see Asterisk::SessionCommunications::PartyIdentifcation::V1::Redirecting
+          * @see Asterisk::SessionCommunications::PartyIdentifcation::V1::Redirections
           */
-         void updateRedirecting(AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting redirecting);
+         void updateRedirections(AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections redirections);
     };
 
     /**
@@ -599,15 +599,15 @@ module V1
                 getSessionOwnerId();
 
         /**
-         * Method which retrieves redirecting party identification information
+         * Method which access redirection party identification information
          *
-         * @return Concrete class containing redirecting party information
+         * @return Concrete class containing redirections history for the session
          *
-         * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting
+         * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections
          */
         ["amd"] idempotent 
-             AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting 
-              getRedirecting();
+             AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirections 
+              getRedirections();
 
         /**
          * Method which retrieves connected line identification information

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


-- 
asterisk-scf/release/slice.git



More information about the asterisk-scf-commits mailing list