2 | | Right now in 0 A.D. we use a primitive UPnP system to implement NAT transversal, but this system is unreliable. We would like to see a better method using UDP Hole Punching instead. |
3 | | The solution would involve interacting with the lobby server to get transversal information. The recommended implementation would use [http://en.wikipedia.org/wiki/STUN STUN] with [https://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment ICE]. It may be possible to (ab)use [http://xmpp.org/extensions/xep-0176.html XEP-0176: Jingle ICE-UDP Transport Method] for the desired result. Ejabberd has a built-in STUN server ([https://www.process-one.net/docs/ejabberd/guide_en.html#stun Manual Entry]). Both Ejabberd and Gloox support XEP-0176. |
| 2 | Right now in 0 A.D. we use a primitive UPnP system to implement NAT traversal, but this system is unreliable. We would like to see a better method using UDP Hole Punching instead. |
| 3 | The solution would involve interacting with the lobby server to get traversal information. The recommended implementation would use [http://en.wikipedia.org/wiki/STUN STUN] with [https://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment ICE]. It may be possible to (ab)use [http://xmpp.org/extensions/xep-0176.html XEP-0176: Jingle ICE-UDP Transport Method] for the desired result. Ejabberd has a built-in STUN server ([https://www.process-one.net/docs/ejabberd/guide_en.html#stun Manual Entry]). Both Ejabberd and Gloox support XEP-0176. |