[asterisk-scf-commits] asterisk-scf/integration/slice.git branch "udptl" created.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Fri Sep 9 17:52:19 CDT 2011


branch "udptl" has been created
        at  7d6522817a8647aff546751ffbe03fae5d98b1ac (commit)

- Log -----------------------------------------------------------------
commit 7d6522817a8647aff546751ffbe03fae5d98b1ac
Author: Joshua Colp <jcolp at digium.com>
Date:   Fri Sep 9 19:57:56 2011 -0300

    Add slice file for UDPTL media transport.

diff --git a/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice b/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice
new file mode 100644
index 0000000..60be41f
--- /dev/null
+++ b/slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice
@@ -0,0 +1,218 @@
+/*
+ * 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>
+
+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;
+    };
+
+    /**
+     * 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
+   {
+      /**
+       * Method which retrieves the local listening IP address of this source.
+       *
+       * @return string A string representation of the IP address.
+       */
+      idempotent string getLocalAddress();
+
+      /**
+       * Method which retrieves the local listening port of this source.
+       *
+       * @return int An integer containing the port.
+       */
+      idempotent int getLocalPort();
+
+      /**
+       * Method which returns the maximum size we will accept for IFPs.
+       *
+       * @return int An integer containing the size.
+       */
+      idempotent int getLocalMaxIfp();
+   };
+
+   /**
+    * Exception thrown when an invalid address is passed in.
+    */
+   exception InvalidAddress
+   {
+   };
+
+   /**
+    * Interface to a UDPTL stream sink.
+    */
+   interface StreamSinkUDPTL extends AsteriskSCF::Media::V1::StreamSink
+   {
+      /**
+       * Method which changes the IP address and port that media will be sent 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.
+       */
+      void setRemoteDetails(string address, int port) throws InvalidAddress;
+
+      /**
+       * Method which retrieves the remote IP address.
+       *
+       * @return string A string representation of the IP address.
+       */
+      idempotent string getRemoteAddress();
+
+      /**
+       * Method which retrieves the remote port.
+       *
+       * @return int An integer containing the port.
+       */
+      idempotent int getRemotePort();
+
+      /**
+       * Method which sets the maximum datagram size of this source.
+       *
+       * @param datagramSize Maximum datagram size.
+       */
+      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.
+       */
+      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 */

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


-- 
asterisk-scf/integration/slice.git



More information about the asterisk-scf-commits mailing list