Channel Manager
Customer Channel Manager (CCM) is the component for connecting customer channels such as Facebook and Viber. See Customer Channels for all supported channels and channel capabilities.
The docker-compose file for Customer Channel Manager is located at <install-dir>/sds/docker-compose-ccm.yml and for HA deployment, docker-compose file is located at <install-dir>/sds/docker-compose-ha-ccm.yml. APIs exposed and consumed by Channel Manager are documented on CCM 3.x APIs.
Webchat is not managed by Channel Manager. Webchat is managed by the Chat server component and Customer Gadget.
Deployment Models
The Channel Manager component is independent deployable component and maybe configured to run in integration with any of the following:
Hybrid Chat | With HybridChat, Channel Manager sends customer requests to HybridChat and sends customer the response receive received from the Hybrid Chat system. |
---|---|
3rd party CRM | For SMS delivery notification to a CRM. |
ECM | DEPRECATED To fetch and send SMS campaign messages from the ECM database. After the next major release when HybridChat is properly merged in CIM, ECM will also be merged in CIM and will then be available as a CIM solution component. |
Configurations for Hybrid Chat Integration
Config Parameter | Description | Sample Value |
---|---|---|
CHAT_SOLUTION_URL | Specify Channel Manager calls this REST API to send a customer message to Hybrid Chat. | https://<hybridchat-FQDN>/chat |
| Should Channel Mananger subscribe to AMQ?
| |
SKILL_GROUPS | whatsapp, premium|facebook, gold|sms, silver|smpp, bronze | An administrator can add a channel name and the respective queue in comma separated values. Multiple channel configurations must be separated by using a PIPE | sign. If the configured queue is not available in MRE, the chat will be queued to the default queue. |
Twilio Integration for SMS and WhatsApp
Twilio SMS Integration | See Twilio SMS Integration for configuration parameters of Twilio SMS integration. |
---|---|
Twilio WhatsApp integration | See (3.15 ) Twilio WhatsApp Integration for configuration parameters of Twilio WhatsApp integration. |
360Dialog WhatsApp integration | See 360Dialog WhatsApp Integration for configuration parameters of 360Dialog WhatsApp integration. |
SMPP SMS Integration | See SMPP SMS Integration for configuration parameters of Twilio SMPP integration. |
File Engine Integration
The Hybrid Chat File Engine service that stores files in MinIO. This set of variables define File Engine service discovery parameters.
Config Parameter | Description | Sample Value |
---|---|---|
FILE_ENGINE_URL | File engine URL to upload files to. This is used by all the internal components. | |
FILE_ENGINE_PUBLIC_URL | For public access, this path is used. | https://HC-FQDN/file-engine |
CRM Integration
To push delivery notification to a 3rd party CRM via REST.
Config Parameter | Description | Sample Value |
---|---|---|
IS_CRM_UPDATE_DISABLED | If set to false, no sms delivery notification will be sent to third-party app like CRM | |
CRM_API_URL | Any third party REST API URL and its credentials to push delivery notification | http://<FQDN>/smsDeliveryNotification |
CRM_API_USER | CRM API username for basic auth | |
CRM_API_PASSWORD | CRM API password |
Facebook Integration
Config Parameter | Description |
---|---|
FACEBOOK_APP_SECRET | It is a 32 digit code generated by the Facebook app to avoid any kind of third-party interference. It is generated when the user navigates to the basic setting in the Facebook app and provides his password. |
Enabling SSL
Variable Name | Description | Sample Value |
---|---|---|
ENABLE_SSL | Specifies if Customer Channel Manager hosts its REST Web-services (Web-hooks for Facebook, Twilio and Viber) over HTTPS or HTTP. Possible values are:
| |
SSL_TRUST_STORE_PATH | Path to SSL trust store, if not set then default Default volume mounted is /var/lib/expertflow/docker/certificates/smsTrustStore.jks which is mapped to /app/trustStore.jks | |
SSL_TRUST_STORE_PASSWORD | This is password for the trust store. Default is Expertflow464. | |
SSL_KEY_ALIAS | This and below 3 variables are used to enable SSL over CCM APIs if the above variable (ENABLE_SSL) is set to true. If ENABLE_SSL is set to true and this and below 3 variables are not set then default certificates keys are used to enable SSL. | localhost |
SSL_KEY_STORE_TYPE | Type of the key store. | jks |
SSL_KEY_STORE | Keystore name which holds ssl certificate. Key store file should be placed in a directory where compose file runs from. That directory should be mounted to “/app/ssl” is CCM server. - "/root/ssl/:/app/ssl" SSL Key store path. A volume from the host machine that contains Key store file should be mounted into sms-connector container and this variable will hold mounted path of container. example: /app/ssl/keyStore/keyStore.jks | |
SSL_KEY_PASS | SSL key password. Default is Expertflow464 . |
Troubleshooting
The default trust store contains CA roots for Twilio, Facebook and Viber. If a certain CCM deployment is having SSL problems with Facebook, Viber or Twilio connection, follow these steps:
- Access HC host machine via ssh
Fetch certificates from remote server using openssl client e.g. for Twilio:
CODEopenssl s_client -showcerts -connect api.twilio.com:443
- Grab the root certificate from output and check it with any certificate decoder. Root certificate should be the last certificate in chain of the output returned by openssl client.
If you are unable to perform step # 3, you can paste the root certificate in a certificate.crt file and check it using openssl client e.g.
BASHopenssl x509 -in certificate.crt -text -noout
- Check if the certificate authority in HC host machine is different than standard CA of server, if yes, create a certificate.crt file and add it to trust store of CCM.
- Remove CCM container and recreate.
Log Settings
Variable Name | Description | Sample Value |
---|---|---|
LOG_PATH | expertflow | |
LOG_LEVEL | info | |
LOG_FILE_SIZE | 5 MB | |
LOG_BACKUP_FILES | 30 | |
LOGS_TOTAL_SIZE | 5 GB |
Forward Proxy Setup
USE_FORWARD_PROXY | false |
---|---|
FORWARD_PROXY_HOST | |
FORWARD_PROXY_PORT | |
FORWARD_PROXY_USER | |
FORWARD_PROXY_PASSWORD |
ActiveMQ Integration
When integrated with Hybrid Chat, CCM receives messages from HybridChat ActiveMQ queue.
Variable Name | Description |
---|---|
AMQ_PRIMARY | activemq:61617 |
AMQ_SECONDARY | activemq:61617 |
AMQ_TIMEOUT | 30000 |
AMQ_PRIORITY_BACKUP | true |
AMQ_RANDOMIZE | false |
AMQ_PREFETCH_SIZE | 20000 |
AMQ_SSL_ENABLED | Enables/Disables connection over SSL between CCM and ActiveMQ. Possible values are:
Default is "false" |
AMQ_HOST | ActiveMQ host IP or FQDN. Default is "127.0.0.1" |
AMQ_PORT | ActiveMQ port. Default is "61616" |
AMQ_TRUST_STORE_PATH | If this and below 3 variables are not set then default truststore and keystore will be used shipped with sms-connector image inside /app directory and names client.ts and client.ks respectively - /app/client.ts |
AMQ_TRUST_STORE_PASS_PHRASE | Trust store password |
AMQ_KEY_STORE_PATH | Key Store path - /app/client.ts |
AMQ_KEY_STORE_PASS | Key Store password Any limitations on the integration? For example, the Hybrid Chat solution works only with plain text. What other formats/messages would this integration not support?> |
AMQ_OUTBOUND_QUEUE | ActiveMQ queue from where sms-connector will read messages that are submitted by chat server and push them to Twilio for sending example: outbound-sms |
CONSUMER_ENABLED | Specifies to enable/disable CCM ActiveMQ consumer. ActiveMQ consumer can be disabled when CCM is deployed standalone with CIM and does not require integration with HC. Possible values are:
Default value is true. |
PUBLISHER_ENABLE | Specifies to enable/disable CCM ActiveMQ Producer. When Customer Channel Manager is deployed in integration with HC, it does not need to publish SMS delivery reports as of now, so its value should be false. However, when Customer Channel Manager is deployed in integration with Customer Interaction Manager (CIM), this value needs to be true to publish SMS delivery reports to CIM. Possible values are:
Default value is false. |
Customer Inactivity Timeout
Enables/Disables customer inactivity time.If customer is inactive for configured timeout , chat will be ended.
Variable Name | Description |
---|---|
CUSTOMER_INACTIVITY_TIMEOUT | Default value is -1 , but can be set to desired time in seconds e.g., |
Customer Channel Manager Limitations
- CCM inbound API for incoming SMS and delivery-notification API for delivery notifications should be available over the internet.
- Only one Twilio account can be used with CCM at a time.
Customer Channel Manager APIs
REST API
Rest APIs documentation can be found here.
ActiveMQ API
CCM consumes and pushes to Twilio messages from queue with name set in AMQ_OUTBOUND_QUEUE variable. The type of messages should be with name SendSms
and the content should be in JSON format with the following definition.
{
"number":"<customerNumber>",
"text":"<smsText>" ,
"id":"<messageId>"
}
where,
number
- is the phone number where the SMS should be senttext
- SMS textid
- (optional) any application assigned identifier for tracking this message in the application