Jump to: navigation, search
(Update with the copy of version: 8.5.2DRAFT)
(Update with the copy of version: 8.5.2DRAFT)
Line 1: Line 1:
 
=Configuring Web Services=
 
=Configuring Web Services=
 +
{{NoteFormat|If you're deploying Web Services and Applications version 8.5.201.09 or earlier, complete the steps on [[ConfigurationPremiseLegacy|Configuring Web Services for 8.5.201.09 or earlier]] instead.}}
 
__TOC__
 
__TOC__
To configure your Web Services nodes, you'll need to create three different configuration files: '''server-settings.yaml''', '''onpremise-settings.yaml''', and '''cassandra-cluster.yaml'''. You can find sample versions of these files in the main config folder you created in Step 6 of [[DeployWebApp|Deploying the web application]]; to use them, just remove the '''.sample''' extension.
+
You'll need to update the '''application.yaml''' file on each of your Web Services nodes to provide the basic configuration for Web Services and Applications. You created this file (or Web Services created it for you) as part of [[DeployWebApp|Deploying the web application]]. In later topics, you'll learn more about modifying this file to configure additional [[Features|features]] and [[Security|security]]. For now, review the contents below for details about each section in the '''application.yaml''' configuration file.  
  
Review the procedures on this page for details about the options you should configure in each of these files.  
+
==Logging settings==
 +
The purpose of this section is to tell Web Services where to find the '''logback.xml''' file you created (or Web Services created for you) as part of [[DeployWebApp|Deploying the web application]] and where to save logs.
  
==Modifying the server settings==
+
The '''application.yaml.sample''' file includes the following default logging section:  
Complete the steps below on each Web Services node. <br/><br/>
 
'''Start'''<br>
 
 
 
<ol>
 
<li>Open the '''server-settings.yaml''' file and review the options. This file contains a number of core parameters that are used by the server.</li>
 
 
 
The following is an unmodified file:
 
  
 
<source lang="text">
 
<source lang="text">
# URLs
+
logging:
externalApiUrlV2: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/api/v2
+
  config: logback.xml
internalApiUrlV2: [ToBeChanged: internal URL including protocol, address and port, <INTERNAL_SCHEMA_BASE_URL>]/internal-api
+
  file: cloud.log
undocumentedExternalApiUrl: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/internal-api
+
  path: /var/log/jetty9
 +
</source>
  
# General
+
See [[HTCCConfigurationOptionsReference#logging|logging]] for details about all supported configuration settings for this section.
iwsDispositionCodeSync: [ToBeChanged: "true"|"false"]
 
temporaryAuthenticationTokenTTL: [ToBeChanged: "true"|"false"]
 
enableCsrfProtection: [ToBeChanged: "true"|"false"]
 
salesforceAuthenticationMode: [ToBeChanged: "true"|"false"]
 
  
# Timeouts
+
==Jetty settings==
activationTimeout: 12000
+
Now that Jetty is embedded in Web Services, you have to use the jetty section of the '''application.yaml.sample''' file to tell Web Services how Jetty should behave. Previously, you would have configured these settings in the configuration files for your Jetty deployment.
configServerActivationTimeout: 35000
 
configServerConnectionTimeout: 15000
 
connectionTimeout: 4000
 
contactCenterSynchronizationTimeout: 60000
 
#inactiveUserTimeout: [ToBeChangedOrRemoved: <INACTIVE_USER_TIMEOUT>]
 
logoutAgentWhenNoActiveCometSessionTimeout: [ToBeChanged: "true"|"false"]
 
reconnectAttempts: 1
 
reconnectTimeout: 10000
 
  
# OPS account
+
The '''application.yaml.sample''' file includes the following default jetty section:
opsUserName: [ToBeChanged: <OPS_USER_NAME>]
 
opsUserPassword: [ToBeChanged: <OPS_USER_PASSWORD>]
 
  
# CME credentials
+
<source lang="text">
applicationName: Cloud
+
jetty:
applicationType: CFGGenericClient
+
  host:  
cmeUserName: [ToBeChanged: <CONFIG_SERVER_USER_NAME>]
+
  port: 8090
cmePassword: [ToBeChanged: <CONFIG_SERVER_USER_PASSWORD>]
+
  idleTimeout: 30000
syncNode: [ToBeChanged: "true"|"false"]
+
  soLingerTime: -1
synchronizationCmeEventsPrefilterEnabled: [ToBeChanged: "true"|"false"]
+
  sessionMaxInactiveInterval: 1800
enableVirtualQueueSynchronization: [ToBeChanged: "true"|"false"]
+
  enableWorkerName: true
 +
  enableRequestLog: true
 +
  requestLog:
 +
    filename: yyyy_mm_dd.request.log
 +
    filenameDateFormat: yyyy_MM_dd
 +
    logTimeZone: GMT
 +
    retainDays: 90
 +
    append: true
 +
    extended: false
 +
    logCookies: false
 +
    logLatency: true
 +
    preferProxiedForAddress: true
 +
  enableSsl: false
 +
</source>
  
# Statistics
+
See [[HTCCConfigurationOptionsReference#jetty|jetty]] for details about all supported configuration settings for this section.
#statConnectionTimeout: [ToBeChangedOrRemoved: <STAT_CONNECTION_TIMEOUT>]
 
#statReconnectAttempts: [ToBeChangedOrRemoved: <STAT_RECONNECT_ATTEMPTS>]
 
#statReconnectTimeout: [ToBeChangedOrRemoved: <STAT_RECONNECT_TIMEOUT>]
 
#statOpenTimeout: [ToBeChangedOrRemoved: <STAT_OPEN_TIMEOUT>]
 
#statisticsWritesCL: [ToBeChangedOrRemoved: <STATISTICS_WRITE_SCL>]
 
#reportingSyncInterval: [ToBeChangedOrRemoved: <REPORTING_SYNC_INTERVAL>]
 
enableElasticSearchIndexing: [ToBeChanged: "true"|"false"]
 
#statisticsOpenRetryInterval: [ToBeChangedOrRemoved: <STATISTICS_OPEN_RETRY_INTERVAL>]
 
  
# Call Recording
+
==Cassandra cluster settings==
createCallRecordingCF: [ToBeChanged: "true"|"false"]
+
The settings in the cassandraCluster section correspond to the contents of the '''cassandra-cluster.yaml''' file in version 8.5.201.09 or earlier of Web Services and Applications. This section tells Web Services how your Cassandra cluster should be managed and accessed.
#crClusterName: [ToBeChangedOrRemoved: <CR_CLUSTER_NAME>]
 
#crRegion: [ToBeChangedOrRemoved: <CR_REGION>]
 
#awsS3AccessKey: [ToBeChangedOrRemoved: <AWS_S3_ACCESS_KEY>]
 
#awsS3SecretKey: [ToBeChangedOrRemoved: <AWS_S3_SECRET_KEY>]
 
#awsS3BucketName: [ToBeChangedOrRemoved: <AWS_S3_BUCKET_NAME>]
 
#awsS3SocketTimeout: [ToBeChangedOrRemoved: <AWS_S3_SOCKET_TIMEOUT>]
 
#awsS3MaxErrorRetry: [ToBeChangedOrRemoved: <AWS_S3_MAX_ERROR_RETRY>]
 
#awsS3MaxConnection: [ToBeChangedOrRemoved: <AWS_S3_MAX_CONNECTION>]
 
#awsS3ConnectionTimeout: [ToBeChangedOrRemoved: <AWS_S3_CONNECTION_TIMEOUT>]
 
#cryptoSecurityKey: [ToBeChangedOrRemoved: <CRYPTO_SECURITY_KEY>]
 
#webDAVMaxConnection: [ToBeChangedOrRemoved: <WEBDAV_MAX_CONNECTION>]
 
#webDAVMaxTotalConnection: [ToBeChangedOrRemoved: <WEBDAV_MAX_TOTAL_CONNECTION>]
 
  
# CDR
+
The '''application.yaml.sample''' file includes the following default cassandraCluster section:
#voiceMonitorNodeId: [ToBeChangedOrRemoved: <VOICE_MONITOR_NODE_ID>]
 
  
# Multi regional supporting
+
<source lang="text">
nodePath: [ToBeChanged: node position in cluster, example: /<REGION>/HOST
+
cassandraCluster:
#nodeId: [ToBeChangedOrRemoved: unique value in cluster <NODE_ID>]
+
  thrift_port: 9160
 +
  jmx_port: 7199
 +
  keyspace: sipfs
 +
  nodes: [ToBeChanged: <CASSANDRA_PRIMARY_DC_NODES>]
 +
  backup_nodes: [ToBeChanged: <CASSANDRA_BACKUP_DC_NODES>]
 +
  replication_factor: [ToBeChanged: <REPLICATION_FACTOR>]
 +
  write_consistency_level: [ToBeChanged: "CL_LOCAL_QUORUM" for multi-datacenters env, "CL_QUORUM" for single-DC env.]
 +
  read_consistency_level: [ToBeChanged: "CL_LOCAL_QUORUM" for multi-datacenters env, "CL_QUORUM" for single-DC env.]
 +
  max_conns_per_host: 16
 +
  max_cons: 48
 +
  max_pending_conns_per_host: 80
 +
  max_blocked_threads_per_host: 160
 +
 
 +
  cassandraVersion: [ToBeChanged: "1.1" | "1.2"]
 +
  useSSL: [ToBeChanged: sopporting only for 1.2 Cassandra "false" | "true"]
 +
</source>
  
# SSL and CA
+
Make sure you update all settings marked as [ToBeChanged]. See [[HTCCConfigurationOptionsReference#cassandraCluster|cassandraCluster]] for details about all supported configuration settings for this section.
#caCertificate: [ToBeChangedOrRemoved: <CA_CERTIFICATE>]
 
#jksPassword: [ToBeChangedOrRemoved: <JKS_PASSWORD>]
 
  
# SAML
+
==Server settings==
#samlSettings:
+
The settings in the serverSettings section correspond to the contents of the '''server-settings.yaml''' file in version 8.5.201.09 or earlier of Web Services and Applications. This section provides the core settings Web Services needs to run your node. 
  #encryptionKeyName: [ToBeChangedOrRemoved: <SAML_ENCRYPTION_KEY_NAME>]
 
  #signingKeyName: [ToBeChangedOrRemoved: <SAML_SIGNING_KEY_NAME>]
 
  #identityProviderMetadata: [ToBeChangedOrRemoved: <SAML_IDENTITY_PROVIDER_METADATA>]
 
  #serviceProviderEntityId: [ToBeChangedOrRemoved: <SAML_SERVICE_PROVIDER_ENTITY_ID>]
 
  #encryptionKeyPassword: [ToBeChangedOrRemoved: <SAML_ENCRYPTION_KEY_PASSWORD>]
 
  #signingKeyPassword: [ToBeChangedOrRemoved: <SAML_SIGNING_KEY_PASSWORD>]
 
  #tlsKeyName: [ToBeChangedOrRemoved: <SAML_TLS_KEY_NAME>]
 
  #tlsKeyPassword: [ToBeChangedOrRemoved: <SAML_TLS_KEY_PASSWORD>]
 
  #responseSkewTime: [ToBeChangedOrRemoved: <SAML_RESPONSE_SWEW_TIME>]
 
  
# CORS
+
The '''application.yaml.sample''' file includes the following default serverSettings section:
#crossOriginSettings:
 
  #allowedOrigins: [ToBeChangedOrRemoved: <CROSS_ALLOWED_ORIGINS>]
 
  #allowedMethods: [ToBeChangedOrRemoved: <CROSS_ALLOWED_METHODS>]
 
  #allowedHeaders: [ToBeChangedOrRemoved: <CROSS_ALLOWED_HEADERS>]
 
  #exposedHeaders: [ToBeChangedOrRemoved: <CROSS_EXPOSED_HEADERS>]
 
  #allowCredentials: [ToBeChangedOrRemoved: <CROSS_ALLOW_CREDENTIALS>]
 
  #corsFilterCacheTimeToLive: [ToBeChangedOrRemoved: <CROSS_ORIGIN_CORS_FILTER_CACHE_TIME_TO_LIVE>]
 
  
# Elastic Search
+
<source lang="text">
#elasticSearchSettings:
+
serverSettings:
   #clientNode: [ToBeChangedOrRemoved: "true"|"false"]
+
  # URLs
   #indexPerContactCenter: [ToBeChangedOrRemoved: "true"|"false"]
+
  externalApiUrlV2: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/api/v2
   #enableScheduledIndexVerification: [ToBeChangedOrRemoved: "true"|"false"]
+
  internalApiUrlV2: [ToBeChanged: internal URL including protocol, address and port, <INTERNAL_SCHEMA_BASE_URL>]/internal-api
   #indexVerificationInterval: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_INDEX_VERIFICATION_INTERVAL>]
+
  undocumentedExternalApiUrl: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/internal-api
   #retriesOnConflict: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_RETRIES_ON_CONFICT>]
+
 
   #waitToIndexTimeout: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_WAIT_TO_INDEX_TIMEOUT>]
+
  # Paths
 
+
  pathPrefix: [ToBeChangedOrRemoved: <PATH_PREFIX>]
# Screen Recording
+
  internalPathPrefix: [ToBeChangedOrRemoved: <INTERNAL_PATH_PREFIX>]
#screenRecordingSettings:
+
 
   #screenRecordingEServicesEnabled: [ToBeChangedOrRemoved: "true"|"false"]
+
   # General
   #screenRecordingVoiceEnabled: [ToBeChangedOrRemoved: "true"|"false"]
+
  iwsDispositionCodeSync: [ToBeChanged: "true"|"false"]
  #clientSessionManagerCacheTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_CLIENT_SESSION_MANAGER_CACHE_TTL>]
+
  temporaryAuthenticationTokenTTL: [ToBeChangedOrRemoved: <TEMPORARY_AUTHENTICATION_TOKEN_TTL>]
  #recordingInteractionEventsTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_RECORDING_INTERACTION_EVENTS_TTL>]
+
  enableCsrfProtection: [ToBeChanged: "true"|"false"]
  #contactCenterInfoManagerCacheTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_CONTACT_CENTER_INFO_MANAGER_CACHE_TTL>]
+
  salesforceAuthenticationMode: [ToBeChanged: "true"|"false"]
 +
  enableOpenIDConnect: [ToBeChanged: "true"|"false"]
 +
 
 +
   # Timeouts
 +
  activationTimeout: 12000
 +
  configServerActivationTimeout: 35000
 +
  configServerConnectionTimeout: 15000
 +
  connectionTimeout: 4000
 +
  contactCenterSynchronizationTimeout: 60000
 +
  inactiveUserTimeout: [ToBeChangedOrRemoved: <INACTIVE_USER_TIMEOUT>]
 +
  reconnectAttempts: 1
 +
  reconnectTimeout: 10000
 +
 
 +
  # OPS account
 +
  opsUserName: [ToBeChanged: <OPS_USER_NAME>]
 +
  opsUserPassword: [ToBeChanged: <OPS_USER_PASSWORD>]
 +
 
 +
  # CME credentials
 +
  applicationName: Cloud
 +
  applicationType: CFGGenericClient
 +
  cmeUserName: [ToBeChanged: <CONFIG_SERVER_USER_NAME>]
 +
  cmePassword: [ToBeChanged: <CONFIG_SERVER_USER_PASSWORD>]
 +
  syncNode: [ToBeChanged: "true"|"false"]
 +
  synchronizationCmeEventsPrefilterEnabled: [ToBeChanged: "true"|"false"]
 +
  enableVirtualQueueSynchronization: [ToBeChanged: "true"|"false"]
 +
 
 +
   # Statistics
 +
  statConnectionTimeout: [ToBeChangedOrRemoved: <STAT_CONNECTION_TIMEOUT>]
 +
  statReconnectAttempts: [ToBeChangedOrRemoved: <STAT_RECONNECT_ATTEMPTS>]
 +
  statReconnectTimeout: [ToBeChangedOrRemoved: <STAT_RECONNECT_TIMEOUT>]
 +
  statOpenTimeout: [ToBeChangedOrRemoved: <STAT_OPEN_TIMEOUT>]
 +
  statisticsWritesCL: [ToBeChangedOrRemoved: <STATISTICS_WRITE_SCL>]
 +
  reportingSyncInterval: [ToBeChangedOrRemoved: <REPORTING_SYNC_INTERVAL>]
 +
  enableElasticSearchIndexing: [ToBeChanged: "true"|"false"]
 +
  statisticsOpenRetryInterval: [ToBeChangedOrRemoved: <STATISTICS_OPEN_RETRY_INTERVAL>]
 +
 
 +
   # Call Recording
 +
  createCallRecordingCF: [ToBeChanged: "true"|"false"]
 +
  crClusterName: [ToBeChangedOrRemoved: <CR_CLUSTER_NAME>]
 +
  crRegion: [ToBeChangedOrRemoved: <CR_REGION>]
 +
  awsS3AccessKey: [ToBeChangedOrRemoved: <AWS_S3_ACCESS_KEY>]
 +
  awsS3SecretKey: [ToBeChangedOrRemoved: <AWS_S3_SECRET_KEY>]
 +
  awsS3BucketName: [ToBeChangedOrRemoved: <AWS_S3_BUCKET_NAME>]
 +
  awsS3SocketTimeout: [ToBeChangedOrRemoved: <AWS_S3_SOCKET_TIMEOUT>]
 +
  awsS3MaxErrorRetry: [ToBeChangedOrRemoved: <AWS_S3_MAX_ERROR_RETRY>]
 +
  awsS3MaxConnection: [ToBeChangedOrRemoved: <AWS_S3_MAX_CONNECTION>]
 +
  awsS3ConnectionTimeout: [ToBeChangedOrRemoved: <AWS_S3_CONNECTION_TIMEOUT>]
 +
  cryptoSecurityKey: [ToBeChangedOrRemoved: <CRYPTO_SECURITY_KEY>]
 +
  webDAVMaxConnection: [ToBeChangedOrRemoved: <WEBDAV_MAX_CONNECTION>]
 +
  webDAVMaxTotalConnection: [ToBeChangedOrRemoved: <WEBDAV_MAX_TOTAL_CONNECTION>]
 +
 
 +
  # CDR
 +
  voiceMonitorNodeId: [ToBeChangedOrRemoved: <VOICE_MONITOR_NODE_ID>]
 +
 
 +
   # Multi regional supporting
 +
  nodePath: [ToBeChanged: node position in cluster, example: /<REGION>/HOST
 +
  nodeId: [ToBeChangedOrRemoved: unique value in cluster <NODE_ID>]
 +
 
 +
   # SSL and CA
 +
  caCertificate: [ToBeChangedOrRemoved: <CA_CERTIFICATE>]
 +
  jksPassword: [ToBeChangedOrRemoved: <JKS_PASSWORD>]
 +
 
 +
  # SAML
 +
  samlSettings:
 +
    encryptionKeyName: [ToBeChangedOrRemoved: <SAML_ENCRYPTION_KEY_NAME>]
 +
    signingKeyName: [ToBeChangedOrRemoved: <SAML_SIGNING_KEY_NAME>]
 +
    identityProviderMetadata: [ToBeChangedOrRemoved: <SAML_IDENTITY_PROVIDER_METADATA>]
 +
    serviceProviderEntityId: [ToBeChangedOrRemoved: <SAML_SERVICE_PROVIDER_ENTITY_ID>]
 +
    encryptionKeyPassword: [ToBeChangedOrRemoved: <SAML_ENCRYPTION_KEY_PASSWORD>]
 +
    signingKeyPassword: [ToBeChangedOrRemoved: <SAML_SIGNING_KEY_PASSWORD>]
 +
    tlsKeyName: [ToBeChangedOrRemoved: <SAML_TLS_KEY_NAME>]
 +
    tlsKeyPassword: [ToBeChangedOrRemoved: <SAML_TLS_KEY_PASSWORD>]
 +
    responseSkewTime: [ToBeChangedOrRemoved: <SAML_RESPONSE_SWEW_TIME>]
 +
 
 +
  # CORS
 +
  crossOriginSettings:
 +
    allowedOrigins: [ToBeChangedOrRemoved: <CROSS_ALLOWED_ORIGINS>]
 +
    allowedMethods: [ToBeChangedOrRemoved: <CROSS_ALLOWED_METHODS>]
 +
    allowedHeaders: [ToBeChangedOrRemoved: <CROSS_ALLOWED_HEADERS>]
 +
    exposedHeaders: [ToBeChangedOrRemoved: <CROSS_EXPOSED_HEADERS>]
 +
    allowCredentials: [ToBeChangedOrRemoved: <CROSS_ALLOW_CREDENTIALS>]
 +
    corsFilterCacheTimeToLive: [ToBeChangedOrRemoved: <CROSS_ORIGIN_CORS_FILTER_CACHE_TIME_TO_LIVE>]
 +
 
 +
   # Elastic Search
 +
  elasticSearchSettings:
 +
    clientNode: [ToBeChangedOrRemoved: "true"|"false"]
 +
    indexPerContactCenter: [ToBeChangedOrRemoved: "true"|"false"]
 +
    enableScheduledIndexVerification: [ToBeChangedOrRemoved: "true"|"false"]
 +
    indexVerificationInterval: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_INDEX_VERIFICATION_INTERVAL>]
 +
    retriesOnConflict: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_RETRIES_ON_CONFICT>]
 +
    waitToIndexTimeout: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_WAIT_TO_INDEX_TIMEOUT>]
 +
    enableIndexVerificationAtStartUp: [ToBeChangedOrRemoved: "true"|"false"]
 +
 
 +
   # Recording Settings
 +
  recordingSettings:
 +
    auditLogDeletedFiles: [ToBeChangedOrRemoved: "true"|"false"]
 +
    recordCryptoServerDecryptMaxConnection: [ToBeChangedOrRemoved: <RECORD_CRYPTO_SERVER_DECRYPT_MAX_CONNECTION>]
 +
    recordCryptoServerDecryptMaxTotalConnection: [ToBeChangedOrRemoved: <RECORD_CRYPTO_SERVER_DECRYPT_MAX_TOTAL_CONNECTION>]
 +
    recordCryptoServerDecryptSocketTimeout: [ToBeChangedOrRemoved: <RECORD_CRYPTO_SERVER_DECRYPT_SOCKET_TIMEOUT>]
  
# Caching Settings
+
  # Screen Recording
#cachingSettings:
+
  screenRecordingSettings:
  #enableSystemWideCaching: [ToBeChangedOrRemoved: "true"|"false"]
+
    screenRecordingEServicesEnabled: [ToBeChangedOrRemoved: "true"|"false"]
  #agentStatesTTL: [ToBeChangedOrRemoved: <CACHING_AGENT_STATES_TTL>]
+
    screenRecordingVoiceEnabled: [ToBeChangedOrRemoved: "true"|"false"]
  #contactCenterFeaturesTTL: [ToBeChangedOrRemoved: <CACHING_CONTACT_CENTER_FEATURES_TTL>]
+
    clientSessionManagerCacheTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_CLIENT_SESSION_MANAGER_CACHE_TTL>]
  #contactCenterSettingsTTL: [ToBeChangedOrRemoved: <CACHING_CONTACT_CENTER_SETTINGS_TTL>]
+
    recordingInteractionEventsTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_RECORDING_INTERACTION_EVENTS_TTL>]
  #voiceContextCaching: [ToBeChangedOrRemoved: "true"|"false"]
+
    contactCenterInfoManagerCacheTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_CONTACT_CENTER_INFO_MANAGER_CACHE_TTL>]
   #voiceContextRefreshInterval: [ToBeChangedOrRemoved: <CACHING_VOICE_CONTEXT_REFRESH_INTERVAL>]
+
 
 +
  # Caching Settings
 +
  cachingSettings:
 +
    enableSystemWideCaching: [ToBeChangedOrRemoved: "true"|"false"]
 +
    agentStatesTTL: [ToBeChangedOrRemoved: <CACHING_AGENT_STATES_TTL>]
 +
    businessAttributesTTL: [ToBeChangedOrRemoved: <CACHING_BUSINESS_ATTRIBUTES_TTL>]
 +
    transactionsTTL: [ToBeChangedOrRemoved: <CACHING_TRANSACTIONS_TTL>]
 +
    skillsTTL: [ToBeChangedOrRemoved: <CACHING_SKILLS_TTL>]
 +
    virtualAgentGroupsTTL: [ToBeChangedOrRemoved: <CACHING_VIRTUAL_AGENT_GROUPS_TTL>]
 +
    contactCenterFeaturesTTL: [ToBeChangedOrRemoved: <CACHING_CONTACT_CENTER_FEATURES_TTL>]
 +
    contactCenterSettingsTTL: [ToBeChangedOrRemoved: <CACHING_CONTACT_CENTER_SETTINGS_TTL>]
 +
    voiceContextCaching: [ToBeChangedOrRemoved: "true"|"false"]
 +
    voiceContextRefreshInterval: [ToBeChangedOrRemoved: <CACHING_VOICE_CONTEXT_REFRESH_INTERVAL>]
 +
 
 +
   # DoS Filter Settings
 +
  enableDosFilter: [ToBeChanged: "true"|"false"]
 +
  dosFilterSettings:
 +
    maxRequestsPerSec: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_REQUESTS_PER_SEC>]
 +
    delayMs: [ToBeChangedOrRemoved: <DOS_FILTER_DELAY_MS>]
 +
    maxWaitMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_WAIT_MS>]
 +
    throttledRequests: [ToBeChangedOrRemoved: <DOS_FILTER_THROTTLED_REQUESTS>]
 +
    throttleMs: [ToBeChangedOrRemoved: <DOS_FILTER_THROTTLE_MS>]
 +
    maxRequestMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_REQUEST_MS>]
 +
    maxIdleTrackerMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_IDLE_TRACKER_MS>]
 +
    insertHeaders: [ToBeChangedOrRemoved: <DOS_FILTER_INSERT_HEADERS>]
 +
    trackSessions: [ToBeChangedOrRemoved: <DOS_FILTER_TTACK_SESSIONS>]
 +
    remotePort: [ToBeChangedOrRemoved: <DOS_FILTER_REMOTE_PORT>]
 +
    ipWhitelist: [ToBeChangedOrRemoved: <DOS_FILTER_IP_WHITE_LIST>]
  
# DoS Filter Settings
+
  # Account Management
enableDosFilter: [ToBeChanged: "true"|"false"]
+
  accountManagement:
#dosFilterSettings:
+
    forgotPasswordEmailTemplate:
  #maxRequestsPerSec: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_REQUESTS_PER_SEC>]
+
      from: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_FROM>]
  #delayMs: [ToBeChangedOrRemoved: <DOS_FILTER_DELAY_MS>]
+
      subject: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_SUBJECT>]
  #maxWaitMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_WAIT_MS>]
+
      body: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_BODY>]
  #throttledRequests: [ToBeChangedOrRemoved: <DOS_FILTER_THROTTLED_REQUESTS>]
+
    accountCreatedEmailTemplate:
  #throttleMs: [ToBeChangedOrRemoved: <DOS_FILTER_THROTTLE_MS>]
+
      from: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_FROM>]
   #maxRequestMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_REQUEST_MS>]
+
      subject: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_SUBJECT>]
  #maxIdleTrackerMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_IDLE_TRACKER_MS>]
+
      body: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_BODY>]
   #insertHeaders: [ToBeChangedOrRemoved: <DOS_FILTER_INSERT_HEADERS>]
+
    smtpServer:
  #trackSessions: [ToBeChangedOrRemoved: <DOS_FILTER_TTACK_SESSIONS>]
+
      host: [ToBeChangedOrRemoved: <SMTP_SERVER_HOST>]
  #remotePort: [ToBeChangedOrRemoved: <DOS_FILTER_REMOTE_PORT>]
+
      port: [ToBeChangedOrRemoved: <SMTP_SERVER_PORT>]
  #ipWhitelist: [ToBeChangedOrRemoved: <DOS_FILTER_IP_WHITE_LIST>]
+
      userName: [ToBeChangedOrRemoved: <SMTP_SERVER_USER_NAME>]
 +
      password: [ToBeChangedOrRemoved: <SMTP_SERVER_PASSWORD>]
 +
      timeout: [ToBeChangedOrRemoved: <SMTP_SERVER_TIMEOUT>]
 +
 
 +
  # Media Life Cycle Management
 +
  backgroundScheduledMediaOperationsSettings:
 +
    enableBackgroundScheduledMediaOperations: [ToBeChangedOrRemoved: "true"|"false"]
 +
    schedulerThreads: [ToBeChangedOrRemoved: <SCHEDULER_THREADS>]
 +
    schedulePollingInterval: [ToBeChangedOrRemoved: <SCHEDULE_POLLING_INTERVAL>]
 +
    speechMinerMaxConnection: [ToBeChangedOrRemoved: <SPEECH_MINER_MAX_CONNECTION>]
 +
    speechMinerMaxTotalConnection: [ToBeChangedOrRemoved: <SPEECH_MINER_MAX_TOTAL_CONNECTION>]
 +
    speechMinerSocketTimeout: [ToBeChangedOrRemoved: <SPEECH_MINER_SOCKET_TIMEOUT>]
 +
    defaultBackupExportURI: [ToBeChangedOrRemoved: <DEFAULT_BACKUP_EXPORT_URI>]
 +
 
 +
   # CometD Settings
 +
  cometDSettings:
 +
    maxSessionsPerBrowser: [ToBeChangedOrRemoved: <MAX_SESSIONS_PER_BROWSER>]
 +
    multiSessionInterval: [ToBeChangedOrRemoved: <MULTI_SESSION_INTERVAL>]
 +
 
 +
   # Screen Recording Connections Reporting
 +
  screenRecordingConnectionReportingSettings:
 +
    reportingEnabled: [ToBeChangedOrRemoved: "true"|"false"]
 +
    createReportingCF: [ToBeChangedOrRemoved: "true"|"false"]
 +
    connectionInfoHoursTTL: [ToBeChangedOrRemoved: <CONNECTION_INFO_HOURS_TTL>]
 +
    historyCountsMinutesTTL: [ToBeChangedOrRemoved: <HISTORY_COUNTS_MINUTES_TTL>]
  
# Account Management
+
   # Multimedia Disaster Recovery
#accountManagement:
+
   drMonitoringDelay: [ToBeChangedOrRemoved: <DR_MONITORING_DELAY>]
  #forgotPasswordEmailTemplate:
 
    #from: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_FROM>]
 
    #subject: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_SUBJECT>]
 
    #body: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_BODY>]
 
   #accountCreatedEmailTemplate:
 
    #from: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_FROM>]
 
    #subject: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_SUBJECT>]
 
    #body: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_BODY>]
 
   #smtpServer:
 
    #host: [ToBeChangedOrRemoved: <SMTP_SERVER_HOST>]
 
    #port: [ToBeChangedOrRemoved: <SMTP_SERVER_PORT>]
 
    #userName: [ToBeChangedOrRemoved: <SMTP_SERVER_USER_NAME>]
 
    #password: [ToBeChangedOrRemoved: <SMTP_SERVER_PASSWORD>]
 
    #timeout: [ToBeChangedOrRemoved: <SMTP_SERVER_TIMEOUT>]
 
 
</source>
 
</source>
  
<li>Make sure to update all the options marked <tt>[ToBeChangedOrRemoved]</tt>. You must also set the [[HTCCConfigurationOptionsReference#applicationName|applicationName]] to the name of the application you created in [[InstallationProcedures#Configuring_the_Web_Services_applications|Configuring the Web Services applications]] &mdash; for example, <tt>WS_Node</tt>.
+
Make sure you update all settings marked as [ToBeChanged]. You should also be sure to do the following:
<br/>
+
* Set the [[HTCCConfigurationOptionsReference#applicationName|applicationName]] to the name of the application you created in [[InstallationProcedures#Configuring_the_Web_Services_applications|Configuring the Web Services applications]] &mdash; for example, <tt>WS_Node</tt>.
You can review the [[Features|Configuring features]] and [[Security|Configuring security]] pages for more information about enabling specific functionality in your Web Services solution or for details about all the options available to you in the '''server-settings.yaml''' file, see [[HTCCConfigurationOptionsReference|Web Services configuration options]] options.
+
*In each Web Services cluster, you must configure one node as the [[HTCCConfigurationOptionsReference#syncNode|synchronization node]] &mdash; <tt>syncNode: true</tt>. All other nodes in the cluster must have <tt>syncNode: false</tt>.
 
{{NoteFormat|In each Web Services cluster, one node must be configured as the [[HTCCConfigurationOptionsReference#syncNode|synchronization node]]: <tt>syncNode &#61; true</tt>. All other nodes in the cluster must have <tt>syncNode &#61; false</tt>.}}
 
</li>
 
<li>Save your changes and close the file.</li>
 
</ol>
 
'''End'''
 
  
==Modifying the premise settings==
+
See [[HTCCConfigurationOptionsReference#serverSettings|serverSettings]] for details about all supported configuration settings for this section.
Complete the steps below on each Web Services node. <br/><br/>
 
'''Start''' <br/>
 
<ol>
 
<li>Open the '''onpremise-settings.yaml''' file and review the options. This file contains parameters that are used to connect to Configuration Server. </li>
 
  
The following is an unmodified file:
+
==On-premises settings==
 +
The settings in the onPremiseSettings section correspond to the contents of the '''onpremise-settings.yaml''' file in version 8.5.201.09 or earlier of Web Services and Applications. This section tells Web Services where Configuration Server is located.
  
<source lang="text">
+
The '''application.yaml.sample''' file doesn't include a default onPremiseSettings section, so you'll need to add it yourself. For example:
cmeHost: localhost
 
cmePort: 8888
 
countryCode: US
 
</source>
 
 
 
The following options are valid in this file:
 
*'''cmeHost''' &mdash; The Configuration Server host name (FQDN) or IP.
 
*'''cmePort''' &mdash; The Configuration Server port.
 
*'''backupCmeHost''' &mdash; The backup Configuration Server host name (FQDN) or IP.
 
*'''backupCmePort''' &mdash; The backup Configuration Server port.
 
*'''countryCode''' &mdash; The premise contact center's country code.
 
 
 
{{NoteFormat|Configure the '''backupCmeHost''' and '''backupCmePort''' options if there is a backup Configuration Server in the Genesys environment and you want high-availability support.}}
 
<li>Save your changes and close the file.</li>
 
</ol>
 
'''End'''
 
 
 
==Modifying the Cassandra cluster settings==
 
Complete the steps below on each Web Services node. <br/><br/>
 
'''Start'''
 
<ol>
 
<li>Open the '''cassandra-cluster.yaml''' file and review the options. </li>
 
 
 
The following is an unmodified file:
 
  
 
<source lang="text">
 
<source lang="text">
thrift_port: 9160
+
onPremiseSettings:
jmx_port: 7199
+
  cmeHost: localhost
keyspace: sipfs
+
  cmePort: 8888
nodes: [ToBeChanged: <CASSANDRA_PRIMARY_DC_NODES>]
+
  countryCode: US
backup_nodes: [ToBeChanged: <CASSANDRA_BACKUP_DC_NODES>]
 
replication_factor: [ToBeChanged: <REPLICATION_FACTOR>]
 
write_consistency_level: [ToBeChanged: "CL_LOCAL_QUORUM" for multi-datacenters env, "CL_QUORUM" for single-DC env.]
 
read_consistency_level: [ToBeChanged: "CL_LOCAL_QUORUM" for multi-datacenters env, "CL_QUORUM" for single-DC env.]
 
max_conns_per_host: 16
 
max_cons: 48
 
max_pending_conns_per_host: 80
 
max_blocked_threads_per_host: 160
 
 
 
cassandraVersion: [ToBeChanged: "1.1" | "1.2"]
 
useSSL: [ToBeChanged: supporting only for 1.2 Cassandra "false" | "true"]
 
 
</source>
 
</source>
  
<li>Modify the settings as needed, making sure to update all the options marked <tt>[ToBeChanged]</tt>:
+
See [[HTCCConfigurationOptionsReference#onPremiseSettings|onPremiseSettings]] for details about all supported configuration settings for this section.
*'''thrift_port''' &mdash; The port for Thrift to listen for clients. It should be the same as the <tt>rpc_port</tt> you set in the '''cassandra.yaml''' file as part of the [[InstallingAndDeployingCassandra#Configuring_Cassandra|Configuring Cassandra]] procedure.
 
*'''jmx_port''' &mdash; The port Cassandra uses for Java Manage Extension (JMX).
 
*'''keyspace''' &mdash; The name of the Cassandra keyspace. This name should be the same as the keyspace name you set while [[InitializingCassandra#Creating_the_Cassandra_keyspace|Creating the Cassandra keyspace]]. If you used the keyspace creation scripts that come with F, then you can leave this value as <tt>sipfs</tt>.
 
*'''nodes''' &mdash; A comma-separated list of Cassandra node IPs or host names.
 
*'''backup_nodes''' &mdash; A comma-separated list of backup Cassandra node IPs or host names. This option is intended for deployments that have two separate Cassandra data centers &mdash; Web Services switches from primary to backup if the primary nodes are unavailable. If your deployment is small with only one data center, you can ignore this option.
 
*'''replication_factor''' &mdash; A replication factor appropriate for your Cassandra topology. This value should be the same as the replication factor you set in Step 2 of the [[InitializingCassandra#Creating_the_Cassandra_keyspace|Creating the Cassandra keyspace]] procedure.
 
*'''read_consistency_level''' &mdash; Set this value according to your Cassandra topology:
 
{|
 
! '''Development'''<br/>(1 Cassandra node)
 
! '''Single Datacenter'''<br/>(1 datacenter with a minimum of three Cassandra nodes)
 
! '''Two Datacenters'''<br/>(datacenters with a minimum of three Cassandra nodes in each datacenter)
 
|-
 
| CL_ONE
 
| CL_QUORUM
 
| CL_LOCAL_QUORUM
 
|}
 
*'''write_consistency_level''' &mdash; Set this value according to your Cassandra topology:
 
{|
 
! '''Development'''<br/>(1 Cassandra node)
 
! '''Single Datacenter'''<br/>(1 datacenter with a minimum of three Cassandra nodes)
 
! '''Two Datacenters'''<br/>(datacenters with a minimum of three Cassandra nodes in each datacenter)
 
|-
 
| CL_ONE
 
| CL_QUORUM
 
| CL_LOCAL_QUORUM
 
|}
 
*'''cassandraVersion''' &mdash; Possible values are 1.1 (for 1.1.x versions) and 1.2 (for 1.2.x versions).
 
*'''useSSL''' &mdash; Set to <tt>true</tt> to enable Cassandra to use SSL. This option is only valid for Cassandra 1.2.x.
 
 
 
The following options tune the Cassandra database access. The default values were used by Genesys during internal load tests.
 
*'''max_conns_per_host''' &mdash; Maximum number of connections to allocate for a single host's pool.
 
*'''max_cons''' &mdash; Maximum number of connections in the pool.
 
*'''max_pending_conns_per_host''' &mdash; Maximum number of pending connect attempts per host.
 
*'''max_blocked_threads_per_host''' &mdash; Maximum number of blocked clients for a host.
 
 
 
</li>
 
<li>Save your changes and close the file.</li>
 
</ol>
 
'''End'''
 
  
 
==Tuning the Web Services host performance==
 
==Tuning the Web Services host performance==

Revision as of 18:22, March 25, 2016

Configuring Web Services

Important
If you're deploying Web Services and Applications version 8.5.201.09 or earlier, complete the steps on Configuring Web Services for 8.5.201.09 or earlier instead.

You'll need to update the application.yaml file on each of your Web Services nodes to provide the basic configuration for Web Services and Applications. You created this file (or Web Services created it for you) as part of Deploying the web application. In later topics, you'll learn more about modifying this file to configure additional features and security. For now, review the contents below for details about each section in the application.yaml configuration file.

Logging settings

The purpose of this section is to tell Web Services where to find the logback.xml file you created (or Web Services created for you) as part of Deploying the web application and where to save logs.

The application.yaml.sample file includes the following default logging section:

logging:
  config: logback.xml
  file: cloud.log
  path: /var/log/jetty9

See logging for details about all supported configuration settings for this section.

Jetty settings

Now that Jetty is embedded in Web Services, you have to use the jetty section of the application.yaml.sample file to tell Web Services how Jetty should behave. Previously, you would have configured these settings in the configuration files for your Jetty deployment.

The application.yaml.sample file includes the following default jetty section:

jetty:
  host: 
  port: 8090
  idleTimeout: 30000
  soLingerTime: -1
  sessionMaxInactiveInterval: 1800
  enableWorkerName: true
  enableRequestLog: true
  requestLog:
    filename: yyyy_mm_dd.request.log
    filenameDateFormat: yyyy_MM_dd
    logTimeZone: GMT
    retainDays: 90
    append: true
    extended: false
    logCookies: false
    logLatency: true
    preferProxiedForAddress: true
  enableSsl: false

See jetty for details about all supported configuration settings for this section.

Cassandra cluster settings

The settings in the cassandraCluster section correspond to the contents of the cassandra-cluster.yaml file in version 8.5.201.09 or earlier of Web Services and Applications. This section tells Web Services how your Cassandra cluster should be managed and accessed.

The application.yaml.sample file includes the following default cassandraCluster section:

cassandraCluster:
  thrift_port: 9160
  jmx_port: 7199
  keyspace: sipfs
  nodes: [ToBeChanged: <CASSANDRA_PRIMARY_DC_NODES>]
  backup_nodes: [ToBeChanged: <CASSANDRA_BACKUP_DC_NODES>]
  replication_factor: [ToBeChanged: <REPLICATION_FACTOR>]
  write_consistency_level: [ToBeChanged: "CL_LOCAL_QUORUM" for multi-datacenters env, "CL_QUORUM" for single-DC env.]
  read_consistency_level: [ToBeChanged: "CL_LOCAL_QUORUM" for multi-datacenters env, "CL_QUORUM" for single-DC env.]
  max_conns_per_host: 16
  max_cons: 48
  max_pending_conns_per_host: 80
  max_blocked_threads_per_host: 160
  
  cassandraVersion: [ToBeChanged: "1.1" | "1.2"]
  useSSL: [ToBeChanged: sopporting only for 1.2 Cassandra "false" | "true"]

Make sure you update all settings marked as [ToBeChanged]. See cassandraCluster for details about all supported configuration settings for this section.

Server settings

The settings in the serverSettings section correspond to the contents of the server-settings.yaml file in version 8.5.201.09 or earlier of Web Services and Applications. This section provides the core settings Web Services needs to run your node.

The application.yaml.sample file includes the following default serverSettings section:

serverSettings:
  # URLs
  externalApiUrlV2: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/api/v2
  internalApiUrlV2: [ToBeChanged: internal URL including protocol, address and port, <INTERNAL_SCHEMA_BASE_URL>]/internal-api
  undocumentedExternalApiUrl: [ToBeChanged: public URL including protocol, address and port, <PUBLIC_SCHEMA_BASE_URL>]/internal-api
  
  # Paths
  pathPrefix: [ToBeChangedOrRemoved: <PATH_PREFIX>]
  internalPathPrefix: [ToBeChangedOrRemoved: <INTERNAL_PATH_PREFIX>]
  
  # General
  iwsDispositionCodeSync: [ToBeChanged: "true"|"false"]
  temporaryAuthenticationTokenTTL: [ToBeChangedOrRemoved: <TEMPORARY_AUTHENTICATION_TOKEN_TTL>]
  enableCsrfProtection: [ToBeChanged: "true"|"false"]
  salesforceAuthenticationMode: [ToBeChanged: "true"|"false"]
  enableOpenIDConnect: [ToBeChanged: "true"|"false"]
  
  # Timeouts
  activationTimeout: 12000
  configServerActivationTimeout: 35000
  configServerConnectionTimeout: 15000
  connectionTimeout: 4000
  contactCenterSynchronizationTimeout: 60000
  inactiveUserTimeout: [ToBeChangedOrRemoved: <INACTIVE_USER_TIMEOUT>]
  reconnectAttempts: 1
  reconnectTimeout: 10000
  
  # OPS account
  opsUserName: [ToBeChanged: <OPS_USER_NAME>]
  opsUserPassword: [ToBeChanged: <OPS_USER_PASSWORD>]
  
  # CME credentials
  applicationName: Cloud
  applicationType: CFGGenericClient
  cmeUserName: [ToBeChanged: <CONFIG_SERVER_USER_NAME>]
  cmePassword: [ToBeChanged: <CONFIG_SERVER_USER_PASSWORD>]
  syncNode: [ToBeChanged: "true"|"false"]
  synchronizationCmeEventsPrefilterEnabled: [ToBeChanged: "true"|"false"]
  enableVirtualQueueSynchronization: [ToBeChanged: "true"|"false"]
  
  # Statistics
  statConnectionTimeout: [ToBeChangedOrRemoved: <STAT_CONNECTION_TIMEOUT>]
  statReconnectAttempts: [ToBeChangedOrRemoved: <STAT_RECONNECT_ATTEMPTS>]
  statReconnectTimeout: [ToBeChangedOrRemoved: <STAT_RECONNECT_TIMEOUT>]
  statOpenTimeout: [ToBeChangedOrRemoved: <STAT_OPEN_TIMEOUT>]
  statisticsWritesCL: [ToBeChangedOrRemoved: <STATISTICS_WRITE_SCL>]
  reportingSyncInterval: [ToBeChangedOrRemoved: <REPORTING_SYNC_INTERVAL>]
  enableElasticSearchIndexing: [ToBeChanged: "true"|"false"]
  statisticsOpenRetryInterval: [ToBeChangedOrRemoved: <STATISTICS_OPEN_RETRY_INTERVAL>]
  
  # Call Recording
  createCallRecordingCF: [ToBeChanged: "true"|"false"]
  crClusterName: [ToBeChangedOrRemoved: <CR_CLUSTER_NAME>]
  crRegion: [ToBeChangedOrRemoved: <CR_REGION>]
  awsS3AccessKey: [ToBeChangedOrRemoved: <AWS_S3_ACCESS_KEY>]
  awsS3SecretKey: [ToBeChangedOrRemoved: <AWS_S3_SECRET_KEY>]
  awsS3BucketName: [ToBeChangedOrRemoved: <AWS_S3_BUCKET_NAME>]
  awsS3SocketTimeout: [ToBeChangedOrRemoved: <AWS_S3_SOCKET_TIMEOUT>]
  awsS3MaxErrorRetry: [ToBeChangedOrRemoved: <AWS_S3_MAX_ERROR_RETRY>]
  awsS3MaxConnection: [ToBeChangedOrRemoved: <AWS_S3_MAX_CONNECTION>]
  awsS3ConnectionTimeout: [ToBeChangedOrRemoved: <AWS_S3_CONNECTION_TIMEOUT>]
  cryptoSecurityKey: [ToBeChangedOrRemoved: <CRYPTO_SECURITY_KEY>]
  webDAVMaxConnection: [ToBeChangedOrRemoved: <WEBDAV_MAX_CONNECTION>]
  webDAVMaxTotalConnection: [ToBeChangedOrRemoved: <WEBDAV_MAX_TOTAL_CONNECTION>]
  
  # CDR
  voiceMonitorNodeId: [ToBeChangedOrRemoved: <VOICE_MONITOR_NODE_ID>]
  
  # Multi regional supporting
  nodePath: [ToBeChanged: node position in cluster, example: /<REGION>/HOST
  nodeId: [ToBeChangedOrRemoved: unique value in cluster <NODE_ID>]
  
  # SSL and CA
  caCertificate: [ToBeChangedOrRemoved: <CA_CERTIFICATE>]
  jksPassword: [ToBeChangedOrRemoved: <JKS_PASSWORD>]
  
  # SAML
  samlSettings:
    encryptionKeyName: [ToBeChangedOrRemoved: <SAML_ENCRYPTION_KEY_NAME>]
    signingKeyName: [ToBeChangedOrRemoved: <SAML_SIGNING_KEY_NAME>]
    identityProviderMetadata: [ToBeChangedOrRemoved: <SAML_IDENTITY_PROVIDER_METADATA>]
    serviceProviderEntityId: [ToBeChangedOrRemoved: <SAML_SERVICE_PROVIDER_ENTITY_ID>]
    encryptionKeyPassword: [ToBeChangedOrRemoved: <SAML_ENCRYPTION_KEY_PASSWORD>]
    signingKeyPassword: [ToBeChangedOrRemoved: <SAML_SIGNING_KEY_PASSWORD>]
    tlsKeyName: [ToBeChangedOrRemoved: <SAML_TLS_KEY_NAME>]
    tlsKeyPassword: [ToBeChangedOrRemoved: <SAML_TLS_KEY_PASSWORD>]
    responseSkewTime: [ToBeChangedOrRemoved: <SAML_RESPONSE_SWEW_TIME>]
  
  # CORS
  crossOriginSettings:
    allowedOrigins: [ToBeChangedOrRemoved: <CROSS_ALLOWED_ORIGINS>]
    allowedMethods: [ToBeChangedOrRemoved: <CROSS_ALLOWED_METHODS>]
    allowedHeaders: [ToBeChangedOrRemoved: <CROSS_ALLOWED_HEADERS>]
    exposedHeaders: [ToBeChangedOrRemoved: <CROSS_EXPOSED_HEADERS>]
    allowCredentials: [ToBeChangedOrRemoved: <CROSS_ALLOW_CREDENTIALS>]
    corsFilterCacheTimeToLive: [ToBeChangedOrRemoved: <CROSS_ORIGIN_CORS_FILTER_CACHE_TIME_TO_LIVE>]
  
  # Elastic Search
  elasticSearchSettings:
    clientNode: [ToBeChangedOrRemoved: "true"|"false"]
    indexPerContactCenter: [ToBeChangedOrRemoved: "true"|"false"]
    enableScheduledIndexVerification: [ToBeChangedOrRemoved: "true"|"false"]
    indexVerificationInterval: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_INDEX_VERIFICATION_INTERVAL>]
    retriesOnConflict: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_RETRIES_ON_CONFICT>]
    waitToIndexTimeout: [ToBeChangedOrRemoved: <ELASTIC_SEARCH_WAIT_TO_INDEX_TIMEOUT>]
    enableIndexVerificationAtStartUp: [ToBeChangedOrRemoved: "true"|"false"]
  
  # Recording Settings
  recordingSettings:
    auditLogDeletedFiles: [ToBeChangedOrRemoved: "true"|"false"]
    recordCryptoServerDecryptMaxConnection: [ToBeChangedOrRemoved: <RECORD_CRYPTO_SERVER_DECRYPT_MAX_CONNECTION>]
    recordCryptoServerDecryptMaxTotalConnection: [ToBeChangedOrRemoved: <RECORD_CRYPTO_SERVER_DECRYPT_MAX_TOTAL_CONNECTION>]
    recordCryptoServerDecryptSocketTimeout: [ToBeChangedOrRemoved: <RECORD_CRYPTO_SERVER_DECRYPT_SOCKET_TIMEOUT>]

  # Screen Recording
  screenRecordingSettings:
    screenRecordingEServicesEnabled: [ToBeChangedOrRemoved: "true"|"false"]
    screenRecordingVoiceEnabled: [ToBeChangedOrRemoved: "true"|"false"]
    clientSessionManagerCacheTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_CLIENT_SESSION_MANAGER_CACHE_TTL>]
    recordingInteractionEventsTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_RECORDING_INTERACTION_EVENTS_TTL>]
    contactCenterInfoManagerCacheTTL: [ToBeChangedOrRemoved: <SCREEN_RECORDING_CONTACT_CENTER_INFO_MANAGER_CACHE_TTL>]
  
  # Caching Settings
  cachingSettings:
    enableSystemWideCaching: [ToBeChangedOrRemoved: "true"|"false"]
    agentStatesTTL: [ToBeChangedOrRemoved: <CACHING_AGENT_STATES_TTL>]
    businessAttributesTTL: [ToBeChangedOrRemoved: <CACHING_BUSINESS_ATTRIBUTES_TTL>]
    transactionsTTL: [ToBeChangedOrRemoved: <CACHING_TRANSACTIONS_TTL>]
    skillsTTL: [ToBeChangedOrRemoved: <CACHING_SKILLS_TTL>]
    virtualAgentGroupsTTL: [ToBeChangedOrRemoved: <CACHING_VIRTUAL_AGENT_GROUPS_TTL>]
    contactCenterFeaturesTTL: [ToBeChangedOrRemoved: <CACHING_CONTACT_CENTER_FEATURES_TTL>]
    contactCenterSettingsTTL: [ToBeChangedOrRemoved: <CACHING_CONTACT_CENTER_SETTINGS_TTL>]
    voiceContextCaching: [ToBeChangedOrRemoved: "true"|"false"]
    voiceContextRefreshInterval: [ToBeChangedOrRemoved: <CACHING_VOICE_CONTEXT_REFRESH_INTERVAL>]
  
  # DoS Filter Settings
  enableDosFilter: [ToBeChanged: "true"|"false"]
  dosFilterSettings:
    maxRequestsPerSec: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_REQUESTS_PER_SEC>]
    delayMs: [ToBeChangedOrRemoved: <DOS_FILTER_DELAY_MS>]
    maxWaitMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_WAIT_MS>]
    throttledRequests: [ToBeChangedOrRemoved: <DOS_FILTER_THROTTLED_REQUESTS>]
    throttleMs: [ToBeChangedOrRemoved: <DOS_FILTER_THROTTLE_MS>]
    maxRequestMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_REQUEST_MS>]
    maxIdleTrackerMs: [ToBeChangedOrRemoved: <DOS_FILTER_MAX_IDLE_TRACKER_MS>]
    insertHeaders: [ToBeChangedOrRemoved: <DOS_FILTER_INSERT_HEADERS>]
    trackSessions: [ToBeChangedOrRemoved: <DOS_FILTER_TTACK_SESSIONS>]
    remotePort: [ToBeChangedOrRemoved: <DOS_FILTER_REMOTE_PORT>]
    ipWhitelist: [ToBeChangedOrRemoved: <DOS_FILTER_IP_WHITE_LIST>]

  # Account Management
  accountManagement:
    forgotPasswordEmailTemplate:
      from: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_FROM>]
      subject: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_SUBJECT>]
      body: [ToBeChangedOrRemoved: <PASSWORD_MESSAGE_BODY>]
    accountCreatedEmailTemplate:
      from: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_FROM>]
      subject: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_SUBJECT>]
      body: [ToBeChangedOrRemoved: <ACCOUNT_MESSAGE_BODY>]
    smtpServer:
      host: [ToBeChangedOrRemoved: <SMTP_SERVER_HOST>]
      port: [ToBeChangedOrRemoved: <SMTP_SERVER_PORT>]
      userName: [ToBeChangedOrRemoved: <SMTP_SERVER_USER_NAME>]
      password: [ToBeChangedOrRemoved: <SMTP_SERVER_PASSWORD>]
      timeout: [ToBeChangedOrRemoved: <SMTP_SERVER_TIMEOUT>]
  
  # Media Life Cycle Management
  backgroundScheduledMediaOperationsSettings:
    enableBackgroundScheduledMediaOperations: [ToBeChangedOrRemoved: "true"|"false"]
    schedulerThreads: [ToBeChangedOrRemoved: <SCHEDULER_THREADS>]
    schedulePollingInterval: [ToBeChangedOrRemoved: <SCHEDULE_POLLING_INTERVAL>]
    speechMinerMaxConnection: [ToBeChangedOrRemoved: <SPEECH_MINER_MAX_CONNECTION>]
    speechMinerMaxTotalConnection: [ToBeChangedOrRemoved: <SPEECH_MINER_MAX_TOTAL_CONNECTION>]
    speechMinerSocketTimeout: [ToBeChangedOrRemoved: <SPEECH_MINER_SOCKET_TIMEOUT>]
    defaultBackupExportURI: [ToBeChangedOrRemoved: <DEFAULT_BACKUP_EXPORT_URI>]
  
  # CometD Settings
  cometDSettings:
    maxSessionsPerBrowser: [ToBeChangedOrRemoved: <MAX_SESSIONS_PER_BROWSER>]
    multiSessionInterval: [ToBeChangedOrRemoved: <MULTI_SESSION_INTERVAL>]
  
  # Screen Recording Connections Reporting
  screenRecordingConnectionReportingSettings:
    reportingEnabled: [ToBeChangedOrRemoved: "true"|"false"]
    createReportingCF: [ToBeChangedOrRemoved: "true"|"false"]
    connectionInfoHoursTTL: [ToBeChangedOrRemoved: <CONNECTION_INFO_HOURS_TTL>]
    historyCountsMinutesTTL: [ToBeChangedOrRemoved: <HISTORY_COUNTS_MINUTES_TTL>]

  # Multimedia Disaster Recovery
  drMonitoringDelay: [ToBeChangedOrRemoved: <DR_MONITORING_DELAY>]

Make sure you update all settings marked as [ToBeChanged]. You should also be sure to do the following:

See serverSettings for details about all supported configuration settings for this section.

On-premises settings

The settings in the onPremiseSettings section correspond to the contents of the onpremise-settings.yaml file in version 8.5.201.09 or earlier of Web Services and Applications. This section tells Web Services where Configuration Server is located.

The application.yaml.sample file doesn't include a default onPremiseSettings section, so you'll need to add it yourself. For example:

onPremiseSettings:
  cmeHost: localhost
  cmePort: 8888
  countryCode: US

See onPremiseSettings for details about all supported configuration settings for this section.

Tuning the Web Services host performance

Complete the steps below on each Web Services node to tune the performance of the host environment.

Start

  1. To optimize TCP/IP performance, you can run the following commands:
  2. sudo sysctl -w net.core.rmem_max=16777216 
    sudo sysctl -w net.core.wmem_max=16777216 
    sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216" 
    sudo sysctl -w net.ipv4.tcp_wmem="4096 16384 16777216" 
    sudo sysctl -w net.core.somaxconn=4096 
    sudo sysctl -w net.core.netdev_max_backlog=16384
    sudo sysctl -w net.ipv4.tcp_max_syn_backlog=8192 
    sudo sysctl -w net.ipv4.tcp_syncookies=1 
    sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
  3. Increase the file descriptors by adding the following to the /etc/security/limits.conf file:
  4. <user_name>		hard nofile	100000
    <user_name>		soft nofile	100000
  • <user_name> — The name of the user or group that is starting Jetty.

End

Next step

Comments or questions about this documentation? Contact us for support!