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

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Wed Oct 5 17:03:59 CDT 2011


branch "client-auth" has been updated
       via  392bea5bac84da946d5990ddd7afb977bdcb102c (commit)
       via  006cccac7e498e0faa88a747bdf39ba805198e41 (commit)
       via  2078b4a3901eaa3984036ce505ea61e07eac1258 (commit)
       via  cb5988e9a49ed1a914a52de38e26585408ea7270 (commit)
       via  5c9ba71d0434e5716d9ee58eb4ae5a60039967f5 (commit)
       via  38c625182693d9900c734ded0055a66ca24fe01e (commit)
       via  11fde89592c2d13346d7322b8d3591f2f104c5b0 (commit)
       via  28ab66a1d742596f1b35030bf48e8b4a85a64b4a (commit)
       via  f7a6cfa0ce860cca6407d11ddf57699f117467fe (commit)
       via  66bcc079b7ec83fb484756c9da3d09d160ab1cbd (commit)
       via  ef8832a77930c026fc93c1585ed9bdc448a91834 (commit)
       via  08dce549dc9525de99a212081275b33e23d60b0b (commit)
       via  ff44d0e1ff76a086e4851c15604cf9d1ba9ad3fc (commit)
       via  ec6e9d9693aeb9935ba6665a10b81f2552349071 (commit)
       via  767842b03dab3430d585abb505eb7772753f60c3 (commit)
       via  2f28b8f7396b52bfd3a4298f65d798df599671a9 (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)
       via  08371c40e29b89e72a3acdc051757ae15f3c78b4 (commit)
       via  953289a66556d717384244c36f73acc945562099 (commit)
       via  91f56f1e7a481e13a0b42d0fb1d323ac3ad3cb91 (commit)
       via  ce9020326cff79fc41acb596241ff6641ea5af5f (commit)
       via  c1a96c506d66c71c874b2107c187bc5a28e8b4c3 (commit)
       via  8e5e1f624b5fb5e498bb7d84a1172fa337e8bee3 (commit)
       via  1a56884ce4ac84e41ab64499a635834f6cd71f63 (commit)
       via  990dd70ce8143d48a2064b0100f4f34a9ec1d344 (commit)
       via  fde12f1f0f75904a355fe1db2c591da2fc6210cd (commit)
       via  e449cfaa1657a1299e3312a6ad5a5a4e2b6e1b0f (commit)
       via  8c7018ca46f1c84877a451dacadcb8c3fee5ec01 (commit)
      from  1312c9c9d0f4c97f96f09a1291f6fe86710efda9 (commit)

Summary of changes:
 slice/AsteriskSCF/Media/Formats/AudioFormats.ice   |   26 +
 .../Formats/{AudioFormats.ice => OtherFormats.ice} |   35 +-
 slice/AsteriskSCF/Media/Formats/T38UdptlFormat.ice |  118 +++++
 slice/AsteriskSCF/Media/MediaIf.ice                |   98 ++++-
 slice/AsteriskSCF/Media/MediaOperationIf.ice       |   91 ++++
 slice/AsteriskSCF/Media/NetworkIf.ice              |   97 ++++
 slice/AsteriskSCF/Media/RTP/MediaRTPIf.ice         |    2 +-
 slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice     |  192 ++++++++
 slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice      |    2 +-
 .../PartyIdentificationIf.ice                      |  143 ++----
 .../SessionCommunicationsExtensionPointsIf.ice     |  182 +++++++
 .../SessionCommunicationsIf.ice                    |  505 +++++++++++---------
 .../SessionCommunications/SessionCookieIf.ice      |   56 +++
 .../SessionCommunications/TelephonyEventsIf.ice    |   27 +-
 slice/AsteriskSCF/System/Logger/LoggerIf.ice       |   18 +-
 slice/AsteriskSCF/System/NAT/NATTraversalIf.ice    |    4 +-
 16 files changed, 1253 insertions(+), 343 deletions(-)
 copy slice/AsteriskSCF/Media/Formats/{AudioFormats.ice => OtherFormats.ice} (56%)
 create mode 100644 slice/AsteriskSCF/Media/Formats/T38UdptlFormat.ice
 create mode 100644 slice/AsteriskSCF/Media/MediaOperationIf.ice
 create mode 100644 slice/AsteriskSCF/Media/NetworkIf.ice
 create mode 100644 slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice
 mode change 100644 => 100755 slice/AsteriskSCF/SessionCommunications/SessionCommunicationsExtensionPointsIf.ice
 create mode 100644 slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice


