diff --git a/index.html b/index.html
index 4a14a13bc..6936292f4 100644
--- a/index.html
+++ b/index.html
@@ -19,7 +19,7 @@
-
+
diff --git a/libs/app.bundle.js b/libs/app.bundle.js
index 4234c99f0..c760706ba 100644
--- a/libs/app.bundle.js
+++ b/libs/app.bundle.js
@@ -25638,7 +25638,7 @@ module.exports = function arrayEquals(array) {
exports.Interop = require('./interop');
},{"./interop":81}],81:[function(require,module,exports){
-var transform = require('./sdp-transform');
+var transform = require('./transform');
var arrayEquals = require('./array-equals');
function Interop() { }
@@ -26029,17 +26029,27 @@ Interop.prototype.toPlanA = function(desc) {
});
} else {
- // Add all the m-lines that are in both the cached and the transformed
- // SDP in the order of the cached SDP. We take the intersection because
- // don't want to add m-lines from the cached SDP that have been removed
- // from the transformed SDP.
+ // SDP offer/answer (and the JSEP spec) forbids removing an m-section
+ // under any circumstances. If we are no longer interested in sending a
+ // track, we just remove the msid and ssrc attributes and set it to
+ // either a=recvonly (as the reofferer, we must use recvonly if the
+ // other side was previously sending on the m-section, but we can also
+ // leave the possibility open if it wasn't previously in use), or
+ // a=inacive.
+
if (typeof cached !== 'undefined' &&
typeof cached.media !== 'undefined' &&
Array.isArray(cached.media)) {
cached.media.forEach(function(pm) {
+ mids.push(pm.mid);
if (typeof media[pm.mid] !== 'undefined') {
- mids.push(pm.mid);
session.media.push(media[pm.mid]);
+ } else {
+ delete pm.msid;
+ delete pm.sources;
+ // TODO(gp) delete ssrc-groups
+ pm.direction = 'recvonly';
+ session.media.push(pm);
}
});
}
@@ -26082,7 +26092,7 @@ Interop.prototype.toPlanA = function(desc) {
//#endregion
};
-},{"./array-equals":79,"./sdp-transform":82}],82:[function(require,module,exports){
+},{"./array-equals":79,"./transform":82}],82:[function(require,module,exports){
var transform = require('sdp-transform');
exports.write = function(session, opts) {