@routr/processor 2.0.8-alpha.3 → 2.0.8-alpha.30

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.
@@ -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 addRoute: (route: Route) => (request: MessageRequest) => MessageRequest;
5
- export declare const addRouteToListeningPoint: (route: Route) => (request: MessageRequest) => MessageRequest;
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 removeRoutes: (request: MessageRequest) => MessageRequest;
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 fixNatedContact: (request: MessageRequest) => MessageRequest;
15
+ export declare const enforceE164: (enforceE164: boolean, validateMobilePrefix: boolean) => (request: MessageRequest) => MessageRequest;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decreaseMaxForwards = exports.removeTopVia = exports.removeRoutes = exports.removeAuthorization = exports.removeXEdgePortRef = exports.addXEdgePortRef = exports.addSelfRecordRoute = exports.applyXHeaders = exports.addRouteToListeningPoint = exports.addRoute = exports.addSelfVia = exports.updateRequestURI = void 0;
3
+ exports.enforceE164 = exports.fixNatedContact = 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
5
  * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com)
6
6
  * http://github.com/fonoster/routr
@@ -20,8 +20,8 @@ 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 helper_1 = require("@routr/common/src/helper");
24
- const helper_2 = require("./helper");
23
+ const phone_1 = require("phone");
24
+ const helper_1 = require("./helper");
25
25
  // Q: Should we deprecate this method since we are not doing strict routing?
26
26
  const updateRequestURI = (route) => (request) => {
27
27
  const req = common_1.Helper.deepCopy(request);
@@ -38,29 +38,20 @@ const updateRequestURI = (route) => (request) => {
38
38
  };
39
39
  exports.updateRequestURI = updateRequestURI;
40
40
  const addSelfVia = (route) => (request) => {
41
- var _a;
42
41
  const req = common_1.Helper.deepCopy(request);
43
- // If is comming from a different edgeport we use the listening point instead
44
- // of the endpoint to ensure connectivity.
45
- const nextHopHost = request.edgePortRef === route.edgePortRef
46
- ? route.host
47
- : route.egressListeningPoint.host;
48
- const egressListeningPoint = common_1.Helper.getListeningPoint(request, route.transport);
49
- // If the nextHopHost host is local, then use use lp to construct via
50
- // otherwise, we use the first available external ip.
51
- const via = common_1.IpUtils.isLocalnet(req.localnets, nextHopHost)
52
- ? route.egressListeningPoint
53
- : {
54
- // fallback to lp host if there is no external ips
55
- host: (_a = req.externalAddrs[0]) !== null && _a !== void 0 ? _a : egressListeningPoint.host,
56
- port: egressListeningPoint.port,
57
- transport: egressListeningPoint.transport
58
- };
59
- 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
+ ];
60
48
  return req;
61
49
  };
62
50
  exports.addSelfVia = addSelfVia;
