it's mean your NaT Symetric, And if your NaT is Symetric it's given different External ports for each connection.And it's not possible to connect Hole punching from two way but it's still possible to connect p2p. But only possible if agent side using conic Nat. Search for that.
But if two locations using Symetric NaT there is no way to connect p2p connection with Udp Hole Punching.
- a:Symetric => b:symetric ---- not possible
- a:Conic => b:Conic ------------ possible easily
- a:Symetric => b:Coinc --------- possible / only one way handshake
4: a:Conic => b:symetric --------- not possible / but possible to connect one way handshake
But You can still use port prediction methods. it's mean you must guess wich port can be use in connection and try to connect it ( Tcp Hole Punch )
For Conic NaT can See About UDP Hole Punching Please Check Sample in https://github.com/turapulku/NaT-Traversal-UDP-Hole-punch.git
That's still developing but for now it's i hope it's helpful