Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lack of IPv6 support in Android #105

Closed
wrbl606 opened this issue Jun 17, 2019 · 5 comments
Closed

Lack of IPv6 support in Android #105

wrbl606 opened this issue Jun 17, 2019 · 5 comments

Comments

@wrbl606
Copy link

wrbl606 commented Jun 17, 2019

Describe the bug
When the Android device is connected to the internet with IPv6 address, remote STUN/TURN servers are not sent as ICECandidates to the other peer. Moreover, received remote ICECandidates sent from the other peer are ignored.

It's a serious issue, because some mobile carriers (like Orange or T-Mobile) are assigning IPv6 as a default option and devices that receives such an address cannot receive nor answer calls.
I've proven that's the IPv6 support issue by manually changing APN settings to IPv4 ones which enabled connections. Also when the affected device creates a mobile hotspot and other devices are joining in (receiving IPv4 addresses) everything works fine. Additionally, device that does not connecting because of IPv6 issue in the app is working fine on the Web counterpart. Calls between two IPv6 peers is not working as well.

I believe that's the issue is at the native Android side because there are no issues on iOS whatsoever.

This may be connected with this issue at Signals' repository - they're using webrtc too (org.whispersystems:webrtc-android:M74)

To Reproduce
Connect Android device to some IPv6 network.

Expected behavior
Connection establishes correctly. ICECandidates are discovered and sent to the other peer.

Platform information
Developing on MacOS 10.14.5 (Mac mini)

  • Flutter version:
[✓] Flutter (Channel master, v1.7.5-pre.15, on Mac OS X 10.14.5 18F132, locale pl-PL)
    • Flutter version 1.7.5-pre.15 at /Users/_hidden_//Downloads/flutter-install/flutter
    • Framework revision 09c09bf14b (7 hours ago), 2019-06-16 21:52:44 -0700
    • Engine revision 466a1d848d
    • Dart version 2.4.0

 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/_hidden_//Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/_hidden_/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2.1, Build version 10E1001
    • CocoaPods version 1.6.1

[✓] iOS tools - develop for iOS devices
    • ios-deploy 1.9.4

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 36.0.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[!] VS Code (version 1.35.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)
    • RES’s iPhone • _hidden_ • ios • iOS 12.3.1

! Doctor found issues in 1 category.

  • Plugin version: 0.1.7
  • OS: Android
  • OS version: Doesn't matter (I think), tested on 6.0.1, 8.0.0, 9
@cloudwebrtc
Copy link
Member

Sorry, I don't have an IPV6 environment to test. Can anyone help me? :(

@wrbl606
Copy link
Author

wrbl606 commented Jul 1, 2019

I've done more research on the topic, and the problem is more specific - it's all about translating IPv4 addresses to IPv6 ones (it's possible when the mobile carrier is using proper standards). I get my app to work without any problems after I assigned both v4 and v6 addresses to my Coturn server.
I imagine that it's not a solution for everybody (like when your're using Xirsys or any other STUN/TURN provider). Still, I don't know how to fix this problem, but it's surely possible because browsers can handle it.

I hope it's helpful for someone, yet I'll investigate this issue further when I have more time. @cloudwebrtc thanks for your work :)

@andrewmd5
Copy link

We've just started on the Android version of Rainway so we will be testing this within the next week if it hasn't been resolved.

@PhonEye-ai
Copy link

Hi I am having the same issue when connecting to IPv6 network, am wondering if this is fixed in Android native lib. Thanks for the help!

@AnhPQ-TDA
Copy link

Hi everyone!
My problem is the same. Is there a way to solve the problem please?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants