Represents the connection Session with the Interaction Center server.

Namespace: ININ.IceLib.Connection
Assembly: ININ.IceLib (in ININ.IceLib.dll) Version: (


public class Session : IDisposable
Visual Basic
Public Class Session _
	Implements IDisposable


The Session is the root of any IceLib connection with the IC server. It accepts various settings to describe the session and provides events when there is a change in connection settings or connection state.

Host Settings. The HostSettings is used to specify the host information used to establish a Session connection.

Authentication Settings. There are a number of object classes that are used to specify authentication settings for the Session such as what IC User ID and Password to login with. All such objects inherit from AuthSettings. Examples of authentication classes are: ICAuthSettings and WindowsAuthSettings.

Station Settings. There are a number of object classes that are used to specify station settings for the Session such as what remote number is serving as the User's station. All such objects inherit from StationSettings. Examples of station classes are: WorkstationSettings and RemoteStationSettings. There are additional considerations that need to be taken into account when using StationlessSettings. See the StationlessSettings object for further details.


The following example shows how to create a connection to the IC server:
// The IceLib Session can be created once and used for the life of the process.
Session session = new Session();
// An event handler is usually added to monitor connection state changes.
session.ConnectionStateChanged += delegate { /* React to connection state changes. */ };

// The application name can be displayed in Interaction Supervisor and is used for diagnostic operations.
SessionSettings sessionSettings = new SessionSettings();
sessionSettings.ApplicationName = "<Custom Application Name>";

// Specify the server being connected to (which is usually the IC server name).
// (It can also be a DNS "A" record that refers to both IC servers in a switchover pair.)
HostEndpoint hostEndpoint = new HostEndpoint("<IC Server Name>");
HostSettings hostSettings = new HostSettings(hostEndpoint);

// There are many options for specifying user authentication information.
// (See the derived classes of ININ.IceLib.Connection.AuthSettings for more information.)
// The current windows user's windows authentication can be used (if the IC user is configured with NT credentials).
WindowsAuthSettings authSettings = new WindowsAuthSettings();
// Alternatively, IC authentication can be used.
ICAuthSettings icAuthSettings = new ICAuthSettings("<IC_User_LoginID>", "<IC_User_Password>");

// There are many options for specifying IC station information.
// (See the derived classes of ININ.IceLib.Connection.StationSettings for more information.)
// If the application does not require a Station login, a simple "stationless" connection can be used.
StationlessSettings stationSettings = new StationlessSettings();
// Alternatively, an IC station could be specified.
WorkstationSettings workstationSettings = new WorkstationSettings("<IC_StationID>", SupportedMedia.Call);
// Or, a dynamic remote number station could be specified.
RemoteNumberSettings remoteNumberSettings = new RemoteNumberSettings(SupportedMedia.Call, "555-555-5555", true);

// Note: Consider using the ConnectAsync method to avoid blocking the thread.
session.Connect(sessionSettings, hostSettings, authSettings, stationSettings);


All "manager" classes found in the IceLib library are designed as singletons-classes instantiated only once. For example, to begin working with any of the functionality provided in the ININ.IceLib.Interactions.InteractionsManager, you must obtain the instance through a call to its GetInstance method.
Session session = new Session();
InteractionsManager interactionsManager = InteractionsManager.GetInstance(session);


The IceLib SDK includes example application references to the Session class. Some examples are listed below.
TutorialExampleConnectionViewModel.cs, line 197, in ConnectionViewModel.SetSessionValues
ConnectionViewModel.cs, line 12, in ConnectionViewModel.#ctor
ConnectionViewModel.cs, line 214, in ConnectionViewModel.SetStationValues
ChangeStationViewModel.cs, line 11, in ChangeStationViewModel.#ctor
ChangeStationViewModel.cs, line 107, in ChangeStationViewModel.PerformLogin
LoginViewModel.cs, line 191, in LoginViewModel.PerformLogin
LoginViewModel.cs, line 11, in LoginViewModel.#ctor
SystemStatisticsViewModel.cs, line 38, in SystemStatisticsViewModel.#ctor
StatisticCatalogViewModel.cs, line 12, in StatisticCatalogViewModel.#ctor
UserRoleConfigurationViewModel.cs, line 22, in UserRoleConfigurationViewModel.#ctor
MainWindowViewModel.cs, line 22, in MainWindowViewModel.#ctor

Inheritance Hierarchy


Version Information

Supported for IC Server version 2015 R1 and beyond.
For 4.0, supported for IC Server version 4.0 GA and beyond.
For 3.0, supported for IC Server version 3.0 GA and beyond.

See Also