diff --git a/data/rtp-transcoding.json b/data/rtp-transcoding.json index 1352890..757dcf2 100644 --- a/data/rtp-transcoding.json +++ b/data/rtp-transcoding.json @@ -3,6 +3,6 @@ "DTLS": "off", "SDES": "off", "ICE": "remove", - "flags": ["media handover", "port latching"], + "flags": ["port latching"], "rtcp-mux": ["accept"] } \ No newline at end of file diff --git a/data/srtp-transcoding.json b/data/srtp-transcoding.json index b77aeb7..35ac9a0 100644 --- a/data/srtp-transcoding.json +++ b/data/srtp-transcoding.json @@ -3,14 +3,14 @@ "transport-protocol": "UDP/TLS/RTP/SAVPF", "ICE": "default", "SDES": "off", - "flags": ["generate mid", "SDES-no", "media handover", "port latching"], + "flags": ["generate mid", "SDES-no", "port latching"], "rtcp-mux": ["require"] }, "teams": { "transport-protocol": "RTP/SAVP", "ICE": "default", "SDES": "off", - "flags": ["generate mid", "SDES-no", "media handover", "port latching"], + "flags": ["generate mid", "SDES-no", "port latching"], "rtcp-mux": ["accept"] } } \ No newline at end of file diff --git a/lib/utils.js b/lib/utils.js index db168ba..ca9b326 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -30,6 +30,12 @@ function makeRtpEngineOpts(req, srcIsUsingSrtp, dstIsUsingSrtp, teams = false) { dstOpts.flags.push('inject DTMF'); srcOpts.flags.push('inject DTMF'); } + /** By default use strict source to secure aganst RTPInject vuln, + * set env var to true to disable it and use media handover instead */ + const disableStrictSource = !!process.env.RTPENGINE_DISABLE_STRICT_SOURCE; + dstOpts.flags.push(disableStrictSource ? 'media handover' : 'strict source'); + srcOpts.flags.push(disableStrictSource ? 'media handover' : 'strict source'); + const acceptCodecs = process.env.JAMBONES_ACCEPT_AND_TRANSCODE ? process.env.JAMBONES_ACCEPT_AND_TRANSCODE : process.env.JAMBONES_ACCEPT_G729 ? 'g729' : '';