[Installation] - NCS v3.x - Installation and configuration procedure (EN)

[Installation] - NCS v3.x - Installation and configuration procedure (EN)

Introduction      

The purpose of this document is to guide you through the installation and the configuration process of Nixxis Contact Suite V3.x Application Server. 

1.   Prerequisites

General prerequisites:

Warning
Important to make sure prerequisites are respected.As from version v3.x, a permanent internet access is required on the application server to communicate with the hosts *.services.nixxis.net, licensing.nixxis.net and *.nixxis.live on port 443.
The related documentation is available online here.

WarningImportant : SQL 2019+ required.

The latest installation files of the V3.x:

You can find them at the following address: http://update.nixxis.net/v3.1/

NotesNote: you need an account for accessing this web site. If you do not have one, ask it to support@nixxis.com 

Asterisk:


Have an FTP client at hand, such as FileZilla: https://filezilla-project.org/download.php?platform=win64

A running SQL Server with the reporting services:

Check the documentation: How to install Microsoft SQL Server 2019 (or above) for the prerequisites and the required configuration of the SQL Server.

A running Internet Information Services (IIS):

  1. Enable IIS on application server by adding the “Web Server” role, automatically adding needed features and manually adding ASP.Net 4.8 feature.
  2. Using IIS Manager select the web site and run platform installer to search and select “Web deploy 3.6 for Hosting Servers” and install it.
  3. Restart the server
  4. Check that a new context menu entry “Deploy” is available on web site level in IIS Manager, if not try to change Web deploy settings in Control Panel/Program and features to add all options
  5. Open context menu on the web site, and choose Deploy/Import application
  6. Select custom integration zip file (if applicable) and import it in the “nixxis” application.
  7. If present, read and follow “Installation.txt”.
  8. The user should have write permissions in the folder where the Nixxis client is located to create the NixxisClientDesktop.exe.WebView2 folder.

Microsoft .NET Framework 4.8 (Full) on the Application Server, including installed Microsoft .NET Framework 2.0 which is required for the tools Nixxis File Monitor & DeployReports.exe

2.   Best practices

When downloading the installation files, always try to structure the folders this way:
  1. Create a folder “Nixxis
  2. Create a folder “NixxisMaintenance” (prefer the root of a disk drive for a better visibility). 
  3. Create the subfolders “Install”, “BackUp” and “Update
  4. Each time you download installation files, create a subfolder inside the “Install” folder with the international date format “YYYYMMDD”. 
  5. Same remark when you are doing backups or updates.

3.   Installation procedure

3.1. Extract the installation files

Unblock the zip file and extract the files from “InstallV3.x.*.zip” in the Install folder created above.

After that copy the same file, usually, on DRIVE:\Nixxis\

3.2. Install the service

Execute CrAppServer.exe to install the application server, some parameters can be specified with this executable (-install, -console, …), for now, use -install

cd DRIVE:\Nixxis\CrAppServer

CrAppServer.exe -install

NotesNote: this action will deploy performance counters and create the “ContactRoute Application Server” service. This service required the administration rights.



3.3. Creating User for the service (Optional)

Create a new local user NixxisAdmin with a password and these properties



In the properties of the “ContactRoute Application Server” service, change the logon information 



3.4. Set Permissions for Logs (if a custom user has been created for the service)

Go to the security tab of the folder DRIVE:\Nixxis\Logs
Add in the Everyone user role and give it full control.



3.5. Configuration files

Copy the content of the folder DRIVE:\Nixxis\SampleConfigFiles in DRIVE:\Nixxis\CrAppServer.
Edit the necessary configuration files. Essentially, the editing has to replace the « 192.168.1.1 » example address with the one used by the server on which you install Nixxis (we will call it « [APPSERVER_IP] » from now on).

NotesNote: there is some .xsd files in nixxis\CrAppServer directory. These files describe the different keys available in the config files.

3.5.1. CrAppServer.exe.config

This file contains the different add-ons used by NCS and some others configuration.
Just the key FileMonitoringPath” can be changed here. 

<add key="FileMonitoringPath" value="..\Logs"/>
File path of the appserver Logs (and reporting logs if the Microsoft reporting service is installed on the same server).

3.5.2. Channels.config

This file contains the IP(s) that will be bind to the HTTP Server and the SIP Server.
Edit the “address” value with a valid IPV4 address (DNS is not supported here).

