Installation and administration



DesktopClient is a thick desktop application for Windows built on the .NET and WPF technologies. Therefore, it does not pose any special workstation requirements.

Network settings for ProServer

DesktopClient requires the possibility to connect to ProServer. You can set the location of the ProServer and the port (the default for TCP is 18321) with the PbxParameters configuration parameter.

Network settings for softphone

If you are going to use the embedded softphone, you must enable SIP communication with the server. See Network communication.


The DesktopClient application itself does not require installation. Copy the application build folder to the target computer, then just run iCC.DesktopClient.exe.

You must install the Microsoft Edge WebView add-on for the chat elements of the application to function properly. It allows the application to natively open a web interface that provides ReactClient functionality.

  • Navigate through the link to the add-on website

  • Choose the appropriate installer according to the operating system architecture

  • Restart your computer after the installation


It is advisable to keep this add-on up to date due to security threats. On the other hand, it is always advisable to test the functionality with a given Desktop client build on one specific computer before deploying a new version on all computers. After a successful test, then deploy to the remaining ones.

System settings for application integration


When integrating the application, it is necessary to modify the DeletePerso'' script on the installation so that it does not delete the data related to the DesktopClient. The ``Perso table contains saved application bar definitions and reaction definitions (each agent has its own definitions). The database RefName for these definitions is ProCaller#RibbonDefinition and ProCaller#EventHandlingDefinition.

Steps required to integrate the application:

ProServer settings

DesktopClient does not communicate with FrontStage directly, but via ProServer. The station must therefore have network access to ProServer and have DesktopClient set appropriately.

The username and password are not required since the application uses Windows authentication and the current user is sent to ProServer. For workstations connected to a domain, these are usernames in the form domain\name (e.g. acmecorp\johndoe).

In the ProServer administration in the Agents section, create an account necessary for the connection as follows:

  1. In the Agents section, name the account in the Name field with the name of the agent or the like.

  2. In the Credentials section, add or edit the entry as follows:

    • Enter the username in the System Name field as it is sent by Windows authentication from stations (e.g. acmecorp\johndoe) (see above).

    • In the Application field, select iCC.DesktopClient

  3. In the Permissions section, add the necessary roles. Usually UseChannels a ExtensionCTI.

  4. In the Data Items section, add or modify the entry as follows:

    • Enter UserData in the Key field

    • In the Application field, select iCC.DesktopClient

    • In the Data field, enter a string in the style of <?xml version="1.0" encoding="utf-8"?><UserData><IdentityCC>agent login< /IdentityCC></UserData>, e.g.

      <?xml version="1.0" encoding="utf-8"?><UserData><IdentityCC>fs-sql_demo\jelinek</IdentityCC></UserData>

      See System Name.


In the Stations section, you can track several recent DesktopClient connections.

Definitions for the database

In the Perso database table, it is necessary to upload the bar definition and the reaction definition for the users who are to use the application. The definitions are saved in the json format.

Database entries and their RefName:

  • Ribbon definition - ProCaller#RibbonDefinition

  • Response definition - ProCaller#EventHandlingDefinition

Local configuration file

The configuration parameters for the connection are set for each computer separately. The file name is appsettings.json; it is located in the application folder. A local settings in the config file has lower priority than workplace settings in the database, if both places contain the same parameter, the database one will be used.


For locally usable parameters see WebRtcConfiguration section. At least ServerUrl parameter is mandatory.


The following information needs to be filled in:


Agent has to be able to login using the application. You can set this via Agent visual editor.


Workplaces which are supposed to work with the DC app have to log-in to the ProServer as a softphone. In ReactAdmin, Agents ‣ Workplace section, Softphone configuration (JSON) field, set the json softphone object. The order of the parameters in the object does not matter.


To be able to log-in from DC to AS7 it is necessary that PhoneType parameter is in a format PhoneName_DC (connection won’t work without the “_DC” stated)

An object example:

{"PhoneType": "AS7anCTI_DC", "Password": "password", "UserName":"", "ServerUrl": "", "DeviceName": "sip:555@stat.777", "HoldOnDirectCti": false}

For possible parameters and their meaning see WebRtcConfiguration section.


An object example:

{"PhoneType": "SWPSIP", "SipServer": "", "Password": "xyz", "UserName":"420"}

The object will also include other attributes with the SIP server location, verification, etc. (see Configuration).

LiteralLookup set

For the correct rendering of all texts in the application, it is a good idea to always upload an up-to-date set of LiteralLookup texts to the database. This will limit the situation where only the system LiteralText is displayed in the application, without the corresponding text, for the given language.

