[Webkit-unassigned] [Bug 278672] Regression: Creating peer connection fails on Safari 17.5+ with IPv6-only network
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Aug 26 23:09:53 PDT 2024
https://bugs.webkit.org/show_bug.cgi?id=278672
--- Comment #10 from Byungseon(Sun) Shin <sun.shin at webkit.org> ---
(In reply to Byungseon(Sun) Shin from comment #5)
> Comment on attachment 472308 [details]
> ice binding test
>
> <!DOCTYPE html>
> <html lang="en">
> <head>
> <meta charset="UTF-8">
> <meta name="viewport" content="width=device-width, initial-scale=1.0">
> <title>ICE Connection Test</title>
> </head>
> <body>
> <h1>ICE Connection Test</h1>
> <video id="localVideo" playsinline autoplay muted></video>
> <video id="remoteVideo" playsinline autoplay></video>
>
> <p>
> <button id="startButton">Start ICE Test</button>
> <pre id="output"></pre>
>
> <script>
> const startButton = document.getElementById('startButton');
> const output = document.getElementById('output');
> const localVideo = document.getElementById('localVideo');
> const remoteVideo = document.getElementById('remoteVideo');
>
> startButton.addEventListener('click', startTest);
>
> async function startTest() {
> const configuration = {
> iceServers: [
> { urls: 'stun:stun.l.google.com:19302' } // Example STUN server
> ]
> };
>
> const localPeer = new RTCPeerConnection(configuration);
> const remotePeer = new RTCPeerConnection(configuration);
>
> localPeer.onicecandidate = (event) => {
> if (event.candidate) {
> remotePeer.addIceCandidate(event.candidate);
> log(`Local ICE candidate: ${event.candidate.candidate}`);
> }
> };
>
> remotePeer.onicecandidate = (event) => {
> if (event.candidate) {
> localPeer.addIceCandidate(event.candidate);
> log(`Remote ICE candidate:
> ${event.candidate.candidate}`);
> }
> };
>
> localPeer.oniceconnectionstatechange = () => {
> log(`Local ICE connection state:
> ${localPeer.iceConnectionState}`);
> };
>
> remotePeer.oniceconnectionstatechange = () => {
> log(`Remote ICE connection state:
> ${remotePeer.iceConnectionState}`);
> };
>
> remotePeer.addEventListener('track', (event) => {
> gotRemoteStream(event);
> });
>
> try {
> let localStream;
> //localPeer.createDataChannel('testChannel');
> const offerOptions = {
> offerToReceiveAudio: 1,
> offerToReceiveVideo: 1
> };
>
> const stream = await
> navigator.mediaDevices.getUserMedia({audio: true, video: true});
> localVideo.srcObject = stream;
> localStream = stream;
>
> const videoTracks = localStream.getVideoTracks();
> const audioTracks = localStream.getAudioTracks();
> if (videoTracks.length > 0) {
> console.log(`Using video device: ${videoTracks[0].label}`);
> }
> if (audioTracks.length > 0) {
> console.log(`Using audio device: ${audioTracks[0].label}`);
> }
> localStream.getTracks().forEach(track =>
> localPeer.addTrack(track, localStream));
>
> const offer = await localPeer.createOffer();
> await localPeer.setLocalDescription(offer);
> log('Local peer created and set local offer');
>
> await remotePeer.setRemoteDescription(offer);
> log('Remote peer set remote offer');
>
> const answer = await remotePeer.createAnswer();
> await remotePeer.setLocalDescription(answer);
> log('Remote peer created and set local answer');
>
> await localPeer.setRemoteDescription(answer);
> log('Local peer set remote answer');
> } catch (error) {
> log(`Error: ${error}`);
> }
> }
>
> function gotRemoteStream(e) {
> if (remoteVideo.srcObject !== e.streams[0]) {
> remoteVideo.srcObject = e.streams[0];
> console.log('remote peer received remote stream');
> }
> }
>
> function log(message) {
> output.textContent += `${message}\n`;
> }
> </script>
> </body>
> </html>
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20240827/2d77b323/attachment-0001.htm>
More information about the webkit-unassigned
mailing list