NotesNote: Nixxis is multi-channels and the key has to be unique.

                <channel key="http" address="192.168.1.1" connection="tcp" port="8088" timeout="120" type="ContactRoute.ApplicationServer.ClientChannel, CRClientChannels">                   
                              <protocol key="HTTP/1.1" domainType="http" type="HttpRequest" />
                </channel>

                <channel key="http2" address="192.168.1.2" connection="tcp" port="8088" timeout="120" type="ContactRoute.ApplicationServer.ClientChannel, CRClientChannels">
                              <protocol key="HTTP/1.1" domainType="http" type="HttpRequest" />
                </channel> 

                 <channel key="sipserver" address="192.168.1.1" port="5060" connection="udp" timeout="4000"  type="ContactRoute.ApplicationServer.ClientChannel, CRClientChannels" receivequeued="true" receivebuffer="100000" sendbuffer="10000" >
                               <protocol key="SIP/2.0" domainType="sip" requestType="SipRequest" responseType="SipResponse"/>
                </channel>

3.5.3. Http.config

This file is the brain of NCS.

A)     Domain and Host
Domain: contains the instance name, the name of some folders (cf: SSH section) and it’s a bind with the domain name in the sip.config file (cf: SIP Section)
Host: IP interfaces or DNS entry to be able to access the server with the NCS client or other application using HTTP protocol. HTTP server will only accept the host(s) inside this key. Example:

<domain id="default" domainType="http"  host="192.168.1.1:8088; myDns:8088"

Each host is separated by a semi-colon.
Https is mandatory.

Link between the Application server and the SQL Server (it can be the same machine or not)

connectionString="Integrated Security=SSPI;Persist Security Info=False;Data Source=localhost;Initial Catalog={1}"
or
connectionString="user ID=sa;password=[PASSWORD];Persist Security Info=False;Data Source=localhost;Initial Catalog={0}_{1}"
or
connectionString="user ID=SuperAdmin;password=[PASSWORD];Persist Security Info=False;Data Source=localhost;Initial Catalog={0}_{1}" 
and
extendedConnectionString="Integrated Security=No;User ID= sa;password=[PASSWORD];

securityadmin and serveradmin)

C)     Credentials and admin application
This section contains some key to configure the Admin part.
Create an SQL User to be used in used as NixxisAdminRole in the “admin” credentials below



On the server where the Microsoft SQL Server Reporting Services are installed, create a local Windows account “Reporting” with the password “Rep0rting”, with this Properties:



i)    Reporting
The credentials of the user “Reporting” (must be created on the Reporting machine[1] before save and run the service cf: reporting) must be filled.
If the Application machine isn’t the Reporting machine the name of this one need to be defined before the “\”.
Below, fill in the key “ReportServerUrl” with the IP / Server name of the Reporting machine.

<credentials>
                              <add key="admincredential="DefaultAdmin:passwordroles="NixxisAdminRole"/>
                              <add credential="\Reporting:Rep0rting" roles="NixxisReportingRole"/>
</credentials>

<add key="reportServerUrl" value="http://192.168.1.1/ReportServer"/>

ii)    SSH

As from V2.3, SSH is used to synchronized all the sound files between Application server and Media Server               

<add key="soundsSync" value="/home/soundsv2/{1}/"/> 

Path on the Media server to the sounds files: {1} = domain name

<add key="mohSync" value="/srv/www/lighttpd/MohReload"/>

Path for the MoH synchronization, the file MohReload must be executable

NotesNote: Note the credentials are set under resources in the administration

[1] Server where the Nixxis Reporting is installed

iii)    Maintenance
A built-in maintenance plan can also be configured in this section. The ContactRoute Application Server is able to apply basic database maintenance. 
A stored procedure (MaintainDatabases) is automatically created in Admin database and will be called at regular interval if feature is activated. When executed, the procedure does the following for all the DB:

-       Backing up all databases (except the statistics).
-       Rebuilding or reorganizing every index needing it. 
-       Updating statistics.
-       Shrinking big empty log files.

Here are the details
<add key="maintenanceTime" value="2350" />
<add key="maintenanceDaysOfWeek" value ="0,1,2,3,4,5" />
<add key="maintenanceProcedureName" value="MaintainDatabases" />
<add key="maintenanceBackupPath" value="NixxisSQL{0}.bak" />
<add key="maintenanceBackupsToKeep" value="5"/>

The minimal setting to activate the feature is the key “maintenanceTime” specifying the time(s) of maintenance.

Here is the complete list of keys available: 
-       maintenanceTime (default to null, indicating no backup will be taken): comma separated list of time of day when maintenance is executed. Time is specified using “HHmm” format. For example, to start maintenance at 1:00 in the night, use <add key="maintenanceTime" value="0100" />

