NCS v2.x - Installation and configuration procedure

NCS v2.x - Installation and configuration procedure

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

1.   Prerequisites
General prerequisites:
The related documentation is available online here.

The latest installation files of the V2.x:
You can find them at the following address: http://update.nixxis.net/v2.4/
Note: you need an account for accessing this web site. If you do not have one, ask it to support@nixxis.com 


The related documentation is available online here.
Note: you need an account for accessing this web site. If you do not have one, ask it to support@nixxis.com 

Asterisk:
The install documentation: AS2_Asterisk_V1.8_Installation_guideThe automated installation script: Asterisk_V_11.25_CentOS7

A running SQL Server with the reporting services:
Check the documentation: How to install Microsoft SQL Server 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.6 feature.
  2. Download and install Web Platform Installer (https://www.microsoft.com/web/downloads/platform.aspx)
  3. 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.
  4. Restart the server
  5. 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
  6. Open context menu on the web site, and choose Deploy/Import application
  7. Select custom integration zip file (if applicable) and import it in the “nixxis” application.
  8. If present, read and follow “Installation.txt”.
Microsoft .NET Framework 4.6 (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 “InstallV2.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 password Nixxis00 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.

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.

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

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="admin" credential="DefaultAdmin:password" roles="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

Note: 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. 
Note: the AppServer has to be restarted to take into account the changes.

D)     Agent application
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. 
-       client_AllowAllEditionScript : True or false. When true, the agent can right click on the interface and do selections and copy paste actions. 

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):


Note: 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.

Platform API must be enabled and configured.

This section contains some keys to configure the API.

-       Deploy API dependencies: 
o    Extract the dependencies DLLs in CrAppserver folder
      API Dependencies:  Link to download here
o    Extract API Test tool to Nixxis\Tools folder
      API Test: Link to download here
-       Modify http.config
o    In http header "host" in the domain, both local & public IPs need to be defined without the ports
o    For example, (host="202.0.146.246:8088;10.24.41.11:8088;202.0.146.246;10.24.41.11")



o    "data" needs to be added to the "data" application' "serviceId"
      Note : No space after the comma. The value should be like this "reporting,data"


o    API key section needs to be active and configured as follows:

<application id="api" name="Api" type="ApiProcessor" debug="2" sessionLess="true" preload="true">
<add key="directDataKey" value="MyKeyHere" />
<add key="ServerEndpoint" value="http://*:9090/" />
<add key="workflowsPath" value="C:\Nixxis\CrAppServer\Workflows\" />
</application>

-       Modify CrAppServer.exe.config
o    Add <addon name="ApiAddon" type="Nixxis.Api.ApiAddOn, ApiProcessor" settings="ApiProcessor.dll.config"/>  in the addons section.



o    Add the missing dependentAssembly in the runtime section
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
        <assemblyIdentity name="UscNetTools" publicKeyToken="C44E421C9B9BBA4B" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-5.1.7033.1" newVersion="5.1.7033.2"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
-       After modifying http.config and CrAppServer.exe.config restart CrAppServer service
-       Test if API is working
o    In the browser go to http://[appserver_ip]:9090/



o    You should see "Nixxis Platform Server"
o    Run API test
o    C:\Nixxis\Tools\apitest.exe http://[appserver_ip]:9090/directdata



o    You should see a list of campaigns.
3.5.4. Sip.config

<domain key="default": the domain name needs to be exactly the same than the domain name in the http.config file

host="192.168.1.1; sip.myDns": contains the IP/DNS interfaces (separated by a semi-colon). Sip server only authorized the host(s) inside this key.

agentConnectionTimeout="25000": general ring time of the agent in milliseconds, after this time the call is disconnected.

mainConnectionTimeout="25000": general ring time of the callee, after that the call is disconnected

allowDirectCalls="false": if this key is true, the agents are able to make manual call from the Hardphone/softphone, if the key is, they can only do manual call through the Nixxis agent interface. 

                Busy="^486$"
                Congestion="^503$"
                Disturbed="^404$|^484$"
                AnsweringMachine="^987$"
                NoAnswer="^487$|^502$|^480$|^403$|^603$"

Exhaustive list of the category but if needed others sip error code can be added (separated by “|”)

recordingFolderName="default": name of the recording folder name
<channel key="sipserver"/>: default caller id of the Nixxis Application Server. By default, the caller id for any outbound call from the Nixxis AppServer is “sipserver”. It can be changed here or in the Global settings (General tab) in NCS (better with NCS).

If the modification is done in the sip.config file it’s also mandatory to modify the key in the channels.config file.

Note: The Application Service needs to be restarted after this modification.

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. 

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.



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



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:



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 
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.

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.
In this document, we will focus on the first request and the automatic part of the renewal of the licenses.

8.1. First request
Generate the first licensing request to identify the instance to the licensing.nixxis.net server. The process uses HTTP transport.
Start a command prompt and run the following commands:
cd DRIVE:\Nixxis\CrAppServer 
CrAppServer.exe –licence NAME_OF_THE_CUSTOMER


This first request will generate an “empty” CrAppServer.exe.lic file with a request ID. This request ID is strongly linked to the configuration of your server.

This means that if you change a device on your server (a network card, a processor, ...) your license file will be invalid and you will have to regenerate a new request.
Always warn the support@nixxis.com when you plan a hardware change on your server.

The approval of the license request is an accounting matter. Be sure everything is OK on this side. When the approval is validated, you can simply run CrappServer.exe -license.

You can check you licenses in the CrAppServer.exe.lic file or in the SIP diagnostic page (adapt with your config : http://192.168.1.1:8088/acd/), check the line x/y agents where x = the connected agents and y = the maximum licenses available

This document is followed and completed by the FirstSteps and NCS_BestPractices








    • Related Articles

    • 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: Important to make sure prerequisites are ...
    • 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: Important to make sure prerequisites are ...
    • NCS v3.x - Procédure d'installation et de configuration (FR)

      Introduction Le but de ce document est de vous guider à travers le processus d'installation et de configuration du serveur d'application Nixxis Contact Suite V3.x. 1. Prérequis Prérequis généraux : Il est essentiel de vous assurer que les prérequis ...
    • NCS v3.x - Upgrade and configuration procedure (EN)

      Introduction The purpose of this document is to explain how to update the NCS software from version 2.x to 3.x In the steps below, the assumption is made that the NCS software has been installed on the C: drive. If this is not the case, please adapt ...
    • NCS v3.x - Procédure de mise à niveau et de configuration 3.0 vers 3.1.x (FR)

      Introduction Le but de ce document est d'expliquer comment mettre à jour le logiciel NCS de la version 3.0 à la version 3.1.x Dans les étapes ci-dessous, on suppose que le logiciel NCS a été installé sur le disque C:. Si ce n'est pas le cas, veuillez ...