there are some problems in UPNP with cross platform.
1. UPNP is a network protocol, a device that supported UPNP is monitoring at UDP port 1900. We can implement it by using TIdUDPServer.
2. But, Windows system implement UPNP device, so, system has used UDP port 1900, our code can not open UDP port 1900. On windows, we must call windows API to use UPNP.
3. In other system like Android, iOS, maybe we can implement UPNP protocol by using Indy.