ant-media / Ant-Media-Server

Ant Media Server is a live streaming engine software that provides adaptive, ultra low latency streaming by using WebRTC technology with ~0.5 seconds latency. Ant Media Server is auto-scalable and it can run on-premise or on-cloud.

Home Page:https://antmedia.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TCP ice candidates for playback do not include a publicly accessible ip

vtsatskin opened this issue · comments

Issue

Short description

TCP ice candidates do not include publicly accessible IPs

Environment

  • Operating system and version: Ubuntu 5.4.0-6ubuntu1~16.04.10
  • Java version: openjdk version "1.8.0_212"
  • Ant Media Server version: Enterprise Edition 1.6.2 20190323_0908
  • Browser name and version: Google Chrome Version 74.0.3729.131

Expected behavior

We are looking to use a TCP connection during WebRTC playback. We try to accomplish this by filtering out any UDP ice candidates. However, we are unable to establish a connection because TCP candidates do not include a publicly accessible ip. UDP candidates include these.

Actual behavior

UDP candidates include public IPs but TCP candidates do not. This causes us unable establish a connection over TCP.
Screen Shot 2019-05-15 at 1 36 51 PM

Steps to reproduce

Our security groups on AWS:

Incoming

Screen Shot 2019-05-15 at 1 39 21 PM

Outgoing

Screen Shot 2019-05-15 at 1 39 29 PM

Might be related to #869

Added to backlog for 1.8.0

Same problem with AWS.

May I learn the reason why you've closed this issue @vtsatskin ? It was our roadmap for 1.8.0.

@mekya sorry! This was an accident due to a PR in a private repo referencing this issue somehow automatically closing this issue. It's still an issue.

Thank you @vtsatskin ,

I'll re-schedule it for 1.8.0 version

image

We're having the same problem -- TCP candidates are resolving to the IP address used by docker, don't know if there is a way to override this.

This is on Enterprise Edition 2.0.0-SNAPSHOT 20200423_2017.

Also: tried to use settings.webrtc.tcpCandidateEnabled=false to get around this, no go, does nothing, client is still trying to connect over TCP.

Having the same problem too with Enterprise

Let me help about that.

Set the following properties in apps properties( webapps/WebRTCAppEE/WEB-INF/red5-web.properties) file.
settings.replaceCandidateAddrWithServerAddr=true

Set the server name in conf/red5.properties. Use public ip address for server.name
server.name=

I hope it helps.