-       maintenanceDaysOfWeek (default to "0,1,2,3,4,5,6" meaning all week days: 0 = Sunday): comma separated list of days of week when maintenance must be execute. 
-        maintenanceDaysOfMonth (default to "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 ,25,26,27,28,29,30,31", meaning every day of the month): comma separated list of days of month when the maintenance must be executed. 
-       maintenanceProcedureName (default to “MaintainDatabases”): specify the name of the stored procedure to use. 
-       maintenanceBackupPath (default to “NixxisSQL{0}.bak”, indicating to use default sql backup path): path where the database backup will be stored. This can be a complete path or a simple file name to specify that the default sql backup path must be used. 
-       maintenanceDeleteInactiveData (default to -1, indicating no deletion is made): if positive, indicate that inactive objects and related data must be suppressed if inactivation is in the past for the number of specified days. This is reserved for future use and has no effect yet.
-       maintenanceBackupsToKeep (default to 1): indicates how many files will be used to make backups. This is used in conjunction with key “maintenanceBackupPath”.

When executed, all SQL actions related to the maintenance are stored in log files. 
Notes
Note: the AppServer has to be restarted to take into account the changes.
          If using a deported admin server, the key should be defined on only one server, i.e the main one.

D)     Agent application
This section contains some key to configure the Agent part.
-       allowTeamSelectiontrue or false. When true, give the option to the agent to select the team he wants to be ready for.
-       autoRedialtrue or false. When true, the agent can redial a number with manual call.
-       ManualCallList: specific manual call number can be “prefilled” in this key (separated by coma)
-       concurrentVoice: the value is a positive number. 
o    0 means that the agent cannot take voice scripts. 
o    1 means there will be only 1 voice script at the same time on the agent screen. 
o    2 or more means that the agent may have 2 or more voice scripts at the same time.
-       concurrentVoiceActive: the value is a positive number. 
o    0 means that the button ready voice will be disabled.
o    1 means there will be only 1 connected voice script at the same time on the agent screen. 
      There is one key for each media (concurrentMailconcurrentMailActiveconcurrentChatconcurrentChatActive)
-       client_AllowWaitingForVoicetrue or false. When false, the agent cannot be select the “sub-button” under the global Ready button (but he can always click on the global Ready button. 
There is one key for each media (client_AllowWaitingForMail, client_AllowWaitingForChat)
-       popupOnConnectionTrue or false. When true, the pop up on the agent interface will be displayed only when the agent phone is connected. 
-       client_AllowAllEditionScript : True or false. When true, the agent can right click on the interface and do selections and copy paste actions. 
- <add key="client_SoftPhoneCodecs" value="PCMA,PCMU"/> : To define supported codecs for the integrated softphone

E)     Relay application
In this section, FTP connection strings for the recordings can be defined. With this mode (relay) the AppServer will handle the FTP connection and transfer the data through the HTTP channel. 
You can have one entry per FTP server (separated by a semi colon):

To specify the port : 

NotesNote: The section “Configuration tool for the recording tool” explain how to configure the recording tools for the relay mode.

Also note that the “/” at the end of the string is mandatory.

4. Configuration tool for the recording tool

The recording tool needs to be configured for being able to list all the statistical data and to be able to retrieve all wav/mp3 files.
DRIVE:\Nixxis\CrAppServer\Provisioning\Settings\ and start the software “Crconfigurator.exe”.
In this tool, CrReporting can be selected.

4.1. Service tab

In this tab, the Data service and the Relay service need to be changed with the AppServer URL or with the DNS, followed by 8088



4.2. Transfer tab 



The relay mode handled the transfer of the wav/mp3 file through the Nixxis HTTP Server, is only supporting the FTP connection type.

If the default settings are chosen, the information configured in the relay section of the http.config file will be used. 

5. Firewall

Add an inbound rule in the Windows Firewall that allows the program “%SystemDrive%\Nixxis\CrAppServer\CRAppServer.exe” for any ports, any protocols (both TCP and UPD).

A white list can, of course, be added in the scope of this rule (which is strongly recommended if you are exposed to the internet).

Do not forget to add the Nixxis Support IP in this white list. The IP are available in the documentation “ProvidingRemoteAccess

The Firewall must also be opened for IIS (port 80).

Check the Flux.png picture

6. Nixxis Reports

6.1. Copy the reporting functions

Copy the content of the folder ToCopyReportingServer to MicrosoftReportingServer\DRIVE\Program Files\Microsoft SQL Server\MSRS.?\Reporting Services\ReportServer\bin and accept to merge the folder. 
(The path may vary depending on your installation, for example: C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer)

6.2. Deploy the Nixxis default reports

Go to the folder Deploy and run “DeployReports.exe”



The username must be the built-in administrator of the machine which is running the Microsoft Reporting Server.
The language is not useful anymore because the language of the reports changes depending of the NCS account language you used.



Notes
Note: Ensure the name of the virtual directory is correct and must be the same as the one on the reposting server.
Use the same info as used in the connection strings for the config files (if this information is sure)

In the next screen click on the Finish button to start the report’s deployment.



6.3. Configure the DataSource

Start Internet Explorer and connect to the web interface of the reports.
Adapt the following URL: http://192.168.1.2/reports/
Use the administrator account to login
(use english screenshots)

