EricssonResearch / openwebrtc

A cross-platform WebRTC client framework based on GStreamer
http://www.openwebrtc.org
BSD 2-Clause "Simplified" License
1.8k stars 537 forks source link

ICE failed to establish a connection #583

Open SrujithPoondla opened 8 years ago

SrujithPoondla commented 8 years ago

I am using Linux after starting Daemon and joining the call I am facing this issue

(gst-plugin-scanner:13174): GLib-GObject-WARNING **: cannot register existing type 'GstRtpH265Depay'

(gst-plugin-scanner:13174): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

(gst-plugin-scanner:13174): GStreamer-CRITICAL **: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed

** (gst-plugin-scanner:13174): CRITICAL **: Couldn't g_module_open libpython. Reason: /usr/lib/libpython2.7.so: cannot open shared object file: No such file or directory
{"line":24,"column":32,"sourceURL":"/opt/openwebrtc-0.3/share/seed-gtk3/extensions/Seed.js"}

0:00:48.342607531 28169       0xfe1560 ERROR             owrsession owr_session.c:765:_owr_session_emit_ice_state_changed:<OwrMediaSession@0xfe9ba0> Session 1, ICE failed to establish a connection!
ICE state changed from connecting to failed
0:00:48.342684923 28169       0xfe1560 ERROR             owrsession owr_session.c:765:_owr_session_emit_ice_state_changed:<OwrMediaSession@0xfe9cf0> Session 2, ICE failed to establish a connection!
ICE state changed from connecting to failed
0:00:48.342725589 28169       0xfe1560 ERROR             owrsession owr_session.c:765:_owr_session_emit_ice_state_changed:<OwrDataSession@0xf598f0> Session 3, ICE failed to establish a connection!
ICE state changed from connecting to failed

(openwebrtc-daemon:28169): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object != NULL' failed

** (openwebrtc-daemon:28169): WARNING **: rtpsession: Trying to send an empty RTCP packet
(openwebrtc-daemon:2750): GStreamer-WARNING **: gstpad.c:5031:store_sticky_event:<dtls-encoder:src> Sticky event misordering, got 'segment' before 'caps'

(openwebrtc-daemon:2750): GStreamer-WARNING **: gstpad.c:5031:store_sticky_event:<funnel:funnelpad6> Sticky event misordering, got 'segment' before 'caps'

Thanks

xelven commented 8 years ago

you can enable the G_MESSAGES_DEBUG & NICE_DEBUG to all. for take look the detail will be better.

I guess is same problem with https://github.com/EricssonResearch/openwebrtc-ios-sdk/issues/59 It also can reproduce in Wi-Fi environment.

SrujithPoondla commented 8 years ago

Hi @xelven the issue you referenced is in IOS. I am getting these errors in linux. are these errors due to the same problem you mentioned in EricssonResearch/openwebrtc-ios-sdk#59?

xelven commented 8 years ago

@SrujithPoondla Not 100% sure, but I think it not about platform, it most time about which NAT type your try to pass through. I was contact the developer of libnice, the few ICE connection bug has confirmed. you can try with the NICE_DEBUG arguments in runtime to get more info will more clearly.

james-huang commented 8 years ago

@xelven

You seem to have been a step ahead of me on a bunch of openwebrtc issues so I figured I'd ask you about this. Running iphone-iphone on the same wifi (so I don't think this is a NAT issue for me) I've been getting hit with

ICE failed to establish a connection! 
ICE state changed from connecting to failed

on both my video and audio sessions.

This didn't happen when I was running linux-linux. I've turned on NICE_DEBUG and put the output in a pastebin here. http://pastebin.com/JZkV5XcP

Do you have any thoughts?

xelven commented 8 years ago

@james-huang I look at it, and I got said there may had 2 reasons. 1. From your log, I can saw it your are using Cell Phone(NOT Simulator) which had sim card and mobile network is Enabled. and also your using wifi network. and then your can checkout your remote candidate added only [2 for Stream 1 with one TCP-ACT; one TCP-PASS.] [2 for Stream 2 with one TCP-ACT; one TCP-PASS.]

 Adding TCP-ACT remote candidate with addr [192.168.1.245]:0 for s1/c1. U/P '2Qfx'/'T645rsQlAOYJ3TLaVrC3en' prio: 1019216383
Updating existing remote candidate with addr [192.168.1.245]:0 for s1/c1. U/P '2Qfx'/'T645rsQlAOYJ3TLaVrC3en' prio: 1019216383
(<unknown>:6383): libnice-DEBUG: Agent 0x103934000 : Adding TCP-PASS remote candidate with addr [192.168.1.245]:54306 for s1/c1. U/P '2Qfx'/'T645rsQlAOYJ3TLaVrC3en' prio: 1015022079

Adding TCP-ACT remote candidate with addr [192.168.1.245]:0 for s2/c1. U/P 'V6M4'/'TWI5xy4g21ewWE+zv+Ks0b' prio: 1019216383
(<unknown>:6383): libnice-DEBUG: Agent 0x103934000 : Updating existing remote candidate with addr [192.168.1.245]:0 for s2/c1. U/P 'V6M4'/'TWI5xy4g21ewWE+zv+Ks0b' prio: 1019216383
 (<unknown>:6383): libnice-DEBUG: Agent 0x103934000 : Adding TCP-PASS remote candidate with addr [192.168.1.245]:54308 for s2/c1. U/P 'V6M4'/'TWI5xy4g21ewWE+zv+Ks0b' prio: 1015022079

and there all failed when check the there connection, I not sure which local candidate they using, But I am sure if they using 10.14.45.62(the internal ip of the mobile network adapter) to connecting 192.168.1.245 will 100% failed.

I suggest your disable mobile network first when u testing.

2. your router(Wi-Fi) may broken, but seems not : )

james-huang commented 8 years ago

Yo @xelven; first off, really appreciate the help here.

1: Good eye about the mobile network. I have 2 phones and 1 sim card and I was a little confused why there were more ICE candidates from one side. I've turned cellular off (also tried adding the TURN server from the demo app in openwebrtc-examples). Mostly the same errors below:

http://pastebin.com/vQtmk4hX

2: Don't think its a router issue. linux-to-linux streaming works fine. I also did a quick browse through the router settings to make sure nothing too weird was going on.

update: i'm seeing packets for a TCP session start and teardown handshake between the iphones. no DTLS packets though.