disable negotiationevent on recipient side

probably cause issues on network changes
pull/1993/head
Audric Ackermann 4 years ago
parent 29c187c6a0
commit dafb536f58
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -542,34 +542,43 @@ function onDataChannelOnOpen() {
sendVideoStatusViaDataChannel();
}
function createOrGetPeerConnection(withPubkey: string, createDataChannel: boolean) {
function createOrGetPeerConnection(
withPubkey: string,
createDataChannel: boolean,
isAcceptingCall = false
) {
if (peerConnection) {
return peerConnection;
}
remoteStream = new MediaStream();
peerConnection = new RTCPeerConnection(configuration);
if (createDataChannel) {
dataChannel = peerConnection.createDataChannel('session-datachannel', {
negotiated: true,
id: 548, // SESSION dec ascii code 83*3+69+73+79+78
});
peerConnection.onnegotiationneeded = async (event: Event) => {
await handleNegotiationNeededEvent(event, withPubkey);
};
dataChannel.onmessage = onDataChannelReceivedMessage;
dataChannel.onopen = onDataChannelOnOpen;
}
peerConnection.ondatachannel = e => {
if (!createDataChannel) {
dataChannel = e.channel;
window.log.info('Got our datachannel setup');
if (!isAcceptingCall) {
peerConnection.onnegotiationneeded = async (event: Event) => {
await handleNegotiationNeededEvent(event, withPubkey);
};
}
onDataChannelOnOpen();
// peerConnection.ondatachannel = e => {
// if (!createDataChannel) {
// dataChannel = e.channel;
// window.log.info('Got our datachannel setup');
dataChannel.onmessage = onDataChannelReceivedMessage;
}
};
// onDataChannelOnOpen();
if (createDataChannel) {
dataChannel = peerConnection.createDataChannel('session-datachannel');
// dataChannel.onmessage = onDataChannelReceivedMessage;
// }
// };
dataChannel.onmessage = onDataChannelReceivedMessage;
dataChannel.onopen = onDataChannelOnOpen;
}
peerConnection.onsignalingstatechange = handleSignalingStateChangeEvent;
peerConnection.ontrack = event => {
@ -621,11 +630,11 @@ export async function USER_acceptIncomingCallRequest(fromSender: string) {
if (peerConnection) {
throw new Error('USER_acceptIncomingCallRequest: peerConnection is already set.');
}
currentCallUUID = uuidv4();
peerConnection = createOrGetPeerConnection(fromSender, false);
peerConnection = createOrGetPeerConnection(fromSender, true, true);
await openMediaDevicesAndAddTracks();
currentCallUUID = uuidv4();
const { sdps } = lastOfferMessage;
if (!sdps || sdps.length === 0) {

Loading…
Cancel
Save