A running SQL Server with the reporting services:
- Enable IIS on application server by adding the “Web Server” role, automatically adding needed features and manually adding ASP.Net 4.8 feature.
- 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.
- Restart the server
- 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
- Open context menu on the web site, and choose Deploy/Import application
- Select custom integration zip file (if applicable) and import it in the “nixxis” application.
- If present, read and follow “Installation.txt”.
- 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:
- Create a folder “Nixxis”
- Create a folder “NixxisMaintenance” (prefer the root of a disk drive for a better visibility).
- Create the subfolders “Install”, “BackUp” and “Update”
- Each time you download installation files, create a subfolder inside the “Install” folder with the international date format “YYYYMMDD”.
- Same remark when you are doing backups or updates.
3. Installation procedure
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
Note: 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).
Note: 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).
Note: 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.
The steps below describe the procedure for setting up a single tenant. Find additional operations for configuring a multi-tenant in the following article:
Domain: contains the instance name and the name of some folders (cf: SSH 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" name="Tenant X" domainType="http" host="192.168.1.1:8088;192.168.1.1;myDns:8088;myDns"
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 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="admin" credential="DefaultAdmin:password" roles="NixxisAdminRole"/>
<add credential="\Reporting:Rep0rting" roles="NixxisReportingRole"/>
</credentials>
…
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
Note: Note the credentials are set under resources in the administration 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.
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.
This section contains some key to configure the Agent part.
- allowTeamSelection: true or false. When true, give the option to the agent to select the team he wants to be ready for.
- autoRedial: true 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 (concurrentMail, concurrentMailActive, concurrentChat, concurrentChatActive)
- client_AllowWaitingForVoice: true 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)
- popupOnConnection: True or false. When true, the pop up on the agent interface will be displayed only when the agent phone is connected.
- <add key="client_SoftPhoneCodecs" value="PCMA,PCMU"/> : To define supported codecs for the integrated softphone
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):
Note: the section “Configurator 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.
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.
The steps below describe the procedure for setting up a single tenant. Find additional operations for configuring a multi-tenant in the following article:
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).
6. Nixxis Reports
The steps below describe the procedure for setting up a single tenant. Find additional operations for configuring a multi-tenant in the following article:
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.
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.
Start Internet Explorer and connect to the web interface of the 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".
You can now log in with the reporting user and access the default Nixxis reports.
Check the CrAppServer server log files for any errors. The initial startup may take longer as the databases need to be created and translations downloaded/updated.
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:
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
The steps below describe the procedure for setting up a single tenant. Find additional operations for configuring a multi-tenant in the following article:
- Download a Nixxis Desktop client on your PC using this URL http://appserver:8088/Provisioning/ClientSoftware.zip.
- Unblock the archive and extract its contents.
- Place it in a folder for which the user has all rights, for example in "Documents".
- Create a folder named 'Nixxis Client' and place the NixxisClientDesktop.exe file in it (other DLLs will be downloaded after launching).
- Launch NixxisClientDesktop.exe, enter the service URL http://appserver:8088/.
- Use the user '100' without a password (set a password later).
Note: HTTPS
HTTPS is mandatory and must be installed/configured.
Starting from NCS v3.1, the 'service_LinkNetworkType' key, previously used to support HTTPS, must no longer be defined in http.config
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.
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.
(see sample configuration file)
This document is followed and completed by the following documents: