Webrtc not connecting on different network even on TURN
Asked Answered
W

0

8

I am using RTCmulticonnection in one of my project everything works fine except it is not working on different networks. I Have gone through Github issue which state that it needs turn server to run it on different networks. but i already configured turn server according to the documentation.

here is my code

<script src="https://rtcmulticonnection.herokuapp.com/dist/RTCMultiConnection.min.js"></script>
<script src="https://rtcmulticonnection.herokuapp.com/socket.io/socket.io.js"></script>

<script>
var connection = new RTCMultiConnection();

// this line is VERY_important
connection.socketURL = 'https://rtcmulticonnection.herokuapp.com:443/';

// if you want audio+video conferencing
connection.session = {
    audio: true,
    video: true
};

// first step, ignore default STUN+TURN servers
connection.iceServers = [];

// second step, set STUN url
connection.iceServers.push({
    urls: 'stun:mydimain.com:3478'
});

// last step, set TURN url (recommended)
connection.iceServers.push({
    urls: 'turn:mydimain.com:3478',
    credential: 'mypassword',
    username: 'myusername'
});

connection.openOrJoin('this-is-your-room-id');
</script>

upon checking the console in chrome it won't show any error but in Firefox i get the following error...

ICE failed, your TURN server appears to be broken, see about:webrtc for more details.

I have tested my turn server in Trickle ICE. i am getting response and relay which means turn and stun working fine. i also checked connectivity in this snippet which shows

Yep, the TURN server works...

When ever the client initiate the session, I can connect to him and after a few (2-3)minutes it get disconnected. But when I initiate the session it won't get connected with client.

for testing purpose may be you can use this i got this from Github

// second step, set STUN url
    connection.iceServers.push({
        urls: 'stun:numb.viagenie.ca'
    });
    
    // last step, set TURN url (recommended)
    connection.iceServers.push({
        urls: 'turn:numb.viagenie.ca',
        credential: 'muazkh',
        username: '[email protected]'
    });

Getting the following error in WEBRTC-internals icecandidateerror

url: turns:mydimain.com:5349?transport=tcp
address: xxx.xxx.xx.x
port: 63612
host_candidate: address: xxx.xxx.xx.x:63612
error_text: Address not associated with the desired network interface.
error_code: 600

now what am i doing wrong? any help would be greatly appreciated. Thanks

Woll answered 8/8, 2020 at 10:35 Comment(5)
I also tried the above script with my turn server. as you said still firefox throws an error. and there are many who raised issues on Github about this topic. Hope Muaz Khan comes up with solution.Urceolate
@Urceolate Is that the problem of not connecting through ssl certificate ?Woll
I have an ssl certificate and I'm getting the same error, but not with this script...Flavopurpurin
@ChagaiFriedlander may be this error is due to IPV6 related turn, i think we need to point an ipv6 address to turnWoll
@asimdev, did you found a solution?Overrefinement

© 2022 - 2024 — McMap. All rights reserved.