@routr/processor 2.0.8-alpha.4 → 2.0.8-alpha.40
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/alterations.d.ts +5 -3
- package/dist/alterations.js +92 -39
- package/dist/extensions.js +2 -2
- package/dist/helper.d.ts +14 -10
- package/dist/helper.js +26 -34
- package/dist/processor.js +1 -1
- package/dist/response.d.ts +5 -0
- package/dist/response.js +50 -6
- package/dist/tracer.js +1 -1
- package/package.json +8 -7
package/dist/alterations.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { MessageRequest, Route } from "@routr/common";
|
|
2
2
|
export declare const updateRequestURI: (route: Route) => (request: MessageRequest) => MessageRequest;
|
|
3
3
|
export declare const addSelfVia: (route: Route) => (request: MessageRequest) => MessageRequest;
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
4
|
+
export declare const addRouteToNextHop: (route: Route) => (request: MessageRequest) => MessageRequest;
|
|
5
|
+
export declare const addRouteToPeerEdgePort: (route: Route) => (request: MessageRequest) => MessageRequest;
|
|
6
6
|
export declare const applyXHeaders: (route: Route) => (request: MessageRequest) => MessageRequest;
|
|
7
7
|
export declare const addSelfRecordRoute: (route: Route) => (request: MessageRequest) => MessageRequest;
|
|
8
8
|
export declare const addXEdgePortRef: (request: MessageRequest) => MessageRequest;
|
|
9
9
|
export declare const removeXEdgePortRef: (request: MessageRequest) => MessageRequest;
|
|
10
10
|
export declare const removeAuthorization: (request: MessageRequest) => MessageRequest;
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const removeSelfRoutes: (request: MessageRequest) => MessageRequest;
|
|
12
12
|
export declare const removeTopVia: (request: MessageRequest) => MessageRequest;
|
|
13
13
|
export declare const decreaseMaxForwards: (request: MessageRequest) => MessageRequest;
|
|
14
|
+
export declare const fixInvalidContact: (request: MessageRequest) => MessageRequest;
|
|
15
|
+
export declare const enforceE164: (enforceE164: boolean, validateMobilePrefix: boolean) => (request: MessageRequest) => MessageRequest;
|
package/dist/alterations.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.decreaseMaxForwards = exports.removeTopVia = exports.
|
|
3
|
+
exports.enforceE164 = exports.fixInvalidContact = exports.decreaseMaxForwards = exports.removeTopVia = exports.removeSelfRoutes = exports.removeAuthorization = exports.removeXEdgePortRef = exports.addXEdgePortRef = exports.addSelfRecordRoute = exports.applyXHeaders = exports.addRouteToPeerEdgePort = exports.addRouteToNextHop = exports.addSelfVia = exports.updateRequestURI = void 0;
|
|
4
4
|
/*
|
|
5
|
-
* Copyright (C)
|
|
5
|
+
* Copyright (C) 2023 by Fonoster Inc (https://fonoster.com)
|
|
6
6
|
* http://github.com/fonoster/routr
|
|
7
7
|
*
|
|
8
8
|
* This file is part of Routr
|
|
@@ -20,6 +20,7 @@ exports.decreaseMaxForwards = exports.removeTopVia = exports.removeRoutes = expo
|
|
|
20
20
|
* limitations under the License.
|
|
21
21
|
*/
|
|
22
22
|
const common_1 = require("@routr/common");
|
|
23
|
+
const phone_1 = require("phone");
|
|
23
24
|
const helper_1 = require("./helper");
|
|
24
25
|
// Q: Should we deprecate this method since we are not doing strict routing?
|
|
25
26
|
const updateRequestURI = (route) => (request) => {
|
|
@@ -37,29 +38,20 @@ const updateRequestURI = (route) => (request) => {
|
|
|
37
38
|
};
|
|
38
39
|
exports.updateRequestURI = updateRequestURI;
|
|
39
40
|
const addSelfVia = (route) => (request) => {
|
|
40
|
-
var _a;
|
|
41
41
|
const req = common_1.Helper.deepCopy(request);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
// If the nextHopHost host is local, then use use lp to construct via
|
|
49
|
-
// otherwise, we use the first available external ip.
|
|
50
|
-
const via = common_1.IpUtils.isLocalnet(req.localnets, nextHopHost)
|
|
51
|
-
? route.egressListeningPoint
|
|
52
|
-
: {
|
|
53
|
-
// fallback to lp host if there is no external ips
|
|
54
|
-
host: (_a = req.externalAddrs[0]) !== null && _a !== void 0 ? _a : egressListeningPoint.host,
|
|
55
|
-
port: egressListeningPoint.port,
|
|
56
|
-
transport: egressListeningPoint.transport
|
|
57
|
-
};
|
|
58
|
-
req.message.via = [via, ...req.message.via];
|
|
42
|
+
const routingObjects = request.edgePortRef === route.edgePortRef ? route : request;
|
|
43
|
+
const targetIntf = (0, helper_1.getEdgeInterface)(Object.assign(Object.assign({}, routingObjects), { endpointIntf: route }));
|
|
44
|
+
req.message.via = [
|
|
45
|
+
Object.assign(Object.assign({}, targetIntf), { rPortFlag: true }),
|
|
46
|
+
...req.message.via
|
|
47
|
+
];
|
|
59
48
|
return req;
|
|
60
49
|
};
|
|
61
50
|
exports.addSelfVia = addSelfVia;
|
|
62
|
-
const
|
|
51
|
+
const addRouteToNextHop = (route) => (request) => {
|
|
52
|
+
if (request.message.requestUri.host === route.host) {
|
|
53
|
+
return request;
|
|
54
|
+
}
|
|
63
55
|
const req = common_1.Helper.deepCopy(request);
|
|
64
56
|
const r = {
|
|
65
57
|
address: {
|
|
@@ -74,15 +66,21 @@ const addRoute = (route) => (request) => {
|
|
|
74
66
|
req.message.route = [r, ...req.message.route];
|
|
75
67
|
return req;
|
|
76
68
|
};
|
|
77
|
-
exports.
|
|
78
|
-
const
|
|
69
|
+
exports.addRouteToNextHop = addRouteToNextHop;
|
|
70
|
+
const addRouteToPeerEdgePort = (route) => (request) => {
|
|
79
71
|
const req = common_1.Helper.deepCopy(request);
|
|
72
|
+
const targetIntf = (0, helper_1.getEdgeInterface)({
|
|
73
|
+
listeningPoints: route.listeningPoints,
|
|
74
|
+
localnets: route.localnets,
|
|
75
|
+
externalAddrs: route.externalAddrs,
|
|
76
|
+
endpointIntf: route
|
|
77
|
+
});
|
|
80
78
|
const r = {
|
|
81
79
|
address: {
|
|
82
80
|
uri: {
|
|
83
|
-
host:
|
|
84
|
-
port:
|
|
85
|
-
transportParam:
|
|
81
|
+
host: targetIntf.host,
|
|
82
|
+
port: targetIntf.port,
|
|
83
|
+
transportParam: targetIntf.transport,
|
|
86
84
|
lrParam: true
|
|
87
85
|
}
|
|
88
86
|
}
|
|
@@ -90,14 +88,14 @@ const addRouteToListeningPoint = (route) => (request) => {
|
|
|
90
88
|
req.message.route = [r, ...req.message.route];
|
|
91
89
|
return req;
|
|
92
90
|
};
|
|
93
|
-
exports.
|
|
91
|
+
exports.addRouteToPeerEdgePort = addRouteToPeerEdgePort;
|
|
94
92
|
const applyXHeaders = (route) => (request) => {
|
|
95
93
|
const req = common_1.Helper.deepCopy(request);
|
|
96
94
|
if (route.headers && route.headers.length > 0) {
|
|
97
95
|
const headersToRemove = route.headers
|
|
98
96
|
.filter((h) => h.action === common_1.CommonTypes.HeaderModifierAction.REMOVE)
|
|
99
|
-
.map((h) => h.name);
|
|
100
|
-
const headersToAdd = route.headers.filter((h) => h.action
|
|
97
|
+
.map((h) => h.name.toLowerCase());
|
|
98
|
+
const headersToAdd = route.headers.filter((h) => h.action === common_1.CommonTypes.HeaderModifierAction.ADD);
|
|
101
99
|
req.message.extensions = req.message.extensions.filter((h) => !headersToRemove.includes(h.name.toLowerCase()));
|
|
102
100
|
headersToAdd.forEach((h) => {
|
|
103
101
|
req.message.extensions.push({ name: h.name, value: h.value });
|
|
@@ -108,8 +106,18 @@ const applyXHeaders = (route) => (request) => {
|
|
|
108
106
|
exports.applyXHeaders = applyXHeaders;
|
|
109
107
|
const addSelfRecordRoute = (route) => (request) => {
|
|
110
108
|
const req = common_1.Helper.deepCopy(request);
|
|
111
|
-
const originIntf = (0, helper_1.getEdgeInterface)(
|
|
112
|
-
|
|
109
|
+
const originIntf = (0, helper_1.getEdgeInterface)({
|
|
110
|
+
listeningPoints: request.listeningPoints,
|
|
111
|
+
localnets: request.localnets,
|
|
112
|
+
externalAddrs: request.externalAddrs,
|
|
113
|
+
endpointIntf: request.sender
|
|
114
|
+
});
|
|
115
|
+
const targetIntf = (0, helper_1.getEdgeInterface)({
|
|
116
|
+
listeningPoints: request.listeningPoints,
|
|
117
|
+
localnets: request.localnets,
|
|
118
|
+
externalAddrs: request.externalAddrs,
|
|
119
|
+
endpointIntf: route
|
|
120
|
+
});
|
|
113
121
|
const originRoute = {
|
|
114
122
|
address: {
|
|
115
123
|
uri: {
|
|
@@ -174,21 +182,21 @@ const removeAuthorization = (request) => {
|
|
|
174
182
|
return req;
|
|
175
183
|
};
|
|
176
184
|
exports.removeAuthorization = removeAuthorization;
|
|
177
|
-
const
|
|
185
|
+
const removeSelfRoutes = (request) => {
|
|
178
186
|
const req = common_1.Helper.deepCopy(request);
|
|
187
|
+
const localIps = request.localnets.map((ln) => ln.split("/")[0]);
|
|
179
188
|
req.message.route = req.message.route.filter((r) => {
|
|
180
189
|
var _a;
|
|
181
|
-
const
|
|
182
|
-
const lp = common_1.Helper.getListeningPoint(request, ((_a = r.address.uri.transportParam) === null || _a === void 0 ? void 0 : _a.toLowerCase()) ||
|
|
190
|
+
const lp = common_1.Helper.getListeningPoint(request.listeningPoints, ((_a = r.address.uri.transportParam) === null || _a === void 0 ? void 0 : _a.toUpperCase()) ||
|
|
183
191
|
common_1.Transport.UDP);
|
|
184
|
-
const
|
|
185
|
-
return !((localIps.includes(
|
|
186
|
-
request.externalAddrs.includes(
|
|
187
|
-
|
|
192
|
+
const routeUri = r.address.uri;
|
|
193
|
+
return !((localIps.includes(routeUri.host) ||
|
|
194
|
+
request.externalAddrs.includes(routeUri.host)) &&
|
|
195
|
+
routeUri.port === lp.port);
|
|
188
196
|
});
|
|
189
197
|
return req;
|
|
190
198
|
};
|
|
191
|
-
exports.
|
|
199
|
+
exports.removeSelfRoutes = removeSelfRoutes;
|
|
192
200
|
const removeTopVia = (request) => {
|
|
193
201
|
const req = common_1.Helper.deepCopy(request);
|
|
194
202
|
req.message.via.shift();
|
|
@@ -204,3 +212,48 @@ const decreaseMaxForwards = (request) => {
|
|
|
204
212
|
return req;
|
|
205
213
|
};
|
|
206
214
|
exports.decreaseMaxForwards = decreaseMaxForwards;
|
|
215
|
+
const fixInvalidContact = (request) => {
|
|
216
|
+
var _a;
|
|
217
|
+
const req = common_1.Helper.deepCopy(request);
|
|
218
|
+
const via = req.message.via[0];
|
|
219
|
+
if ((_a = req.message.contact) === null || _a === void 0 ? void 0 : _a.address.uri.host.includes(".invalid")) {
|
|
220
|
+
req.message.contact.address.uri.host = via.received || via.host;
|
|
221
|
+
req.message.contact.address.uri.port =
|
|
222
|
+
via.rPort !== -1 ? via.rPort : via.port;
|
|
223
|
+
req.message.contact.address.uri.transportParam =
|
|
224
|
+
via.transport.toUpperCase();
|
|
225
|
+
}
|
|
226
|
+
return req;
|
|
227
|
+
};
|
|
228
|
+
exports.fixInvalidContact = fixInvalidContact;
|
|
229
|
+
// Will do the best effort to normalize from/to/requestUri users as e164 values
|
|
230
|
+
const enforceE164 = (enforceE164, validateMobilePrefix) => (request) => {
|
|
231
|
+
var _a, _b, _c;
|
|
232
|
+
if (!enforceE164)
|
|
233
|
+
return request;
|
|
234
|
+
const req = common_1.Helper.deepCopy(request);
|
|
235
|
+
// Removes the + to ensure not having duplicates
|
|
236
|
+
const fromUser = (_a = req.message.from.address.uri.user) === null || _a === void 0 ? void 0 : _a.replace("+", "");
|
|
237
|
+
const toUser = (_b = req.message.to.address.uri.user) === null || _b === void 0 ? void 0 : _b.replace("+", "");
|
|
238
|
+
const requestUriUser = (_c = req.message.requestUri.user) === null || _c === void 0 ? void 0 : _c.replace("+", "");
|
|
239
|
+
// Normalizing as e164
|
|
240
|
+
const normalizedTo = (0, phone_1.phone)(`+${toUser}`, { validateMobilePrefix });
|
|
241
|
+
const normalizedFrom = (0, phone_1.phone)(`+${fromUser}`, {
|
|
242
|
+
validateMobilePrefix: true
|
|
243
|
+
});
|
|
244
|
+
const normalizedReqUri = (0, phone_1.phone)(`+${requestUriUser}`, {
|
|
245
|
+
validateMobilePrefix
|
|
246
|
+
});
|
|
247
|
+
// If the normalization worked we overwrite the original values
|
|
248
|
+
if (normalizedFrom.isValid) {
|
|
249
|
+
req.message.from.address.uri.user = normalizedFrom.phoneNumber;
|
|
250
|
+
}
|
|
251
|
+
if (normalizedTo.isValid) {
|
|
252
|
+
req.message.to.address.uri.user = normalizedTo.phoneNumber;
|
|
253
|
+
}
|
|
254
|
+
if (normalizedReqUri.isValid) {
|
|
255
|
+
req.message.requestUri.user = normalizedReqUri.phoneNumber;
|
|
256
|
+
}
|
|
257
|
+
return req;
|
|
258
|
+
};
|
|
259
|
+
exports.enforceE164 = enforceE164;
|
package/dist/extensions.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.removeHeader = exports.addHeader = exports.updateHeader = exports.getHeaderValue = void 0;
|
|
4
4
|
/*
|
|
5
|
-
* Copyright (C)
|
|
5
|
+
* Copyright (C) 2023 by Fonoster Inc (https://fonoster.com)
|
|
6
6
|
* http://github.com/fonoster/routr
|
|
7
7
|
*
|
|
8
8
|
* This file is part of Routr
|
|
@@ -22,7 +22,7 @@ exports.removeHeader = exports.addHeader = exports.updateHeader = exports.getHea
|
|
|
22
22
|
const common_1 = require("@routr/common");
|
|
23
23
|
const getHeaderValue = (request, name) => {
|
|
24
24
|
var _a;
|
|
25
|
-
return (_a = request.message.extensions.find((ext) => ext.name.toLowerCase() === name.toLowerCase())) === null || _a === void 0 ? void 0 : _a.value;
|
|
25
|
+
return ((_a = request.message.extensions.find((ext) => ext.name.toLowerCase() === (name === null || name === void 0 ? void 0 : name.toLowerCase()))) === null || _a === void 0 ? void 0 : _a.value) || null;
|
|
26
26
|
};
|
|
27
27
|
exports.getHeaderValue = getHeaderValue;
|
|
28
28
|
const updateHeader = (request, header) => {
|
package/dist/helper.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import { MessageRequest,
|
|
1
|
+
import { MessageRequest, Transport, NetInterface } from "@routr/common";
|
|
2
2
|
export declare const isTypeResponse: (request: MessageRequest) => boolean;
|
|
3
3
|
export declare const isTypeRequest: (request: MessageRequest) => boolean;
|
|
4
|
-
export declare const getEdgeInterface: (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export declare
|
|
4
|
+
export declare const getEdgeInterface: (nets: {
|
|
5
|
+
listeningPoints: NetInterface[];
|
|
6
|
+
endpointIntf: NetInterface;
|
|
7
|
+
localnets: string[];
|
|
8
|
+
externalAddrs: string[];
|
|
9
|
+
}) => NetInterface;
|
|
10
|
+
export declare const hasSDP: (request: MessageRequest) => boolean;
|
|
11
|
+
export declare const isOk: (request: MessageRequest) => boolean;
|
|
12
|
+
export declare const isRinging: (request: MessageRequest) => boolean;
|
|
13
|
+
export declare const isWebRTC: (transport: Transport) => boolean;
|
|
14
|
+
export declare const isInviteOrAckWithSDP: (request: MessageRequest) => boolean;
|
|
15
|
+
export declare const isOkOrRingingWithSDP: (request: MessageRequest) => boolean;
|
|
16
|
+
export declare const isBye: (request: MessageRequest) => boolean;
|
package/dist/helper.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isBye = exports.isOkOrRingingWithSDP = exports.isInviteOrAckWithSDP = exports.isWebRTC = exports.isRinging = exports.isOk = exports.hasSDP = exports.getEdgeInterface = exports.isTypeRequest = exports.isTypeResponse = void 0;
|
|
4
4
|
/*
|
|
5
|
-
* Copyright (C)
|
|
5
|
+
* Copyright (C) 2023 by Fonoster Inc (https://fonoster.com)
|
|
6
6
|
* http://github.com/fonoster/routr
|
|
7
7
|
*
|
|
8
8
|
* This file is part of Routr
|
|
@@ -21,16 +21,16 @@ exports.createRouteFromLastMessage = exports.getEdgeInterface = exports.isTypeRe
|
|
|
21
21
|
*/
|
|
22
22
|
const common_1 = require("@routr/common");
|
|
23
23
|
const common_2 = require("@routr/common");
|
|
24
|
-
const index_1 = require("./index");
|
|
25
24
|
const isTypeResponse = (request) => request.message.messageType === common_1.CommonTypes.MessageType.RESPONSE;
|
|
26
25
|
exports.isTypeResponse = isTypeResponse;
|
|
27
26
|
const isTypeRequest = (request) => !(0, exports.isTypeResponse)(request);
|
|
28
27
|
exports.isTypeRequest = isTypeRequest;
|
|
29
|
-
const getEdgeInterface = (
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
|
|
28
|
+
const getEdgeInterface = (nets) => {
|
|
29
|
+
const { listeningPoints, endpointIntf, localnets, externalAddrs } = nets;
|
|
30
|
+
const localnetIp = common_2.IpUtils.getLocalnetIp(localnets, endpointIntf.host);
|
|
31
|
+
const host = localnetIp !== null && localnetIp !== void 0 ? localnetIp : externalAddrs[0];
|
|
32
|
+
const lp = common_1.Helper.getListeningPoint(listeningPoints, endpointIntf.transport);
|
|
33
|
+
if (!localnetIp && externalAddrs.length === 0) {
|
|
34
34
|
throw new Error(`unable to find a valid interface for host ${endpointIntf.host} and transport ${lp.transport}`);
|
|
35
35
|
}
|
|
36
36
|
if (localnetIp && lp.host !== "0.0.0.0" && lp.host !== host) {
|
|
@@ -43,29 +43,21 @@ const getEdgeInterface = (request, endpointIntf) => {
|
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
45
|
exports.getEdgeInterface = getEdgeInterface;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
transport: uri.transportParam.toLowerCase(),
|
|
65
|
-
registeredOn: Date.now(),
|
|
66
|
-
sessionCount,
|
|
67
|
-
expires: index_1.Target.getTargetExpires(request),
|
|
68
|
-
egressListeningPoint
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
exports.createRouteFromLastMessage = createRouteFromLastMessage;
|
|
46
|
+
const hasSDP = (request) => { var _a; return ((_a = request.message.body) === null || _a === void 0 ? void 0 : _a.length) > 0; };
|
|
47
|
+
exports.hasSDP = hasSDP;
|
|
48
|
+
const isOk = (request) => request.message.responseType === common_1.CommonTypes.ResponseType.OK;
|
|
49
|
+
exports.isOk = isOk;
|
|
50
|
+
const isRinging = (request) => request.message.responseType === common_1.CommonTypes.ResponseType.RINGING;
|
|
51
|
+
exports.isRinging = isRinging;
|
|
52
|
+
const isWebRTC = (transport) => transport === common_1.Transport.WS || transport === common_1.Transport.WSS;
|
|
53
|
+
exports.isWebRTC = isWebRTC;
|
|
54
|
+
const isInviteOrAckWithSDP = (request) => (0, exports.isTypeRequest)(request) &&
|
|
55
|
+
(0, exports.hasSDP)(request) &&
|
|
56
|
+
(request.method === common_1.Method.INVITE || request.method === common_1.Method.ACK);
|
|
57
|
+
exports.isInviteOrAckWithSDP = isInviteOrAckWithSDP;
|
|
58
|
+
const isOkOrRingingWithSDP = (request) => (0, exports.isTypeResponse)(request) &&
|
|
59
|
+
(0, exports.hasSDP)(request) &&
|
|
60
|
+
((0, exports.isOk)(request) || (0, exports.isRinging)(request));
|
|
61
|
+
exports.isOkOrRingingWithSDP = isOkOrRingingWithSDP;
|
|
62
|
+
const isBye = (request) => (0, exports.isTypeRequest)(request) && request.method === common_1.Method.BYE;
|
|
63
|
+
exports.isBye = isBye;
|
package/dist/processor.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
/*
|
|
7
|
-
* Copyright (C)
|
|
7
|
+
* Copyright (C) 2023 by Fonoster Inc (https://fonoster.com)
|
|
8
8
|
* http://github.com/fonoster/routr
|
|
9
9
|
*
|
|
10
10
|
* This file is part of Routr
|
package/dist/response.d.ts
CHANGED
|
@@ -31,6 +31,10 @@ export default class Response {
|
|
|
31
31
|
* Sends a not implemented response.
|
|
32
32
|
*/
|
|
33
33
|
sendNotImplemented(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Sends a internal server error response.
|
|
36
|
+
*/
|
|
37
|
+
sendInternalServerError(): void;
|
|
34
38
|
/**
|
|
35
39
|
* Sends a response with a SIP Message.
|
|
36
40
|
*
|
|
@@ -41,6 +45,7 @@ export default class Response {
|
|
|
41
45
|
* Sends an error response.
|
|
42
46
|
*
|
|
43
47
|
* @param {Error} error - The error to be sent.
|
|
48
|
+
* @deprecated
|
|
44
49
|
*/
|
|
45
50
|
sendError(error: Error): void;
|
|
46
51
|
}
|
package/dist/response.js
CHANGED
|
@@ -1,7 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (C) 2023 by Fonoster Inc (https://fonoster.com)
|
|
5
|
+
* http://github.com/fonoster/routr
|
|
6
|
+
*
|
|
7
|
+
* This file is part of Routr
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the MIT License (the "License")
|
|
10
|
+
* you may not use this file except in compliance with
|
|
11
|
+
* the License. You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* https://opensource.org/licenses/MIT
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
const common_1 = require("@routr/common");
|
|
22
|
+
const buildResponse = (info) => {
|
|
23
|
+
return {
|
|
24
|
+
message: {
|
|
25
|
+
responseType: info.code,
|
|
26
|
+
reasonPhrase: info.reasonPhrase,
|
|
27
|
+
extensions: info.extraHeaders
|
|
28
|
+
}
|
|
29
|
+
};
|
|
5
30
|
};
|
|
6
31
|
/**
|
|
7
32
|
* Response object.
|
|
@@ -21,25 +46,43 @@ class Response {
|
|
|
21
46
|
* @param {object[]} extraHeaders - Optional extra headers to be sent.
|
|
22
47
|
*/
|
|
23
48
|
sendOk(extraHeaders) {
|
|
24
|
-
this.callback(null, buildResponse(
|
|
49
|
+
this.callback(null, buildResponse({ code: common_1.CommonTypes.ResponseType.OK, extraHeaders }));
|
|
25
50
|
}
|
|
26
51
|
/**
|
|
27
52
|
* Sends a method not allowed response.
|
|
28
53
|
*/
|
|
29
54
|
sendMethodNotAllowed() {
|
|
30
|
-
this.callback(null, buildResponse(
|
|
55
|
+
this.callback(null, buildResponse({
|
|
56
|
+
code: common_1.CommonTypes.ResponseType.METHOD_NOT_ALLOWED,
|
|
57
|
+
reasonPhrase: "Method Not Allowed"
|
|
58
|
+
}));
|
|
31
59
|
}
|
|
32
60
|
/**
|
|
33
61
|
* Sends a not found response.
|
|
34
62
|
*/
|
|
35
63
|
sendNotFound() {
|
|
36
|
-
this.callback(null, buildResponse(
|
|
64
|
+
this.callback(null, buildResponse({
|
|
65
|
+
code: common_1.CommonTypes.ResponseType.NOT_FOUND,
|
|
66
|
+
reasonPhrase: "Not Found"
|
|
67
|
+
}));
|
|
37
68
|
}
|
|
38
69
|
/**
|
|
39
70
|
* Sends a not implemented response.
|
|
40
71
|
*/
|
|
41
72
|
sendNotImplemented() {
|
|
42
|
-
this.callback(null, buildResponse(
|
|
73
|
+
this.callback(null, buildResponse({
|
|
74
|
+
code: common_1.CommonTypes.ResponseType.NOT_IMPLEMENTED,
|
|
75
|
+
reasonPhrase: "Not Implemented"
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Sends a internal server error response.
|
|
80
|
+
*/
|
|
81
|
+
sendInternalServerError() {
|
|
82
|
+
this.callback(null, buildResponse({
|
|
83
|
+
code: common_1.CommonTypes.ResponseType.SERVER_INTERNAL_ERROR,
|
|
84
|
+
reasonPhrase: "Internal Server Error"
|
|
85
|
+
}));
|
|
43
86
|
}
|
|
44
87
|
/**
|
|
45
88
|
* Sends a response with a SIP Message.
|
|
@@ -53,6 +96,7 @@ class Response {
|
|
|
53
96
|
* Sends an error response.
|
|
54
97
|
*
|
|
55
98
|
* @param {Error} error - The error to be sent.
|
|
99
|
+
* @deprecated
|
|
56
100
|
*/
|
|
57
101
|
sendError(error) {
|
|
58
102
|
this.callback(error, null);
|
package/dist/tracer.js
CHANGED
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.init = void 0;
|
|
7
7
|
/*
|
|
8
|
-
* Copyright (C)
|
|
8
|
+
* Copyright (C) 2023 by Fonoster Inc (https://fonoster.com)
|
|
9
9
|
* http://github.com/fonoster/routr
|
|
10
10
|
*
|
|
11
11
|
* This file is part of Routr
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@routr/processor",
|
|
3
|
-
"version": "2.0.8-alpha.
|
|
3
|
+
"version": "2.0.8-alpha.40",
|
|
4
4
|
"description": "Processor server and API",
|
|
5
5
|
"author": "Pedro Sanders <psanders@fonoster.com>",
|
|
6
6
|
"homepage": "https://github.com/fonoster/routr#readme",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"build": "tsc -b tsconfig.json"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@fonoster/logger": "0.3.
|
|
16
|
-
"@grpc/grpc-js": "^1.
|
|
17
|
-
"@grpc/proto-loader": "^0.
|
|
15
|
+
"@fonoster/logger": "0.3.20",
|
|
16
|
+
"@grpc/grpc-js": "^1.8.4",
|
|
17
|
+
"@grpc/proto-loader": "^0.7.2",
|
|
18
18
|
"@opentelemetry/api": "^1.0.4",
|
|
19
19
|
"@opentelemetry/exporter-jaeger": "^1.0.4",
|
|
20
20
|
"@opentelemetry/instrumentation": "^0.27.0",
|
|
@@ -23,8 +23,9 @@
|
|
|
23
23
|
"@opentelemetry/sdk-trace-base": "^1.0.4",
|
|
24
24
|
"@opentelemetry/sdk-trace-node": "^1.0.4",
|
|
25
25
|
"@opentelemetry/semantic-conventions": "^1.0.4",
|
|
26
|
-
"@routr/common": "^2.0.8-alpha.
|
|
27
|
-
"fp-ts": "^2.11.8"
|
|
26
|
+
"@routr/common": "^2.0.8-alpha.40",
|
|
27
|
+
"fp-ts": "^2.11.8",
|
|
28
|
+
"phone": "^3.1.32"
|
|
28
29
|
},
|
|
29
30
|
"directories": {
|
|
30
31
|
"src": "src",
|
|
@@ -43,5 +44,5 @@
|
|
|
43
44
|
"bugs": {
|
|
44
45
|
"url": "https://github.com/fonoster/routr/issues"
|
|
45
46
|
},
|
|
46
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "3ac346a36a43ba06578accf48d7a4adac24a0911"
|
|
47
48
|
}
|