Introduction
This document illustrates the procedure and steps to deploy Expertflow Generic Connector on any Kubernetes distribution (K3s or RKE2).
Step 1: Clone the Experflow Generic Connector Repository
1. Start with cloning the repository from GitLab.
Code Block |
---|
git clone httpsclone -b 4.4.12 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cti/gc_k3s_deployment.git |
2. Change to the directory.
Code Block |
---|
cd gc_k3s_deployment/cti-voice |
Step 2: Create Namespace
Run the following command on the master node. Create the namespace using the command.
Code Block |
---|
kubectl craetecreate namespace ef-cti-voice |
ActiveMQ
1. If you want to use ActiveMQ then Run the following command for ActiveMQ implementation.
Code Block |
---|
kubectl apply -f StatefulSet/ |
2. Update Communication_Format from REST to JMS in the configmap file.
...
3. Update ActiveMQ Url in the confgimap file with your ActiveMQ service name and port number.
...
Code Block |
---|
<service-name>:Port Number // e.g- ef-cti-amq-svc:61616 |
ConfigMaps
apply the configmap in ConfigMaps folder using
Code Block |
---|
kubectl apply -f Configmap/ |
Services
Create service for deployment of generic components
Code Block |
---|
kubectl apply -f Services/ |
Deployments
apply the Deployment manifests
Code Block |
---|
kubectl apply -f Deployment/ |
Step 3: Update the FQDN
1. Decide the FQDN to be used in your solution and change the the <FQDN> to to your actual FQDN as given in the following command:
Ingress
Run this command for RKE
Code Block |
---|
kubectl apply -f Ingress/nginx |
...
Code Block |
---|
kubectl apply -f Ingress/traefik |
ActiveMQ
To deploy ActiveMQ asStatefulSet run
Code Block |
---|
kubectl apply -f cim/StatefulSet/ |
Wait for the AMQ StatefulSet
Code Block |
---|
kubectl wait pods ef-amq-0 -n ef-external --for condition=Ready --timeout=600s |
Connector Configuration Parameters (Environment Variables)
Parameter | Default Value | Description |
NUMBER_OF_LICENSES | 1000 | |
CUSTOMER_NAME | Haseeb | |
KEY | ASDFGHJKLZXCVBNM234RFGHUIOKJMNBFEWSDFGHNJMNBV | License key. Must be obtained from EF Team |
Finesse_1 | Primary Finesse URL for Site A | |
Finesse_2 | Primary Finesse URL for Site B | |
ACCESS_TOKEN_URL | ||
FINESSE_REQUEST_TIMEOUT | 3000 | Finesse requested a timeout (in mili-seconds) |
FINESSE_HEARTBEAT_SLEEP | 5 | Delay in ping to finesse servers (seconds) |
ByPass_SSL | ture | Bypass SSL Certificate if finesse url is https and self signed certificate is used, in case of false Import SSL certificate to JVM if needed |
ACTIVEMQ1 | localhost:61616 | ActiveMQ Primary URL |
ACTIVEMQ1 | localhost:61616 | ActiveMQ Secondary URL |
ACTIVEMQ_TIMEOUT | 30000 | ActiveMQ connection timeout (in milliseconds) |
GRC_CONSUMER_PRIORITY | 127 | Connector1 Queue consumer priority (Used for primary, secondary deployment of GC)(0-127) |
PRIORITY_BACKUP | true | To connect with its primary GC |
RANDOMIZE | false | for failover url |
PREFETCH_SIZE | 20000 | Prefect Size of the messages |
AGENT_STATES_PUBLISHER_DURATION | 5000 | Time after which, states of all agents would be published on topic (In Milliseconds) |
GC_HEARTBEAT_TIMEOUT | 10000 | GC heartbeat timeout |
AGENT_INACTIVITY_DURATION | 30 | Agent inactivity time (in seconds) |
GC_HEARTBEAT_SLEEP | 10000 | gc heartbeat thread sleep time |
AGENT_INACTIVITY_TIME_SWITCH | false | Agent inactivity switch |
DEFAULT_NOT_READY_REASON | 19 | default reason code for not ready (Must be defined in finesse) |
DEFAULT_LOGOUT_REASON | 70 | Default reason code for force logout |
AGENT_XMPP_SUBS_TIME | 10000 | Agent XMPP Subscription Time |
USE_ENCRYPTED_PASSWORDS | false | Use encrypted password |
CHANGE_STATE_ON_WRAPUP | true | Automatically change the state when wrap-up occurs |
MESSAGE_FORMAT | JSON | Message Format for communication. Expected formats DEFAULT, JSON, XML |
AGENT_LOGS_PATH | /app/logs/agents/ | Agent Logs Storage path |
AGENT_LOGS_LEVEL | TRACE | Agent Logs Level |
AGENT_LOGS_MAX_FILES | 10 | Max No of Files per agent for logs |
AGENT_LOGS_FILE_SIZE | 10MB | Max file size for agent logs |
XMPP_PING_INTERVAL | 3 | Interval in seconds between XMPP server pings |
ADMIN_ID | Administrator | The username of the administrator account the would be used for phonebook and contact APIs |
ADMIN_PASSWORD | Expertflow464 | The password of the administrator account would be used for phonebook and contact APIs |
SUPERVISOR_INITIATED_NOTRAADYREASONCODE | 19 | Reason code for supervisor state change to Not_Ready |
SUPERVISOR_INITIATED_LOGOUTREASONCODE | 20 | Reason code for supervisor state change to Log_Out |
UCCX_SERVER_IP | 192.168.1.29 | For queue stats in case of UCCX |
UCCX_SERVER_USERNAME | Administrator | |
UCCX_SERVER_PASSWORD | Expertflow464 | |
UCCX_DB_USERNAME | uccxhruser | |
UCCX_DB_PASSWORD | 12345 | |
UCCX_DB_RETRY_ATTEMPTS | 2 | |
UCCX_DB_TIMEOUT_CONNECTION | 1800 | |
COMMUNICATION_FORMAT | REST | JMS | |
SPRING_PORT | 8112 | |
REDIS_URL | redis-master.ef-cti.svc | |
REDIS_PORT | 6379 | |
REDIS_PASSWORD | Expertflow123 | |
GET_SKILL_AND_SUP_FORMAT | API || DB | |
UCCE_SERVER_IP | 192.168.1.72 | UCCE Server IP for Skill Group |
DOMAIN_ADMINISTRATOR_USER | ||
DOMAIN_ADMINISTRATOR_PASSWORD | Expertflow464 | |
SKILL_GROUP_ALL_RESULT | false | if it is false, we will return 25 skills |
SQL_SERVER | 192.168.1.89 | For Skill groups and supervisor list |
DATABASE | uc12_awdb | |
DATABASE_TABLE | Skill_Group | |
DATABASE_USER_NAME | sa | |
DATABASE_USER_PASSWORD | Expertflow464 | |
KEY_STORE_TYPE | PKCS12 | |
KEY_STORE | D:\\EF_Project\\GC4.4\\Generic Connector\\certs\\store\\clientkeystore.p12 | |
TRUST_STORE | D:\\EF_Project\\GC4.4\\Generic Connector\\certs\\store\\client.truststore | |
KEY_STORE_PASSWORD | changeit | |
TRUST_STORE_PASSWORD | changeit | |
PRIVATE_KEY_STRING | key_value | |
ISSUER | ef-chat | |
EXPIRY | 300 | |
PEP_BASE_PATH | ||
AOP_CALLBACK | /ef-voice/fnb-cme/submit-gc-event/v1 | |
AXL_URL | ||
AXL_USER | administrator | |
AXL_PASSWORD | Expertflow464 | |
THREAD_POOL_COUNT | 2000 | |
LD_LIBRARY_PATH | /app | |
TZ | Asia/Karachi |