Skip to content

Commit

Permalink
Make ssrc and cname part of offers/answers from createOffer/Answer
Browse files Browse the repository at this point in the history
Closes #401. Closes #409.
  • Loading branch information
stefhak authored and pererikb committed Jun 15, 2015
1 parent c48a17b commit b6a900e
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
4 changes: 4 additions & 0 deletions bridge/client/domutils.js
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,10 @@ function getDictionaryMember(dict, name, type, defaultValue) {
return +dict[name];
}

function randomNumber(bits) {
return Math.floor(Math.random() * Math.pow(2, bits));
}

function randomString(length) {
var randomValues = new Uint8Array(Math.ceil(length * 3 / 4));
crypto.getRandomValues(randomValues);
Expand Down
9 changes: 9 additions & 0 deletions bridge/client/webrtc.js
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,7 @@
deferredCreateDataChannelCalls.push(func);
}

var cname = randomString(16);
var negotiationNeededTimerHandle;
var hasDataChannels = false;
var localSessionInfo = null;
Expand Down Expand Up @@ -495,6 +496,8 @@
"type": trackInfo.kind,
"payloads": JSON.parse(JSON.stringify(defaultPayloads[trackInfo.kind])),
"rtcp": { "mux": true },
"ssrcs": [ randomNumber(32) ],
"cname": cname,
"ice": { "ufrag": randomString(4), "password": randomString(22) },
"dtls": { "setup": "actpass" }
});
Expand Down Expand Up @@ -609,6 +612,12 @@
lmdesc.rtcp = {};

lmdesc.rtcp.mux = !!(rmdesc.rtcp && rmdesc.rtcp.mux);

do {
lmdesc.ssrcs = [ randomNumber(32) ];
} while (rmdesc.ssrcs && rmdesc.ssrcs.indexOf(lmdesc.ssrcs[0]) != -1);

lmdesc.cname = cname;
}

if (lmdesc.dtls.setup == "actpass")
Expand Down
5 changes: 5 additions & 0 deletions bridge/worker/peerhandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,11 @@ function PeerHandler(configuration, client, jsonRpc) {
prepareSession(mediaSession, mdesc);
mediaSession.rtcp_mux = !isInitiator && !!(mdesc.rtcp && mdesc.rtcp.mux);

if (mdesc.cname && mdesc.ssrcs && mdesc.ssrcs.length) {
mediaSession.cname = mdesc.cname;
mediaSession.send_ssrc = mdesc.ssrcs[0];
}

mediaSession.signal.connect("notify::send-ssrc", function () {
var mdescIndex = localSessionInfo.mediaDescriptions.indexOf(mdesc);
client.gotSendSSRC(mdescIndex, mediaSession.send_ssrc, mediaSession.cname);
Expand Down

0 comments on commit b6a900e

Please sign in to comment.