Network communication


Communication via internet, see Network communication


Enable network communication between the station and the PBX specified in Softphone configuration (JSON). It is normally handled by the FrontStage network specialist, see Network communication.

Basis for user statistics

If you want to fill statistics for individual users, you need to set the following:

  1. BroadcastDataQueries - in the administration, set the parameter to true (if you set it on an already “live” installation, you must then restart the synchronous service - the parameter is loaded at start-up)

  2. Create a database query (Administration, section Data queries) that returns the required columns for statistics

    • The Validity interval item must be set for the query

    • The query is always called after the specified interval; it is evaluated as a whole and the data is distributed to individual agents in their applications

    • It must contain the AgentId control column to allow data binding

  3. You must assign the created database query to a specific agent

    • In the administration in the Agents section, fill in the DQ in the bar parameter


After creating a new database query, check that the indexes are set correctly. This will prevent complications due to increased computing power on the server side.

Default sound device (WebRTC only)

See Default communication device.

Configuration file

The appsettings.json configuration file contains many settings, but most of them do not usually need to be edited. The only exception is the connection to ProServer. The file is in the JSON format.


The configuration file is extensive. Do not edit sections outside this description - they are not meant to be configured by users. Make sure to follow the syntax of the JSON file, such as nesting elements, enclosing attributes in quotes, etc.

configuration.SoftphoneConfigurationSection section

Section dedicated to Built-in softphone and its settings.




Softphone device. The only option for now is SWPSIP, which activates the built-in softphone.


SIP server login.


SIP server login password.


SIP server DNS/IP address.


User-Agent header inserted into SIP messages.

Recomended value for:

  • MXONE is Aastra 6867i/

  • A5000 is Mediant VE-H SBC/v.7.20A.256.024


Registration renewal interval [sec]. Maximum value 3600. Will be inserted into SIP REGISTER message.


Interval odesílání SIP keepalive paketů v sekundách. Parametr pomůže při řešení potíží se zavíráním spojení při neaktivitě.

  • 0 pro zákaz

  • >1 interval v sekundách

  • minimálně 30 sekund


RTP keepalive packet sending interval [sec]. It can help troubleshooting the RTP stream closing problem occuring during inactivity.

  • 0 for disabling

  • >1 interval in seconds

  • 15 seconds is minimum


Whether to register again, after the interval has passed. Ignored, if already registered. Use this parameter only when experiencing network issues and softphone is beign disconnected periodically.

  • values true or false


Interval, after the device should be registered again [sec], if the PeriodicReconnect is enabled.


If the customer is trying to reach an occupied phone, he will hear a “busy tone”. Values true or false


Whether to reconnect, after the interval has passed. Softphone will check the connection during a network error (internet or LAN connection). This param can cause trouble when using the A5000 PBX.

  • values true or false


Interval [sec], after which reconnect,if the ConnectionChecker param. is enabled.


Whether to use PRACK.

  • values true or false


Softphone window scale option. For example 0.8 pro low resolution screens, 1.3 for high resolution screens (in case UI is too small). Recommended value is 1.


If you set the value to 0, softphone will be completely hidden. Notification window, during the incomming call will remain vissible.


Supported voice communication codexes.


Keys listed in XML as a nested elements. For example. AudioCodecs.AUDIOCODEC_PCMU is


Available keys (true or false):

  • AUDIOCODEC_PCMU – PCMU/G711-law 8KHZ 64kbit/s.

  • AUDIOCODEC_PCMA – PCMA/G711 A-law 8KHZ 64kbit/s.

  • AUDIOCODEC_G729 – G729 8KHZ 8kbit/s.

  • AUDIOCODEC_ILBC – iLBC 8KHZ 30ms-13kbit/s 20 ms-15kbit/s.

  • AUDIOCODEC_GSM – GSM 8KHZ 13kbit/s.

  • AUDIOCODEC_AMR – Adaptive Multi-Rate (AMR) 8KHZ (4.75,5.15,5.90,6.70,7.40,7.95,10.20,12.20)kbit/s.

  • AUDIOCODEC_G722 – G722 16KHZ 64kbit/s.

  • AUDIOCODEC_SPEEX – SPEEX 8KHZ (2-24)kbit/s.

  • AUDIOCODEC_AMRWB – Adaptive Multi-Rate Wideband (AMR-WB)16KHZ (6.60,8.85,12.65,14.25,15.85,18.25,19.85,23.05,23.85)kbit/s.

  • AUDIOCODEC_SPEEXWB – SPEEX 16KHZ (4-42)kbit/s.

  • AUDIOCODEC_G7221 – G722.1 16KHZ (16,24,32)kbit/s.

  • AUDIOCODEC_OPUS – OPUS 48KHZ 32kbit/s.