- Log -----------------------------------------------------------------
commit 392bea5bac84da946d5990ddd7afb977bdcb102c
Author: Mark Michelson <mmichelson at digium.com>
Date:   Wed Oct 5 17:05:47 2011 -0500

    Change the name of the method used for responding to an authentication challenge

diff --git a/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice b/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice
index 9b96c5e..fc00dc5 100644
--- a/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice
+++ b/slice/AsteriskSCF/SIP/SIPExtensionPointIf.ice
@@ -197,7 +197,7 @@ module V1
          * authentication response (i.e. Authorization header) that Asterisk
          * SCF will send to the UAS that has sent an authentication challenge
          */
-        AsteriskSCF::System::Hook::V1::HookResult getCredentials(string endpointName, Ice::StringSeq realms, out ClientAuthSeq auths);
+        AsteriskSCF::System::Hook::V1::HookResult respondToChallenge(string endpointName, Ice::StringSeq realms, out ClientAuthSeq auths);
     };
 
     sequence<AuthHook*> AuthHookSeq;

commit 006cccac7e498e0faa88a747bdf39ba805198e41
Merge: 2078b4a cb5988e
Author: Mark Michelson <mmichelson at digium.com>
Date:   Tue Oct 4 17:28:06 2011 -0500

    Merge branch 'master' into client-auth


commit 2078b4a3901eaa3984036ce505ea61e07eac1258
Merge: ef8832a 11fde89
Author: Mark Michelson <mmichelson at digium.com>
Date:   Tue Oct 4 10:41:20 2011 -0500

    Merge branch 'master' into client-auth


commit cb5988e9a49ed1a914a52de38e26585408ea7270
Author: Joshua Colp <jcolp at digium.com>
Date:   Mon Oct 3 19:43:04 2011 -0300

    Add slice for UDPTL support.

diff --git a/slice/AsteriskSCF/Media/Formats/T38UdptlFormat.ice b/slice/AsteriskSCF/Media/Formats/T38UdptlFormat.ice
new file mode 100644
index 0000000..0df9f50
--- /dev/null
+++ b/slice/AsteriskSCF/Media/Formats/T38UdptlFormat.ice
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ */
+
+#include <AsteriskSCF/Media/MediaIf.ice>
+#include <AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice>
+
+module AsteriskSCF
+{
+
+module Media
+{
+
+module Formats
+{
+
+module T38Udptl
+{
+
+["suppress"]
+module V1
+{
+    /**
+     * String representation of the version of this interface
+     */
+    const string Version = "V1";
+
+    /**
+     * Various fax rates
+     */
+    enum Rate
+    {
+        RATE_UNSPECIFIED,
+        RATE_2400,
+        RATE_4800,
+        RATE_7200,
+        RATE_9600,
+        RATE_12000,
+        RATE_14400,
+    };
+
+    /**
+     * Rate management options
+     */
+    enum RateManagement
+    {
+        UNSPECIFIED_TCF,
+        TRANSFERRED_TCF,
+        LOCAL_TCF,
+    };
+
+    /**
+     * T.38 UDPTL Media Format 
+     */
+    unsliceable class T38UdptlFormat extends AsteriskSCF::Media::V1::Format
+    {
+        /**
+         * T.38 version
+         */
+        int version = 0;
+
+        /**
+         * Maximum datagram size
+         */
+        int maxDatagram = 0;
+
+        /**
+         * Maximum rate
+         */
+        Rate faxRate = RATE_UNSPECIFIED;
+
+        /**
+         * Rate management option
+         */
+        RateManagement faxRateManagement = UNSPECIFIED_TCF;
+
+        /**
+         * Error correction scheme setting
+         */
+        AsteriskSCF::Media::UDPTL::V1::ErrorCorrectionScheme errorCorrection = AsteriskSCF::Media::UDPTL::V1::NONE;
+
+        /**
+         * Whether fill bit removal is enabled.
+         */
+        bool fillBitRemoval = false;
+
+        /**
+         * Whether transcoding MMR is being used.
+         */
+        bool transcodingMmr = false;
+
+        /**
+         * Whether transcoding Jbig is being used.
+         */
+        bool transcodingJbig = false;
+    };
+
+}; /*  end module V1 */
+
+}; /*  end module T38Udptl */
+
+}; /*  end module Formats */
+
+}; /*  end module Media */
+
+}; /*  end module AsteriskSCF */
diff --git a/slice/AsteriskSCF/Media/NetworkIf.ice b/slice/AsteriskSCF/Media/NetworkIf.ice
new file mode 100644
index 0000000..65d686d
--- /dev/null
+++ b/slice/AsteriskSCF/Media/NetworkIf.ice
@@ -0,0 +1,97 @@
+/*
+ * 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 Network
+{
+
+["suppress"]
+module V1
+{
+    /**
+     * String representation of the version of this interface
+     */
+    const string Version = "V1";
+
+    /**
+     * Structure returned when address information is queried
+     */
+    struct AddressInformation
+    {
+        /**
+         * String representation of the IP address.
+         */
+        string ipAddress;
+
+        /**
+         * Integer representation of the port.
+         */
+        int port;
+    };
+
+    /**
+     * Interface for a network receiver
+     */
+    interface Receiver
+    {
+        /**
+         * Method which returns the local address information that we are listening on.
+         *
+         * @return AddressInformation Populated AddressInformation structure.
+         */
+        idempotent AddressInformation getLocalDetails();
+    };
+
+    /**
+     * Exception thrown when an invalid address is passed in.
+     */
+    exception InvalidAddress
+    {
+    };
+
+    /**
+     * Interface for a network sender
+     */
+    interface Sender
+    {
+        /**
+         * Method which sets the address and port that we will send to.
+         *
+         * @param address A string representation of the address.
+         *
+         * @param port An integer containing the port.
+         *
+         * @throws InvalidAddress when the address passed in is invalid.
+         */
+        idempotent void setRemoteDetails(string address, int port) throws InvalidAddress;
+
+        /**
+         * Method which returns the remote address information that we are sending to.
+         *
+         * @return AddressInformation Populated AddressInformation structure.
+         */
+        idempotent AddressInformation getRemoteDetails();
+    };
+
+}; /*  end module V1 */
+
+}; /*  end module Network */
+
+}; /*  end module AsteriskSCF */
diff --git a/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice b/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice
new file mode 100644
index 0000000..e0388c3
--- /dev/null
+++ b/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice
@@ -0,0 +1,192 @@
+/*
+ * 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.
+ */
+
+#include <AsteriskSCF/Core/Discovery/ServiceLocatorIf.ice>
+#include <AsteriskSCF/Media/MediaIf.ice>
+#include <AsteriskSCF/Media/NetworkIf.ice>
+
+module AsteriskSCF
+{
+
+module Media
+{
+
+module UDPTL
+{
+
+["suppress"]
+module V1
+{
+   /**
+    * String name of the service locator category for the UDPTL component service interface.
+    */
+   const string ComponentServiceDiscoveryCategory = "MediaUDPTLService";
+
+    /**
+     * String representation of the version of this interface
+     */
+    const string Version = "V1";
+
+    /**
+     * Extended discovery class for UDPTL media services.
+     */
+    unsliceable class UDPTLServiceLocatorParams extends AsteriskSCF::Core::Discovery::V1::ServiceLocatorParams
+    {
+        /**
+         * Whether IPv6 is to be used or not.
+         */
+        bool ipv6 = false;
+    };
+
+    /**
+     * Extend discovery class to enable UDPTL over ICE negotiated media flows.
+     */
+    unsliceable class UDPTLOverICEServiceLocatorParams extends UDPTLServiceLocatorParams
+    {
+        /**
+         * Enable ICE negotiated UDPTL media flows. We set a default of true mostly because
+         * we assume if you looking for a component that understands this type then
+         * it probably has this feature enabled.
+         */
+        bool enableICE = true;
+
+        /**
+         * Enable TURN server access/usage if configured. NOTE: Has no effect if enableICE
+         * is NOT enabled.
+         */
+        bool enableTURN = true;
+    };
+
+    /**
+     * Different error correction schemes that may be used.
+     */
+    enum ErrorCorrectionScheme
+    {
+        /**
+         * No error correction is to be used.
+         */
+        NONE,
+
+        /**
+         * Forward error correction is to be used.
+         */
+        FEC,
+
+        /**
+         * Redundancy is to be used.
+         */
+        REDUNDANCY,
+    };
+
+   /**
+    * Interface to a UDPTL stream source.
+    */
+   interface StreamSourceUDPTL extends AsteriskSCF::Media::V1::StreamSource, AsteriskSCF::Network::V1::Receiver
+   {
+      /**
+       * Method which returns the maximum size we will accept for IFPs.
+       *
+       * @return int An integer containing the size.
+       */
+      idempotent int getLocalMaxIfp();
+   };
+
+   /**
+    * Interface to a UDPTL stream sink.
+    */
+   interface StreamSinkUDPTL extends AsteriskSCF::Media::V1::StreamSink, AsteriskSCF::Network::V1::Sender
+   {
+      /**
+       * Method which sets the maximum datagram size of this source.
+       *
+       * @param datagramSize Maximum datagram size.
+       */
+      idempotent void setFarMaxDatagram(int datagramSize);
+
+      /**
+       * Method which returns the maximum datagram size of this source.
+       *
+       * @return int An integer containing the maximum datagram.
+       */
+      idempotent int getFarMaxDatagram();
+
+      /**
+       * Method which returns the maximum IFP size of this source.
+       *
+       * @return int An integer containing the maximum IFP size.
+       */
+      idempotent int getFarMaxIFP();
+
+      /**
+       * Method which sets the error correction scheme to use.
+       *
+       * @param ErrorCorrectionScheme The error correction scheme to use.
+       */
+      idempotent void setErrorCorrectionScheme(ErrorCorrectionScheme scheme);
+
+      /**
+       * Method which gets the error correction scheme.
+       *
+       * @return ErrorCorrectionScheme Enum of the error correction scheme.
+       */
+      idempotent ErrorCorrectionScheme getErrorCorrectionScheme();
+   };
+
+   /**
+    * Interface to a UDPTL media session.
+    */
+   interface UDPTLSession extends AsteriskSCF::Media::V1::Session
+   {
+      /**
+       * Method which releases the UDPTL session. Once called the UDPTL session will no longer exist.
+       */
+      void release();
+   };
+
+   /**
+    * This exception will be thrown by the media service if the session cannot be allocated for some
+    * reason. It shall include a descriptive message as to why the request failed.
+    */
+   exception SessionAllocationFailure
+   {
+       string message;
+   };
+
+   /**
+    * Interface to a UDPTL media service.
+    */
+   interface UDPTLMediaService
+   {
+      /**
+       * Method which creates a new UDPTL session and returns a proxy to it.
+       * 
+       * @param params Parameters to configure the UDPTL session with.
+       *
+       * @return UDPTLSession* A proxy to the new UDPTL session.
+       *
+       * @throws SessionAllocationFailure if the media service is unable to allocate a session
+       * to match the provided parameters.
+       */
+       UDPTLSession* allocate(UDPTLServiceLocatorParams params) throws SessionAllocationFailure;
+   };
+
+}; /*  end module V1 */
+
+}; /*  end module UDPTL */
+
+}; /*  end module Media */
+
+}; /*  end module AsteriskSCF */

