First, STUN can support TCP over a NAT in accordance with the new RFC and with the proposed updates for said RFC for DTLS. All this said, Chrome should still support SCTP over TCP and Firefox still does not according to bug 891551.
I also highly doubt that MEDIA will ever support a TCP connection and suspect that only SCTP will be supported for any TCP connection(relayed or not).
[Note: For history sake, I am keeping the rest of my answer intact but a good comment made by @adamfisk, showed me some errata.]
Original answer
STUN
CANNOT work with TCP
over a NAT
.
Its RFC says as much in the application statement. Stun is only designed to work with UDP
. This is why SCTP
needs to be on built on UDP
so that you can go around NATs
. (Only Chrome gives the internal option of TCP
).
You will have to set up port forwarding on one of the NATs
if you want TCP
traffic to go through it but STUN
will not help you.
Sorry for the bad news :(
EDIT: This is simply a limitation of STUN, not of SCTP(so chrome could do nothing about it if they wanted to). FireFox does NOT support SCTP over TCP anyways. I am not 100% on TURN. The RFC seems to say that TCP is support only in the communication between the client and the server, not the actual relay. Check this out, Chrome may work with TCP through a TURN server from what T. R. Missner states at the bottom of the thread.
You MAY have to have port forwarding set up on both sides if you want to use TCP with an RTCDataConnection.