<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem turn</title>
<link>https://forum.pasja-informatyki.pl/tag/turn</link>
<description>Powered by Question2Answer</description>
<item>
<title>WebRTC konfiguracja serwera TURN i java script</title>
<link>https://forum.pasja-informatyki.pl/492756/webrtc-konfiguracja-serwera-turn-i-java-script</link>
<description>

&lt;p&gt;Próbuję zaimplementować WebRTC na stronie internetowej. Chcę wykorzystać do tego TURN Server, aby mieć pewność że zadziała u każdego bez względu na NAT. TURN Server został skonfigurowany tak jak pokazano poniżej. W js także są podane dane do serwera TURN i STUN. Strona nie jest gotowa, ponieważ utknąłem na problemie że nie do końca wiem jak połączyć ze sobą użytkowników. Z tego co udało mi się wywnioskować serwer STUN/TURN przyznaje osobie nadającej, port UDP do komunikacji, który jest następnie przekazywany odbiorcą i na tym porcie nadaje. Jednak wyjadę mi się że jest problem na komunikacji nadawca serwer, ponieważ w localDescription nie widnieje żaden port ani ip serwera, a jest jedyni localhost. Przesyłając te dane do odbiorcy nie mógł by żadnych danych odebrać. Moim pytaniem jest: gdzie jest problem. Czy to coś z konfiguracją czy raczej z kodem.&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
#**VPS server config (/etc/turnserver.conf)**


cli-password=12345678
listening-port=3478
#tls-listening-port=443

listening-ip=&amp;lt;my-server-ip&amp;gt;

relay-ip=&amp;lt;my-server-ip&amp;gt;
external-ip=&amp;lt;my-server-ip&amp;gt;

realm=&amp;lt;my-server-address&amp;gt;
server-name=&amp;lt;my-server-address&amp;gt;

lt-cred-mech
#userdb=/etc/turnuserdb.conf
user=&amp;lt;user:pass&amp;gt;
# use real-valid certificate/privatekey files
#cert=/etc/ssl/certificate.pem
#pkey=/etc/ssl/private.key

no-stdout-log&lt;/pre&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;!DOCTYPE html&amp;gt;

&amp;lt;html lang=&quot;en-US&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;



    &amp;lt;p&amp;gt;
        This example shows you the contents of the selected part of your display.
        Click the Start Capture button to begin.
    &amp;lt;/p&amp;gt;

    &amp;lt;p&amp;gt;&amp;lt;button id=&quot;start&quot;&amp;gt;Start Capture&amp;lt;/button&amp;gt;&amp;amp;nbsp;&amp;lt;button id=&quot;stop&quot;&amp;gt;Stop Capture&amp;lt;/button&amp;gt;&amp;lt;/p&amp;gt;

    &amp;lt;video style=&quot;width: 960px; height: 540px;&quot; id=&quot;video&quot; autoplay&amp;gt;&amp;lt;/video&amp;gt;
    &amp;lt;video style=&quot;width: 960px; height: 540px;&quot; id=&quot;remote-video&quot; autoplay&amp;gt;&amp;lt;/video&amp;gt;
    &amp;lt;br&amp;gt;

    &amp;lt;strong&amp;gt;Log:&amp;lt;/strong&amp;gt;
    &amp;lt;br&amp;gt;
    &amp;lt;pre id=&quot;log&quot;&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const Sender = new RTCPeerConnection({
            iceServers: [
                {
                    urls: &quot;stun:&amp;lt;ip-address&amp;gt;:3478&quot; 
                },

                {
                    urls: &quot;turn:&amp;lt;ip-address&amp;gt;:3478&quot;,
                    username: &quot;&amp;lt;user&amp;gt;&quot;,  
                    credential: &quot;&amp;lt;pass&amp;gt;&quot; 
                }
            ]
        });






        var displayMediaOptions = {
            audio: false,
            video: {
                cursor: &quot;always&quot;
            }
        };




             navigator.mediaDevices.getDisplayMedia(displayMediaOptions)
            .then(stream =&amp;gt; {
                document.getElementById(&quot;video&quot;).srcObject = stream;
                for (let track of stream.getTracks()) {
                    Sender.addTrack(track);
                }

                return Sender.createOffer();
            })
                 .then(offer =&amp;gt; {
                     Sender.setLocalDescription(new RTCSessionDescription(offer));
                     console.log(Sender.localDescription);
                 })
            //.then(() =&amp;gt; Reciver.setRemoteDescription(Sender.localDescription))
            //.then(() =&amp;gt; Reciver.createAnswer())
            //.then(answer =&amp;gt; Reciver.setLocalDescription(new RTCSessionDescription(answer)))
           // .then(() =&amp;gt; Sender.setRemoteDescription(Reciver.localDescription));&lt;/pre&gt;



&lt;p&gt;A tutaj poniżej to co jest w Sender.localDescription&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
sdp: &quot;v=0
↵o=- 409204313020118480 2 IN IP4 127.0.0.1
↵s=-
↵t=0 0
↵a=group:BUNDLE 0
↵a=msid-semantic: WMS
↵m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114 115 116
↵c=IN IP4 0.0.0.0
↵a=rtcp:9 IN IP4 0.0.0.0
↵a=ice-ufrag:j2gk
↵a=ice-pwd:y+bSuFIV7IeKCoFDVbB4Lvw5
↵a=ice-options:trickle
↵a=fingerprint:sha-256 
1E:44:A1:31:E5:80:B1:3C:14:56:EA:7A:5F:9C:5B:58:75:DA:3C:ED:D1:EB:77:DD:58:B8:C5:96:68:CC:AF:7E
↵a=setup:actpass
(...)&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/492756/webrtc-konfiguracja-serwera-turn-i-java-script</guid>
<pubDate>Fri, 05 Jun 2020 10:56:55 +0000</pubDate>
</item>
</channel>
</rss>