Remove video sdp incase of reinvite (#183)

https://github.com/jambonz/sbc-outbound/issues/182
This commit is contained in:
rammohan-y
2025-07-08 18:47:16 +05:30
committed by GitHub
parent 5cc37265a9
commit fd5e2f1a6c
2 changed files with 16 additions and 4 deletions

View File

@@ -8,7 +8,8 @@ const {
isBlackListedSipGateway,
makeFullMediaReleaseKey,
makePartnerFullMediaReleaseKey,
isValidDomainOrIP
isValidDomainOrIP,
removeVideoSdp
} = require('./utils');
const { MediaPath } = require('./constants.json');
const {forwardInDialogRequests} = require('drachtio-fn-b2b-sugar');
@@ -938,8 +939,12 @@ Duration=${payload.duration} `
throw new Error(`_onReinvite: rtpengine failed: ${JSON.stringify(response)}`);
}
this.logger.debug({opts, sdp: response.sdp}, 'CallSession:_onReinvite: (answer) sending back upstream');
let responseSdp = response.sdp;
if (process.env.JAMBONES_VIDEO_CALLS_ENABLED_IN_FS) {
responseSdp = removeVideoSdp(responseSdp);
}
res.send(200, {
body: response.sdp,
body: responseSdp,
headers: {
'Contact': this.contactHeader
}

View File

@@ -3,6 +3,7 @@ const srtpCharacteristics = require('../data/srtp-transcoding');
const debug = require('debug')('jambonz:sbc-outbound');
const CIDRMatcher = require('cidr-matcher');
const dns = require('dns');
const sdpTransform = require('sdp-transform');
function makeRtpEngineOpts(req, srcIsUsingSrtp, dstIsUsingSrtp, padCrypto, teams) {
const from = req.getParsedHeader('from');
@@ -334,7 +335,12 @@ function isValidDomainOrIP(input) {
return false; // Invalid input
}
const removeVideoSdp = (sdp) => {
const parsedSdp = sdpTransform.parse(sdp);
// Filter out video media sections, keeping only non-video media
parsedSdp.media = parsedSdp.media.filter((media) => media.type !== 'video');
return sdpTransform.write(parsedSdp);
};
module.exports = {
makeRtpEngineOpts,
selectHostPort,
@@ -349,5 +355,6 @@ module.exports = {
isBlackListedSipGateway,
makeFullMediaReleaseKey,
makePartnerFullMediaReleaseKey,
isValidDomainOrIP
isValidDomainOrIP,
removeVideoSdp
};