'How can I use TCP instead of UDP for WebRTC publish/play in Ant Media Server?

I'm using Ant Media Server on AWS and it works perfectly fine. However, some of our users have blocked UDP ports and therefore I want to know if it is possible to use TCP instead of UDP for WebRTC.



Solution 1:[1]

Yes, we can make use of TCP ports for WebRTC.

Please open TCP Port range 50000-60000 on the AWS Security group (for AMS v2.4.2.1 and above, for older version use port range 5000-65000).

Go to the Application settings:

/usr/local/antmedia/webapps/<AppName>/WEB-INF/red5-web.properties

Edit the red5-web.properties file and set

settings.webrtc.tcpCandidateEnabled=true

Restart Ant Media Server

sudo service antmedia restart

If you are using a cloud service like OVH or if there is pubic IP directly associated with the instance, then webrtc should work.

If you are using a cloud service like AWS with private/public IP, then some additional settings are required to be configured.

Go to server configuration settings

/usr/local/antmedia/conf/red5.properties

Edit the red5.properties file and set

server.name=Instance_Public_IP

Go to the application settings again and edit the red5-web.properties

/usr/local/antmedia/webapps/<AppName>/WEB-INF/red5-web.properties

set

settings.replaceCandidateAddrWithServerAddr=true

Save the settings and restart Ant Media server

sudo service antmedia restart

Webrtc should work fine afterwards.

Thank you.

antmedia.io

Solution 2:[2]

And with this in your User data in AWS you'll get the current instance public IP inserted automatically on boot:

sed -i "s/server.name=.*/server.name=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4)/g" /usr/local/antmedia/conf/red5.properties

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mohit Dubey
Solution 2 Nicklas Bergfeldt