[asterisk-scf-commits] asterisk-scf/integration/sip.git branch "master" updated.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Wed Sep 1 15:34:18 CDT 2010


branch "master" has been updated
       via  ce5b7989275947ff1fa15a83155297afa4519a2e (commit)
      from  b59e9ce8a8f5db2543f9392c1a6be5478ad9952e (commit)

Summary of changes:
 local-slice/SipConfigurationIf.ice |  174 ++++++++++++++++++++++++++++++++++++
 1 files changed, 174 insertions(+), 0 deletions(-)
 create mode 100644 local-slice/SipConfigurationIf.ice


- Log -----------------------------------------------------------------
commit ce5b7989275947ff1fa15a83155297afa4519a2e
Author: Mark Michelson <mmichelson at digium.com>
Date:   Wed Sep 1 15:35:47 2010 -0500

    Add initial slice file for SIP configuration stuff.

diff --git a/local-slice/SipConfigurationIf.ice b/local-slice/SipConfigurationIf.ice
new file mode 100644
index 0000000..d4a102b
--- /dev/null
+++ b/local-slice/SipConfigurationIf.ice
@@ -0,0 +1,174 @@
+#pragma once
+
+module Hydra
+{
+module SIP
+{
+["suppress"]
+module V1
+{
+	const string Version = "V1";
+
+	/**
+	 * Machine-specific SIP configuration
+	 * information. Currently only includes
+	 * bind addresses/ports. Other options
+	 * that may be here in future times are
+	 * access control options, and global
+	 * NAT settings.
+	 */
+	class SipGeneralConfiguration
+	{
+		// Our UDP IPv4 bind address and port
+		string UdpBindAddressv4;
+		// Our UDP IPv6 bind address and port
+		string UdpBindAddressv6;
+		// Our TCP IPv4 bind address and port
+		string TcpBindAddressv4;
+		// Our TCP IPv6 bind address and port
+		// Currently, PJSIP does not support
+		// IPv6 for TCP transport.
+		string TcpBindAddressv6;
+		// Our TLS IPv4 bind address and port
+		string TlsBindAddressv4;
+		// Our TLS IPv6 bind address and port
+		// Currently, PJSIP does not support
+		// IPv6 for TLS transport.
+		string TlsBindAddressv6;
+	};
+
+	/**
+	 * General purpose direction enumeration.
+	 * Useful for detemining policies regarding
+	 * which types of endpoints can send and
+	 * receive specific types of SIP messages.
+	 * The perspective used for directions is
+	 * from Asterisk SCF's point of view. So
+	 * INBOUND means indicates traffic to
+	 * Asterisk SCF, and OUTBOUND indicates
+	 * traffic to the endpoint.
+	 */
+	enum Direction
+	{
+		NONE,
+		INBOUND,
+		OUTBOUND,
+		BOTH
+	};
+
+	/**
+	 * Transport configuration options for
+	 * Endpoints. Currently only consists
+	 * of the endpoint's IP address and port,
+	 * plus an indication of whether the endpoint
+	 * requires a secure transport.
+	 */
+	class SipEndpointTransportConfig
+	{
+		// The IP address and port of the endpoint.
+		string IpAddress;
+		// Security policy. In which call directions
+		// do we require TLS?
+		Direction secureTransport;
+	};
+
+	/**
+	 * Authentication configuration. Currently
+	 * only contains a secret. Other options may
+	 * include a list of SIP methods on which to
+	 * require authentication and a selection of
+	 * what algorithm to use when authenticating.
+	 */
+	class SipEndpointAuthConfig
+	{
+		// Password
+		string secret;
+	};
+
+	/**
+	 * Registration configuration. Consists
+	 * of the direction to register in, plus
+	 * expiration parameters
+	 */
+	class SipEndpointRegistrationConfig
+	{
+		// In which direction should a REGISTER
+		// be expected. This is a case where the
+		// BOTH option is not permitted.
+		Direction registerDirection;
+		// If sending an outbound REGISTER,
+		// our preferred expiration time.
+		int outboundExpiry;
+		// On inbound registrations, the largest
+		// expiration we allow.
+		int inboundMaxExpiry;
+		// On inbound registrations, the smallest
+		// expiration we allow.
+		int inboundMinExpiry;
+	}
+
+	/**
+	 * Session options. Deals with INVITE sessions,
+	 * the most common type being a phone call.
+	 */
+	sequence<string> OptionSeq;
+	class SipEndpointSessionConfig
+	{
+		// The direction in which sessions can be
+		// started with this endpoint.
+		Direction callDirection;
+		// Additional options supported by this
+		// endpoint.
+		OptionSeq supportedOptions;
+		// The source IP address and port to use
+		// when contacting this endpoint.
+		string sourceAddress;
+	};
+
+	/**
+	 * Media options. Deals with types of media
+	 * supported by an endpoint. Currently only
+	 * contains a sequence of strings representing
+	 * supported codecs.
+	 */
+	sequence<string> CodecSeq;
+	class SipEndpointMediaConfig
+	{
+		CodecSeq allowedCodecs;
+	}
+
+	enum SubscriptionRole
+	{
+		SUBSCRIBER,
+		NOTIFIER,
+		EVENTPUBLICATIONAGENT,
+		EVENTSTATECOMPOSITOR
+	}
+	/**
+	 * Subscription options. Deals with options
+	 * for subscriptions. This is an interface
+	 * rather than a class because each event
+	 * package will have its own event-specific
+	 * data to keep up with.
+	 */
+	interface SipEndpointSubscriptionConfig
+	{
+		// The role Asterisk SCF plays in the
+		// subscription.
+		SubscriptionRole role;
+		// For outbound SUBSCRIBE and PUBLISH
+		// messages, our preferred expiration interval.
+		int outboundExpiry;
+		// For inbound SUBSCRIBE and PUBLISH
+		// messages, our minimum allowed expiration interval.
+		int inboundMinExpiry;
+		// For inbound SUBSCRIBE and PUBLISH
+		// messages, our maximum allowed expiration interval.
+		int inboundMaxExpiry;
+		// The name of the event package, as would
+		// appear in the Event header of SIP messages.
+		string eventPackage;
+	}
+}; //module V1
+}; //module SIP
+}; //module Hydra

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


-- 
asterisk-scf/integration/sip.git



More information about the asterisk-scf-commits mailing list