ajout app
This commit is contained in:
214
MiroTalk SFU/public/views/404.html
Normal file
214
MiroTalk SFU/public/views/404.html
Normal file
@ -0,0 +1,214 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<!-- Title and Icon -->
|
||||
|
||||
<title id="title">MiroTalk SFU - 404 Page not found.</title>
|
||||
<link id="icon" rel="shortcut icon" href="../images/logo.svg" />
|
||||
<link id="appleTouchIcon" rel="apple-touch-icon" href="../images/logo.svg" />
|
||||
|
||||
<!-- Meta Information -->
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta
|
||||
id="description"
|
||||
name="description"
|
||||
content="MiroTalk SFU powered by WebRTC and mediasoup, Real-time Simple Secure Fast video calls, messaging and screen sharing capabilities in the browser."
|
||||
/>
|
||||
<meta
|
||||
id="keywords"
|
||||
name="keywords"
|
||||
content="webrtc, miro, mediasoup, mediasoup-client, self hosted, voip, sip, real-time communications, chat, messaging, meet, webrtc stun, webrtc turn, webrtc p2p, webrtc sfu, video meeting, video chat, video conference, multi video chat, multi video conference, peer to peer, p2p, sfu, rtc, alternative to, zoom, microsoft teams, google meet, jitsi, meeting"
|
||||
/>
|
||||
|
||||
<!-- https://ogp.me -->
|
||||
|
||||
<meta id="ogType" property="og:type" content="app-webrtc" />
|
||||
<meta id="ogSiteName" property="og:site_name" content="MiroTalk SFU" />
|
||||
<meta id="ogTitle" property="og:title" content="Click the link to make a call." />
|
||||
<meta
|
||||
id="ogDescription"
|
||||
property="og:description"
|
||||
content="MiroTalk SFU calling provides real-time video calls, messaging and screen sharing."
|
||||
/>
|
||||
<meta id="ogImage" property="og:image" content="https://sfu.mirotalk.com/images/mirotalksfu.png" />
|
||||
|
||||
<!-- StyleSheet -->
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,600" />
|
||||
<link rel="stylesheet" href="../css/landing.css" />
|
||||
|
||||
<!-- Js scripts -->
|
||||
|
||||
<script defer src="../js/Brand.js"></script>
|
||||
<script async src="../js/Umami.js"></script>
|
||||
|
||||
<script src="https://unpkg.com/animejs@3.0.1/lib/anime.min.js"></script>
|
||||
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
|
||||
</head>
|
||||
<body class="is-boxed has-animations">
|
||||
<div class="body-wrap">
|
||||
<header class="site-header">
|
||||
<div class="container">
|
||||
<div class="site-header-inner">
|
||||
<div class="brand header-brand">
|
||||
<h1 class="m-0">
|
||||
<a href="/">
|
||||
<img
|
||||
class="header-logo-image"
|
||||
src="../images/logo.svg"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
/>
|
||||
<!-- <img
|
||||
class="header-logo-image reveal-from-left"
|
||||
src="../images/mirotalk-mc.png"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
width="96"
|
||||
height="auto"
|
||||
/> -->
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<div class="hero-inner">
|
||||
<div class="hero-copy">
|
||||
<h1 class="hero-title mt-0">
|
||||
Oops! <br />
|
||||
404 - PAGE NOT FOUND
|
||||
</h1>
|
||||
<p class="hero-paragraph" id="message"></p>
|
||||
<p class="hero-paragraph">This page you are looking not exist.</p>
|
||||
<div class="hero-cta">
|
||||
<a class="button button-primary pulse" onclick="window.location.href = '/';"
|
||||
>GO TO HOMEPAGE</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hero-figure anime-element">
|
||||
<svg class="placeholder" width="528" height="396" viewBox="0 0 528 396">
|
||||
<rect width="528" height="396" style="fill: transparent" />
|
||||
</svg>
|
||||
<div class="hero-figure-box hero-figure-box-01" data-rotation="45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-02" data-rotation="-45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-03" data-rotation="0deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-04" data-rotation="-135deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-05"></div>
|
||||
<div class="hero-figure-box hero-figure-box-06"></div>
|
||||
<div class="hero-figure-box hero-figure-box-07"></div>
|
||||
<div class="hero-figure-box hero-figure-box-08" data-rotation="-22deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-09" data-rotation="-52deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-10" data-rotation="-50deg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer id="footer" class="site-footer">
|
||||
<div class="container">
|
||||
<div class="site-footer-inner">
|
||||
<div class="brand footer-brand">
|
||||
<a href="/">
|
||||
<img class="header-logo-image" src="../images/logo.svg" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
<ul class="footer-links list-reset">
|
||||
<li>
|
||||
<a href="/about">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/privacy">Privacy Policy</a>
|
||||
</li>
|
||||
<li>
|
||||
Contact:
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/"
|
||||
>Miroslav Pejic</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="footer-social-links list-reset">
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://discord.gg/rgGYfeYW3N">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Forum</title>
|
||||
<path
|
||||
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.facebook.com/mirotalk">
|
||||
<span class="screen-reader-text">Facebook</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=_IVn2aINYww">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="mailto:miroslav.pejic.85@gmail.com">
|
||||
<span class="screen-reader-text">Google</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.9 7v2.4H12c-.2 1-1.2 3-4 3-2.4 0-4.3-2-4.3-4.4 0-2.4 2-4.4 4.3-4.4 1.4 0 2.3.6 2.8 1.1l1.9-1.8C11.5 1.7 9.9 1 8 1 4.1 1 1 4.1 1 8s3.1 7 7 7c4 0 6.7-2.8 6.7-6.8 0-.5 0-.8-.1-1.2H7.9z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/sponsors/miroslavpejic85"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-icon="octicon-heart"
|
||||
data-size="large"
|
||||
aria-label="Sponsor @miroslavpejic85 on GitHub"
|
||||
>Sponsor</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/miroslavpejic85/mirotalksfu"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-size="large"
|
||||
data-show-count="true"
|
||||
aria-label="Star miroslavpejic85/mirotalk on GitHub"
|
||||
>Star</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 MiroTalk SFU, all rights reserved</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script defer src="../js/landing.js"></script>
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
</body>
|
||||
</html>
|
206
MiroTalk SFU/public/views/50X.html
Normal file
206
MiroTalk SFU/public/views/50X.html
Normal file
@ -0,0 +1,206 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<!-- Title and Icon -->
|
||||
|
||||
<title id="title">MiroTalk SFU - 50X Under Maintenance.</title>
|
||||
<link id="icon" rel="shortcut icon" href="../images/logo.svg" />
|
||||
<link id="appleTouchIcon" rel="apple-touch-icon" href="../images/logo.svg" />
|
||||
|
||||
<!-- Meta Information -->
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta
|
||||
id="description"
|
||||
name="description"
|
||||
content="MiroTalk SFU powered by WebRTC and mediasoup, Real-time Simple Secure Fast video calls, messaging and screen sharing capabilities in the browser."
|
||||
/>
|
||||
<meta
|
||||
id="keywords"
|
||||
name="keywords"
|
||||
content="webrtc, miro, mediasoup, mediasoup-client, self hosted, voip, sip, real-time communications, chat, messaging, meet, webrtc stun, webrtc turn, webrtc p2p, webrtc sfu, video meeting, video chat, video conference, multi video chat, multi video conference, peer to peer, p2p, sfu, rtc, alternative to, zoom, microsoft teams, google meet, jitsi, meeting"
|
||||
/>
|
||||
|
||||
<!-- https://ogp.me -->
|
||||
|
||||
<meta id="ogType" property="og:type" content="app-webrtc" />
|
||||
<meta id="ogSiteName" property="og:site_name" content="MiroTalk SFU" />
|
||||
<meta id="ogTitle" property="og:title" content="Click the link to make a call." />
|
||||
<meta
|
||||
id="ogDescription"
|
||||
property="og:description"
|
||||
content="MiroTalk SFU calling provides real-time video calls, messaging and screen sharing."
|
||||
/>
|
||||
<meta id="ogImage" property="og:image" content="https://sfu.mirotalk.com/images/mirotalksfu.png" />
|
||||
|
||||
<!-- StyleSheet -->
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,600" />
|
||||
<link rel="stylesheet" href="../css/landing.css" />
|
||||
|
||||
<!-- Js scripts -->
|
||||
|
||||
<script defer src="../js/Brand.js"></script>
|
||||
<script async src="../js/Umami.js"></script>
|
||||
|
||||
<script src="https://unpkg.com/animejs@3.0.1/lib/anime.min.js"></script>
|
||||
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
|
||||
</head>
|
||||
<body class="is-boxed has-animations">
|
||||
<div class="body-wrap">
|
||||
<header class="site-header">
|
||||
<div class="container">
|
||||
<div class="site-header-inner">
|
||||
<div class="brand header-brand">
|
||||
<h1 class="m-0">
|
||||
<a href="https://github.com/miroslavpejic85/mirotalksfu">
|
||||
<img
|
||||
class="header-logo-image"
|
||||
src="../images/logo.svg"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
/>
|
||||
<!-- <img
|
||||
class="header-logo-image reveal-from-left"
|
||||
src="../images/mirotalk-mc.png"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
width="96"
|
||||
height="auto"
|
||||
/> -->
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<div class="hero-inner">
|
||||
<div class="hero-copy">
|
||||
<h1 class="hero-title mt-0">We've got something special in store for you. <br /></h1>
|
||||
<p class="hero-paragraph" id="message"></p>
|
||||
<p class="hero-paragraph">
|
||||
And we can't wait for you to see it. <br />
|
||||
Please check back soon.
|
||||
</p>
|
||||
<a href="https://github.com/miroslavpejic85/mirotalksfu">
|
||||
<img src="../images/maintenance.gif" class="pulse" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="hero-figure anime-element">
|
||||
<svg class="placeholder" width="528" height="396" viewBox="0 0 528 396">
|
||||
<rect width="528" height="396" style="fill: transparent" />
|
||||
</svg>
|
||||
<div class="hero-figure-box hero-figure-box-01" data-rotation="45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-02" data-rotation="-45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-03" data-rotation="0deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-04" data-rotation="-135deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-05"></div>
|
||||
<div class="hero-figure-box hero-figure-box-06"></div>
|
||||
<div class="hero-figure-box hero-figure-box-07"></div>
|
||||
<div class="hero-figure-box hero-figure-box-08" data-rotation="-22deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-09" data-rotation="-52deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-10" data-rotation="-50deg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer id="footer" class="site-footer">
|
||||
<div class="container">
|
||||
<div class="site-footer-inner">
|
||||
<div class="brand footer-brand">
|
||||
<a href="https://github.com/miroslavpejic85/mirotalksfu">
|
||||
<img class="header-logo-image" src="../images/logo.svg" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
<ul class="footer-links list-reset">
|
||||
<li>
|
||||
Contact:
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/"
|
||||
>Miroslav Pejic</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="footer-social-links list-reset">
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://discord.gg/rgGYfeYW3N">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Forum</title>
|
||||
<path
|
||||
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.facebook.com/mirotalk">
|
||||
<span class="screen-reader-text">Facebook</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=_IVn2aINYww">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="mailto:miroslav.pejic.85@gmail.com">
|
||||
<span class="screen-reader-text">Google</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.9 7v2.4H12c-.2 1-1.2 3-4 3-2.4 0-4.3-2-4.3-4.4 0-2.4 2-4.4 4.3-4.4 1.4 0 2.3.6 2.8 1.1l1.9-1.8C11.5 1.7 9.9 1 8 1 4.1 1 1 4.1 1 8s3.1 7 7 7c4 0 6.7-2.8 6.7-6.8 0-.5 0-.8-.1-1.2H7.9z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/sponsors/miroslavpejic85"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-icon="octicon-heart"
|
||||
data-size="large"
|
||||
aria-label="Sponsor @miroslavpejic85 on GitHub"
|
||||
>Sponsor</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/miroslavpejic85/mirotalksfu"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-size="large"
|
||||
data-show-count="true"
|
||||
aria-label="Star miroslavpejic85/mirotalk on GitHub"
|
||||
>Star</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 MiroTalk SFU, all rights reserved</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script defer src="../js/landing.js"></script>
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
</body>
|
||||
</html>
|
1436
MiroTalk SFU/public/views/Room.html
Normal file
1436
MiroTalk SFU/public/views/Room.html
Normal file
File diff suppressed because it is too large
Load Diff
183
MiroTalk SFU/public/views/about.html
Normal file
183
MiroTalk SFU/public/views/about.html
Normal file
@ -0,0 +1,183 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<!-- Title and Icon -->
|
||||
|
||||
<title id="title">MiroTalk SFU - About.</title>
|
||||
<link id="icon" rel="shortcut icon" href="../images/logo.svg" />
|
||||
<link id="appleTouchIcon" rel="apple-touch-icon" href="../images/logo.svg" />
|
||||
|
||||
<!-- Meta Information -->
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta
|
||||
id="description"
|
||||
name="description"
|
||||
content="MiroTalk SFU powered by WebRTC and mediasoup, Real-time Simple Secure Fast video calls, messaging and screen sharing capabilities in the browser."
|
||||
/>
|
||||
<meta
|
||||
id="keywords"
|
||||
name="keywords"
|
||||
content="webrtc, miro, mediasoup, mediasoup-client, self hosted, voip, sip, real-time communications, chat, messaging, meet, webrtc stun, webrtc turn, webrtc p2p, webrtc sfu, video meeting, video chat, video conference, multi video chat, multi video conference, peer to peer, p2p, sfu, rtc, alternative to, zoom, microsoft teams, google meet, jitsi, meeting"
|
||||
/>
|
||||
|
||||
<!-- https://ogp.me -->
|
||||
|
||||
<meta id="ogType" property="og:type" content="app-webrtc" />
|
||||
<meta id="ogSiteName" property="og:site_name" content="MiroTalk SFU" />
|
||||
<meta id="ogTitle" property="og:title" content="Click the link to make a call." />
|
||||
<meta
|
||||
id="ogDescription"
|
||||
property="og:description"
|
||||
content="MiroTalk SFU calling provides real-time video calls, messaging and screen sharing."
|
||||
/>
|
||||
<meta id="ogImage" property="og:image" content="https://sfu.mirotalk.com/images/mirotalksfu.png" />
|
||||
|
||||
<!-- StyleSheet -->
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,600" />
|
||||
<link rel="stylesheet" href="../css/landing.css" />
|
||||
|
||||
<!-- Js scripts -->
|
||||
|
||||
<script defer src="../js/Brand.js"></script>
|
||||
<script async src="../js/Umami.js"></script>
|
||||
|
||||
<script src="https://unpkg.com/animejs@3.0.1/lib/anime.min.js"></script>
|
||||
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div
|
||||
style="
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
padding-top: 56.25%;
|
||||
padding-bottom: 48px;
|
||||
box-shadow: 0 2px 8px 0 rgba(63, 69, 81, 0.16);
|
||||
margin-top: 1.6em;
|
||||
margin-bottom: 0.9em;
|
||||
overflow: hidden;
|
||||
border-radius: 8px;
|
||||
will-change: transform;
|
||||
"
|
||||
>
|
||||
<iframe
|
||||
loading="lazy"
|
||||
style="
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
"
|
||||
src="https://www.canva.com/design/DAE693uLOIU/view?embed"
|
||||
allowfullscreen="allowfullscreen"
|
||||
allow="fullscreen"
|
||||
>
|
||||
</iframe>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<div class="site-footer-inner">
|
||||
<div class="brand footer-brand">
|
||||
<a href="/">
|
||||
<img class="header-logo-image" src="../images/logo.svg" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
<ul class="footer-links list-reset">
|
||||
<li>
|
||||
<a href="/privacy">Privacy Policy</a>
|
||||
</li>
|
||||
<li>
|
||||
Contact:
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/"
|
||||
>Miroslav Pejic</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="footer-social-links list-reset">
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://discord.gg/rgGYfeYW3N">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Forum</title>
|
||||
<path
|
||||
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.facebook.com/mirotalk">
|
||||
<span class="screen-reader-text">Facebook</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=_IVn2aINYww">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="mailto:miroslav.pejic.85@gmail.com">
|
||||
<span class="screen-reader-text">Google</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.9 7v2.4H12c-.2 1-1.2 3-4 3-2.4 0-4.3-2-4.3-4.4 0-2.4 2-4.4 4.3-4.4 1.4 0 2.3.6 2.8 1.1l1.9-1.8C11.5 1.7 9.9 1 8 1 4.1 1 1 4.1 1 8s3.1 7 7 7c4 0 6.7-2.8 6.7-6.8 0-.5 0-.8-.1-1.2H7.9z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/sponsors/miroslavpejic85"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-icon="octicon-heart"
|
||||
data-size="large"
|
||||
aria-label="Sponsor @miroslavpejic85 on GitHub"
|
||||
>Sponsor</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/miroslavpejic85/mirotalksfu"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-size="large"
|
||||
data-show-count="true"
|
||||
aria-label="Star miroslavpejic85/mirotalk on GitHub"
|
||||
>Star</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 MiroTalk SFU, all rights reserved</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script defer src="../js/landing.js"></script>
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
</body>
|
||||
</html>
|
629
MiroTalk SFU/public/views/landing.html
Normal file
629
MiroTalk SFU/public/views/landing.html
Normal file
@ -0,0 +1,629 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<!-- Title and Icon -->
|
||||
|
||||
<title id="title">MiroTalk SFU, Free Video Calls, Messaging and Screen Sharing</title>
|
||||
<link id="icon" rel="shortcut icon" href="../images/logo.svg" />
|
||||
<link id="appleTouchIcon" rel="apple-touch-icon" href="../images/logo.svg" />
|
||||
|
||||
<!-- Meta Information -->
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta
|
||||
id="description"
|
||||
name="description"
|
||||
content="MiroTalk SFU powered by WebRTC and mediasoup, Real-time Simple Secure Fast video calls, messaging and screen sharing capabilities in the browser."
|
||||
/>
|
||||
<meta
|
||||
id="keywords"
|
||||
name="keywords"
|
||||
content="webrtc, miro, mediasoup, mediasoup-client, self hosted, voip, sip, real-time communications, chat, messaging, meet, webrtc stun, webrtc turn, webrtc p2p, webrtc sfu, video meeting, video chat, video conference, multi video chat, multi video conference, peer to peer, p2p, sfu, rtc, alternative to, zoom, microsoft teams, google meet, jitsi, meeting"
|
||||
/>
|
||||
|
||||
<!-- https://ogp.me -->
|
||||
|
||||
<meta id="ogType" property="og:type" content="app-webrtc" />
|
||||
<meta id="ogSiteName" property="og:site_name" content="MiroTalk SFU" />
|
||||
<meta id="ogTitle" property="og:title" content="Click the link to make a call." />
|
||||
<meta
|
||||
id="ogDescription"
|
||||
property="og:description"
|
||||
content="MiroTalk SFU calling provides real-time video calls, messaging and screen sharing."
|
||||
/>
|
||||
<meta id="ogImage" property="og:image" content="https://sfu.mirotalk.com/images/mirotalksfu.png" />
|
||||
|
||||
<!-- StyleSheet -->
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,600" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" />
|
||||
<link rel="stylesheet" href="../css/landing.css" />
|
||||
<!-- <link rel="stylesheet" href="../css/Snow.css" /> -->
|
||||
|
||||
<!-- Js scripts -->
|
||||
|
||||
<script defer src="../js/Brand.js"></script>
|
||||
<script async src="../js/Umami.js"></script>
|
||||
|
||||
<!-- <script async src="../js/Snow.js"></script> -->
|
||||
<script src="https://unpkg.com/animejs@3.0.1/lib/anime.min.js"></script>
|
||||
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/xss/dist/xss.min.js"></script>
|
||||
</head>
|
||||
<body class="is-boxed has-animations">
|
||||
<div id="snow-container"></div>
|
||||
<div class="body-wrap">
|
||||
<header class="site-header">
|
||||
<div class="container">
|
||||
<div class="site-header-inner">
|
||||
<div class="brand header-brand">
|
||||
<div class="m-0">
|
||||
<a href="/">
|
||||
<img
|
||||
class="header-logo-image"
|
||||
src="../images/logo.svg"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
/>
|
||||
<!-- <img
|
||||
class="header-logo-image reveal-from-left"
|
||||
src="../images/mirotalk-mc.png"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
width="96"
|
||||
height="auto"
|
||||
/> -->
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="hero reveal-from-bottom">
|
||||
<div class="container">
|
||||
<div class="hero-inner">
|
||||
<div class="hero-copy">
|
||||
<h1 id="appTitle" class="hero-title mt-0">
|
||||
MiroTalk SFU<br />Free browser based Real-time video calls.<br />
|
||||
Simple, Secure, Fast.
|
||||
</h1>
|
||||
<p id="appDescription" class="hero-paragraph">
|
||||
Start your next video call with a single click. No download, plug-in, or login is
|
||||
required. Just get straight to talking, messaging, and sharing your screen.
|
||||
</p>
|
||||
</div>
|
||||
<div class="hero-figure anime-element">
|
||||
<svg class="placeholder" width="528" height="396" viewBox="0 0 528 396">
|
||||
<rect width="528" height="396" style="fill: transparent" />
|
||||
</svg>
|
||||
<div class="hero-figure-box hero-figure-box-01" data-rotation="45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-02" data-rotation="-45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-03" data-rotation="0deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-04" data-rotation="-135deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-05"></div>
|
||||
<div class="hero-figure-box hero-figure-box-06"></div>
|
||||
<div class="hero-figure-box hero-figure-box-07"></div>
|
||||
<div class="hero-figure-box hero-figure-box-08" data-rotation="-22deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-09" data-rotation="-52deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-10" data-rotation="-50deg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="cta section">
|
||||
<div class="container">
|
||||
<div class="cta-inner section-inner br-12">
|
||||
<h3 class="section-title mt-0">
|
||||
Pick a room name.<br />
|
||||
How about this one?
|
||||
</h3>
|
||||
<div>
|
||||
<div class="mb-24">
|
||||
<label for="roomName"></label>
|
||||
<div class="form-group-desktop">
|
||||
<input
|
||||
id="roomName"
|
||||
class="form-input"
|
||||
type="text"
|
||||
maxlength="36"
|
||||
value=""
|
||||
style="border-radius: 6px"
|
||||
/>
|
||||
<button
|
||||
id="genRoomButton"
|
||||
class="button button-primary br-6 mr-8 mb-8 fas fa-arrows-rotate"
|
||||
onclick="genRoom()"
|
||||
></button>
|
||||
<button
|
||||
id="joinRoomButton"
|
||||
class="button button-primary pulse"
|
||||
onclick="joinRoom()"
|
||||
>
|
||||
Join Room
|
||||
</button>
|
||||
<script>
|
||||
document.getElementById('roomName').onkeyup = (e) => {
|
||||
if (e.keyCode === 13) {
|
||||
e.preventDefault();
|
||||
joinRoom();
|
||||
}
|
||||
};
|
||||
function genRoom() {
|
||||
document.getElementById('roomName').value = getUUID4();
|
||||
}
|
||||
function getUUID4() {
|
||||
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>
|
||||
(
|
||||
c ^
|
||||
(crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))
|
||||
).toString(16),
|
||||
);
|
||||
}
|
||||
function joinRoom() {
|
||||
const roomName = filterXSS(document.getElementById('roomName').value);
|
||||
if (roomName) {
|
||||
window.location.href = '/join/' + roomName;
|
||||
window.localStorage.lastRoom = roomName;
|
||||
} else {
|
||||
alert('Room name empty!\nPlease pick a room name.');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div id="lastRoomContainer" class="last-room">
|
||||
<span>Your recent room:</span>
|
||||
<a id="lastRoom"></a>
|
||||
</div>
|
||||
<script>
|
||||
const lastRoomContainer = document.getElementById('lastRoomContainer');
|
||||
const lastRoom = document.getElementById('lastRoom');
|
||||
const lastRoomName = window.localStorage.lastRoom
|
||||
? window.localStorage.lastRoom
|
||||
: '';
|
||||
if (lastRoomName) {
|
||||
lastRoomContainer.style.display = 'inline-flex';
|
||||
lastRoom.setAttribute('href', '/join/' + lastRoomName);
|
||||
lastRoom.innerText = lastRoomName;
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="features" class="features section">
|
||||
<div class="container-sm">
|
||||
<div class="pricing-header text-center reveal-from-bottom mt-32" data-reveal-delay="150">
|
||||
<br />
|
||||
<h2 class="section-title mt-0">
|
||||
Unlimited number of conference rooms and users without call time limitation!
|
||||
</h2>
|
||||
<p class="section-paragraph mb-0">
|
||||
With SFU integrated Server. We engineered a platform with maximum video quality lowest
|
||||
latency that makes your calls crystal clear. Compatible with all browsers and platforms!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="features-inner section-inner has-bottom-divider">
|
||||
<div class="features-wrap">
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/screen_sharing.svg"
|
||||
alt="mirotalksfu-screen"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">Screen Sharing</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Share your screen, application window, present your documents, slides and
|
||||
more.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/webcam_streaming.svg"
|
||||
alt="mirotalksfu-webcam"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">WebCam Streaming</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Having the webcam on, allows participants to make a deeper connection with
|
||||
you. Up to 4k resolution.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/audio_streaming.svg"
|
||||
alt="mirotalksfu-audio"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">Audio Streaming</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Echo cancellation and noise suppression that make your audio crystal clear.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/webcam_chat.svg"
|
||||
alt="mirotalksfu-chat"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">Chat</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Chat with others in meeting with integrated emoji picker to show your
|
||||
feeling.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/recording_meeting.svg"
|
||||
alt="mirotalksfu-recording"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">Recording meeting</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Record your Screen, Video, and Audio on Your browser Blob. Save it for using
|
||||
it in the future or to share with others.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/collaborative_whitboard.svg"
|
||||
alt="mirotalksfu-whiteboard"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">Collaborative Whiteboard</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Advanced interactive whiteboard to draw and explain your concepts to the
|
||||
other participants in the meeting.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/file_sharing.svg"
|
||||
alt="mirotalksfu-filesharing"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">File Sharing</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Share any types of files with all participants in the meeting.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/total_privacy.svg"
|
||||
alt="mirotalksfu-privacy"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">Total privacy</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Data stays between you and your participants. We doesn't collect or share
|
||||
personal information.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feature text-center is-revealing">
|
||||
<div class="feature-inner">
|
||||
<div class="feature-icon">
|
||||
<img
|
||||
class="wh-200-150"
|
||||
src="../svg/maximum_security.svg"
|
||||
alt="mirotalksfu-security"
|
||||
/>
|
||||
</div>
|
||||
<h4 class="feature-title mt-24">Maximum security</h4>
|
||||
<p class="text-sm mb-0">
|
||||
Thanks to WebRTC, all the media streams are encrypted using Secure Real-time
|
||||
Transport Protocol (SRTP).
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="teams" class="cta section">
|
||||
<div class="container reveal-from-bottom">
|
||||
<h2 style="text-align: center">Meet the team</h2>
|
||||
<br />
|
||||
<div align="center">
|
||||
<img
|
||||
src="../images/miroslav-pejic.png"
|
||||
alt="Team member author"
|
||||
width="180"
|
||||
height="180"
|
||||
class="rounded-image"
|
||||
/>
|
||||
<br />
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/">
|
||||
<h5 class="mt-0 mb-4">Miroslav Pejic</h5>
|
||||
</a>
|
||||
Full Stack Developer
|
||||
<br />
|
||||
</div>
|
||||
<hr />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<br />
|
||||
|
||||
<section id="tryEasier" class="cta section">
|
||||
<div class="container">
|
||||
<h2 style="text-align: center">Try an easier, more secure way of calling.</h2>
|
||||
<br />
|
||||
<div style="text-align: center">
|
||||
<a class="button button-primary button-wide-mobile br-6 pulse" href="/newroom">Try now</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<br /><br />
|
||||
|
||||
<section id="poweredBy" class="clients section">
|
||||
<div class="container">
|
||||
<h4 style="text-align: center; color: grey">Powered by</h4>
|
||||
<div class="clients-inner section-inner has-animations has-top-divider has-bottom-divider">
|
||||
<ul class="list-reset">
|
||||
<li class="reveal-from-left" data-reveal-delay="150">
|
||||
<a href="https://hetzner.cloud/?ref=XdRifCzCK3bn">
|
||||
<img src="../sponsors/Hetzner.png" alt="Powered by Hetzner" />
|
||||
</a>
|
||||
</li>
|
||||
<li class="reveal-from-left" data-reveal-delay="300">
|
||||
<a href="https://www.dpbolvw.net/click-101027391-14462707">
|
||||
<img src="../advertisers/ContaboLogo.png" alt="Powered by Contabo" />
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="sponsors" class="clients section">
|
||||
<div class="container">
|
||||
<h3 style="text-align: center">Our sponsors</h3>
|
||||
<br />
|
||||
<div class="clients-inner section-inner has-animations has-top-divider has-bottom-divider">
|
||||
<ul class="list-reset">
|
||||
<li class="reveal-from-left" data-reveal-delay="150">
|
||||
<div class="clients-logo">
|
||||
<a href="https://broadcastx.de/" target="_blank"
|
||||
><img
|
||||
class="clients-size-logo"
|
||||
src="../sponsors/BroadcastX.png"
|
||||
alt="BroadcastX"
|
||||
/></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="reveal-from-left" data-reveal-delay="300">
|
||||
<div class="clients-logo">
|
||||
<a href="https://hetzner.cloud/?ref=XdRifCzCK3bn" target="_blank"
|
||||
><img class="clients-size-logo" src="../sponsors/Hetzner.png" alt="Hetzner"
|
||||
/></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="reveal-from-left" data-reveal-delay="450">
|
||||
<div class="clients-logo">
|
||||
<a style="cursor: pointer" onclick="adultContent()"
|
||||
><img
|
||||
class="clients-size-logo"
|
||||
src="../sponsors/LuvLounge.png"
|
||||
alt="LuvLounge"
|
||||
/></a>
|
||||
</div>
|
||||
</li>
|
||||
<script>
|
||||
function adultContent() {
|
||||
if (
|
||||
confirm(
|
||||
'18+ WARNING! ADULTS ONLY!\n\nExplicit material for viewing by adults 18 years of age or older. You must be at least 18 years old to access to this site!\n\nProceeding you are agree and confirm to have 18+ year.',
|
||||
)
|
||||
) {
|
||||
window.open('https://luvlounge.ca', '_blank');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<li class="reveal-from-left" data-reveal-delay="600">
|
||||
<div class="clients-logo">
|
||||
<a href="https://www.questionpro.com" target="_blank"
|
||||
><img
|
||||
class="clients-size-logo"
|
||||
src="../sponsors/QuestionPro.png"
|
||||
alt="QuestionPro"
|
||||
/></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="reveal-from-left" data-reveal-delay="750">
|
||||
<div class="clients-logo">
|
||||
<a href="https://www.browserstack.com" target="_blank"
|
||||
><img
|
||||
class="clients-size-logo"
|
||||
src="../sponsors/BrowserStack.png"
|
||||
alt="BrowserStack"
|
||||
/></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="reveal-from-left" data-reveal-delay="900">
|
||||
<div class="clients-logo">
|
||||
<a href="https://crystalsound.ai" target="_blank"
|
||||
><img
|
||||
class="clients-size-logo"
|
||||
src="../sponsors/CrystalSound.png"
|
||||
alt="CrystalSound"
|
||||
/></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="reveal-from-left" data-reveal-delay="900">
|
||||
<div class="clients-logo">
|
||||
<a href="https://cloudron.io" target="_blank"
|
||||
><img
|
||||
class="clients-size-logo"
|
||||
src="../sponsors/Cloudron.png"
|
||||
alt="Cloudron"
|
||||
/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="advertisers" class="clients section">
|
||||
<div class="container">
|
||||
<h3 style="text-align: center">Our advertisers</h3>
|
||||
<br />
|
||||
<div class="clients-inner section-inner has-animations has-top-divider has-bottom-divider">
|
||||
<ul class="list-reset">
|
||||
<li class="reveal-from-left" data-reveal-delay="150">
|
||||
<div class="clients-logo">
|
||||
<a href="https://www.dpbolvw.net/click-101027391-14462707" target="_blank"
|
||||
><img
|
||||
class="clients-size-logo"
|
||||
src="../advertisers/Contabo.png"
|
||||
alt="Contabo"
|
||||
/></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer id="footer" class="site-footer">
|
||||
<div class="container">
|
||||
<div class="site-footer-inner">
|
||||
<div class="brand footer-brand">
|
||||
<a href="/">
|
||||
<img class="header-logo-image" src="../images/logo.svg" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
<ul class="footer-links list-reset">
|
||||
<li>
|
||||
<a href="/about">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/privacy">Privacy Policy</a>
|
||||
</li>
|
||||
<li>
|
||||
Contact:
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/"
|
||||
>Miroslav Pejic</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="footer-social-links list-reset">
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://discord.gg/rgGYfeYW3N">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Forum</title>
|
||||
<path
|
||||
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.facebook.com/mirotalk">
|
||||
<span class="screen-reader-text">Facebook</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=_IVn2aINYww">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="mailto:miroslav.pejic.85@gmail.com">
|
||||
<span class="screen-reader-text">Google</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.9 7v2.4H12c-.2 1-1.2 3-4 3-2.4 0-4.3-2-4.3-4.4 0-2.4 2-4.4 4.3-4.4 1.4 0 2.3.6 2.8 1.1l1.9-1.8C11.5 1.7 9.9 1 8 1 4.1 1 1 4.1 1 8s3.1 7 7 7c4 0 6.7-2.8 6.7-6.8 0-.5 0-.8-.1-1.2H7.9z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/sponsors/miroslavpejic85"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-icon="octicon-heart"
|
||||
data-size="large"
|
||||
aria-label="Sponsor @miroslavpejic85 on GitHub"
|
||||
>Sponsor</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/miroslavpejic85/mirotalksfu"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-size="large"
|
||||
data-show-count="true"
|
||||
aria-label="Star miroslavpejic85/mirotalk on GitHub"
|
||||
>Star</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 MiroTalk SFU, all rights reserved</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script defer src="../js/landing.js"></script>
|
||||
<script defer src="../js/newRoom.js"></script>
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
</body>
|
||||
</html>
|
330
MiroTalk SFU/public/views/login.html
Normal file
330
MiroTalk SFU/public/views/login.html
Normal file
@ -0,0 +1,330 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<!-- Title and Icon -->
|
||||
|
||||
<title id="title">MiroTalk SFU - Host Protected login required.</title>
|
||||
<link id="icon" rel="shortcut icon" href="../images/logo.svg" />
|
||||
<link id="appleTouchIcon" rel="apple-touch-icon" href="../images/logo.svg" />
|
||||
|
||||
<!-- Meta Information -->
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta
|
||||
id="description"
|
||||
name="description"
|
||||
content="MiroTalk SFU powered by WebRTC and mediasoup, Real-time Simple Secure Fast video calls, messaging and screen sharing capabilities in the browser."
|
||||
/>
|
||||
<meta
|
||||
id="keywords"
|
||||
name="keywords"
|
||||
content="webrtc, miro, mediasoup, mediasoup-client, self hosted, voip, sip, real-time communications, chat, messaging, meet, webrtc stun, webrtc turn, webrtc p2p, webrtc sfu, video meeting, video chat, video conference, multi video chat, multi video conference, peer to peer, p2p, sfu, rtc, alternative to, zoom, microsoft teams, google meet, jitsi, meeting"
|
||||
/>
|
||||
|
||||
<!-- https://ogp.me -->
|
||||
|
||||
<meta id="ogType" property="og:type" content="app-webrtc" />
|
||||
<meta id="ogSiteName" property="og:site_name" content="MiroTalk SFU" />
|
||||
<meta id="ogTitle" property="og:title" content="Click the link to make a call." />
|
||||
<meta
|
||||
id="ogDescription"
|
||||
property="og:description"
|
||||
content="MiroTalk SFU calling provides real-time video calls, messaging and screen sharing."
|
||||
/>
|
||||
<meta id="ogImage" property="og:image" content="https://sfu.mirotalk.com/images/mirotalksfu.png" />
|
||||
|
||||
<!-- StyleSheet -->
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,600" />
|
||||
<link rel="stylesheet" href="../css/landing.css" />
|
||||
|
||||
<!-- Js scripts -->
|
||||
|
||||
<script defer src="../js/Brand.js"></script>
|
||||
<script async src="../js/Umami.js"></script>
|
||||
|
||||
<script src="https://unpkg.com/animejs@3.0.1/lib/anime.min.js"></script>
|
||||
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
|
||||
|
||||
<!-- xss -->
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/xss/dist/xss.min.js"></script>
|
||||
|
||||
<!-- axios -->
|
||||
|
||||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
||||
</head>
|
||||
<body class="is-boxed has-animations">
|
||||
<div class="body-wrap">
|
||||
<header class="site-header">
|
||||
<div class="container">
|
||||
<div class="site-header-inner">
|
||||
<div class="brand header-brand">
|
||||
<h1 class="m-0">
|
||||
<a href="/">
|
||||
<img
|
||||
class="header-logo-image"
|
||||
src="../images/logo.svg"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
/>
|
||||
<!-- <img
|
||||
class="header-logo-image reveal-from-left"
|
||||
src="../images/mirotalk-mc.png"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
width="96"
|
||||
height="auto"
|
||||
/> -->
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<div class="hero-inner">
|
||||
<div class="hero-copy">
|
||||
<div id="loginForm">
|
||||
<br />
|
||||
<div class="mb-12">
|
||||
<input
|
||||
id="username"
|
||||
class="form-input"
|
||||
type="name"
|
||||
placeholder="Username"
|
||||
maxlength="36"
|
||||
style="border-radius: 6px"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
<div class="mb-12">
|
||||
<input
|
||||
id="password"
|
||||
class="form-input"
|
||||
type="password"
|
||||
style="border-radius: 6px"
|
||||
placeholder="Password"
|
||||
maxlength="36"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="mt-24 mb-32">
|
||||
<button id="loginButton" class="button button-primary button-block">
|
||||
Login
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
console.log(window.location);
|
||||
|
||||
const usernameInput = document.getElementById('username');
|
||||
const passwordInput = document.getElementById('password');
|
||||
const loginBtn = document.getElementById('loginButton');
|
||||
|
||||
usernameInput.onkeyup = (e) => {
|
||||
if (e.keyCode === 13) {
|
||||
e.preventDefault();
|
||||
login();
|
||||
}
|
||||
};
|
||||
passwordInput.onkeyup = (e) => {
|
||||
if (e.keyCode === 13) {
|
||||
e.preventDefault();
|
||||
login();
|
||||
}
|
||||
};
|
||||
|
||||
loginBtn.onclick = (e) => {
|
||||
login();
|
||||
};
|
||||
|
||||
function login() {
|
||||
const username = filterXSS(document.getElementById('username').value);
|
||||
const password = filterXSS(document.getElementById('password').value);
|
||||
|
||||
// http://localhost:3010/join/?room=test
|
||||
// http://localhost:3010/join/?room=test&roomPassword=0&name=mirotalksfu&audio=0&video=0&screen=0¬ify=0
|
||||
// http://localhost:3010/join/?room=test&roomPassword=0&name=mirotalksfu&audio=0&video=0&screen=0¬ify=0&username=username&password=password
|
||||
|
||||
const qs = new URLSearchParams(window.location.search);
|
||||
const room = filterXSS(qs.get('room'));
|
||||
|
||||
// http://localhost:3010/join/test
|
||||
const pathParts = window.location.pathname.split('/');
|
||||
const roomPath = pathParts[pathParts.length - 1];
|
||||
|
||||
if (username && password) {
|
||||
axios
|
||||
.post('/login', {
|
||||
username: username,
|
||||
password: password,
|
||||
})
|
||||
.then(function (response) {
|
||||
console.log(response);
|
||||
|
||||
// Store in session
|
||||
const token = response.data.message;
|
||||
window.sessionStorage.peer_token = token;
|
||||
|
||||
if (room) {
|
||||
return (window.location.href =
|
||||
'/join/' + window.location.search);
|
||||
/*
|
||||
return (window.location.href =
|
||||
'/join/?room=' + room + '&token=' + token); */
|
||||
}
|
||||
if (roomPath) {
|
||||
return (window.location.href = '/join/' + roomPath);
|
||||
/*
|
||||
return (window.location.href =
|
||||
'/join/?room=' + roomPath + '&token=' + token); */
|
||||
}
|
||||
|
||||
return (window.location.href = '/logged');
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error);
|
||||
alert('Unauthorized');
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!username && !password) {
|
||||
alert('Username and Password required');
|
||||
return;
|
||||
}
|
||||
if (!username) {
|
||||
alert('Username required');
|
||||
return;
|
||||
}
|
||||
if (!password) {
|
||||
alert('Password required');
|
||||
return;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
<div class="hero-figure anime-element">
|
||||
<svg class="placeholder" width="528" height="396" viewBox="0 0 528 396">
|
||||
<rect width="528" height="396" style="fill: transparent" />
|
||||
</svg>
|
||||
<div class="hero-figure-box hero-figure-box-01" data-rotation="45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-02" data-rotation="-45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-03" data-rotation="0deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-04" data-rotation="-135deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-05"></div>
|
||||
<div class="hero-figure-box hero-figure-box-06"></div>
|
||||
<div class="hero-figure-box hero-figure-box-07"></div>
|
||||
<div class="hero-figure-box hero-figure-box-08" data-rotation="-22deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-09" data-rotation="-52deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-10" data-rotation="-50deg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer id="footer" class="site-footer">
|
||||
<div class="container">
|
||||
<div class="site-footer-inner">
|
||||
<div class="brand footer-brand">
|
||||
<a href="/">
|
||||
<img class="header-logo-image" src="../images/logo.svg" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
<ul class="footer-links list-reset">
|
||||
<li>
|
||||
<a href="/about">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/privacy">Privacy Policy</a>
|
||||
</li>
|
||||
<li>
|
||||
Contact:
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/"
|
||||
>Miroslav Pejic</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="footer-social-links list-reset">
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://discord.gg/rgGYfeYW3N">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Forum</title>
|
||||
<path
|
||||
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.facebook.com/mirotalk">
|
||||
<span class="screen-reader-text">Facebook</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=_IVn2aINYww">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="mailto:miroslav.pejic.85@gmail.com">
|
||||
<span class="screen-reader-text">Google</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.9 7v2.4H12c-.2 1-1.2 3-4 3-2.4 0-4.3-2-4.3-4.4 0-2.4 2-4.4 4.3-4.4 1.4 0 2.3.6 2.8 1.1l1.9-1.8C11.5 1.7 9.9 1 8 1 4.1 1 1 4.1 1 8s3.1 7 7 7c4 0 6.7-2.8 6.7-6.8 0-.5 0-.8-.1-1.2H7.9z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/sponsors/miroslavpejic85"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-icon="octicon-heart"
|
||||
data-size="large"
|
||||
aria-label="Sponsor @miroslavpejic85 on GitHub"
|
||||
>Sponsor</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/miroslavpejic85/mirotalksfu"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-size="large"
|
||||
data-show-count="true"
|
||||
aria-label="Star miroslavpejic85/mirotalk on GitHub"
|
||||
>Star</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 MiroTalk SFU, all rights reserved</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script defer src="../js/landing.js"></script>
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
</body>
|
||||
</html>
|
70
MiroTalk SFU/public/views/maintenance.html
Normal file
70
MiroTalk SFU/public/views/maintenance.html
Normal file
@ -0,0 +1,70 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Site Maintenance</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="robots" content="noindex" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<style>
|
||||
body {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
font:
|
||||
20px Helvetica,
|
||||
sans-serif;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
body {
|
||||
padding-top: 150px;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
article {
|
||||
display: block;
|
||||
text-align: left;
|
||||
max-width: 650px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #dc8100;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<article>
|
||||
<h1>We’ll be back soon!</h1>
|
||||
<div>
|
||||
<p>
|
||||
Sorry for the inconvenience but we’re performing some maintenance at the moment. If you need
|
||||
to you can always
|
||||
<a href="mailto:miroslav.pejic.85@gmail.com">contact us</a>, otherwise we’ll be back online
|
||||
shortly!
|
||||
</p>
|
||||
<img src="https://media.giphy.com/media/dWesBcTLavkZuG35MI/giphy.gif" />
|
||||
<p>— The MiroTalk Team</p>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
<!--
|
||||
# Under maintenance custom page
|
||||
error_page 500 502 503 504 /50X.html;
|
||||
location = /maintenance.html {
|
||||
root /usr/share/nginx/html;
|
||||
internal;
|
||||
}
|
||||
-->
|
||||
</html>
|
299
MiroTalk SFU/public/views/newroom.html
Normal file
299
MiroTalk SFU/public/views/newroom.html
Normal file
@ -0,0 +1,299 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<!-- Title and Icon -->
|
||||
|
||||
<title id="title">MiroTalk SFU - Create your Room name and start the new call.</title>
|
||||
<link id="icon" rel="shortcut icon" href="../images/logo.svg" />
|
||||
<link id="appleTouchIcon" rel="apple-touch-icon" href="../images/logo.svg" />
|
||||
|
||||
<!-- Meta Information -->
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta
|
||||
id="description"
|
||||
name="description"
|
||||
content="MiroTalk SFU powered by WebRTC and mediasoup, Real-time Simple Secure Fast video calls, messaging and screen sharing capabilities in the browser."
|
||||
/>
|
||||
<meta
|
||||
id="keywords"
|
||||
name="keywords"
|
||||
content="webrtc, miro, mediasoup, mediasoup-client, self hosted, voip, sip, real-time communications, chat, messaging, meet, webrtc stun, webrtc turn, webrtc p2p, webrtc sfu, video meeting, video chat, video conference, multi video chat, multi video conference, peer to peer, p2p, sfu, rtc, alternative to, zoom, microsoft teams, google meet, jitsi, meeting"
|
||||
/>
|
||||
|
||||
<!-- https://ogp.me -->
|
||||
|
||||
<meta id="ogType" property="og:type" content="app-webrtc" />
|
||||
<meta id="ogSiteName" property="og:site_name" content="MiroTalk SFU" />
|
||||
<meta id="ogTitle" property="og:title" content="Click the link to make a call." />
|
||||
<meta
|
||||
id="ogDescription"
|
||||
property="og:description"
|
||||
content="MiroTalk SFU calling provides real-time video calls, messaging and screen sharing."
|
||||
/>
|
||||
<meta id="ogImage" property="og:image" content="https://sfu.mirotalk.com/images/mirotalksfu.png" />
|
||||
|
||||
<!-- StyleSheet -->
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,600" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" />
|
||||
<link rel="stylesheet" href="../css/landing.css" />
|
||||
|
||||
<!-- Js scripts -->
|
||||
|
||||
<script defer src="../js/Brand.js"></script>
|
||||
<script async src="../js/Umami.js"></script>
|
||||
|
||||
<script src="https://unpkg.com/animejs@3.0.1/lib/anime.min.js"></script>
|
||||
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/xss/dist/xss.min.js"></script>
|
||||
</head>
|
||||
<body class="is-boxed has-animations">
|
||||
<div class="body-wrap">
|
||||
<header class="site-header">
|
||||
<div class="container">
|
||||
<div class="site-header-inner">
|
||||
<div class="brand header-brand">
|
||||
<h1 class="m-0">
|
||||
<a href="/">
|
||||
<img
|
||||
class="header-logo-image"
|
||||
src="../images/logo.svg"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
/>
|
||||
<!-- <img
|
||||
class="header-logo-image reveal-from-left"
|
||||
src="../images/mirotalk-mc.png"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
width="96"
|
||||
height="auto"
|
||||
/> -->
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<div class="hero-inner">
|
||||
<div class="hero-copy reveal-from-bottom">
|
||||
<h1 class="hero-title mt-0">
|
||||
Pick name. <br />
|
||||
Share URL. <br />
|
||||
Start conference.
|
||||
</h1>
|
||||
<p class="hero-paragraph">
|
||||
Each room has its disposable URL. Just pick a room name and share your custom URL.
|
||||
It's that easy.
|
||||
</p>
|
||||
</div>
|
||||
<div class="hero-figure anime-element">
|
||||
<svg class="placeholder" width="528" height="396" viewBox="0 0 528 396">
|
||||
<rect width="528" height="396" style="fill: transparent" />
|
||||
</svg>
|
||||
<div class="hero-figure-box hero-figure-box-01" data-rotation="45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-02" data-rotation="-45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-03" data-rotation="0deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-04" data-rotation="-135deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-05"></div>
|
||||
<div class="hero-figure-box hero-figure-box-06"></div>
|
||||
<div class="hero-figure-box hero-figure-box-07"></div>
|
||||
<div class="hero-figure-box hero-figure-box-08" data-rotation="-22deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-09" data-rotation="-52deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-10" data-rotation="-50deg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr />
|
||||
|
||||
<section class="cta section mb-32">
|
||||
<div class="container">
|
||||
<div class="cta-inner section-inner br-12">
|
||||
<h3 class="section-title mt-0">
|
||||
Pick a room name.<br />
|
||||
How about this one?
|
||||
</h3>
|
||||
<div>
|
||||
<div class="mb-24">
|
||||
<label for="roomName"></label>
|
||||
<div class="form-group-desktop">
|
||||
<input
|
||||
id="roomName"
|
||||
class="form-input"
|
||||
type="text"
|
||||
maxlength="36"
|
||||
value=""
|
||||
style="border-radius: 6px"
|
||||
/>
|
||||
<button
|
||||
id="genRoomButton"
|
||||
class="button button-primary br-6 mr-8 mb-8 fas fa-arrows-rotate"
|
||||
onclick="genRoom()"
|
||||
></button>
|
||||
<button
|
||||
id="joinRoomButton"
|
||||
class="button button-primary pulse"
|
||||
onclick="joinRoom()"
|
||||
>
|
||||
Join Room
|
||||
</button>
|
||||
<script>
|
||||
document.getElementById('roomName').onkeyup = (e) => {
|
||||
if (e.keyCode === 13) {
|
||||
e.preventDefault();
|
||||
joinRoom();
|
||||
}
|
||||
};
|
||||
function genRoom() {
|
||||
document.getElementById('roomName').value = getUUID4();
|
||||
}
|
||||
function getUUID4() {
|
||||
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>
|
||||
(
|
||||
c ^
|
||||
(crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))
|
||||
).toString(16),
|
||||
);
|
||||
}
|
||||
function joinRoom() {
|
||||
const roomName = filterXSS(document.getElementById('roomName').value);
|
||||
if (roomName) {
|
||||
window.location.href = '/join/' + roomName;
|
||||
window.localStorage.lastRoom = roomName;
|
||||
} else {
|
||||
alert('Room name empty!\nPlease pick a room name.');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div id="lastRoomContainer" class="last-room">
|
||||
<span>Your recent room:</span>
|
||||
<a id="lastRoom"></a>
|
||||
</div>
|
||||
<script>
|
||||
const lastRoomContainer = document.getElementById('lastRoomContainer');
|
||||
const lastRoom = document.getElementById('lastRoom');
|
||||
const lastRoomName = window.localStorage.lastRoom
|
||||
? window.localStorage.lastRoom
|
||||
: '';
|
||||
if (lastRoomName) {
|
||||
lastRoomContainer.style.display = 'inline-flex';
|
||||
lastRoom.setAttribute('href', '/join/' + lastRoomName);
|
||||
lastRoom.innerText = lastRoomName;
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer id="footer" class="site-footer">
|
||||
<div class="container">
|
||||
<div class="site-footer-inner">
|
||||
<div class="brand footer-brand">
|
||||
<a href="/">
|
||||
<img class="header-logo-image" src="../images/logo.svg" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
<ul class="footer-links list-reset">
|
||||
<li>
|
||||
<a href="/about">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/privacy">Privacy Policy</a>
|
||||
</li>
|
||||
<li>
|
||||
Contact:
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/"
|
||||
>Miroslav Pejic</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="footer-social-links list-reset">
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://discord.gg/rgGYfeYW3N">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Forum</title>
|
||||
<path
|
||||
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.facebook.com/mirotalk">
|
||||
<span class="screen-reader-text">Facebook</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=_IVn2aINYww">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="mailto:miroslav.pejic.85@gmail.com">
|
||||
<span class="screen-reader-text">Google</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.9 7v2.4H12c-.2 1-1.2 3-4 3-2.4 0-4.3-2-4.3-4.4 0-2.4 2-4.4 4.3-4.4 1.4 0 2.3.6 2.8 1.1l1.9-1.8C11.5 1.7 9.9 1 8 1 4.1 1 1 4.1 1 8s3.1 7 7 7c4 0 6.7-2.8 6.7-6.8 0-.5 0-.8-.1-1.2H7.9z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/sponsors/miroslavpejic85"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-icon="octicon-heart"
|
||||
data-size="large"
|
||||
aria-label="Sponsor @miroslavpejic85 on GitHub"
|
||||
>Sponsor</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/miroslavpejic85/mirotalksfu"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-size="large"
|
||||
data-show-count="true"
|
||||
aria-label="Star miroslavpejic85/mirotalk on GitHub"
|
||||
>Star</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 MiroTalk SFU, all rights reserved</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script defer src="../js/landing.js"></script>
|
||||
<script defer src="../js/newRoom.js"></script>
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
</body>
|
||||
</html>
|
229
MiroTalk SFU/public/views/permission.html
Normal file
229
MiroTalk SFU/public/views/permission.html
Normal file
@ -0,0 +1,229 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<!-- Title and Icon -->
|
||||
|
||||
<title id="title">MiroTalk SFU - Allow Video or Audio access to join in the Room.</title>
|
||||
<link id="icon" rel="shortcut icon" href="../images/logo.svg" />
|
||||
<link id="appleTouchIcon" rel="apple-touch-icon" href="../images/logo.svg" />
|
||||
|
||||
<!-- Meta Information -->
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta
|
||||
id="description"
|
||||
name="description"
|
||||
content="MiroTalk SFU powered by WebRTC and mediasoup, Real-time Simple Secure Fast video calls, messaging and screen sharing capabilities in the browser."
|
||||
/>
|
||||
<meta
|
||||
id="keywords"
|
||||
name="keywords"
|
||||
content="webrtc, miro, mediasoup, mediasoup-client, self hosted, voip, sip, real-time communications, chat, messaging, meet, webrtc stun, webrtc turn, webrtc p2p, webrtc sfu, video meeting, video chat, video conference, multi video chat, multi video conference, peer to peer, p2p, sfu, rtc, alternative to, zoom, microsoft teams, google meet, jitsi, meeting"
|
||||
/>
|
||||
|
||||
<!-- https://ogp.me -->
|
||||
|
||||
<meta id="ogType" property="og:type" content="app-webrtc" />
|
||||
<meta id="ogSiteName" property="og:site_name" content="MiroTalk SFU" />
|
||||
<meta id="ogTitle" property="og:title" content="Click the link to make a call." />
|
||||
<meta
|
||||
id="ogDescription"
|
||||
property="og:description"
|
||||
content="MiroTalk SFU calling provides real-time video calls, messaging and screen sharing."
|
||||
/>
|
||||
<meta id="ogImage" property="og:image" content="https://sfu.mirotalk.com/images/mirotalksfu.png" />
|
||||
|
||||
<!-- StyleSheet -->
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,600" />
|
||||
<link rel="stylesheet" href="../css/landing.css" />
|
||||
|
||||
<!-- Js scripts -->
|
||||
|
||||
<script defer src="../js/Brand.js"></script>
|
||||
<script async src="../js/Umami.js"></script>
|
||||
|
||||
<script src="https://unpkg.com/animejs@3.0.1/lib/anime.min.js"></script>
|
||||
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
|
||||
|
||||
<!-- xss -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/xss/dist/xss.min.js"></script>
|
||||
</head>
|
||||
<body class="is-boxed has-animations">
|
||||
<div class="body-wrap">
|
||||
<header class="site-header">
|
||||
<div class="container">
|
||||
<div class="site-header-inner">
|
||||
<div class="brand header-brand">
|
||||
<h1 class="m-0">
|
||||
<a href="/">
|
||||
<img
|
||||
class="header-logo-image"
|
||||
src="../images/logo.svg"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
/>
|
||||
<!-- <img
|
||||
class="header-logo-image reveal-from-left"
|
||||
src="../images/mirotalk-mc.png"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
width="96"
|
||||
height="auto"
|
||||
/> -->
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<div class="hero-inner">
|
||||
<div class="hero-copy">
|
||||
<h1 class="hero-title mt-0">Access denied.</h1>
|
||||
<p class="hero-paragraph" id="message"></p>
|
||||
<p class="hero-paragraph">
|
||||
This app will not work without camera or microphone access. Please try again and
|
||||
allow it.
|
||||
</p>
|
||||
<script>
|
||||
let qs = new URLSearchParams(window.location.search);
|
||||
let room_id = filterXSS(qs.get('room_id'));
|
||||
let message = filterXSS(qs.get('message'));
|
||||
console.log('Allow Camera or Audio', {
|
||||
room_id: room_id,
|
||||
message: message,
|
||||
});
|
||||
document.getElementById('message').innerHTML = message;
|
||||
</script>
|
||||
<div class="hero-cta">
|
||||
<a
|
||||
class="button button-primary pulse"
|
||||
onclick="room_id ? window.location.href = '/join/' + room_id : window.location.href = '/newroom';"
|
||||
>TRY AGAIN</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hero-figure anime-element">
|
||||
<svg class="placeholder" width="528" height="396" viewBox="0 0 528 396">
|
||||
<rect width="528" height="396" style="fill: transparent" />
|
||||
</svg>
|
||||
<div class="hero-figure-box hero-figure-box-01" data-rotation="45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-02" data-rotation="-45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-03" data-rotation="0deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-04" data-rotation="-135deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-05"></div>
|
||||
<div class="hero-figure-box hero-figure-box-06"></div>
|
||||
<div class="hero-figure-box hero-figure-box-07"></div>
|
||||
<div class="hero-figure-box hero-figure-box-08" data-rotation="-22deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-09" data-rotation="-52deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-10" data-rotation="-50deg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer id="footer" class="site-footer">
|
||||
<div class="container">
|
||||
<div class="site-footer-inner">
|
||||
<div class="brand footer-brand">
|
||||
<a href="/">
|
||||
<img class="header-logo-image" src="../images/logo.svg" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
<ul class="footer-links list-reset">
|
||||
<li>
|
||||
<a href="/about">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/privacy">Privacy Policy</a>
|
||||
</li>
|
||||
<li>
|
||||
Contact:
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/"
|
||||
>Miroslav Pejic</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="footer-social-links list-reset">
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://discord.gg/rgGYfeYW3N">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Forum</title>
|
||||
<path
|
||||
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.facebook.com/mirotalk">
|
||||
<span class="screen-reader-text">Facebook</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=_IVn2aINYww">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="mailto:miroslav.pejic.85@gmail.com">
|
||||
<span class="screen-reader-text">Google</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.9 7v2.4H12c-.2 1-1.2 3-4 3-2.4 0-4.3-2-4.3-4.4 0-2.4 2-4.4 4.3-4.4 1.4 0 2.3.6 2.8 1.1l1.9-1.8C11.5 1.7 9.9 1 8 1 4.1 1 1 4.1 1 8s3.1 7 7 7c4 0 6.7-2.8 6.7-6.8 0-.5 0-.8-.1-1.2H7.9z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/sponsors/miroslavpejic85"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-icon="octicon-heart"
|
||||
data-size="large"
|
||||
aria-label="Sponsor @miroslavpejic85 on GitHub"
|
||||
>Sponsor</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/miroslavpejic85/mirotalksfu"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-size="large"
|
||||
data-show-count="true"
|
||||
aria-label="Star miroslavpejic85/mirotalk on GitHub"
|
||||
>Star</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 MiroTalk SFU, all rights reserved</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script defer src="../js/landing.js"></script>
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
</body>
|
||||
</html>
|
222
MiroTalk SFU/public/views/privacy.html
Normal file
222
MiroTalk SFU/public/views/privacy.html
Normal file
@ -0,0 +1,222 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<!-- Title and Icon -->
|
||||
|
||||
<title id="title">MiroTalk SFU - privacy policy.</title>
|
||||
<link id="icon" rel="shortcut icon" href="../images/logo.svg" />
|
||||
<link id="appleTouchIcon" rel="apple-touch-icon" href="../images/logo.svg" />
|
||||
|
||||
<!-- Meta Information -->
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta
|
||||
id="description"
|
||||
name="description"
|
||||
content="MiroTalk SFU powered by WebRTC and mediasoup, Real-time Simple Secure Fast video calls, messaging and screen sharing capabilities in the browser."
|
||||
/>
|
||||
<meta
|
||||
id="keywords"
|
||||
name="keywords"
|
||||
content="webrtc, miro, mediasoup, mediasoup-client, self hosted, voip, sip, real-time communications, chat, messaging, meet, webrtc stun, webrtc turn, webrtc p2p, webrtc sfu, video meeting, video chat, video conference, multi video chat, multi video conference, peer to peer, p2p, sfu, rtc, alternative to, zoom, microsoft teams, google meet, jitsi, meeting"
|
||||
/>
|
||||
|
||||
<!-- https://ogp.me -->
|
||||
|
||||
<meta id="ogType" property="og:type" content="app-webrtc" />
|
||||
<meta id="ogSiteName" property="og:site_name" content="MiroTalk SFU" />
|
||||
<meta id="ogTitle" property="og:title" content="Click the link to make a call." />
|
||||
<meta
|
||||
id="ogDescription"
|
||||
property="og:description"
|
||||
content="MiroTalk SFU calling provides real-time video calls, messaging and screen sharing."
|
||||
/>
|
||||
<meta id="ogImage" property="og:image" content="https://sfu.mirotalk.com/images/mirotalksfu.png" />
|
||||
|
||||
<!-- StyleSheet -->
|
||||
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,600" />
|
||||
<link rel="stylesheet" href="../css/landing.css" />
|
||||
|
||||
<!-- Js scripts -->
|
||||
|
||||
<script defer src="../js/Brand.js"></script>
|
||||
<script async src="../js/Umami.js"></script>
|
||||
|
||||
<script src="https://unpkg.com/animejs@3.0.1/lib/anime.min.js"></script>
|
||||
<script src="https://unpkg.com/scrollreveal@4.0.0/dist/scrollreveal.min.js"></script>
|
||||
</head>
|
||||
<body class="is-boxed has-animations">
|
||||
<div class="body-wrap">
|
||||
<header class="site-header">
|
||||
<div class="container">
|
||||
<div class="site-header-inner">
|
||||
<div class="brand header-brand">
|
||||
<h1 class="m-0">
|
||||
<a href="/">
|
||||
<img
|
||||
class="header-logo-image"
|
||||
src="../images/logo.svg"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
/>
|
||||
<!-- <img
|
||||
class="header-logo-image reveal-from-left"
|
||||
src="../images/mirotalk-mc.png"
|
||||
alt="mirotalksfu-webrtc-logo"
|
||||
width="96"
|
||||
height="auto"
|
||||
/> -->
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<div class="hero-inner">
|
||||
<div class="hero-copy">
|
||||
<h1 class="hero-title mt-0">Privacy Policy</h1>
|
||||
<p class="hero-paragraph" id="message"></p>
|
||||
<p class="hero-paragraph">
|
||||
<strong>MiroTalk SFU</strong> has an integrated
|
||||
<a href="https://mediasoup.org/" target="_blank">mediasoup server</a>. Routing is a
|
||||
multiparty topology, where each participant sends its media to this server and
|
||||
receives all other's media from it. Thanks to the SFU architecture, it allows having
|
||||
many users connected in the same room. The media streams are encrypted using Secure
|
||||
Real-time Transport Protocol (SRTP).<br /><br />
|
||||
If you record a meeting, the recording of the meeting is temporarily stored on
|
||||
<strong>Your browser</strong>
|
||||
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Blob" target="_blank"
|
||||
>Blob</a
|
||||
>, then will be downloaded on Your PC/Mobile Device.<br /><br />
|
||||
We use Umami to track aggregated usage statistics in order to improve our service.
|
||||
The maker of
|
||||
<strong>MiroTalk SFU</strong> has no intention of using personally or selling any of
|
||||
the above-mentioned data.
|
||||
</p>
|
||||
<div>
|
||||
<a class="button button-primary button-wide-mobile pulse" href="/newroom">AGREE</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hero-figure anime-element">
|
||||
<svg class="placeholder" width="528" height="396" viewBox="0 0 528 396">
|
||||
<rect width="528" height="396" style="fill: transparent" />
|
||||
</svg>
|
||||
<div class="hero-figure-box hero-figure-box-01" data-rotation="45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-02" data-rotation="-45deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-03" data-rotation="0deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-04" data-rotation="-135deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-05"></div>
|
||||
<div class="hero-figure-box hero-figure-box-06"></div>
|
||||
<div class="hero-figure-box hero-figure-box-07"></div>
|
||||
<div class="hero-figure-box hero-figure-box-08" data-rotation="-22deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-09" data-rotation="-52deg"></div>
|
||||
<div class="hero-figure-box hero-figure-box-10" data-rotation="-50deg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer id="footer" class="site-footer">
|
||||
<div class="container">
|
||||
<div class="site-footer-inner">
|
||||
<div class="brand footer-brand">
|
||||
<a href="/">
|
||||
<img class="header-logo-image" src="../images/logo.svg" alt="Logo" />
|
||||
</a>
|
||||
</div>
|
||||
<ul class="footer-links list-reset">
|
||||
<li>
|
||||
<a href="/about">About</a>
|
||||
</li>
|
||||
<li>
|
||||
Contact:
|
||||
<a target="_blank" href="https://www.linkedin.com/in/miroslav-pejic-976a07101/"
|
||||
>Miroslav Pejic</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="footer-social-links list-reset">
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://discord.gg/rgGYfeYW3N">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Forum</title>
|
||||
<path
|
||||
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.facebook.com/mirotalk">
|
||||
<span class="screen-reader-text">Facebook</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=_IVn2aINYww">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M21.582,6.186c-0.23-0.86-0.908-1.538-1.768-1.768C18.254,4,12,4,12,4S5.746,4,4.186,4.418 c-0.86,0.23-1.538,0.908-1.768,1.768C2,7.746,2,12,2,12s0,4.254,0.418,5.814c0.23,0.86,0.908,1.538,1.768,1.768 C5.746,20,12,20,12,20s6.254,0,7.814-0.418c0.861-0.23,1.538-0.908,1.768-1.768C22,16.254,22,12,22,12S22,7.746,21.582,6.186z M10,15.464V8.536L16,12L10,15.464z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li class="footer-social-icon">
|
||||
<a target="_blank" href="mailto:miroslav.pejic.85@gmail.com">
|
||||
<span class="screen-reader-text">Google</span>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.9 7v2.4H12c-.2 1-1.2 3-4 3-2.4 0-4.3-2-4.3-4.4 0-2.4 2-4.4 4.3-4.4 1.4 0 2.3.6 2.8 1.1l1.9-1.8C11.5 1.7 9.9 1 8 1 4.1 1 1 4.1 1 8s3.1 7 7 7c4 0 6.7-2.8 6.7-6.8 0-.5 0-.8-.1-1.2H7.9z"
|
||||
fill="#0270D7"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/sponsors/miroslavpejic85"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-icon="octicon-heart"
|
||||
data-size="large"
|
||||
aria-label="Sponsor @miroslavpejic85 on GitHub"
|
||||
>Sponsor</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
class="github-button"
|
||||
href="https://github.com/miroslavpejic85/mirotalksfu"
|
||||
data-color-scheme="no-preference: light; light: light; dark: dark;"
|
||||
data-size="large"
|
||||
data-show-count="true"
|
||||
aria-label="Star miroslavpejic85/mirotalk on GitHub"
|
||||
>Star</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 MiroTalk SFU, all rights reserved</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script defer src="../js/landing.js"></script>
|
||||
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user