// main.js //import sessionEvent from './calling-session.js'; import KurentoConference from './video-call.js'; document.addEventListener("DOMContentLoaded", function () { // Initialize KurentoConference const kurento = new KurentoConference('wss://media.misentinelsos.co.uk/groupcall'); kurento.connectWebSocket(); document.getElementById("create").addEventListener("click", function() { document.getElementById("createRoomForm").style.display = "block"; document.getElementById("joinRoomForm").style.display = "none"; }); document.getElementById("join_room").addEventListener("click", function() { document.getElementById("joinRoomForm").style.display = "block"; document.getElementById("createRoomForm").style.display = "none"; }); // ✅ Accept parameters for name and room from iframe messages window.register = function(name = "Guest", room = generateRandomString()) { document.getElementById('room-header').innerText = 'ROOM ' + room; document.getElementById('join').style.display = 'none'; document.getElementById('room').style.display = 'block'; console.log(`Register function triggered, Name: ${name}, Room: ${room}`); // Wait for WebSocket to be ready waitForWebSocket(() => { kurento.register(name, room); }); }; function waitForWebSocket(callback) { if (kurento.getWs() && kurento.getWs().readyState === WebSocket.OPEN) { callback(); } else { console.warn("WebSocket not open yet, waiting..."); setTimeout(() => waitForWebSocket(callback), 500); } } window.joinRoom = function(name = "Guest", room = "DefaultRoom") { document.getElementById('room-header').innerText = 'ROOM ' + room; document.getElementById('join').style.display = 'none'; document.getElementById('room').style.display = 'block'; console.log(`Join Room function triggered, Name: ${name}, Room: ${room}`); kurento.joinRoom(name, room); }; window.leaveRoom = function() { kurento.leaveRoom(); }; window.mute = function() { kurento.mute(); }; // ✅ Fix: Ensure event parameters are passed correctly // Notify parent window when the iframe is ready // Notify parent window when the iframe is ready window.addEventListener("DOMContentLoaded", function () { console.log("Iframe JavaScript loaded, sending ready message."); window.parent.postMessage({ event: "iframeReady" }, "*"); }); window.addEventListener("message", function (event) { if (!event.data || !event.data.event) return; console.log("Received event in iframe:", event.data); switch (event.data.event) { case "register": console.log("Register function triggered from parent page"); if (window.register) { window.register(event.data.name || "Guest", event.data.room || generateRandomString()); } else { console.error("Register function not found"); } break; case "joinRoom": if (window.joinRoom) { window.joinRoom(event.data.name || "Guest", event.data.room || "DefaultRoom"); } break; case "leaveRoom": if (window.leaveRoom) { window.leaveRoom(); } break; } }); function generateRandomString(length = 10) { const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let result = ''; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * characters.length)); } return result; } }); /* initialize(); const kurento = new KurentoConference('wss://media.misentinelsos.co.uk/groupcall'); function initialize(){ kurento.connectWebSocket(); } function joinRoom(name, session_id){ kurento.joinRoom(name, session_id); } function leaveRoom(){ kurento.leaveRoom(); } function mic(status){ kurento.mic(status); } function camera(status){ kurento.camera(status); } // trigger when websocket is connect sessionEvent.on("connect", function(event){ console.log("on Connect event triggered, "+event); }); sessionEvent.on("onStreamReceived", function(event){ console.log("onStreamReceived, "+event); }); sessionEvent.on("onStreamDestroyed", function(event){ console.log("onStreamDestroyed, "+event); }); */