[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
Sun Sep 11 21:44:16 CDT 2011
branch "master" has been updated
via a2b0b33c81ba48bacfe985007af3c18ceca180ef (commit)
from 12b8d9c16293991aa0ecc59767d011694d19513c (commit)
Summary of changes:
.../PartyIdentificationIf.ice | 145 +++----
.../SessionCommunicationsIf.ice | 468 +++++++++++---------
.../SessionCommunications/SessionCookieIf.ice | 56 +++
3 files changed, 367 insertions(+), 302 deletions(-)
create mode 100644 slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice
- Log -----------------------------------------------------------------
commit a2b0b33c81ba48bacfe985007af3c18ceca180ef
Author: Ken Hunt <ken.hunt at digium.com>
Date: Sun Sep 11 21:39:18 2011 -0500
Changes to Party Identification support. Removed Identification Manager and distributed its operations to Session and SessionController.
diff --git a/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice b/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
index 7046ec2..66292b4 100644
--- a/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice
@@ -16,6 +16,8 @@
#pragma once
+#include <AsteriskSCF/SessionCommunications/SessionCookieIf.ice>
+
module AsteriskSCF
{
@@ -38,10 +40,10 @@ module V1
*/
unsliceable class Name
{
- /**
- * String representation of the name
- */
- string partyName;
+ /**
+ * String representation of the name
+ */
+ string partyName;
};
/**
@@ -49,10 +51,10 @@ module V1
*/
unsliceable class Number
{
- /**
- * String representation of the number
- */
- string partyNumber;
+ /**
+ * String representation of the number
+ */
+ string partyNumber;
};
/**
@@ -60,15 +62,15 @@ module V1
*/
unsliceable class Id
{
- /**
- * Name of the party
- */
- Name partyName;
-
- /**
- * Number of the party
- */
- Number partyNumber;
+ /**
+ * Name of the party
+ */
+ Name partyName;
+
+ /**
+ * Number of the party
+ */
+ Number partyNumber;
};
/**
@@ -79,104 +81,61 @@ module V1
/**
* Base class for dialed party information
*/
- unsliceable class Dialed
+ unsliceable class Dialed extends AsteriskSCF::SessionCommunications::V1::SessionCookie
{
- /**
- * Number that was dialed
- */
- Number partyNumber;
+ /**
+ * Number that was dialed
+ */
+ Number partyNumber;
};
- /**
- * Base class for calling party information
+ /**
+ * Class for identifying a session.
*/
- unsliceable class Caller
+ unsliceable class SessionOwnerId extends AsteriskSCF::SessionCommunications::V1::SessionCookie
{
- /**
- * Identities of the caller
- */
- IdSeq ids;
+ /**
+ * Party identification associated with the session owner.
+ */
+ IdSeq ids;
};
/**
- * Derived class for connected line information, currently exactly like Caller
+ * Class for calling party information
*/
- unsliceable class ConnectedLine extends Caller
+ unsliceable class Caller extends SessionOwnerId
{
};
/**
- * Base class for redirecting information
+ * Derived class for connected line information, currently exactly like Caller
*/
- unsliceable class Redirecting
+ unsliceable class ConnectedLine extends Caller
{
- /**
- * Party identification information for who the session is being redirected away from
- */
- Id from;
-
- /**
- * Party identification information for who the session is being redirected to
- */
- Id to;
-
- /**
- * Number of times the session has been redirected
- */
- int count;
};
/**
- * Interface for party identification retrieval and setting
+ * Base class for redirecting information
*/
- interface IdentificationManager
+ unsliceable class Redirecting extends AsteriskSCF::SessionCommunications::V1::SessionCookie
{
- /**
- * Method which retrieves caller party identification information
- *
- * @return Concrete class containing caller party information
- *
- * @see Caller
- */
- idempotent Caller getCaller();
-
- /**
- * Method which retrieves dialed party identification information
- *
- * @return Concrete class containing dialed party information
- *
- * @see Dialed
- */
- idempotent Dialed getDialed();
-
- /**
- * Method which retrieves redirecting party identification information
- *
- * @return Concrete class containing redirecting party information
- *
- * @see Redirecting
- */
- idempotent Redirecting getRedirecting();
-
- /**
- * Method which updates connected line party information
- *
- * @param party Connected line party information
- *
- * @see ConnectedLine
- */
- void updateConnectedLine(ConnectedLine party);
-
- /**
- * Method which updates redirecting party information
- *
- * @param party Redirecting party information
- *
- * @see Redirecting
- */
- void updateRedirecting(Redirecting party);
+ /**
+ * Party identification information for who the session is being redirected away from
+ */
+ Id from;
+
+ /**
+ * Party identification information for who the session is being redirected to
+ */
+ Id to;
+
+ /**
+ * Number of times the session has been redirected
+ */
+ int count;
};
+
}; /* End of module V1 */
}; /* End of module PartyIdentification */
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
index d370c63..fbf4c7b 100644
--- a/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCommunicationsIf.ice
@@ -1,4 +1,4 @@
-/*
+/**
* Asterisk SCF -- An open-source communications framework.
*
* Copyright (C) 2010, Digium, Inc.
@@ -23,6 +23,8 @@
#include <AsteriskSCF/System/Time/TimeIf.ice>
#include <AsteriskSCF/Media/MediaIf.ice>
#include <AsteriskSCF/SessionCommunications/TelephonyEventsIf.ice>
+#include <AsteriskSCF/SessionCommunications/PartyIdentificationIf.ice>
+#include <AsteriskSCF/SessionCommunications/SessionCookieIf.ice>
module AsteriskSCF
{
@@ -127,19 +129,6 @@ module V1
};
/**
- * Generic base class for 'cookies', opaque data items that can be
- * stored on a Session and retrieved via the SessionListener
- * interface when events occur on that Session.
- *
- * @see SessionListener
- *
- * @see SessionCookies
- */
- unsliceable class SessionCookie
- {
- };
-
- /**
* Indication visitor class.
*/
["visitor"] local class IndicationVisitor
@@ -208,19 +197,6 @@ module V1
};
/**
- * A sequence of cookies, allowing for a variable number of them
- * to be passed in a single operation or event.
- *
- * @see SessionListener
- */
- sequence <SessionCookie> SessionCookies;
-
- /**
- * A dictionary of cookies, used for storing them.
- */
- dictionary<string, SessionCookie> SessionCookieDict;
-
- /**
* Indication that a session has completed.
*/
unsliceable class StoppedIndication extends TelephonyIndication
@@ -311,8 +287,8 @@ module V1
* @param source The session the event occurred on.
*
* @param event The indication event that has occurred.
- *
- * @param cookies Any cookies present on the session.
+ *
+ * @param cookies Any cookies present on the session.
*
* @see Session
*
@@ -373,6 +349,24 @@ module V1
* @param streams A dictionary of streams to remove.
*/
["amd"] void removeStreams(AsteriskSCF::Media::V1::StreamInformationDict streams);
+
+ /**
+ * Method which updates connected line party identification.
+ *
+ * @param connectedLine Connected line party information.
+ *
+ * @see Asterisk::SessionCommunications::PartyIdentifcation::V1::ConnectedLine
+ */
+ void updateConnectedLine(AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine connectedLine);
+
+ /**
+ * Method which updates redirecting party information.
+ *
+ * @param connectedLine Connected line party information.
+ *
+ * @see Asterisk::SessionCommunications::PartyIdentifcation::V1::Redirecting
+ */
+ void updateRedirecting(AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting redirecting);
};
/**
@@ -400,42 +394,42 @@ module V1
*/
["amd"] SessionInfo addListener(SessionListener* listener);
- /**
- * Set (or replace) cookies on the session.
- *
- * @param cookies A sequence of one or more concrete objects,
- * each of which are of a type derived from SessionCookie.
- * The session manager will store these cookies on the
- * session, replacing any existing cookies with matching
- * types.
- *
- * @note There can only be one cookie of a given type associated
- * with a session.
- **/
- void setCookies(SessionCookies cookies);
-
- /**
- * Remove cookies from the session.
- *
- * @param cookies A sequence of one or more concrete objects,
- * each of which are of a type derived from SessionCookie.
- * The session manager will remove any cookies on the session
- * with types that match the ones in this sequence; the
- * content of the supplied cookies is not compared.
- **/
- void removeCookies(SessionCookies cookies);
-
- /**
- * Get cookies stored on the session.
- *
- * @param cookieTypes A sequence of zero or more concrete objects,
- * each of which are of a type derived from SessionCookie.
- *
- * @return A sequence of zero or more cookies from the session,
- * with types that match the types of the template cookies
- * provided in the cookieTypes parameter.
- **/
- SessionCookies getCookies(SessionCookies cookieTypes);
+ /**
+ * Set (or replace) cookies on the session.
+ *
+ * @param cookies A sequence of one or more concrete objects,
+ * each of which are of a type derived from SessionCookie.
+ * The session manager will store these cookies on the
+ * session, replacing any existing cookies with matching
+ * types.
+ *
+ * @note There can only be one cookie of a given type associated
+ * with a session.
+ */
+ void setCookies(SessionCookies cookies);
+
+ /**
+ * Remove cookies from the session.
+ *
+ * @param cookies A sequence of one or more concrete objects,
+ * each of which are of a type derived from SessionCookie.
+ * The session manager will remove any cookies on the session
+ * with types that match the ones in this sequence; the
+ * content of the supplied cookies is not compared.
+ */
+ void removeCookies(SessionCookies cookies);
+
+ /**
+ * Get cookies stored on the session.
+ *
+ * @param cookieTypes A sequence of zero or more concrete objects,
+ * each of which are of a type derived from SessionCookie.
+ *
+ * @return A sequence of zero or more cookies from the session,
+ * with types that match the types of the template cookies
+ * provided in the cookieTypes parameter.
+ */
+ SessionCookies getCookies(SessionCookies cookieTypes);
/**
* Request that an indication be performed on a session.
@@ -570,6 +564,61 @@ module V1
* @param controller A proxy to the session controller to remove.
*/
["amd"] void removeSessionController(SessionController* controller);
+
+ /**
+ * Method which retrieves caller party identification information
+ *
+ * @return Concrete class containing caller party information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Caller
+ getCaller();
+
+ /**
+ * Method which retrieves dialed party identification information
+ *
+ * @return Concrete class containing dialed party information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::Dialed
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Dialed
+ getDialed();
+
+ /**
+ * Method which retrieves identities associated with the owning Session.
+ *
+ * @return Concrete class containing SessionOwnerId information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::SessionOwnerId
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::SessionOwnerId
+ getSessionOwnerId();
+
+ /**
+ * Method which retrieves redirecting party identification information
+ *
+ * @return Concrete class containing redirecting party information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::Redirecting
+ getRedirecting();
+
+ /**
+ * Method which retrieves connected line identification information
+ *
+ * @return Concrete class containing connected line party information
+ *
+ * @see AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine
+ */
+ ["amd"] idempotent
+ AsteriskSCF::SessionCommunications::PartyIdentification::V1::ConnectedLine
+ getConnectedLine();
};
/**
@@ -583,6 +632,7 @@ module V1
* Get a sequence of the telephony event sources for this session
*/
["amd"] TelephonyEventSourceSeq getSources();
+
/**
* Get a sequence of the telephony event sinks for this session
*/
@@ -832,7 +882,7 @@ module V1
* When such an exception occurs, it can be assumed that the operation succeeded for any session proxy that is in
* the SessionErrorSeq.
*
- **/
+ */
struct SessionError
{
Session* failedSession;
@@ -890,126 +940,126 @@ module V1
*/
interface Bridge
{
- /**
- * Add a sequence of session proxies to the bridge. Sessions are started
- * if necessary.
- *
- * @param session A sequence of session proxies.
- *
- * @throws InvalidSessions if any of the provided sessions are invalid.
- *
- * @see Session
- * @see InvalidSessions
- */
- ["amd"]
- void addSessions(SessionSeq session)
- throws InvalidSessions, BridgeSessionOperationFailed;
+ /**
+ * Add a sequence of session proxies to the bridge. Sessions are started
+ * if necessary.
+ *
+ * @param session A sequence of session proxies.
+ *
+ * @throws InvalidSessions if any of the provided sessions are invalid.
+ *
+ * @see Session
+ * @see InvalidSessions
+ */
+ ["amd"]
+ void addSessions(SessionSeq session)
+ throws InvalidSessions, BridgeSessionOperationFailed;
- /**
- * Abruptly destroy the bridge. Sessions will not be stopped.
- */
- void destroy();
+ /**
+ * Abruptly destroy the bridge. Sessions will not be stopped.
+ */
+ void destroy();
- /**
- * List the sessions currently on the bridge.
- *
- * @return a sequence of session proxies participating in the bridge.
- */
- idempotent SessionSeq listSessions();
+ /**
+ * List the sessions currently on the bridge.
+ *
+ * @return a sequence of session proxies participating in the bridge.
+ */
+ idempotent SessionSeq listSessions();
- /**
- * Removes one or more sessions from the bridge. Sessions are not stopped
- * as they are removed.
- *
- * @param sessions A sequence of session proxies.
- *
- * @throws InvalidSessions if any of the provided sessions are invalid.
- *
- * @see Session
- * @see InvalidSessions
- */
- ["amd"]
- void removeSessions(SessionSeq sessions)
- throws InvalidSessions, BridgeSessionOperationFailed;
+ /**
+ * Removes one or more sessions from the bridge. Sessions are not stopped
+ * as they are removed.
+ *
+ * @param sessions A sequence of session proxies.
+ *
+ * @throws InvalidSessions if any of the provided sessions are invalid.
+ *
+ * @see Session
+ * @see InvalidSessions
+ */
+ ["amd"]
+ void removeSessions(SessionSeq sessions)
+ throws InvalidSessions, BridgeSessionOperationFailed;
- /**
- * Nicely shutdown the bridge. Participating sessions are disconnected.
- */
- void shutdown();
+ /**
+ * Nicely shutdown the bridge. Participating sessions are disconnected.
+ */
+ void shutdown();
- /**
- * Adds a listener object to the bridge. The listener will receive notification
- * of future changes to the bridge as they occur.
- *
- * @param listener A reference to a BridgeListener object.
- *
- * @see BridgeListener
- */
- void addListener(BridgeListener* listener);
+ /**
+ * Adds a listener object to the bridge. The listener will receive notification
+ * of future changes to the bridge as they occur.
+ *
+ * @param listener A reference to a BridgeListener object.
+ *
+ * @see BridgeListener
+ */
+ void addListener(BridgeListener* listener);
- /**
- * Removes a listener object from the bridge. The listen will cease receiving
- * notifications of changes to the bridge.
- *
- * @param listener A reference to the listener object to be removed.
- *
- * @see BridgeListener
- */
- void removeListener(BridgeListener* listener);
+ /**
+ * Removes a listener object from the bridge. The listen will cease receiving
+ * notifications of changes to the bridge.
+ *
+ * @param listener A reference to the listener object to be removed.
+ *
+ * @see BridgeListener
+ */
+ void removeListener(BridgeListener* listener);
- /**
- * Replaces a session that is on the bridge with another session. Useful for transfers, etc.
- * where a participant is replaced as part of the code flow.
- *
- * @param sessionToReplace The session being replaced. The bridge associated with this
- * session is used for the newSessions.
- *
- * @param newSessions The sessions to add to the bridge. The sessions are assumed to not
- * be already participating in another bridge.
- *
- * @throws InvalidSessions if any of the provided sessions are invalid.
- *
- * @throws SessionNotFound if the session to be replaced is not on the bridge.
- */
- ["amd"]
- void replaceSession(Session* sessionToReplace, SessionSeq newSessions)
- throws InvalidSessions, SessionNotFound, BridgeSessionOperationFailed;
-
- /**
- * Set (or replace) cookies on the Bridge.
- *
- * @param cookies A sequence of one or more concrete objects,
- * each of which are of a type derived from BridgeCookie. The
- * bridge will store these cookies on the bridge, replacing any
- * existing cookies with matching types.
- *
- * @note There can only be one cookie of a given type associated
- * with a Bridge.
- **/
- void setCookies(BridgeCookies cookies);
-
- /**
- * Remove cookies from the Bridge.
- *
- * @param cookies A sequence of one or more concrete objects,
- * each of which are of a type derived from BridgeCookie.
- * The bridge will remove any cookies on the bridge
- * with types that match the ones in this sequence; the
- * content of the supplied cookies is not compared.
- **/
- void removeCookies(BridgeCookies cookies);
-
- /**
- * Get cookies stored on the Bridge.
- *
- * @param cookieTypes A sequence of zero or more concrete objects,
- * each of which are of a type derived from BridgeCookie.
- *
- * @return A sequence of zero or more cookies from the bridge,
- * with types that match the types of the template cookies
- * provided in the cookieTypes parameter.
- **/
- BridgeCookies getCookies(BridgeCookies cookieTypes);
+ /**
+ * Replaces a session that is on the bridge with another session. Useful for transfers, etc.
+ * where a participant is replaced as part of the code flow.
+ *
+ * @param sessionToReplace The session being replaced. The bridge associated with this
+ * session is used for the newSessions.
+ *
+ * @param newSessions The sessions to add to the bridge. The sessions are assumed to not
+ * be already participating in another bridge.
+ *
+ * @throws InvalidSessions if any of the provided sessions are invalid.
+ *
+ * @throws SessionNotFound if the session to be replaced is not on the bridge.
+ */
+ ["amd"]
+ void replaceSession(Session* sessionToReplace, SessionSeq newSessions)
+ throws InvalidSessions, SessionNotFound, BridgeSessionOperationFailed;
+
+ /**
+ * Set (or replace) cookies on the Bridge.
+ *
+ * @param cookies A sequence of one or more concrete objects,
+ * each of which are of a type derived from BridgeCookie. The
+ * bridge will store these cookies on the bridge, replacing any
+ * existing cookies with matching types.
+ *
+ * @note There can only be one cookie of a given type associated
+ * with a Bridge.
+ */
+ void setCookies(BridgeCookies cookies);
+
+ /**
+ * Remove cookies from the Bridge.
+ *
+ * @param cookies A sequence of one or more concrete objects,
+ * each of which are of a type derived from BridgeCookie.
+ * The bridge will remove any cookies on the bridge
+ * with types that match the ones in this sequence; the
+ * content of the supplied cookies is not compared.
+ */
+ void removeCookies(BridgeCookies cookies);
+
+ /**
+ * Get cookies stored on the Bridge.
+ *
+ * @param cookieTypes A sequence of zero or more concrete objects,
+ * each of which are of a type derived from BridgeCookie.
+ *
+ * @return A sequence of zero or more cookies from the bridge,
+ * with types that match the types of the template cookies
+ * provided in the cookieTypes parameter.
+ */
+ BridgeCookies getCookies(BridgeCookies cookieTypes);
};
/**
@@ -1078,11 +1128,11 @@ module V1
*/
interface BridgeManager
{
- /**
- * Method called to add a listener to the bridge manager.
- *
- * @param listener A proxy to the bridge manager listener to add.
- */
+ /**
+ * Method called to add a listener to the bridge manager.
+ *
+ * @param listener A proxy to the bridge manager listener to add.
+ */
void addListener(BridgeManagerListener* listener);
/**
@@ -1104,27 +1154,27 @@ module V1
*/
void removeListener(BridgeManagerListener* listener);
- /**
- * Method called to add a listener to the list of bridge listeners that
- * will automatically be added to every bridge that is created.
- *
- * @param listener A proxy to the bridge listener to add.
- *
- * @throws NullProxyException if the listener proxy is a null proxy.
- *
- */
+ /**
+ * Method called to add a listener to the list of bridge listeners that
+ * will automatically be added to every bridge that is created.
+ *
+ * @param listener A proxy to the bridge listener to add.
+ *
+ * @throws NullProxyException if the listener proxy is a null proxy.
+ *
+ */
void addDefaultBridgeListener(BridgeListener* listener)
throws AsteriskSCF::System::V1::NullProxyException;
- /**
- * Method called to remove a listener to the list of bridge listeners that
- * will automatically be added to every bridge that is created.
- *
- * @param listener A proxy to the bridge listener to remove.
- *
- * @throws NullProxyException if the listener proxy is a null proxy.
- *
- */
+ /**
+ * Method called to remove a listener to the list of bridge listeners that
+ * will automatically be added to every bridge that is created.
+ *
+ * @param listener A proxy to the bridge listener to remove.
+ *
+ * @throws NullProxyException if the listener proxy is a null proxy.
+ *
+ */
void removeDefaultBridgeListener(BridgeListener* listener)
throws AsteriskSCF::System::V1::NullProxyException;
@@ -1146,13 +1196,13 @@ module V1
*/
interface BridgeManagerListener
{
- /**
- * Notice that a bridge was created.
- *
- * @param manager A proxy to the bridge manager that created the bridge.
- *
- * @param newBridge A proxy to the newly created bridge.
- */
+ /**
+ * Notice that a bridge was created.
+ *
+ * @param manager A proxy to the bridge manager that created the bridge.
+ *
+ * @param newBridge A proxy to the newly created bridge.
+ */
void bridgeCreated(BridgeManager* manager, Bridge* newBridge);
/**
diff --git a/slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice b/slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice
new file mode 100644
index 0000000..7812c9d
--- /dev/null
+++ b/slice/AsteriskSCF/SessionCommunications/SessionCookieIf.ice
@@ -0,0 +1,56 @@
+/**
+ * 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 SessionCommunications
+{
+
+["suppress"]
+module V1
+{
+
+ /**
+ * Generic base class for 'cookies', opaque data items that can be
+ * stored on a Session and retrieved via the SessionListener
+ * interface when events occur on that Session.
+ *
+ * @see SessionListener
+ *
+ * @see SessionCookies
+ */
+ unsliceable class SessionCookie
+ {
+ };
+
+ /**
+ * A sequence of cookies, allowing for a variable number of them
+ * to be passed in a single operation or event.
+ *
+ * @see SessionListener
+ */
+ sequence <SessionCookie> SessionCookies;
+
+ /**
+ * A dictionary of cookies, used for storing them.
+ */
+ dictionary<string, SessionCookie> SessionCookieDict;
+
+}; /* End of module V1 */
+}; /* End of module SessionCommunications */
+}; /* End of module AsteriskSCF */
-----------------------------------------------------------------------
--
asterisk-scf/release/slice.git
More information about the asterisk-scf-commits
mailing list