Setting supported voice communication codecs.


Keys are in XML as a nested element. For example, Ports.MinimumRtpAudioPort is


Available keys:

  • MinimumRtpAudioPort, MaximumRtpAudioPort – Range of ports for RTP protocol communication. Default is 7002-7810, range 10402-10800 reserved for future use.


Mandatory parameter when using MX ONE PBX. When experiencing sound trouble on some MX devices, allow this parameter. Otherwise leave off, so no extra SIP packets are being created.


Used for troubleshooting when A5000 PBX is used. If you experience “autoanswer/Call.Hold / Call.Unhold” or sound problems, enable this.


Obsolete, replaced by UseMxoneStrategy

When experiencing sound problems on some MX ONE versions, enabling can solve the problem. Otherwise leave off, so no extra SIP communication is being created.


If defined, this MAC address will be used for softphone. Otherwise, local network adapter address (NIC) is used.




“X-Aastra-Id” header within SIP communiction. If any is set, it will be used instead of the generated one.


Obsolete. Only for testing purposes, otherwise not recomended to use.


If allowed, A5000 PBX will send the OK status even when the credentials are not valid. As a part of this settings, configuration items are not sent.

This functionality controls the hidden string in configuration item (key defined in RegistrationSecret).

If not allowed, softphone can generate “false-positive” registration result, even if the action failed.


Key for RegistrationSecretEnabled. Must be sent from PBX, if the registration was succesfull. The app checks “NOTIFY” messages with application/xml content.


When sending the credentials, application waits for here defined interval, if it receives RegistrationSecret at least in one A5000 request.

Valid range is 500 - 10000 (recomended value is 6000).


Enable/Disable “Acoustic Echo Cancellation” function.


Enable/Disable “Voice Activity Detection” function.


Enable/Disable “Comfort Noise Generator” function.


Enable/Disable “Automatic Gain Control” function.


Enable/Disable “Audio Noise Suppression” function.


Enable/Disable “NACK” function, which hjelps with video quality. Currently not usable.


Enable/Disable “Do not disturb” mode.


SIP port for communication with the server.

  • for softphone with address - port UDP 5060

  • for softphone with address - port UDP 10000 - 20000


User name for authorization (usually the same as the user name). Some PBXses do not need this value to be set.


User nickname, can be any value. Optional.


Log level.

  • -1 logging not active

  • 1 to 4 determines the level, where 4 means we log everything.

If the parameter LogDirectory is not set, logging is off regardless of this option.


Log file folder. If not set, logging is turned off (if you enter this value <LogDirectory xsi:nil="true" /> it has the same meaning as “off”)

Path to the folder should be valid and DC app should have the rights to access it. The path string can be filled with system variables, for example: <LogDirectory>%localappdata%\atlantis\DC_Logs</LogDirectory>.


Backup value, if the build number is not readable. If not needed, whole tag can be deleted.


STUN server port. Can be turned off by omitting the value or writing in the xsi:nil="true" string.


Transfer type for SIP communication.