Click on the Data Sources folder and then click on the ReportingDS item :


In the ReportingDS properties, adapt the connection string, the credential information using the administrator account:

Test the connection and then click on Apply.

6.4. Add the Reporting User

In the welcome page, click on the “Folder parameters” button:


Then click on “new role attribution” and add the Reporting user with the “Browser role” and click OK:

For Reporting Services 2022, follow these steps

Click on the gear icon, then select "Site settings".
Go to "Security" and click on "Add group or user".
Add the reporting user and assign them the "System User" role.
You can now log in with the reporting user and access the default Nixxis reports.

To start the CR application server (CrAppServer)

  1. The CrAppServer can be started from the "Services" module or using the command prompt.
  1. To start it using the command prompt, type "net start crappserver" in a command window.
  2. To stop it, use "net stop crappserver".
Check the CrAppServer server log files for any errors. The initial startup may take longer as the databases need to be created.
If you encounter a CLR security error, follow these steps:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

EXEC sp_configure 'clr strict security', 0;
RECONFIGURE;

Info
Best practices:

  • Never restart the CrAppServer service.
  • Stop it using "net stop crappserver".
  • Wait for it to stop completely, try renaming the last log file if possible. Otherwise, wait.
  • Restart it after renaming the previous log file so that a new one is generated.
Now you can login with the Reporting user and consult the Nixxis default reports.

7. Installing and configuring the Nixxis File Monitor tool

With Nixxis comes the MoveFiles tool. This tool allows you to move of delete files according to their age, size or available space. 
This tool has to be configured at least for the CrappServer log files else they can use the entire disk space if you let them growing…

7.1. Installing the MoveFile as a Windows service

Start a command prompt and go the location where the installutil.exe of the .Net Framework is located: 
cd DRIVE:\Windows\Microsoft.NET\Framework\v2.0.50727 
or
cd DRIVE:\Windows\Microsoft.NET\Framework64\v4.0.30319

Then type : installutil.exe DRIVE:\Nixxis\Tools\MoveFiles\MoveFiles.exe
Press ENTER. 
The service will be installed.

7.2. Configuring the MoveFile for deleting the log files of Nixxis

Go to the folder where the MoveFiles.exe is located and rename the ExampleMoveFiles.xml to MoveFiles.xml.
Edit the file with the following content (according to the settings of your installation):

< ? xml version="1.0" encoding="utf-8" ?>
<monitor priority="BelowNormal" timer="5000" blockSize="8192" blockWait="10" fileWait="20">
           <folder location="DRIVE:\Nixxis\Logs" pattern="*.log*" condition="age" value="30d" action="delete" target="" />
</monitor>

In this example, the MoveFiles will delete all the .log files inside and CrAppServer folder when the ages of the files are older than 30 days.

Example 2:
<?xml version="1.0" encoding="utf-8" ?>
<monitor priority="BelowNormal" timer="5000" blockSize="8192" blockWait="10" fileWait="20">
  <folder location="C:\Nixxis\Logs" pattern="*.log*" condition="age" value="30d" action="delete" target="" />
  <folder location="C:\Windows\Temp" pattern="*.*"  condition="age" value="3d" action="delete" target="" />
</monitor>

Start the service:



Notes
Note: A restart of the service is needed for any changes in the MoveFiles.xml.

8. Licensing

There is a dedicated procedure for the technical approach of the licensing in Nixxis Contact Suite.

9. Plugin Configuration

  1. Download a Nixxis Desktop client on your PC using this URL http://appserver:8088/Provisioning/ClientSoftware.zip.
  2. Unblock the archive and extract its contents.
  3. Place it in a folder for which the user has all rights, for example in "Documents".
  4. Create a folder named 'Nixxis Client' and place the NixxisClientDesktop.exe file in it (other DLLs will be downloaded after launching).
  5. Launch NixxisClientDesktop.exe, enter the service URL http://appserver:8088/.
    1. Use the user '100' without a password (set a password later).
Notes
Note: HTTPS

HTTPS is mandatory and must be installed/configured.
Starting from NCS v3.1, the 'service_LinkNetworkType' key, previously used to support HTTPS, should no longer be used.

      9.1 SIP Plugin

              The sip plugin must be configured in Administration => Integration Parameters => Plugins
              Here's an example for Base settings only which is sufficient for it to load :

      9.2 API Plugin

              API is used for IVR, scripts integration etc.

             

Other plugins can be configured based on the needs.



Notes

Footnote v3.1: You must add a key <add key="TranslationsApiKey"

value="P7KlJAFDGA7LjicYXxYuE3TVbOMSKOyg4HenBrNf"/> in the appSettings section of CrAppServer.exe.config.
  • It is important to always update CrAppServer.exe.config.

This document is followed and completed by the following documents: