[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