Valid values:

  • UDP (for softphones with the addess a

  • TCP

  • TLS

At the same time, it is needed that port 18321 is enabled, for the server communiction purposes.


Default volume level for playback device. The higher priority has the user settings tied with the Windows profile. Valid range is 0 - 255. Can be turned off by entering the xsi:nil="true" value.


Default volume level for recording device. The higher priority has the user settings tied with the Windows profile. Valid range is 0 - 255. Can be turned off by entering the xsi:nil="true" value.


For testing purpose on the devices, where physical playback device is not possible (softphone expects any playback device, if not found, it will return a warning message).

If on, the function will force the usage of a virtual playback device.

After finishing the test, turn this functionality off!

WebRtcConfiguration section

Softphone “WebRTC” configuration.




When AS7 used, the values is always “AS7anCTIupd_DC”


AS7 user ID with ctiDeviceId right assigned


User password, see above


Direct URL address to the ancti.js library which runs the WebRTC backend. AS7 is a multitenant app, so the value for this parameter can be the same for more FS instances.


Terminal and workplace identification. Syntax - sip:extension_number@term.id_of_terminal, e.g. sip:165@term.262


Indication, whether the call HOLD should be performed locally instead of by CSTA operation (temporary solution till release 5.9)


Windows registered device ID for recording the sound. Optional parameter. If empty, the application will set it automatically after the user selects one.


Windows registered device ID for playing the sound. Optional parameter. If empty, the application will set it automatically after the user selects one.


Volume level of PlaybackDeviceId, ranges from 0 to 255 or NULL.


Volume level of RecordingDeviceId, ranges from 0 to 255 or NULL.

configuration.applicationSettings'' section




ProServer connection string. values divided by commas, blank spaces among the values, the order is: <host>,<port>,<timeout>.

  • mandatory

  • type: string

  • example: frontsrv,18321,20000


  • host can be IP or DNS

  • for ProServer 3.15+ the port value should be a negative number (default ProServer port is 18321)

  • timeout in miliseconds


The name of the instance to connect to the ProServer. This is usually the hostname of the remote server.

If the DesktopClient and ProServer are on the same machine, you can use the value #MACHINENAME# to replace the hostname of the machine you are running the DesktopClient from (not the remote one).


Logging level and it’s settings. Possible values: App, Detail. Separate the inserted values by commas.


Settings, which determines the application rendering mode after start. Possible values: True, False

  • True - app started as minimized with minimum possible UI

  • False - standard behaviour, ribbon displayed


The value list, which will be available as the scaling options for DesktopClient’s ribbon. This can be increased/decreased in proportion to the operating system display settings.

Default list: 0.6|0.75|0.8|1|1.25|1.5

Inserted numbers will be presented percentually to the user, which means 0.6 = 60%


Application bar anchor.

  • docked - the bar is docked to the top or bottom of the screen (depending on the user’s settings)

  • floating - a floating Windows window that can be moved anywhere


Controls “onboarding” in the application.

If true the application will attempt to retrieve the configuration from the licensing site, which will then provide the necessary login information.

If false is deactivated.


Parameter filled automatically after successful completion of “onboarding”. Values true or false.


Address of the server where the request for login credentials is sent. E.g.


Link where the logo displayed on the splashscreen is downloaded. E.g.


Link from where the text displayed on the splashscreen is downloaded. E.g.

system.diagnostics section

DesktopClient can log its activity, which is useful for troubleshooting.


The built-in softphone has own logging.

In the default configuration file, the logging of DesktopClient activity is commented out. To enable

  1. Uncomment or create a configuration/system.diagnostics section as per the example below.

  2. Set the file path in the initializeData attribute.

    • The file path should exist and DesktopClient should have the right to create a file there.

    • If the file already exists, additional log messages will be added at the end.

    • A relative path will be evaluated as relative to the location of iCC.DesktopClient.exe.

    • The absolute path can use environment variables, such as %localappdata%\atlantis\DC_Logs\iCC.DesktopClient.log.

  <trace autoflush="true">
      <add name="textListener"
          initializeData="iCC.DesktopClient.log" />


Enabled logging generates files not bigger than tens of megabytes a day, which consumes some of the computer storage over time. If the computer has a limited storage capacity, it’s necessary to ensure they are periodically deleted. Enabled logging has minimal performance impact on the computer.

configuration.userSettings section

User interface configuration.

  • It is read only on the first start-up. The point is to prepare a configuration in the XML file in the installation that is as convenient as possible for everyone. And then distribute this installation.

  • The configuration is copied to the user’s profile the first time it is run. On subsequent runs, the configuration is no longer read from the XML!

  • To delete a copy, erase everything in the folder %localappdata%\Atlantis\iCC.DesktopClient.exe_Url_<hash><verze>. Např. C:UsersjelinekAppDataLocalAtlantisiCC.DesktopClient.exe_Url_gnkzcm2ntgqebnpp2xoywawuif0kqyto3.19.8042.10914>


The Softphone_* parameters control the user interface of the built-in softphone, not the softphone itself.






Playback device index



Recording device index



Sign which determines, whether it’s required to perform the configuration upgrade.



Playback device volume



Recording device volume



Sign, whether DesktopClient should be always above Windows apps in the operating system.



Sign, whether the DesktopCLient app should have the tray icon visible. If False, the icon will be there anyway, but only in the hidden icons area.



Ringtone device ID. Can be also set within the DC app - Ribbon designer ‣ Global settings



Scale value for the initial run. If the user then changes the scale, the new value will be saved to Perso database table and this parameter is no longer considered. The default is 1, which means 100% (only one inserted value possible). Related to ScalingOptions.



Last used localization. If not set the application will set it automatically based on your language. The parameter can be used to force specific localization, for example - en-US, cs-CZ, and so on.