JSFiddle - React, Tailwind, and code Playground

JavaScript

const test = async () => {
	// firefox
  const pcFx = new RTCPeerConnection();
  // webex
  const pcWx = new RTCPeerConnection();
  let offer = await pcFx.createOffer({offerToReceiveAudio: true});
  await pcFx.setLocalDescription(offer);
  offer.sdp = offer.sdp.replace(/109 /g, '111 '); // What webex thinks we said
  await pcWx.setRemoteDescription(offer);
  const answer = await pcWx.createAnswer();
  await pcWx.setLocalDescription(answer);
  await pcFx.setRemoteDescription(answer);
  
  // Fake renegotiation to force Firefox to use 111 instead
  await pcFx.setRemoteDescription({sdp: answer.sdp, type: "offer"});
  await pcFx.setLocalDescription(await pcFx.createAnswer());
  
  console.log(await pcFx.createOffer());
};

test();