State of knowledge

June 2026

ProCall Infinity (DataCenter)
ProCall Web (Preview)

ProCall Web can also be provided on your own servers if the one provided by estos cannot or should not be used. 

It is generally assumed that the version of ProCall Web provided by estos is used at  https://app.procall.de. estos ensures that the app is kept up to date on an ongoing basis. 

The ProCall Web app can also be deployed by the customer on their own servers/systems if the one provided by estos cannot or should not be used.

Self-hosting with ProCall Web is a special option and requires that the customer possesses the necessary technical knowledge to deploy the app, that the customer meets the necessary requirements, and that the customer is responsible for and guarantees the independent operation and maintenance of the system.

Procedure for deploying ProCall Web on your own systems

  1. ProCall Web can be provided upon personal request from estos.  

  2. Provide a system (server) on which a web server (e.g. IIS, Apache, Nginx, ...) is available. 
  3. Unpack the zip package with ProCall Web into the target directory of the WebServer.
    The "procall" folder must be stored in the root directory of the web server.
    The index.html file can be stored in any (sub)folder of the web server.
    The page can then be accessed via the path to index.html.
    However, the actual data is then loaded from the "procall" folder. 
  4. If necessary, make adjustments to config.json. This can be found in the "procall" directory.
  5. Configure the WebServer so that it provides ProCall Web. The default page is index.html 
  6. Assign a DNS address that points to the server at which you want to make the ProCall Web accessible. 
  7. Generate a certificate that has been issued by a trustworthy CA.
  8. Configure the web server so that it uses the certificate for https authentication
  9. Configure the web server so that the “Cache-Control” response header is set to  “max-age” .
    In the simplest case, this could be set identically for all files, for example to 3600 seconds.
    More advanced configuration options are explained below.


If access to ProCall Web is to be distributed to several servers/web servers for load distribution, the above steps must be carried out several times and the DNS server must be configured so that it recognises the web servers set up for the same URL. 

Providing multiple (differently configured) ProCall Web applications

If you would like to host another ProCall Web application in addition to the one described above, you can do so using subdirectories. To do this, proceed alternatively as follows: 

Provision via separate subdomains (recommended)

We recommend setting up several separate (sub-)domains , e.g. app1.yourdomain.com and  app2.yourdomain.com.

This allows you to:

  • provide different configurations for different user groups
  • provide different versions for different user groups  (e.g. roll out new versions to early adopters first)
  • host various instances on different servers

With this option, the procall folder is available as the root directory for each subdomain. This means that the procall folder can be updated without affecting the other subdomains. 

To set this up, you must for each subdomain repeat the steps given above .

Don’t forget to adjust the web server configuration so that the subdomain path points to the relevant subfolder on the web server.

Provision in multiple subfolders

Alternatively, the application can be hosted in subfolders , e.g. yourdomain.com/app1/ and  yourdomain.com/app2/.
In this scenario, all variants share the same code files in  the same version and are hosted on the same server .

Procedure

  1. Go to the "procall" folder, copy the config.json file there and give it a unique name, e.g. config_xy.json. 
  2. As explained in point 3 above, create another (sub)folder on the web server and save the index.html file there as well. 
  3. Within index.html, change the value of the link to the config.json you created. In this example, as follows: 
    <link rel="preload" href="/procall/config_xy.json" />
  4. Also change the value of the data link to the config.json you created. In this example, as follows: 
    <div id="configId" data-config-id="_xy"></div>
  5. Follow steps 4 to 8 of the above description for deployment on your own systems to ensure that the page you have deployed is accessible. 

Setting up forwarding for the management server with ProCall 

Do not forget to set up forwarding for the administration server for ProCall Infinity so that app users can simply log in with their access data and do not have to manually enter the management server, UCConnectID and UCServer URI when logging in. 

Set up forwarding for administration servers in ProCall Infinity environments

Description of the config.json

ParametersMandatory/optionalDefault valueValuesDescription
"appBanner": optional-""Text on the feedback button
"enableCustomApps": ,optionalfalsetrue / falseEnable/Disable the display of custom tabs
"isCallsInSettingsVisible": ,
falsetrue / falseNo longer valid.
"isChatTabVisible": ,optionaltruetrue / falseEnable/Disable the display of the chat tab 
"isFeedbackButtonVisible": ,
falsetrue / falseNo longer valid. Replaced by "appBanner" and "feedbackLink". If "appBanner" and "feedbackLink" are empty, the button is not displayed; if entries are present, the button is displayed. 
"feedbackLink": ,optional-stringDefinition of the feedback button link
"isJournalTabVisible": ,optionaltruetrue / falseEnables/Disables the display of the Journal tab
"isConferenceEnabled": ,
falsetrue / falseNo longer valid. The feature now activates automatically once the conference has been initiated by UCServer.
"isContactsTabVisible": ,optionalfalsetrue / falseEnable/Disable the display of the Contacts tab
"isAccessibilityDeclarationVisible": ,optionaltruetrue / falseControls whether the "Accessibility Statement" is displayed in the information section.
"ucServerList": [
        {
            "webEndpoint": "https://ucserver7.test:7225"
        },
        {
            "webEndpoint": "https://ucserver8.test:7225"
        },
        {
            "webEndpoint": "https://ucserver9.test:7225"
        }
    ],

optional-URL

In a multi-server environment (ProCall Infinity), all existing UCServer URLs can be specified here to enable redirection to the respective user’s management server.

"webEndpoint": URL of the web endpoint (UCWeb) of a UCServer within the network.

"validUCSID",optional"*"stringValid UCSIDs for server selection can be specified here.
"*" allows all.

"oemStrings",

"oemColors",

"oemLinks",

"companyCopyright",

"resources",

"oem",

"environment", 

inkl. Sub-Elemente

Pflicht
stringThis is intended for the OEM customisation of ProCall Web and should not normally be modified. 

"logLevel",

optional"info""debug" / "info" / "warn" / "errorSets the default log level for the clients.

"useLoki",

optionalfalsetrue / falseEnable/Disable the automatic sending of log files to estos. 

"lokiConfig": {
       isLokiEnabled: boolean,
       lokiHost: string,
       lokiAuth: string,
       lokiLogAsn1: boolean
    },

Mandatoryestos-configstring

Configures log transmission for debugging purposes. 


isLokiEnabled: Enables/disables Loki

lokiHost: URL to the Loki endpoint

lokiAuth: ************** (password)

lokiLogAsn1: Enables/disables the sending of ASN.1 logs

Configuring response headers for client-side caching

Set the Cache-Control response header according to your requirements to achieve the right balance between server load and update frequency .
For the version we operate on app.procall.de , we use the following values. These allow for a high release frequency (several times a day), rapid rollbacks and, nevertheless, high loading performance with low server load.

For your scenario, you should select the best possible values for your infrastructure .
The values we have used serve as examples and are provided here without any claim to correctness or completeness.

Sample values for caching


Path

Cache Control

/index.html

max-age=300, stale-while-revalidate=60

/assets/*

max-age=31536000

/locales/*

max-age=300

/tflite/*

max-age=300

/workers/*

max-age=300

/service-worker.js

max-age=300

/config.json

max-age=300

/version.json

max-age=300

/eWeb-icon_touch.json
/favicon.ico

max-age=86400

manifest.json

max-age=86400


Further information