@tiledesk/tiledesk-server 2.8.8 → 2.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/docker-image-en-tag-push.yml +28 -5
- package/CHANGELOG.md +4 -0
- package/Dockerfile-en +6 -0
- package/deploy.sh +1 -1
- package/package.json +4 -2
- package/pubmodules/apps/listener.js +2 -1
- package/pubmodules/pubModulesManager.js +49 -0
- package/pubmodules/sms/index.js +7 -0
- package/pubmodules/sms/listener.js +55 -0
- package/pubmodules/voice/index.js +7 -0
- package/pubmodules/voice/listener.js +63 -0
@@ -12,12 +12,35 @@ jobs:
|
|
12
12
|
steps:
|
13
13
|
- name: Check out the repo
|
14
14
|
uses: actions/checkout@v2
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
|
16
|
+
- name: Login to Docker Hub
|
17
|
+
uses: docker/login-action@v3
|
18
|
+
with:
|
18
19
|
username: ${{ secrets.DOCKER_USERNAME }}
|
19
20
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
20
|
-
build_args: NPM_TOKEN=${{ secrets.NPM_TOKEN }}
|
21
|
-
dockerfile: Dockerfile-en
|
22
21
|
repository: tiledeskrepo/tiledesk-server-enterprise
|
23
22
|
tag_with_ref: true
|
23
|
+
|
24
|
+
- name: Log Voice Token
|
25
|
+
run: |
|
26
|
+
echo "Voice token log: ${{ secrets.VOICE_TOKEN }}"
|
27
|
+
|
28
|
+
- name: Generate Docker metadata
|
29
|
+
id: meta
|
30
|
+
uses: docker/metadata-action@v3
|
31
|
+
with:
|
32
|
+
images: tiledeskrepo/tiledesk-server-enterprise
|
33
|
+
tags: |
|
34
|
+
type=ref,event=branch
|
35
|
+
type=semver,pattern={{version}}
|
36
|
+
|
37
|
+
- name: Push to Docker Hub
|
38
|
+
uses: docker/build-push-action@v4
|
39
|
+
with:
|
40
|
+
context: .
|
41
|
+
file: ./Dockerfile-en
|
42
|
+
push: true
|
43
|
+
build-args: |
|
44
|
+
NPM_TOKEN=${{ secrets.NPM_TOKEN }}
|
45
|
+
VOICE_TOKEN=${{ secrets.VOICE_TOKEN }}
|
46
|
+
tags: ${{ steps.meta.outputs.tags }}
|
package/CHANGELOG.md
CHANGED
package/Dockerfile-en
CHANGED
@@ -7,9 +7,15 @@ RUN apt-get update
|
|
7
7
|
# Create app directory
|
8
8
|
WORKDIR /usr/src/app
|
9
9
|
|
10
|
+
# Accept build arguments
|
10
11
|
ARG NPM_TOKEN
|
12
|
+
ARG VOICE_TOKEN
|
13
|
+
|
11
14
|
COPY .npmrc_ .npmrc
|
12
15
|
|
16
|
+
# Set environment variable based on build argument
|
17
|
+
ENV VOICE_TOKEN=${VOICE_TOKEN}
|
18
|
+
|
13
19
|
# Install app dependencies
|
14
20
|
# A wildcard is used to ensure both package.json AND package-lock.json are copied
|
15
21
|
# where available (npm@5+)
|
package/deploy.sh
CHANGED
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@tiledesk/tiledesk-server",
|
3
3
|
"description": "The Tiledesk server module",
|
4
|
-
"version": "2.8.
|
4
|
+
"version": "2.8.9",
|
5
5
|
"scripts": {
|
6
6
|
"start": "node ./bin/www",
|
7
7
|
"pretest": "mongodb-runner start",
|
@@ -36,7 +36,7 @@
|
|
36
36
|
"@tiledesk-ent/tiledesk-server-visitorcounter": "^1.1.1"
|
37
37
|
},
|
38
38
|
"dependencies": {
|
39
|
-
"@tiledesk/tiledesk-apps": "^1.0.
|
39
|
+
"@tiledesk/tiledesk-apps": "^1.0.22",
|
40
40
|
"@tiledesk/tiledesk-chat21-app": "^1.1.8",
|
41
41
|
"@tiledesk/tiledesk-chatbot-templates": "^0.1.2",
|
42
42
|
"@tiledesk/tiledesk-chatbot-util": "^0.8.33",
|
@@ -51,6 +51,8 @@
|
|
51
51
|
"@tiledesk/tiledesk-tybot-connector": "^0.2.83",
|
52
52
|
"@tiledesk/tiledesk-whatsapp-connector": "^0.1.72",
|
53
53
|
"@tiledesk/tiledesk-whatsapp-jobworker": "^0.0.8",
|
54
|
+
"@tiledesk/tiledesk-sms-connector": "^0.1.6",
|
55
|
+
"@tiledesk/tiledesk-vxml-connector": "^0.1.37",
|
54
56
|
"amqplib": "^0.5.5",
|
55
57
|
"app-root-path": "^3.0.0",
|
56
58
|
"bcrypt-nodejs": "0.0.3",
|
@@ -28,7 +28,8 @@ class Listener {
|
|
28
28
|
apps.startApp({
|
29
29
|
ACCESS_TOKEN_SECRET: process.env.APPS_ACCESS_TOKEN_SECRET || configSecretOrPubicKay,
|
30
30
|
MONGODB_URI: process.env.APPS_MONGODB_URI || config.databaseUri,
|
31
|
-
KALEYRA_ENABLED: process.env.KALEYRA_ENABLED || config.kaleyra_enabled
|
31
|
+
KALEYRA_ENABLED: process.env.KALEYRA_ENABLED || config.kaleyra_enabled,
|
32
|
+
VOICE_ENABLED: process.env.VOICE_ENABLED || false
|
32
33
|
}, () => {
|
33
34
|
winston.info("Tiledesk Apps proxy server succesfully started.")
|
34
35
|
})
|
@@ -33,6 +33,12 @@ class PubModulesManager {
|
|
33
33
|
this.telegram = undefined;
|
34
34
|
this.telegramRoute = undefined;
|
35
35
|
|
36
|
+
this.sms = undefined;
|
37
|
+
this.smsRoute = undefined;
|
38
|
+
|
39
|
+
this.voice = undefined;
|
40
|
+
this.voiceRoute = undefined;
|
41
|
+
|
36
42
|
this.mqttTest = undefined;
|
37
43
|
this.mqttTestRoute = undefined;
|
38
44
|
|
@@ -91,6 +97,14 @@ class PubModulesManager {
|
|
91
97
|
app.use('/modules/telegram', this.telegramRoute);
|
92
98
|
winston.info("PubModulesManager telegramRoute controller loaded");
|
93
99
|
}
|
100
|
+
if (this.smsRoute) {
|
101
|
+
app.use('/modules/sms', this.smsRoute);
|
102
|
+
winston.info("PubModulesManager smsRoute controller loaded");
|
103
|
+
}
|
104
|
+
if (this.voiceRoute) {
|
105
|
+
app.use('/modules/voice', this.voiceRoute);
|
106
|
+
winston.info("PubModulesManager voiceRoute controller loaded");
|
107
|
+
}
|
94
108
|
if (this.mqttTestRoute) {
|
95
109
|
app.use('/modules/mqttTest', this.mqttTestRoute);
|
96
110
|
winston.info("PubModulesManager mqttTestRoute controller loaded");
|
@@ -331,6 +345,41 @@ class PubModulesManager {
|
|
331
345
|
}
|
332
346
|
}
|
333
347
|
|
348
|
+
if (process.env.VOICE_TOKEN === process.env.VOICE_SECRET) {
|
349
|
+
try {
|
350
|
+
this.voice = require('./voice');
|
351
|
+
winston.info("this.voice: " + this.voice);
|
352
|
+
this.voice.listener.listen(config);
|
353
|
+
|
354
|
+
this.voiceRoute = this.voice.voiceRoute;
|
355
|
+
|
356
|
+
winston.info("PubModulesManager initialized apps (voice).")
|
357
|
+
} catch(err) {
|
358
|
+
console.log("\n Unable to start voice connector: ", err);
|
359
|
+
if (err.code == 'MODULE_NOT_FOUND') {
|
360
|
+
winston.info("PubModulesManager init apps module not found ");
|
361
|
+
} else {
|
362
|
+
winston.info("PubModulesManager error initializing init apps module", err);
|
363
|
+
}
|
364
|
+
}
|
365
|
+
}
|
366
|
+
|
367
|
+
try {
|
368
|
+
this.sms = require('./sms');
|
369
|
+
winston.info("this.sms: " + this.sms);
|
370
|
+
this.sms.listener.listen(config);
|
371
|
+
|
372
|
+
this.smsRoute = this.sms.smsRoute;
|
373
|
+
|
374
|
+
winston.info("PubModulesManager initialized apps (sms).")
|
375
|
+
} catch(err) {
|
376
|
+
if (err.code == 'MODULE_NOT_FOUND') {
|
377
|
+
winston.info("PubModulesManager init apps module not found ");
|
378
|
+
} else {
|
379
|
+
winston.info("PubModulesManager error initializing init apps module", err);
|
380
|
+
}
|
381
|
+
}
|
382
|
+
|
334
383
|
try {
|
335
384
|
this.mqttTest = require('./mqttTest');
|
336
385
|
winston.info("this.mqttTest: " + this.mqttTest);
|
@@ -0,0 +1,55 @@
|
|
1
|
+
const sms = require("@tiledesk/tiledesk-sms-connector");
|
2
|
+
var winston = require('../../config/winston');
|
3
|
+
var configGlobal = require('../../config/global');
|
4
|
+
const mongoose = require("mongoose");
|
5
|
+
|
6
|
+
const apiUrl = process.env.API_URL || configGlobal.apiUrl;
|
7
|
+
winston.info('SMS apiUrl: ' + apiUrl);
|
8
|
+
|
9
|
+
const dbConnection = mongoose.connection;
|
10
|
+
|
11
|
+
class Listener {
|
12
|
+
|
13
|
+
listen(config) {
|
14
|
+
winston.info("SMS Listener listen");
|
15
|
+
if (config.databaseUri) {
|
16
|
+
winston.debug("SMS config databaseUri: " + config.databaseUri);
|
17
|
+
}
|
18
|
+
|
19
|
+
var port = process.env.CACHE_REDIS_PORT || 6379;
|
20
|
+
winston.debug("Redis port: "+ port);
|
21
|
+
|
22
|
+
var host = process.env.CACHE_REDIS_HOST || "127.0.0.1"
|
23
|
+
winston.debug("Redis host: "+ host);
|
24
|
+
|
25
|
+
var password = process.env.CACHE_REDIS_PASSWORD;
|
26
|
+
winston.debug("Redis password: "+ password);
|
27
|
+
|
28
|
+
let brand_name = null;
|
29
|
+
if (process.env.BRAND_NAME) {
|
30
|
+
brand_name = process.env.BRAND_NAME
|
31
|
+
}
|
32
|
+
|
33
|
+
let log = process.env.SMS_LOG || false
|
34
|
+
winston.debug("SMS log: " + log);
|
35
|
+
|
36
|
+
|
37
|
+
sms.startApp({
|
38
|
+
MONGODB_URI: config.databaseUri,
|
39
|
+
dbconnection: dbConnection,
|
40
|
+
API_URL: apiUrl,
|
41
|
+
BASE_URL: apiUrl + "/modules/sms",
|
42
|
+
BRAND_NAME: brand_name,
|
43
|
+
REDIS_HOST: host,
|
44
|
+
REDIS_PORT: port,
|
45
|
+
REDIS_PASSWORD: password,
|
46
|
+
log: log
|
47
|
+
})
|
48
|
+
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
var listener = new Listener();
|
53
|
+
|
54
|
+
module.exports = listener;
|
55
|
+
|
@@ -0,0 +1,63 @@
|
|
1
|
+
const voice = require("@tiledesk/tiledesk-vxml-connector");
|
2
|
+
var winston = require('../../config/winston');
|
3
|
+
var configGlobal = require('../../config/global');
|
4
|
+
const mongoose = require("mongoose");
|
5
|
+
|
6
|
+
const apiUrl = process.env.API_URL || configGlobal.apiUrl;
|
7
|
+
winston.info('Voice apiUrl: ' + apiUrl);
|
8
|
+
|
9
|
+
const dbConnection = mongoose.connection;
|
10
|
+
|
11
|
+
class Listener {
|
12
|
+
|
13
|
+
listen(config) {
|
14
|
+
winston.info("Voice Listener listen");
|
15
|
+
if (config.databaseUri) {
|
16
|
+
winston.debug("Voice config databaseUri: " + config.databaseUri);
|
17
|
+
}
|
18
|
+
|
19
|
+
var pooling_delay = process.env.BASE_POOLING_DELAY || 250;
|
20
|
+
winston.debug("Pooling_delay: "+ pooling_delay);
|
21
|
+
|
22
|
+
var port = process.env.CACHE_REDIS_PORT || 6379;
|
23
|
+
winston.debug("Redis port: "+ port);
|
24
|
+
|
25
|
+
var host = process.env.CACHE_REDIS_HOST || "127.0.0.1"
|
26
|
+
winston.debug("Redis host: "+ host);
|
27
|
+
|
28
|
+
var password = process.env.CACHE_REDIS_PASSWORD;
|
29
|
+
winston.debug("Redis password: "+ password);
|
30
|
+
|
31
|
+
let brand_name = null;
|
32
|
+
if (process.env.BRAND_NAME) {
|
33
|
+
brand_name = process.env.BRAND_NAME
|
34
|
+
}
|
35
|
+
|
36
|
+
let log = process.env.VXML_LOG || false
|
37
|
+
winston.debug("Voice log: "+ log);
|
38
|
+
|
39
|
+
voice.startApp({
|
40
|
+
MONGODB_URI: config.databaseUri,
|
41
|
+
dbconnection: dbConnection,
|
42
|
+
API_URL: apiUrl,
|
43
|
+
BASE_URL: apiUrl + "/modules/voice",
|
44
|
+
REDIS_HOST: host,
|
45
|
+
REDIS_PORT: port,
|
46
|
+
REDIS_PASSWORD: password,
|
47
|
+
BRAND_NAME: brand_name,
|
48
|
+
BASE_POOLING_DELAY: pooling_delay,
|
49
|
+
log: log
|
50
|
+
}, (err) => {
|
51
|
+
if (!err) {
|
52
|
+
winston.info("Tiledesk Voice Connector proxy server succesfully started.");
|
53
|
+
} else {
|
54
|
+
winston.info("unable to start Tiledesk Voice Connector. " + err);
|
55
|
+
}
|
56
|
+
})
|
57
|
+
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
var listener = new Listener();
|
62
|
+
|
63
|
+
module.exports = listener;
|