State of knowledge

March 2025

Product relevance: ProCall 8 Enterprise from 8.0

Databases

Since ProCall Enterprise 8.0, Microsoft Access is no longer supported as a journal database. In ProCall 8 Enterprise  required database updates are only for SQL-based databases performed

It is essential to convert the UCServer to use a SQL-based database.
This article describes how to convert to "SQLite" as database.

If you plan to switch to Microsoft SQL Server, please follow the instructions at Best practice: Conversion of the UCServer database to Microsoft SQL server.
Please also refer to Limitations when using Microsoft SQL Server Express

The content of the Microsoft Access database can be transferred with the tool "ConvertUCServerMDB2SQLite.exe".

The porting of databases between two database systems is the responsibility of a database administrator.

The following instructions and the toolConvertUCServerMDB2SQLite.exe  provided by estos are intended as non-binding assistance for the transfer of a database from Microsoft Access to SQLite and require specialist knowledge in the management of databases.

  • Please understand that this tool ConvertUCServerMDB2SQLite.exe is generally excluded from estos support.

When does the database need to be converted?

The conversion must must be performed with version 8.3.5 as there are changes for writing in the database..

The changeover can be made with any ProCall 8 Enterprise version.

How can I check which database is in use?

You can see which database is used in the UCServer administration under General - Database.

If "Access & SQLite" is still set here, the data must be transferred and the database converted .

Data transfer from Microsoft Access

To transfer the data, carry out the following steps:

Stop the UCServer service.

Save the directory "....\UCServer\database".

Copy the "ConvertUCServerMDB2SQLite.exe" from the directory "...\UCServer\Supportfiles" into the directory "....\UCServer\database".

Execute the "ConvertUCServerMDB2SQLite.exe" .

You have the following options here:

  • via double-click
    You will not receive any information about errors.
  • in an administrative CMD
    Messages about the process and errors are displayed.

With successful data transfer, two new files are created:

  • CtiServerDatabasejournal.db
  • CtiServerDatabasetask.db

Start the UCServer service.

Log in to the UCServer Administration and set the database to "SQLite" under General - Database . 

Restart the UCServer service.

The data transfer and conversion to SQLite is now complete.

Further parameters and logging

ConvertUCServerMDB2SQLite.exe [-h] [-i INPUTFILE] [-o OUTPUTFILE] [--verbose] [--version]
POWERSHELL
optional arguments:
  -h, --help            show this help message and exit
  -i INPUTFILE, --inputfile INPUTFILE
                        MS Access database filename
  -o OUTPUTFILE, --outputfile OUTPUTFILE
                        SQLite database filename
  --verbose             Print some more info while processing
  --version             show program's version number and exit
POWERSHELL

To activate extended logging, use the parameter --verbose.

Known problems and restrictions 

Error message ODBC Exception - Cannot open database '(unknown)'

If the conversion of data bases results in error codes like 

Databaseconverter 20240205

Convert C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb -> CtiServerDatabasejournal.db ...

Connect to MDB: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb;
Error openning MDB: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb;

