@fonoster/apiserver 0.8.19 → 0.8.21
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/dist/calls/buildService.d.ts +1 -1
- package/dist/calls/buildService.js +1 -1
- package/dist/calls/createCallPublisher.js +1 -1
- package/dist/calls/createFetchCalls.d.ts +2 -1
- package/dist/calls/createFetchCalls.js +4 -5
- package/dist/calls/createFetchSingleCall.d.ts +2 -1
- package/dist/calls/createFetchSingleCall.js +4 -6
- package/dist/calls/getCall.d.ts +1 -2
- package/dist/calls/listCalls.d.ts +1 -2
- package/dist/calls/runCallManager.js +1 -1
- package/dist/calls/types.d.ts +2 -19
- package/dist/calls/types.js +0 -7
- package/dist/envs.d.ts +0 -1
- package/dist/envs.js +5 -7
- package/dist/events/createInfluxDbPub.js +1 -0
- package/dist/events/mapCallDirectionToEnum.d.ts +1 -1
- package/dist/events/mapCallDirectionToEnum.js +1 -1
- package/dist/events/nats.js +1 -1
- package/dist/events/transformEvent.js +6 -1
- package/dist/index.js +3 -3
- package/dist/voice/connectToAri.js +1 -1
- package/package.json +9 -9
|
@@ -39,7 +39,7 @@ const envs_1 = require("../envs");
|
|
|
39
39
|
function buildService(influxdb) {
|
|
40
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
41
|
const callPublisher = yield (0, createCallPublisher_1.createCallPublisher)(envs_1.NATS_URL);
|
|
42
|
-
const nc = yield (0, nats_1.connect)({ servers: envs_1.NATS_URL });
|
|
42
|
+
const nc = yield (0, nats_1.connect)({ servers: envs_1.NATS_URL, maxReconnectAttempts: -1 });
|
|
43
43
|
return {
|
|
44
44
|
definition: {
|
|
45
45
|
serviceName: "Calls",
|
|
@@ -35,7 +35,7 @@ const logger = (0, logger_1.getLogger)({ service: "apiserver", filePath: __filen
|
|
|
35
35
|
function createCallPublisher(natsUrl) {
|
|
36
36
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
37
|
logger.verbose("connecting to nats", { natsUrl });
|
|
38
|
-
const nc = yield (0, nats_1.connect)({ servers: natsUrl });
|
|
38
|
+
const nc = yield (0, nats_1.connect)({ servers: natsUrl, maxReconnectAttempts: -1 });
|
|
39
39
|
return {
|
|
40
40
|
publishCall: (request) => __awaiter(this, void 0, void 0, function* () {
|
|
41
41
|
logger.verbose("publishing call", { ref: request.ref });
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ListCallsRequest, ListCallsResponse } from "@fonoster/types";
|
|
2
|
+
import { InfluxDBClient } from "@fonoster/common";
|
|
2
3
|
declare function createFetchCalls(influxdb: InfluxDBClient): (accessKeyId: string, request: ListCallsRequest) => Promise<ListCallsResponse>;
|
|
3
4
|
export { createFetchCalls };
|
|
@@ -30,8 +30,7 @@ exports.createFetchCalls = createFetchCalls;
|
|
|
30
30
|
*/
|
|
31
31
|
const logger_1 = require("@fonoster/logger");
|
|
32
32
|
const influxdb_client_1 = require("@influxdata/influxdb-client");
|
|
33
|
-
const
|
|
34
|
-
const envs_1 = require("../envs");
|
|
33
|
+
const common_1 = require("@fonoster/common");
|
|
35
34
|
const logger = (0, logger_1.getLogger)({ service: "apiserver", filePath: __filename });
|
|
36
35
|
function createFetchCalls(influxdb) {
|
|
37
36
|
return (accessKeyId, request) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -51,16 +50,16 @@ function createFetchCalls(influxdb) {
|
|
|
51
50
|
const parsedBefore = before
|
|
52
51
|
? new Date(before).getTime() / 1000
|
|
53
52
|
: new Date().getTime() / 1000;
|
|
54
|
-
const query = (0, influxdb_client_1.flux) `from(bucket: "${
|
|
53
|
+
const query = (0, influxdb_client_1.flux) `from(bucket: "${common_1.INFLUXDB_CALLS_BUCKET}")
|
|
55
54
|
|> range(start: ${parsedAfter})
|
|
56
55
|
|> pivot(rowKey: ["callId"], columnKey: ["_field"], valueColumn: "_value")
|
|
57
56
|
|> map(fn: (r) => ({
|
|
58
57
|
r with
|
|
59
|
-
duration:
|
|
58
|
+
duration: int(v: r.endedAt) - int(v: r.startedAt),
|
|
60
59
|
startedAtParsed: int(v: r.startedAt) / 1000,
|
|
61
60
|
}))
|
|
62
61
|
|> filter(fn: (r) =>
|
|
63
|
-
r._measurement == "${
|
|
62
|
+
r._measurement == "${common_1.CALL_DETAIL_RECORD_MEASUREMENT}"
|
|
64
63
|
and r.startedAtParsed < ${parsedBefore}
|
|
65
64
|
${accessKeyIdFilter}
|
|
66
65
|
${typeFilter}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { CallDetailRecord
|
|
1
|
+
import { CallDetailRecord } from "@fonoster/types";
|
|
2
|
+
import { InfluxDBClient } from "@fonoster/common";
|
|
2
3
|
declare function createFetchSingleCall(influxdb: InfluxDBClient): (accessKeyId: string, ref: string) => Promise<CallDetailRecord>;
|
|
3
4
|
export { createFetchSingleCall };
|
|
@@ -30,20 +30,18 @@ exports.createFetchSingleCall = createFetchSingleCall;
|
|
|
30
30
|
*/
|
|
31
31
|
const logger_1 = require("@fonoster/logger");
|
|
32
32
|
const influxdb_client_1 = require("@influxdata/influxdb-client");
|
|
33
|
-
const
|
|
34
|
-
const envs_1 = require("../envs");
|
|
33
|
+
const common_1 = require("@fonoster/common");
|
|
35
34
|
const logger = (0, logger_1.getLogger)({ service: "apiserver", filePath: __filename });
|
|
36
35
|
function createFetchSingleCall(influxdb) {
|
|
37
36
|
return (accessKeyId, ref) => __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
const query = (0, influxdb_client_1.flux) `from(bucket: "${
|
|
37
|
+
const query = (0, influxdb_client_1.flux) `from(bucket: "${common_1.INFLUXDB_CALLS_BUCKET}")
|
|
39
38
|
|> range(start: -360d)
|
|
40
39
|
|> pivot(rowKey: ["callId"], columnKey: ["_field"], valueColumn: "_value")
|
|
41
40
|
|> map(fn: (r) => ({
|
|
42
41
|
r with
|
|
43
|
-
duration:
|
|
44
|
-
startedAtParsed: int(v: r.startedAt) / 1000,
|
|
42
|
+
duration: int(v: r.endedAt) - int(v: r.startedAt)
|
|
45
43
|
}))
|
|
46
|
-
|> filter(fn: (r) => r._measurement == "${
|
|
44
|
+
|> filter(fn: (r) => r._measurement == "${common_1.CALL_DETAIL_RECORD_MEASUREMENT}")
|
|
47
45
|
|> filter(fn: (r) => r.ref == ${ref} and r.accessKeyId == "${accessKeyId}")
|
|
48
46
|
|> sort(columns: ["_time"], desc: true)
|
|
49
47
|
|> limit(n: 1)`;
|
package/dist/calls/getCall.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { GrpcErrorMessage } from "@fonoster/common";
|
|
2
|
-
import { InfluxDBClient } from "./types";
|
|
1
|
+
import { GrpcErrorMessage, InfluxDBClient } from "@fonoster/common";
|
|
3
2
|
declare function getCall(influx: InfluxDBClient): (call: {
|
|
4
3
|
request: unknown;
|
|
5
4
|
}, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { GrpcErrorMessage } from "@fonoster/common";
|
|
2
|
-
import { InfluxDBClient } from "./types";
|
|
1
|
+
import { GrpcErrorMessage, InfluxDBClient } from "@fonoster/common";
|
|
3
2
|
declare function listCalls(influx: InfluxDBClient): (call: {
|
|
4
3
|
request: unknown;
|
|
5
4
|
}, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
|
|
@@ -42,7 +42,7 @@ function createCreateCallSubscriber(config) {
|
|
|
42
42
|
const { natsUrl, ariProxyUrl, ariUsername, ariPassword } = config;
|
|
43
43
|
try {
|
|
44
44
|
logger.verbose("connecting to nats", { natsUrl });
|
|
45
|
-
const nc = yield (0, nats_1.connect)({ servers: natsUrl });
|
|
45
|
+
const nc = yield (0, nats_1.connect)({ servers: natsUrl, maxReconnectAttempts: -1 });
|
|
46
46
|
logger.verbose("subscribing to call create subject", {
|
|
47
47
|
subject: envs_1.CALLS_CREATE_SUBJECT
|
|
48
48
|
});
|
package/dist/calls/types.d.ts
CHANGED
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
import { DialStatus, GrpcErrorMessage } from "@fonoster/common";
|
|
2
|
-
import {
|
|
3
|
-
import { ParameterizedQuery } from "@influxdata/influxdb-client";
|
|
4
|
-
declare const CALL_DETAIL_RECORD_MEASUREMENT = "cdr";
|
|
5
|
-
type CallDetailRecord = {
|
|
6
|
-
ref: string;
|
|
7
|
-
callId: string;
|
|
8
|
-
status: CallStatus;
|
|
9
|
-
type: CallType;
|
|
10
|
-
from: string;
|
|
11
|
-
to: string;
|
|
12
|
-
duration: number;
|
|
13
|
-
direction: CallDirection;
|
|
14
|
-
startedAt: number;
|
|
15
|
-
endedAt: number;
|
|
16
|
-
};
|
|
2
|
+
import { CallDetailRecord, CallStatus, CallType } from "@fonoster/types";
|
|
17
3
|
type ListCallsRequest = {
|
|
18
4
|
after?: string;
|
|
19
5
|
before?: string;
|
|
@@ -31,9 +17,6 @@ type ListCallsResponse = {
|
|
|
31
17
|
type GetCallRequest = {
|
|
32
18
|
ref: string;
|
|
33
19
|
};
|
|
34
|
-
type InfluxDBClient = {
|
|
35
|
-
collectRows(query: ParameterizedQuery): Promise<unknown[]>;
|
|
36
|
-
};
|
|
37
20
|
type CreateCallRequest = {
|
|
38
21
|
from: string;
|
|
39
22
|
to: string;
|
|
@@ -59,4 +42,4 @@ type TrackCallSubscriber = {
|
|
|
59
42
|
on: (event: string, cb: (data: TrackCallResponse | Error) => void) => void;
|
|
60
43
|
};
|
|
61
44
|
};
|
|
62
|
-
export {
|
|
45
|
+
export { CallPublisher, CallStream, CreateCallRequest, GetCallRequest, ListCallsRequest, ListCallsResponse, TrackCallResponse, TrackCallSubscriber };
|
package/dist/calls/types.js
CHANGED
|
@@ -1,9 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CallType = exports.CallStatus = exports.CallDirection = exports.CALL_DETAIL_RECORD_MEASUREMENT = void 0;
|
|
4
|
-
const types_1 = require("@fonoster/types");
|
|
5
|
-
Object.defineProperty(exports, "CallDirection", { enumerable: true, get: function () { return types_1.CallDirection; } });
|
|
6
|
-
Object.defineProperty(exports, "CallStatus", { enumerable: true, get: function () { return types_1.CallStatus; } });
|
|
7
|
-
Object.defineProperty(exports, "CallType", { enumerable: true, get: function () { return types_1.CallType; } });
|
|
8
|
-
const CALL_DETAIL_RECORD_MEASUREMENT = "cdr";
|
|
9
|
-
exports.CALL_DETAIL_RECORD_MEASUREMENT = CALL_DETAIL_RECORD_MEASUREMENT;
|
package/dist/envs.d.ts
CHANGED
|
@@ -27,7 +27,6 @@ export declare const AUTHZ_SERVICE_ENABLED: boolean;
|
|
|
27
27
|
export declare const AUTHZ_SERVICE_HOST: string;
|
|
28
28
|
export declare const AUTHZ_SERVICE_PORT: string | number;
|
|
29
29
|
export declare const AUTHZ_SERVICE_METHODS: string[];
|
|
30
|
-
export declare const INFLUXDB_BUCKET: string;
|
|
31
30
|
export declare const INFLUXDB_ORG: string;
|
|
32
31
|
export declare const INFLUXDB_PASSWORD: string;
|
|
33
32
|
export declare const INFLUXDB_TOKEN: string;
|
package/dist/envs.js
CHANGED
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
var _a;
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.SMTP_SECURE = exports.SMTP_PORT = exports.SMTP_HOST = exports.SMTP_AUTH_USER = exports.SMTP_AUTH_PASS = exports.ROUTR_DEFAULT_PEER_USERNAME = exports.ROUTR_DEFAULT_PEER_PASSWORD = exports.ROUTR_DEFAULT_PEER_NAME = exports.ROUTR_DEFAULT_PEER_AOR = exports.ROUTR_API_ENDPOINT = exports.OWNER_PASSWORD = exports.OWNER_NAME = exports.OWNER_EMAIL = exports.NATS_URL = exports.INTEGRATIONS_FILE = exports.INFLUXDB_USERNAME = exports.INFLUXDB_URL = exports.INFLUXDB_TOKEN = exports.INFLUXDB_PASSWORD = exports.INFLUXDB_ORG = exports.
|
|
8
|
-
exports.TWILIO_PHONE_NUMBER = exports.TWILIO_AUTH_TOKEN = exports.TWILIO_ACCOUNT_SID = exports.TEMPLATES_DIR =
|
|
7
|
+
exports.SMTP_SENDER = exports.SMTP_SECURE = exports.SMTP_PORT = exports.SMTP_HOST = exports.SMTP_AUTH_USER = exports.SMTP_AUTH_PASS = exports.ROUTR_DEFAULT_PEER_USERNAME = exports.ROUTR_DEFAULT_PEER_PASSWORD = exports.ROUTR_DEFAULT_PEER_NAME = exports.ROUTR_DEFAULT_PEER_AOR = exports.ROUTR_API_ENDPOINT = exports.OWNER_PASSWORD = exports.OWNER_NAME = exports.OWNER_EMAIL = exports.NATS_URL = exports.INTEGRATIONS_FILE = exports.INFLUXDB_USERNAME = exports.INFLUXDB_URL = exports.INFLUXDB_TOKEN = exports.INFLUXDB_PASSWORD = exports.INFLUXDB_ORG = exports.AUTHZ_SERVICE_METHODS = exports.AUTHZ_SERVICE_PORT = exports.AUTHZ_SERVICE_HOST = exports.AUTHZ_SERVICE_ENABLED = exports.IDENTITY_WORKSPACE_INVITATION_FAIL_URL = exports.IDENTITY_REFRESH_TOKEN_EXPIRES_IN = exports.IDENTITY_PUBLIC_KEY = exports.IDENTITY_PRIVATE_KEY = exports.IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET = exports.IDENTITY_OAUTH2_GITHUB_CLIENT_ID = exports.IDENTITY_OAUTH2_GITHUB_ENABLED = exports.IDENTITY_USER_VERIFICATION_REQUIRED = exports.IDENTITY_ISSUER = exports.IDENTITY_ID_TOKEN_EXPIRES_IN = exports.IDENTITY_AUDIENCE = exports.IDENTITY_ACCESS_TOKEN_EXPIRES_IN = exports.HTTP_BRIDGE_PORT = exports.DEFAULT_NATS_QUEUE_GROUP = exports.CLOAK_ENCRYPTION_KEY = exports.CALLS_TRACK_CALL_SUBJECT = exports.CALLS_CREATE_SUBJECT = exports.ASTERISK_TRUNK = exports.ASTERISK_SYSTEM_DOMAIN = exports.ASTERISK_ARI_USERNAME = exports.ASTERISK_ARI_SECRET = exports.ASTERISK_ARI_PROXY_URL = exports.APP_URL = exports.APISERVER_HOST = exports.APISERVER_BIND_ADDR = void 0;
|
|
8
|
+
exports.TWILIO_PHONE_NUMBER = exports.TWILIO_AUTH_TOKEN = exports.TWILIO_ACCOUNT_SID = exports.TEMPLATES_DIR = void 0;
|
|
9
9
|
/*
|
|
10
10
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
11
11
|
* http://github.com/fonoster/fonoster
|
|
@@ -34,6 +34,9 @@ if (process.env.NODE_ENV === "dev") {
|
|
|
34
34
|
const e = process.env;
|
|
35
35
|
(0, common_1.assertEnvsAreSet)([
|
|
36
36
|
"APP_URL",
|
|
37
|
+
"ASTERISK_ARI_PROXY_URL",
|
|
38
|
+
"ASTERISK_ARI_USERNAME",
|
|
39
|
+
"ASTERISK_ARI_SECRET",
|
|
37
40
|
"CLOAK_ENCRYPTION_KEY",
|
|
38
41
|
"SMTP_HOST",
|
|
39
42
|
"SMTP_SENDER",
|
|
@@ -46,11 +49,7 @@ const e = process.env;
|
|
|
46
49
|
"INFLUXDB_INIT_USERNAME",
|
|
47
50
|
"INFLUXDB_INIT_PASSWORD",
|
|
48
51
|
"INFLUXDB_INIT_ORG",
|
|
49
|
-
"INFLUXDB_INIT_BUCKET",
|
|
50
52
|
"INFLUXDB_INIT_TOKEN",
|
|
51
|
-
"ASTERISK_ARI_PROXY_URL",
|
|
52
|
-
"ASTERISK_ARI_USERNAME",
|
|
53
|
-
"ASTERISK_ARI_SECRET",
|
|
54
53
|
"NATS_URL"
|
|
55
54
|
]);
|
|
56
55
|
const IDENTITY_PRIVATE_KEY_PATH = e.IDENTITY_PRIVATE_KEY_PATH || "/opt/fonoster/keys/private.pem";
|
|
@@ -102,7 +101,6 @@ exports.AUTHZ_SERVICE_METHODS = e.AUTHZ_SERVICE_METHODS
|
|
|
102
101
|
? e.AUTHZ_SERVICE_METHODS.split(",")
|
|
103
102
|
: ["/fonoster.calls.v1beta2.Calls/CreateCall"];
|
|
104
103
|
// InfluxDB configurations
|
|
105
|
-
exports.INFLUXDB_BUCKET = e.INFLUXDB_INIT_BUCKET;
|
|
106
104
|
exports.INFLUXDB_ORG = e.INFLUXDB_INIT_ORG;
|
|
107
105
|
exports.INFLUXDB_PASSWORD = e.INFLUXDB_INIT_PASSWORD;
|
|
108
106
|
exports.INFLUXDB_TOKEN = e.INFLUXDB_INIT_TOKEN;
|
|
@@ -28,6 +28,7 @@ function createInfluxDbPub(config) {
|
|
|
28
28
|
const client = new influxdb_client_1.InfluxDB({ url, token });
|
|
29
29
|
const writeClient = client.getWriteApi(org, bucket, "ns");
|
|
30
30
|
return (event) => {
|
|
31
|
+
logger.verbose("writing event to InfluxDB", event);
|
|
31
32
|
const point = new influxdb_client_1.Point(event.name).tag("callId", event.tag);
|
|
32
33
|
Object.entries(event.data).forEach(([key, value]) => {
|
|
33
34
|
if (typeof value === "number") {
|
|
@@ -19,7 +19,7 @@ exports.mapCallDirectionToEnum = mapCallDirectionToEnum;
|
|
|
19
19
|
* See the License for the specific language governing permissions and
|
|
20
20
|
* limitations under the License.
|
|
21
21
|
*/
|
|
22
|
-
const types_1 = require("
|
|
22
|
+
const types_1 = require("@fonoster/types");
|
|
23
23
|
function mapCallDirectionToEnum(direction) {
|
|
24
24
|
switch (direction) {
|
|
25
25
|
case "from-pstn":
|
package/dist/events/nats.js
CHANGED
|
@@ -71,7 +71,7 @@ function streamEvents(subscription, callback) {
|
|
|
71
71
|
*/
|
|
72
72
|
function watchNats(natsUrl, callback) {
|
|
73
73
|
(() => __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
const nc = yield (0, nats_1.connect)({ servers: natsUrl });
|
|
74
|
+
const nc = yield (0, nats_1.connect)({ servers: natsUrl, maxReconnectAttempts: -1 });
|
|
75
75
|
const a = nc.subscribe(ROUTR_CALL_SUBJECT);
|
|
76
76
|
logger.verbose("connected to nats", { natsUrl });
|
|
77
77
|
logger.verbose("subscribed to subjects", {
|
|
@@ -21,6 +21,7 @@ exports.transformEvent = transformEvent;
|
|
|
21
21
|
*/
|
|
22
22
|
const types_1 = require("@fonoster/types");
|
|
23
23
|
const mapCallDirectionToEnum_1 = require("./mapCallDirectionToEnum");
|
|
24
|
+
const uuid_1 = require("uuid");
|
|
24
25
|
const ACCESS_KEY_ID_HEADER = "X-Access-Key-Id";
|
|
25
26
|
const CALL_REF_HEADER = "X-Call-Ref";
|
|
26
27
|
const CALL_DIRECTION_HEADER = "X-Call-Direction";
|
|
@@ -48,13 +49,17 @@ function transformEvent(event) {
|
|
|
48
49
|
transformedEvent.to = to.split("@")[0].replace("sip:", "");
|
|
49
50
|
}
|
|
50
51
|
const extraHeaders = event.extraHeaders;
|
|
51
|
-
if (extraHeaders) {
|
|
52
|
+
if (extraHeaders && Object.keys(extraHeaders).length > 0) {
|
|
52
53
|
if (extraHeaders[ACCESS_KEY_ID_HEADER]) {
|
|
53
54
|
transformedEvent.accessKeyId = extraHeaders[ACCESS_KEY_ID_HEADER];
|
|
54
55
|
}
|
|
55
56
|
if (extraHeaders[CALL_REF_HEADER]) {
|
|
56
57
|
transformedEvent.ref = extraHeaders[CALL_REF_HEADER];
|
|
57
58
|
}
|
|
59
|
+
else {
|
|
60
|
+
// SIP originated calls don't have a ref so we need to create one
|
|
61
|
+
transformedEvent.ref = (0, uuid_1.v4)();
|
|
62
|
+
}
|
|
58
63
|
if (extraHeaders[DOD_NUMBER_HEADER]) {
|
|
59
64
|
transformedEvent.from = extraHeaders[DOD_NUMBER_HEADER];
|
|
60
65
|
}
|
package/dist/index.js
CHANGED
|
@@ -66,13 +66,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
66
66
|
*/
|
|
67
67
|
const identity_1 = require("@fonoster/identity");
|
|
68
68
|
const logger_1 = require("@fonoster/logger");
|
|
69
|
-
const types_1 = require("./calls/types");
|
|
70
69
|
const runServices_1 = __importDefault(require("./core/runServices"));
|
|
71
70
|
const upsertDefaultPeer_1 = require("./core/upsertDefaultPeer");
|
|
72
71
|
const envs_1 = require("./envs");
|
|
73
72
|
const createInfluxDbPub_1 = require("./events/createInfluxDbPub");
|
|
74
73
|
const nats_1 = require("./events/nats");
|
|
75
74
|
const transformEvent_1 = require("./events/transformEvent");
|
|
75
|
+
const common_1 = require("@fonoster/common");
|
|
76
76
|
Promise.resolve().then(() => __importStar(require("./core/removeSwaggerNotice")));
|
|
77
77
|
function main() {
|
|
78
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -92,13 +92,13 @@ function main() {
|
|
|
92
92
|
url: envs_1.INFLUXDB_URL,
|
|
93
93
|
token: envs_1.INFLUXDB_TOKEN,
|
|
94
94
|
org: envs_1.INFLUXDB_ORG,
|
|
95
|
-
bucket:
|
|
95
|
+
bucket: common_1.INFLUXDB_CALLS_BUCKET
|
|
96
96
|
});
|
|
97
97
|
// Subscribe to NATs events
|
|
98
98
|
(0, nats_1.watchNats)(envs_1.NATS_URL, (event) => {
|
|
99
99
|
logger.verbose("received nats event", Object.assign({}, event));
|
|
100
100
|
pubToInfluxDb({
|
|
101
|
-
name:
|
|
101
|
+
name: common_1.CALL_DETAIL_RECORD_MEASUREMENT,
|
|
102
102
|
tag: event.callId,
|
|
103
103
|
data: (0, transformEvent_1.transformEvent)(event)
|
|
104
104
|
});
|
|
@@ -63,7 +63,7 @@ function connectToAri(filesServer) {
|
|
|
63
63
|
});
|
|
64
64
|
logger.info("asterisk is ready");
|
|
65
65
|
const createContainer = (0, integrations_1.makeCreateContainer)(db_1.prisma, envs_1.INTEGRATIONS_FILE);
|
|
66
|
-
const nats = yield (0, nats_1.connect)({ servers: envs_1.NATS_URL });
|
|
66
|
+
const nats = yield (0, nats_1.connect)({ servers: envs_1.NATS_URL, maxReconnectAttempts: -1 });
|
|
67
67
|
const dispatcher = new VoiceDispatcher_1.VoiceDispatcher(ari, nats, (0, makeCreateVoiceClient_1.makeCreateVoiceClient)(createContainer, filesServer));
|
|
68
68
|
dispatcher.start();
|
|
69
69
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fonoster/apiserver",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.21",
|
|
4
4
|
"description": "APIServer for Fonoster",
|
|
5
5
|
"author": "Pedro Sanders <psanders@fonoster.com>",
|
|
6
6
|
"homepage": "https://github.com/fonoster/fonoster#readme",
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@deepgram/sdk": "^3.5.1",
|
|
24
|
-
"@fonoster/authz": "^0.8.
|
|
25
|
-
"@fonoster/common": "^0.8.
|
|
26
|
-
"@fonoster/identity": "^0.8.
|
|
27
|
-
"@fonoster/logger": "^0.8.
|
|
28
|
-
"@fonoster/sipnet": "^0.8.
|
|
29
|
-
"@fonoster/streams": "^0.8.
|
|
30
|
-
"@fonoster/types": "^0.8.
|
|
24
|
+
"@fonoster/authz": "^0.8.21",
|
|
25
|
+
"@fonoster/common": "^0.8.21",
|
|
26
|
+
"@fonoster/identity": "^0.8.21",
|
|
27
|
+
"@fonoster/logger": "^0.8.20",
|
|
28
|
+
"@fonoster/sipnet": "^0.8.21",
|
|
29
|
+
"@fonoster/streams": "^0.8.20",
|
|
30
|
+
"@fonoster/types": "^0.8.21",
|
|
31
31
|
"@google-cloud/speech": "^6.6.0",
|
|
32
32
|
"@google-cloud/text-to-speech": "^5.3.0",
|
|
33
33
|
"@grpc/grpc-js": "~1.10.6",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"@types/uuid": "^10.0.0",
|
|
74
74
|
"@types/validator": "^13.12.0"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "2590a20d7309494faca50831ac0c0abdb14c2308"
|
|
77
77
|
}
|