Installing and upgrading a system
- Johan Wendelstam
- Nael Kabbany
Summary
This document describes how to setup and configure a Meridix installation targeting a Zylinc system.
Meridix applications/databases
Meridix web UI – MXWU
A Microsoft .NET 4.5.2 ASP.NET IIS hosted web application. Is installed and updated with a WebDeploy package.
This application will use the Zylinc Stat DB as the data source for statistics data and will therefor need to be able to access a couple of stored procedures (spmeridix_*) to get the data directly from the Stat DB.
It also make use of a dedicated system database that manages Meridix logins, saved reports etc. and will preferably be hosted side by side with the other Zylinc databases (in the same MSSQL instance) but can also be hosted on a different MSSQL instance if desirable.
Meridix backend service – MXBS
A Microsoft .NET 4.5 Windows service application that handles all scheduled tasks such as report distributions, maintenance, cache population etc.
Same database access requirements against the Zylinc database as MXWU.
Is installed and updated with a MSI package.
Meridix Zylinc catalog synchronization client – MXZSC
An application that handles the synchronization of catalog data from the Zylinc database (master) to the Meridix system (slave).
The application executes SQL commands against a pair of views in the Zylinc Stat DB (meridix_queues, meridix_users, meridix_ivrs) and interprets the data and converts it to a format that can be synchronized into MWU through its HTTP Web API. This application must be scheduled to run at desired times ex: with Windows task scheduler or any other means of scheduling execution of applications.
Is installed and updated with a xcopy operation (i.e. copy the files to a folder manually).
Meridix sys database – MXSDB
This MSSQL database contains all the Meridix application specific information like logins, saved reports etc. no actual report data is stored in this database.
The database and the sql server authentication login are created manually and the schema is created/updated automatically by the application.
The user need to have db_owner rights granted.
Zylinc applications/databases
ZyDB
Meridix uses this database to retrieve catalog data i.e. queues, agents, IVRs etc. and is used from the MXZSC application. The Meridix system never access the ZyDB directly outside of the catalog synchronization operation.
ZyStatDB
Meridix uses this database as the primary data source for the content of the reports created in Meridix i.e. data is never exported and stored in any Meridix proprietary databases when targeting a Zylinc system. Note that this is not the case for other platforms supported by Meridix such as Cisco or BroadWorks.
Prerequisites
MXWU, MXBS and MXZSC needs to be installed on a Windows Server 2012 or later with .NET Framework 4.5.2 installed. Recommended minimum hardware are 4 CPU Cores and 8 GB RAM. The server need to have network access to the Microsoft SQL Server-server that host the ZyProdDB and the ZyStatDB.
MXSDB needs to be hosted on an Microsoft SQL Server 2012 or later (Express, Web, Standard or Enterprise edition). The recommended approach is to host it on the same MSSQL server as ZyProdDB and ZyStatDB. If no existing database server exist it can be installed side by side with the other Meridix applications (Not recommended for production systems).
The target ZyProdDB need to contain the views meridix_queues, meridix_agents, meridix_ivrs and meridix_users. The ZyStatDB need to have the latest version of the meridix stored procedures and functions which currently is provided through the sql file Zylinc_statdb_meridix_database_objects.sql located in the release_base folder. (This will be handled included in Zylincs main distribution in the future).
How to get the Meridix software
The latest Meridix software is available on Meridix partner SFTP server sftp://partner-share.meridix.se:22
- Log in on sftp://partner-share.meridix.se:22 with a SFTP client using Zylincs username and password.
- Download all content from the sub folder with the latest release date (format release_20170101) and the folder release_base and transfer it to the target server(s).
The guide below expected the content of the folders release_base and release_DATE to be extracted into a local folder called (drive):\meridix\dist\ the drive can vary e.g. C: or D: and the full path can differ but in that case the guide below need to be read with that in mind i.e. (drive):\meridix\dist\ should be replaced with the custom path.
It's recommended to use the conventions below for consistency if possible.
Install a new system
- Make sure the content of the folders relase_base and release_DATA are extracted to (drive):\meridix\dist\
- Create an empty database named meridix_sys on the MSSQL server that should host the MXSDB.
- Create a SQL Server Authentication login and user with db_owner rights on the meridix_sys database.
- On Windows Server 2012 or earlier install Microsoft .NET 4.5.2 or later (https://www.microsoft.com/net/download/framework). On Windows Server 2016 or later .NET 4.5+ is already installed.
- Install Internet Informations Service (IIS) with the Web Server (IIS) - Role
- Install IIS Web Deploy 3.5 or later (included in the (drive):\meridix\dist\ folder or http://www.iis.net/downloads/microsoft/web-deploy)
- Create an IIS Site (or reconfigure the default)
- Set the site name to Meridix (can be named differently)
- Set the physical path to (drive):\meridix\webapp
- Bind it to port 80 (or any other port)
- Unzip the file (drive):\meridix\dist\VERSION_AND_DATE_meridix_studio_webdeploy_package.zip into a folder on the server called (drive):\meridix\dist\_webdeploypackage.
- Edit the BAT file (drive):\meridix\dist\deploy_webpackage.bat with a text editor (e.g. Notepad++/Notepad)
- Replace the placeholder PATH_HERE with the full rooted path to the (drive):\meridix\dist\_webdeploypackage folder created in the previous step.
- Replace the placeholder NAME_HERE with the IIS Site name (default: Meridix) created in step 6.a.
- Save the updated bat file.
- Execute the the deploy_webpackage.bat file with administrator rights (right click and click Run as administrator).
- Open the web application folder (defined in step 5.b)
- Rename the file NOT_SET.basic.config to basic.config
- Open basic.config in a text editor and change the following settings
- Change the connection string to target the meridix_sys database created in step 1 using the SQL Server Authentication login created in step 1.a.
E.g. server=localhost;database=meridix_sys;integrated security=false;user id=meridix;password=meridix; - Define a unique application id (Meridix.Studio.Application.Id) - Can be any value but should be system unique e.g. companyx.reporting etc.
- Set Zylinc_ZylincModuleContainer as the value for the key Meridix.Studio.Enabled.Exchanges.
- Change the connection string to target the meridix_sys database created in step 1 using the SQL Server Authentication login created in step 1.a.
- Open a web browser and browse to the site created in step 5.
- The first time the application is started it might take a couple of minutes before it loads due to internal initialization operations, database schema updates etc.
- If everything works as expected a login page will be loaded - Log in with the default credentials U: admin@meridix.se and P: ppn
If you get an error message open the (drive):\meridix\webapp\App_Data\Logs folder under the web application folder and review the logs for more information about the error.
- Once logged in the system must be Zylinc branded which is achieved by applying the Zylinc theme package.
- In the web UI go to System administration → Theme settings
- Upload the Zylinc_theme_pack_1_0_1.zip found in the release_base folder (the theme upload section is found at the bottom of the page)
- Change the Theme name to Zylinc_theme_pack_1_0_1 and make sure the Theme package type is set to Theme package.
- Click save and hit Ctrl+Shift+R or Ctrl+F5 to make sure the new theme package content is loaded. (If that does not work, clear the browser cache manually).
- The UI should now have a Zylinc look and feel instead of the default Meridix theme.
- Configure the system by navigating to System administration → Application settings
- Define the System location (a descriptive name e.g. Zylinc Reports) - This value will be used in initialization e-mails etc. to identify the system for end-users.
- Set the System public URL to the public/internal URI that the end-user will access the system through.
- Configure the SMTP server settings to use. Will be used for user initialization e-mails, report distribution etc.
- Verify that the security settings comply with the customers policy (minimum password lengths etc.).
- Enable the Zylinc module by navigation to System administration → Module settings
- Expand the Zylinc section and check both the Loaded and Enabled check boxes.
- Define the connection string against the ZyStatDB that should be used as the report data source.
- Go the the Reports section in the menu and verify that you can see the Zylinc module.
- The web application is now installed and configured.
- Install the (drive):\meridix\dist\VERSION_AND_DATE_ Meridix_Platform_Service_setup.msi (install it into the default directory specified in the MSI) and browse to the installation directory.
- Open the installation directory defined in the previous step and do the same configuration with the file NOT_SET.basic.config as described in step 10.b. Note that some properties are not available in the non-web context.
- Open the Meridix Studio Service Administration GUI from the start menu and start the windows service through the GUI.
- If it does not start successfully review the log files in the Logs folder under the installation directory.
- The back-end service is now installed, configured and started.
(It will load additional settings such as SMTP etc. from the same source as the web application). - Next step is to create the API ticket/credentials used to synchronize the catalog.
Login into the Meridix Web UI and go to System Administration → System API Tickets- Create a new API ticket called Zylinc sync (or any other descriptive name)
- Check the admin rights checkbox under the newly created ticket and click save.
- The token and secret will be used in a later step.
- Extract the (drive):\meridix\dist\ZylincCatalogSyncClient_DATE.zip into the directory (drive):\meridix\zylinc_catalog_sync
- Edit the file (drive):\meridix\zylinc_catalog_sync\ZylincCatalogSyncClient.exe.config with a text editor.
- Set the Zylinc connection string to a connection string pointing to the ZyDB.
E.g. server=localhost;database=ZyDB;integrated security=false;user id=meridix;password=meridix; - Set the meridix:server_base_url to the Meridix Web UI URI e.g. http://localhost (defined in step 5.c)
- Set the meridix:server_token to the token created in step 19.
- Set the meridix:server_secret to the secret created in step 19.
- Set the zylinc:customer_name to a descriptive customer name e.g. Company X.
Set the zylinc:customer_sync_id to a identifier that will be used to identify the customer in Meridix, this value needs to be unique and will not change. A good example is the customer domain or name e.g. companyx.com or companyx.
Note that the zylinc:collection_point_sync_id property should not be set unless there already exist an collection point with this sync id. Leave empty to auto create.
- Verify that the zylinc:group_users is set to false unles a custom grouping should be used in the Meridix catalog.
- Execute the (drive):\meridix\zylinc_catalog_sync\ZylincCatalogSyncClient.exe executable and verify that it runs successfully.
- Any errors are reported both in the console UI and in the sub folder Logs.
- After an successful execution log into the Meridix Web UI and verify that a new customer (tenant) is created and contains the queues, agents and ivrs defined in the ZyDB.
- Schedule an execution of the (drive):\meridix\zylinc_catalog_sync\ZylincCatalogSyncClient.exe with Windows built in task scheduler with the interval(s) that the sync should be run (usually once every 24 hours).
- Set the Zylinc connection string to a connection string pointing to the ZyDB.
- A Meridix Zylinc system is now fully setup.
Upgrade an existing system
This section describe how to upgrade an existing system installed using the steps described in the section Install a new system (above).
- Retrieve the latest release from the Meridix partner SFTP.
- If there are a text file called upgrade_instructions.txt (or. md) in the release_DATE_HERE follow any custom instructions in that document (it has precedence over this content)
- Unzip the file (drive):\meridix\dist\VERSION_AND_DATE_meridix_studio_webdeploy_package.zip into a folder on the server called (drive):\meridix\dist\_webdeploypackage replacing any existing files in the target folder.
- Execute the the (drive):\meridix\dist\deploy_webpackage.bat file with administrator rights (right click and click Run as administrator).
- Open a web browser and browse to the Meridix login page.
- The first time the application is started after an update it might take a couple of minutes before it loads due to internal initialization operations, database schema updates etc.
- If everything works as expected a login page will be loaded - Log in with the default credentials U: admin@meridix.se and P: ppn
If you get an error message open the (drive):\meridix\webapp\App_Data\Logs folder under the web application folder and review the logs for more information about the error.
- Uninstall the currently installed Meridix Studio Service through the control panel or through the old MSI - Note that this step will be removed once upgrade functionality is added to the setup (shortly).
- Install the (drive):\meridix\dist\VERSION_AND_DATE_meridix_studio_service_setup.msi (install it into the default directory specified in the MSI) and browse to the installation directory.
- Open the Meridix Studio Service Administration GUI from the start menu and start the windows service through the GUI.
- If it does not start successfully review the log files in the Logs folder under the installation directory.
- The system is now updated.
On this page:
Webpage: www.meridix.se
Email: support@meridix.se
Tel: +46 (0) 21 38 30 32