commit 5c9ba71d0434e5716d9ee58eb4ae5a60039967f5
Author: Ken Hunt <ken.hunt at digium.com>
Date:   Sun Oct 2 17:51:36 2011 -0500

    Changed addSink to addSinks, and added a removeSinks operation.

diff --git a/slice/AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice b/slice/AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice
index ee7bc68..4b99ba1 100644
--- a/slice/AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice
@@ -86,9 +86,15 @@ module V1
     interface TelephonyEventSource
     {
         /**
-         * Add a new sink to send telephony events to
+         * Add sinks to send telephony events to.
          */
-        ["amd"] void addSink(TelephonyEventSink* sink);
+        ["amd"] void addSinks(TelephonyEventSinkSeq sinks);
+
+        /**
+         * Remove sinks.
+         */
+        ["amd"] void removeSinks(TelephonyEventSinkSeq sinks);
+
         /**
          * Get a list of the sinks to which this source sends events
          */

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

commit ef8832a77930c026fc93c1585ed9bdc448a91834
Merge: 1312c9c 08dce54
Author: Mark Michelson <mmichelson at digium.com>
Date:   Wed Sep 14 12:27:14 2011 -0500

    Merge branch 'master' into client-auth


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


-- 
asterisk-scf/integration/slice.git



More information about the asterisk-scf-commits mailing list