Knowing completely outdated, I am still using v2.5 for whatever reasons (Laziness is the biggest one).
Recently, I realised that my 2.5 server stopped working on Chrome at the echo test, stopping at "connecting.." popup and never migrates into the thumb-up/thumb-down dialogue.
After some study, it turned out that Google Chrome made some change in WebRTC in the recent update. One important change seems that remote media tracks are no longer reliably available through early inspection of RTCRtpReceiver.track immediately after the peer connection is created. Instead, tracks are delivered asynchronously through the RTCPeerConnection.ontrack event.
Thus v2.5 suffers an empty receiver.track when it starts getReceivers(). To fix this problem, I made the following change:
After the following line in the kurento-utils.js of HTML5 client:
const pc = this.peerConnection;
I added these lines:
pc.ontrack = (event) => {
if (!this.remoteStream) {
this.remoteStream = new MediaStream();
}
if (!this.remoteStream.getTracks().includes(event.track)) {
this.remoteStream.addTrack(event.track);
}
};
, so that an track is added when this.remoteStream's track is empty.
Hope it will help somebody who is troubled by the same problem..
And I finally decided to migrate into v3.0 and it looks great!