ODBC Exception:
('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'.  It may not be a database that your application recognizes, or the file may be corrupt. (-1028) (SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'.  It may not be a database that your application recognizes, or the file may be corrupt. (-1028)")
CODE

please try

  • to open the database file CtiServerDatabasejournal.mdb with Microsoft Access,
  • to reorganize the database with help of the included database tool Compact and repair database and 

  • to save the edited database as an Access 2000 database (*.mdb) 

The same process must be performed with the database file `CtiServerDatabasetask.mdb.

These database files edited in this way should then be successfully converted without any problems:

Databaseconverter 20240205

Convert C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb -> CtiServerDatabasejournal.db ...

Connect to MDB: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasejournal.mdb;

Source table found: journal
Source table found: ValueProperties
Transfer table to SQLite: journal
Create tables for journal ...
CREATE TABLE journal ("TabIndex" INTEGER PRIMARY KEY, "EntryID" TEXT(255), "ConnectionID" TEXT(255), "StartTime" DATETIME, "StopTime" DATETIME, "DurationTotal" INTEGER, "ConnectTime" DATETIME, "DisconnectTime" DATETIME, "DurationConnected" INTEGER, "Outbound" SMALLINT, "Internal" SMALLINT, "LineNumber" TEXT(255), "LineName" TEXT(100), "LineUserName" TEXT(100), "LineUserOffline" SMALLINT, "LocalNumber" TEXT, "PhoneNumber" TEXT, "RedirectingNumber" TEXT, "ContactName" TEXT(100), "ContactCompany" TEXT(100), "ContactEntryID" TEXT, "ContactEntryStoreID" TEXT, "ContactEntryDBID" TEXT(4), "CTIServerUserName" TEXT(255), "ProviderNumber" TEXT(42), "Charging" REAL, "SuccessState" SMALLINT, "Subject" TEXT(255), "Memo" TEXT, "ReadFlag" SMALLINT, "ProjectName" TEXT(255), "ProjectID" TEXT(255), "PrivateCall" SMALLINT, "TrackerID" TEXT(36), "AcceptorName" TEXT(100), "AcceptorCtiServerUserName" TEXT(255), "AcceptorConnectionID" TEXT(255), "ProjectLocationID" TEXT(255), "TrackerLastCall" SMALLINT, "NoStatistic" SMALLINT, "CallType" INTEGER, "Label" TEXT(255), "TrackerCallFlow" SMALLINT, "Deleted" BOOLEAN CHECK ("Deleted" IN (0, 1)), "TransactionID" INTEGER DEFAULT 1);
CREATE UNIQUE INDEX IX_journal_ConnectionID ON journal (ConnectionID)
CREATE INDEX IX_journal_StartTime ON journal (StartTime ASC)
CREATE INDEX IX_journal_TransactionID ON journal (TransactionID ASC)
CREATE TABLE [ValueProperties] ([Name] TEXT CONSTRAINT [PK_ValueProperties] PRIMARY KEY, [Value] INTEGER NULL)
task_version 4
Transferred 379128 rows in table journal
Transfer table to SQLite: ValueProperties
    Name [VARCHAR(20)]
    Value [INTEGER(10)]
Transferred 1 rows in table ValueProperties
Conversion of journal successful

Databaseconverter 20240205

Convert C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasetask.mdb -> CtiServerDatabasetask.db ...

Connect to MDB: Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Program Files (x86)\estos\UCServer\database\CtiServerDatabasetask.mdb;
Source table found: task
Source table found: ValueProperties
Transfer table to SQLite: task
Create tables for journal ...
CREATE TABLE [ValueProperties] ( [Name] TEXT CONSTRAINT [PK_ValueProperties] PRIMARY KEY, [Value] INTEGER NULL )
CREATE TABLE task ("TabIndex" INTEGER PRIMARY KEY, "EntryID" TEXT, "Subject" TEXT, "DatabaseContact" TEXT, "CallPhoneNumber" TEXT, "ProjectName" TEXT, "ProjectPIN" TEXT, "StartDate" DATETIME, "DueDate" DATETIME, "State" SMALLINT, "Priority" SMALLINT, "DelegationState" SMALLINT, "ReminderActive" BOOLEAN, "ReminderTime" DATETIME, "ReminderFile" TEXT, "Owners" TEXT, "Creator" TEXT, "CreationTime" DATETIME, "Body" TEXT, "DateCompleted" DATETIME, "CompletedFrom" TEXT, "Privacy" SMALLINT, "ProjectLocationID" TEXT)
task_version 2
Transferred 32594 rows in table task
Transfer table to SQLite: ValueProperties
    Name [VARCHAR(20)]
    Value [INTEGER(10)]
Transferred 1 rows in table ValueProperties
Conversion of tasks successful
CODE

Further information

Migration of the internal UCServer database from Microsoft Access to SQL Server

ProCall 8.0 Enterprise Release Notes

Best practice: Conversion of the UCServer database to Microsoft SQL server

Limitations when using Microsoft SQL Server Express

ProCall 8 Enterprise system requirements