63
- const addRoute = (route) => (request) => {
51
+ const addRouteToNextHop = (route) => (request) => {
52
+ if (request.message.requestUri.host === route.host) {
53
+ return request;
54
+ }
64
55
  const req = common_1.Helper.deepCopy(request);
65
56
  const r = {
66
57
  address: {
@@ -75,15 +66,21 @@ const addRoute = (route) => (request) => {
75
66
  req.message.route = [r, ...req.message.route];
76
67
  return req;
77
68
  };
78
- exports.addRoute = addRoute;
79
- const addRouteToListeningPoint = (route) => (request) => {
69
+ exports.addRouteToNextHop = addRouteToNextHop;
70
+ const addRouteToPeerEdgePort = (route) => (request) => {
80
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
+ });
81
78
  const r = {
82
79
  address: {
83
80
  uri: {
84
- host: route.egressListeningPoint.host,
85
- port: route.egressListeningPoint.port,
86
- transportParam: route.egressListeningPoint.transport,
81
+ host: targetIntf.host,
82
+ port: targetIntf.port,
83
+ transportParam: targetIntf.transport,
87
84
  lrParam: true
88
85
  }
89
86
  }
@@ -91,14 +88,14 @@ const addRouteToListeningPoint = (route) => (request) => {
91
88
  req.message.route = [r, ...req.message.route];
92
89
  return req;
93
90
  };
94
- exports.addRouteToListeningPoint = addRouteToListeningPoint;
91
+ exports.addRouteToPeerEdgePort = addRouteToPeerEdgePort;
95
92
  const applyXHeaders = (route) => (request) => {
96
93
  const req = common_1.Helper.deepCopy(request);
97
94
  if (route.headers && route.headers.length > 0) {
98
95
  const headersToRemove = route.headers
99
96
  .filter((h) => h.action === common_1.CommonTypes.HeaderModifierAction.REMOVE)
100
- .map((h) => h.name);
101
- const headersToAdd = route.headers.filter((h) => h.action !== common_1.CommonTypes.HeaderModifierAction.REMOVE);
97
+ .map((h) => h.name.toLowerCase());
98
+ const headersToAdd = route.headers.filter((h) => h.action === common_1.CommonTypes.HeaderModifierAction.ADD);
102
99
  req.message.extensions = req.message.extensions.filter((h) => !headersToRemove.includes(h.name.toLowerCase()));
103
100
  headersToAdd.forEach((h) => {
104
101
  req.message.extensions.push({ name: h.name, value: h.value });
@@ -109,8 +106,18 @@ const applyXHeaders = (route) => (request) => {
109
106
  exports.applyXHeaders = applyXHeaders;
110
107
  const addSelfRecordRoute = (route) => (request) => {
111
108
  const req = common_1.Helper.deepCopy(request);
112
- const originIntf = (0, helper_2.getEdgeInterface)(request, request.sender);
113
- const targetIntf = (0, helper_2.getEdgeInterface)(request, route);
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
+ });
114
121
  const originRoute = {
115
122
  address: {
116
123
  uri: {
@@ -175,21 +182,21 @@ const removeAuthorization = (request) => {
175
182
  return req;
176
183
  };
177
184
  exports.removeAuthorization = removeAuthorization;
178
- const removeRoutes = (request) => {
185
+ const removeSelfRoutes = (request) => {
179
186
  const req = common_1.Helper.deepCopy(request);
187
+ const localIps = request.localnets.map((ln) => ln.split("/")[0]);
180
188
  req.message.route = req.message.route.filter((r) => {
181
189
  var _a;
182
- const localIps = request.localnets.map((ln) => ln.split("/")[0]);
183
- const lp = (0, helper_1.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()) ||
184
191
  common_1.Transport.UDP);
185
- const route = r.address.uri;
186
- return !((localIps.includes(route.host) ||
187
- request.externalAddrs.includes(route.host)) &&
188
- route.port === lp.port);
192
+ const routeUri = r.address.uri;
193
+ return !((localIps.includes(routeUri.host) ||
194
+ request.externalAddrs.includes(routeUri.host)) &&
195
+ routeUri.port === lp.port);
189
196
  });
190
197
  return req;
191
198
  };
192
- exports.removeRoutes = removeRoutes;
199
+ exports.removeSelfRoutes = removeSelfRoutes;
193
200
  const removeTopVia = (request) => {
194
201
  const req = common_1.Helper.deepCopy(request);
195
202
  req.message.via.shift();
@@ -205,3 +212,44 @@ const decreaseMaxForwards = (request) => {
205
212
  return req;
206
213
  };
207
214
  exports.decreaseMaxForwards = decreaseMaxForwards;
215
+ const fixNatedContact = (request) => {
216
+ var _a;
217
+ const req = common_1.Helper.deepCopy(request);
218
+ if ((_a = req.message.contact) === null || _a === void 0 ? void 0 : _a.address.uri.host.includes(".invalid")) {
219
+ req.message.contact.address.uri.host = request.sender.host;
220
+ req.message.contact.address.uri.port = request.sender.port;
221
+ }
222
+ return req;
223
+ };
224
+ exports.fixNatedContact = fixNatedContact;
225
+ // Will do the best effort to normalize from/to/requestUri users as e164 values
226
+ const enforceE164 = (enforceE164, validateMobilePrefix) => (request) => {
227
+ var _a, _b, _c;
228
+ if (!enforceE164)
229
+ return request;
230
+ const req = common_1.Helper.deepCopy(request);
231
+ // Removes the + to ensure not having duplicates
232
+ const fromUser = (_a = req.message.from.address.uri.user) === null || _a === void 0 ? void 0 : _a.replace("+", "");
233
+ const toUser = (_b = req.message.to.address.uri.user) === null || _b === void 0 ? void 0 : _b.replace("+", "");
234
+ const requestUriUser = (_c = req.message.requestUri.user) === null || _c === void 0 ? void 0 : _c.replace("+", "");
235
+ // Normalizing as e164
236
+ const normalizedTo = (0, phone_1.phone)(`+${toUser}`, { validateMobilePrefix });
237
+ const normalizedFrom = (0, phone_1.phone)(`+${fromUser}`, {
238
+ validateMobilePrefix: true
239
+ });
240
+ const normalizedReqUri = (0, phone_1.phone)(`+${requestUriUser}`, {
241
+ validateMobilePrefix
242
+ });
243
+ // If the normalization worked we overwrite the original values
244
+ if (normalizedFrom.isValid) {
245
+ req.message.from.address.uri.user = normalizedFrom.phoneNumber;
246
+ }
247
+ if (normalizedTo.isValid) {
248
+ req.message.to.address.uri.user = normalizedTo.phoneNumber;
249
+ }
250
+ if (normalizedReqUri.isValid) {
251
+ req.message.requestUri.user = normalizedReqUri.phoneNumber;
252
+ }
253
+ return req;
254
+ };
255
+ exports.enforceE164 = enforceE164;
@@ -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,24 @@
1
- import { MessageRequest, Route, NetInterface } from "@routr/common";
1
+ import { MessageRequest, Route, 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: (request: MessageRequest, endpointIntf: NetInterface) => NetInterface;
4
+ export declare const getEdgeInterface: (nets: {
5
+ listeningPoints: NetInterface[];
6
+ endpointIntf: NetInterface;
7
+ localnets: string[];
8
+ externalAddrs: string[];
9
+ }) => NetInterface;
5
10
  /**
6
- * A request traversing a second EdgePort would have an updated the requestUri.
11
+ * A request traversing a second EdgePort would have updated the requestUri.
7
12
  * Therefore, we are able to re-construct the Route from the request.
8
13
  *
9
14
  * @param {MessageRequest} request - the request
10
15
  * @return {Route} the route
11
16
  */
12
17
  export declare function createRouteFromLastMessage(request: MessageRequest): Route;
18
+ export declare const hasSDP: (request: MessageRequest) => boolean;
19
+ export declare const isOk: (request: MessageRequest) => boolean;
20
+ export declare const isRinging: (request: MessageRequest) => boolean;
21
+ export declare const isWebRTC: (transport: Transport) => boolean;
22
+ export declare const isInviteOrAckWithSDP: (request: MessageRequest) => boolean;
23
+ export declare const isOkOrRingingWithSDP: (request: MessageRequest) => boolean;
24
+ export declare const isBye: (request: MessageRequest) => boolean;
package/dist/helper.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRouteFromLastMessage = exports.getEdgeInterface = exports.isTypeRequest = exports.isTypeResponse = void 0;
3
+ exports.isBye = exports.isOkOrRingingWithSDP = exports.isInviteOrAckWithSDP = exports.isWebRTC = exports.isRinging = exports.isOk = exports.hasSDP = exports.createRouteFromLastMessage = exports.getEdgeInterface = exports.isTypeRequest = exports.isTypeResponse = void 0;
4
4
  /*
5
5
  * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com)
6
6
  * http://github.com/fonoster/routr
@@ -26,11 +26,12 @@ const isTypeResponse = (request) => request.message.messageType === common_1.Com
26
26
  exports.isTypeResponse = isTypeResponse;
27
27
  const isTypeRequest = (request) => !(0, exports.isTypeResponse)(request);
28
28
  exports.isTypeRequest = isTypeRequest;
29
- const getEdgeInterface = (request, endpointIntf) => {
30
- const localnetIp = common_2.IpUtils.getLocalnetIp(request.localnets, endpointIntf.host);
31
- const host = localnetIp !== null && localnetIp !== void 0 ? localnetIp : request.externalAddrs[0];
32
- const lp = common_1.Helper.getListeningPoint(request, endpointIntf.transport);
33
- if (!localnetIp && request.externalAddrs.length === 0) {
29
+ const getEdgeInterface = (nets) => {
30
+ const { listeningPoints, endpointIntf, localnets, externalAddrs } = nets;
31
+ const localnetIp = common_2.IpUtils.getLocalnetIp(localnets, endpointIntf.host);
32
+ const host = localnetIp !== null && localnetIp !== void 0 ? localnetIp : externalAddrs[0];
33
+ const lp = common_1.Helper.getListeningPoint(listeningPoints, endpointIntf.transport);
34
+ if (!localnetIp && externalAddrs.length === 0) {
34
35
  throw new Error(`unable to find a valid interface for host ${endpointIntf.host} and transport ${lp.transport}`);
35
36
  }
36
37
  if (localnetIp && lp.host !== "0.0.0.0" && lp.host !== host) {
@@ -44,28 +45,48 @@ const getEdgeInterface = (request, endpointIntf) => {
44
45
  };
45
46
  exports.getEdgeInterface = getEdgeInterface;
46
47
  /**
47
- * A request traversing a second EdgePort would have an updated the requestUri.
48
+ * A request traversing a second EdgePort would have updated the requestUri.
48
49
  * Therefore, we are able to re-construct the Route from the request.
49
50
  *
50
51
  * @param {MessageRequest} request - the request
51
52
  * @return {Route} the route
52
53
  */
53
54
  function createRouteFromLastMessage(request) {
55
+ var _a;
54
56
  const uri = request.message.requestUri;
55
57
  const sessionCount = index_1.Extensions.getHeaderValue(request, common_1.CommonTypes.ExtraHeader.SESSION_COUNT)
56
58
  ? parseInt(index_1.Extensions.getHeaderValue(request, common_1.CommonTypes.ExtraHeader.SESSION_COUNT))
57
59
  : -1;
58
- const egressListeningPoint = common_1.Helper.getListeningPoint(request, uri.transportParam.toLowerCase());
59
60
  return {
60
61
  edgePortRef: request.edgePortRef,
61
62
  user: uri.user,
62
63
  host: uri.host,
63
64
  port: uri.port,
64
- transport: uri.transportParam.toLowerCase(),
65
+ transport: (_a = uri.transportParam) === null || _a === void 0 ? void 0 : _a.toUpperCase(),
65
66
  registeredOn: Date.now(),
66
67
  sessionCount,
67
68
  expires: index_1.Target.getTargetExpires(request),
68
- egressListeningPoint
69
+ listeningPoints: request.listeningPoints,
70
+ localnets: request.localnets,
71
+ externalAddrs: request.externalAddrs
69
72
  };
70
73
  }
71
74
  exports.createRouteFromLastMessage = createRouteFromLastMessage;
75
+ const hasSDP = (request) => { var _a; return ((_a = request.message.body) === null || _a === void 0 ? void 0 : _a.length) > 0; };
76
+ exports.hasSDP = hasSDP;
77
+ const isOk = (request) => request.message.responseType === common_1.CommonTypes.ResponseType.OK;
78
+ exports.isOk = isOk;
79
+ const isRinging = (request) => request.message.responseType === common_1.CommonTypes.ResponseType.RINGING;
80
+ exports.isRinging = isRinging;
81
+ const isWebRTC = (transport) => transport === common_1.Transport.WS || transport === common_1.Transport.WSS;
82
+ exports.isWebRTC = isWebRTC;
83
+ const isInviteOrAckWithSDP = (request) => (0, exports.isTypeRequest)(request) &&
84
+ (0, exports.hasSDP)(request) &&
85
+ (request.method === common_1.Method.INVITE || request.method === common_1.Method.ACK);
86
+ exports.isInviteOrAckWithSDP = isInviteOrAckWithSDP;
87
+ const isOkOrRingingWithSDP = (request) => (0, exports.isTypeResponse)(request) &&
88
+ (0, exports.hasSDP)(request) &&
89
+ ((0, exports.isOk)(request) || (0, exports.isRinging)(request));
90
+ exports.isOkOrRingingWithSDP = isOkOrRingingWithSDP;
91
+ const isBye = (request) => (0, exports.isTypeRequest)(request) && request.method === common_1.Method.BYE;
92
+ exports.isBye = isBye;
@@ -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
- const buildResponse = (code, extraHeaders) => {
4
- return { message: { responseType: code, extensions: extraHeaders } };
3
+ /*
4
+ * Copyright (C) 2022 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(7, extraHeaders));
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(21));
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(20));
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(47));
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routr/processor",
3
- "version": "2.0.8-alpha.3",
3
+ "version": "2.0.8-alpha.30",
4
4
  "description": "Processor server and API",
5
5
  "author": "Pedro Sanders <psanders@fonoster.com>",
6
6
  "homepage": "https://github.com/fonoster/routr#readme",
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "@fonoster/logger": "0.3.18",
16
- "@grpc/grpc-js": "^1.5.9",
16
+ "@grpc/grpc-js": "^1.8.4",
17
17
  "@grpc/proto-loader": "^0.6.9",
18
18
  "@opentelemetry/api": "^1.0.4",
19
19
  "@opentelemetry/exporter-jaeger": "^1.0.4",
@@ -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.3",
27
- "fp-ts": "^2.11.8"
26
+ "@routr/common": "^2.0.8-alpha.30",
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": "aad4c5c31af1fef5e657ee6b445879706757bbbf"
47
+ "gitHead": "6466c3e5262850c85dc6d15eec3e25f915a37667"
47
48
  }