[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
Mon Oct 3 17:43:08 CDT 2011


branch "master" has been updated
       via  cb5988e9a49ed1a914a52de38e26585408ea7270 (commit)
      from  5c9ba71d0434e5716d9ee58eb4ae5a60039967f5 (commit)

Summary of changes:
 slice/AsteriskSCF/Media/Formats/T38UdptlFormat.ice |  118 ++++++++++++
 slice/AsteriskSCF/Media/NetworkIf.ice              |   97 ++++++++++
 slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice     |  192 ++++++++++++++++++++
 3 files changed, 407 insertions(+), 0 deletions(-)
 create mode 100644 slice/AsteriskSCF/Media/Formats/T38UdptlFormat.ice
 create mode 100644 slice/AsteriskSCF/Media/NetworkIf.ice
 create mode 100644 slice/AsteriskSCF/Media/UDPTL/MediaUDPTLIf.ice


- Log -----------------------------------------------------------------
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 */

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


-- 
asterisk-scf/release/slice.git



More information about the asterisk-scf-commits mailing list