Getting Started
The CDSClient SDK is the client component of the SwyxWare ConfigDataStore (CDS). CDS uses the Windows Communication Foundation (WCF) as middleware to provide access to the CDS Service and to the underlying SQL database. The ConfigDataStore component is part of Swyx and manages all configuration data of the system like users, groups, trunks, locations, etc. The CDSClientSDK consists of a couple of NET assemblies. Additionally, there is a native C++ wrapper around the API, which can be used by unmanaged applications.
The interface is provided as it is. With using the interface, the user accepts that Swyx does not take any warranty nor is responsible for any damage being caused by using it. Swyx provides technical support through the Technology Partner Program.
The Swyx ConfigDataStore SDK is offered as nuget packages at nuget.org/swyx. To build an application using the SDK you usually need to add the following references:
Packet | Description |
---|---|
Swyx.ConfigDataStoreClient.Managed | Managed Code assembies for dotnet applications. Support .Net Framework 4.8. Usually that is the dependency you want to use. |
Swyx.ConfigDataStoreClient.Common | Common SDK assemblies. Support .Net Framework 4.8. This package is a dependency of Swyx.ConfigDataStoreClient.Managed |
Swyx.ConfigDataStoreClient.Native | Native code dlls to use the SDK from C++. Not recommended. If possible use managed code to access the Swyx ConfigDataStore SDK |
Swyx.ConfigDataStoreClient.Blob | Helper assembly to access some legacy binary large configuration objects. Should not be used whenevery possible. There are APIs in the SWConfigDataClientLib.Proxies.PhoneClient and related classes to access these client-specifc configuration information. |
API classes
LibManager
The CDS Client LibManager is the central class of the CDS Client API. It contains methods and properties to define the server and authentication. You use LibManager to create instances of other classes for retrieval and manipulation of configuration items. The LibManager should be the first class you instantiate.
Configuration Item Enumerations
There are enumeration objects (usually named like XxxEnum
) which allow retrieval and enumeration of configuration objects. These objects can be modified and usually have an Update()
method to update the database. Configuration item enumerations may contain sub enumerations. The top most enumerations are called Primary Configuration
Item Enumerations. For each Primary Configuration Item Enumeration exists a proxy class on the client side which is created by using LibManger. There are many Primary Configuration Item Enumerations. Among them are:
- UserEnum Configure Swyx users, internal numbers, phonebooks, call lists etc.
- InternalNumberEnum Configure internal and public numbers and their mappings.
- GroupEnum Configure groups and their members
- PortBundleEnum Configure trunks, trunk groups and the routing configuration. Note that for historical reasons the API used "Port" for trunks and "Portbundle" for trunk groups.
- LocationEnum Configure locations
- EditablePhoneBookEnum Used to retrieve and manipulate the SwyxServer’s global phonebook every user can see.
- UserPhoneBookEnum Used to retrieve and manipulate a SwyxWare user’s personal phonebook.
Facades
Facades are classes similar to the primary configuration enumerations. They contain specialized views of the configuration data, which are read only. A facade also provides specialized methods to manipulate the data directly. Views in facades are optimized for their specific use and are usually much faster and need less memory than using the enumerators.
- IppbxServerFacade SwyxServer service facade. This facade is meant for usage from SwyxServer service only. You should avoid using it in client applications as normal users and administrators usually have not the necessary access rights anyway.
- PortManagerFacade Specialized facade for SwyxLinkManager service. This facade is meant for usage from Swyx services running on the server. You should avoid using it in client applications as normal users and administrators usually have not the necessary access rights anyway.
- AdminFacade Facade for administrative clients. It contains specialized views analogue to the views used in the SwyxWare Administration. If your application does any administrative tasks you probably want to use this class.
- PhoneClientFacade Facade for Swyx clients. It contains specialized views and methods to be used from client application. A PhoneClientFacade instance is implicitly associated to the SwyxWare user specified in the lib manager. Client application usually use this facade.
- FilesFacade Facade for managing files stored in SwyxServer’s database.
Authentication
Authentication is managed by the LibManager class. There are three ways of user identification: Kerberos, Username Password and Trusted. SwyxWare currently uses username/password and Trusted only. The latter one automatically uses the Windows account the user is currently logged in at his system. Both authentication mechanisms can be switched on in each user’s properties via Swyx Control Center. For administrative tasks the user needs to have assigned an appropriate administrative profile. This can be done via Swyx Control Center
Examples
There are cde examples available for download. See Examples