By port closed, I mean that ports are normally closed, but when rtpengine send the first rtp packets to the client, it opens a pinhole in the firewall, and the matching incoming packets from the client will make the connection established,related in iptables. I think symmetric nat permits that.

But now I'm thinking that it's impossible for rtpengine to know the client's destination port at the learning phase if the client's rtp packets can't reach rtpengine.

Rtpengine can learn the IP Address from kamailio through the --sip-source CLI switch, but can't guess the port, right ?

So, playing with established,related is not possible.
> If the attacker is fast enough, yes. You can disable learning of
> endpoint addresses using the asynchronous flag, but obviously this will
> break NAT'd media. You can also use the strict-source flag to make
> rtpengine drop packets received from a mismatched source address.
So if I don't use strict-source flag, an attacker could merge any garbage of data in an existing RTP stream ?

Thanks.