https://github.com/miniupnp/miniupnp/tree/master/miniupnpc

c library client, if you can't use it, you can at least see how it does what it does,

ssdp is used for discovery, then its mostly http like xml packets from there on.
if you can't forward ports you shouldn't be hosting.
In response to Optimumtact
Optimumtact wrote:
if you can't forward ports you shouldn't be hosting.

I don't believe that's the mindset that should be held, here. Many people may just want to host a small game for their friends (akin to ARWG, Murder Mansion, and friends). Why keep a barrier for the common Joe that just wants to host a game for his friends when that barrier could be lifted temporarily, securely, and seamlessly? It makes your software slightly more appealing, and not having to necessarily keep ports open could also be appealing even for those that are well aware of how to do so.
https://developers.google.com/talk/libjingle/ developer_guide#about-the-libjingle-sdk

Libjingle looks like a solid solution for NAT traversal. It's built into the SteamAPI to boot.
+1
bump
11 years and this is not added yet good job
11 years make a wish
Are we still waiting for it? This is the topic that comes up in Google, when looking for BYOND UPnP
Page: 1 2 3