diff --git a/Dockerfile b/Dockerfile index 459586d1a..54cb2bc06 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster-20200414 +FROM debian:buster LABEL maintainer="Pedro Sanders " ENV TINI_VERSION v0.19.0 diff --git a/mod/core/processor/request_handler.js b/mod/core/processor/request_handler.js index 845e68ba9..012f6be8e 100644 --- a/mod/core/processor/request_handler.js +++ b/mod/core/processor/request_handler.js @@ -31,7 +31,8 @@ const { configureIdentity, configureXHeaders, configureCSeq, - isInDialog + isInDialog, + getTargetTransport } = require('@routr/core/processor/request_utils') const { directionFromRequest } = require('@routr/rtpengine/utils') const { RoutingType } = require('@routr/core/routing_type') @@ -159,12 +160,7 @@ class RequestHandler { ) // Next hop transport protocol - const targetTransport = route - ? route.transport - : request - .getRequestURI() - .getParameter('transport') - .toLowerCase() + const targetTransport = getTargetTransport(route, request) LOG.debug( `core.processor.RequestHandler.processRoute [targetTransport = ${targetTransport}]` diff --git a/mod/core/processor/request_utils.js b/mod/core/processor/request_utils.js index 79127952e..a57d5ecb7 100644 --- a/mod/core/processor/request_utils.js +++ b/mod/core/processor/request_utils.js @@ -113,7 +113,6 @@ const configureRoute = (request, originInterfaceAddr, targetInterfaceAddr) => { const requestOut = request.clone() const routeHeader = request.getHeader(RouteHeader.NAME) if (routeHeader) { - // 52.174.241.181 const host = routeHeader .getAddress() .getURI() @@ -127,7 +126,7 @@ const configureRoute = (request, originInterfaceAddr, targetInterfaceAddr) => { ) LOG.debug( - `core.processor.RequestUtils.configureRoute [host = ${host}, port=${port}]` + `core.processor.RequestUtils.configureRoute [host = ${host}, port = ${port}]` ) const c = [originInterfaceAddr, targetInterfaceAddr].filter( @@ -283,6 +282,22 @@ const isInDialog = request => request.getHeader(ToHeader.NAME).getTag() !== null && request.getHeader(FromHeader.NAME).getTag() !== null +const getTargetTransport = (route, request) => { + const routeHeader = request.getHeader(RouteHeader.NAME) + + if (routeHeader) { + const transport = routeHeader.getParameter('transport') || 'tcp' + return transport.toLowerCase() + } else if (route) { + return route.transport + } + + return request + .getRequestURI() + .getParameter('transport') + .toLowerCase() +} + module.exports.getEdgeAddr = getEdgeAddr module.exports.configureRoute = configureRoute module.exports.configureVia = configureVia @@ -296,3 +311,4 @@ module.exports.configureIdentity = configureIdentity module.exports.configureXHeaders = configureXHeaders module.exports.configureCSeq = configureCSeq module.exports.isInDialog = isInDialog +module.exports.getTargetTransport = getTargetTransport diff --git a/mod/core/processor/response_processor.js b/mod/core/processor/response_processor.js index 7ac0d5908..b73695e6c 100644 --- a/mod/core/processor/response_processor.js +++ b/mod/core/processor/response_processor.js @@ -74,7 +74,7 @@ class ResponseProcessor { if ( config.spec.ex_rtpEngine.enabled && - isOk(response) && + (isOk(response) || response.getStatusCode() === 183) && hasSDP(response) ) { const obj = await this.rtpeConnector.answer( diff --git a/mod/data_api/files_datasource.js b/mod/data_api/files_datasource.js index fcd396a1f..c31aeae79 100644 --- a/mod/data_api/files_datasource.js +++ b/mod/data_api/files_datasource.js @@ -91,10 +91,11 @@ class FilesDataSource { RESOURCES[CNT] }.yml\` is invalid` ) - } else { + System.exit(1) + } /*else { LOG.error(e) } - System.exit(1) + System.exit(1)*/ } } } diff --git a/package-lock.json b/package-lock.json index 9f829645d..3f72744e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7357,7 +7357,7 @@ }, "node_modules/npm/node_modules/lodash._baseindexof": { "version": "3.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, @@ -7373,19 +7373,19 @@ }, "node_modules/npm/node_modules/lodash._bindcallback": { "version": "3.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/lodash._cacheindexof": { "version": "3.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/lodash._createcache": { "version": "3.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -7400,7 +7400,7 @@ }, "node_modules/npm/node_modules/lodash._getnative": { "version": "3.9.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, @@ -7418,7 +7418,7 @@ }, "node_modules/npm/node_modules/lodash.restparam": { "version": "3.6.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, @@ -17963,7 +17963,7 @@ "lodash._baseindexof": { "version": "3.1.0", "bundled": true, - "extraneous": true + "dev": true }, "lodash._baseuniq": { "version": "4.6.0", @@ -17977,17 +17977,17 @@ "lodash._bindcallback": { "version": "3.0.1", "bundled": true, - "extraneous": true + "dev": true }, "lodash._cacheindexof": { "version": "3.0.2", "bundled": true, - "extraneous": true + "dev": true }, "lodash._createcache": { "version": "3.1.2", "bundled": true, - "extraneous": true, + "dev": true, "requires": { "lodash._getnative": "^3.0.0" } @@ -18000,7 +18000,7 @@ "lodash._getnative": { "version": "3.9.1", "bundled": true, - "extraneous": true + "dev": true }, "lodash._root": { "version": "3.0.1", @@ -18015,7 +18015,7 @@ "lodash.restparam": { "version": "3.6.1", "bundled": true, - "extraneous": true + "dev": true }, "lodash.union": { "version": "4.6.0",