I have written a simple C# application for desktop sharing using Windows desktop sharing API
http://msdn.microsoft.com/en-us/library/bb968809.aspx http://blogs.msdn.com/b/rds/archive/2007/03/08/windows-desktop-sharing-api.aspx
Most of my application code is based on this Microsoft's blog post http://blogs.msdn.com/b/rds/archive/2007/03/23/writing-a-desktop-sharing-application.aspx
I have also successfully implemented Reverse Connect http://msdn.microsoft.com/en-us/library/aa373312.aspx
My app works great within local network or VPN but I am unable to share desktop to PC's that are on public networks. Invitation generated by my host application looks something like this
<E>
<A KH="3tSA+NXzzvG8ynVkXTh0RxsPCus=" ID="DIC/0Flybjfj3U5lPvy5B2TWwShPrX1oIkpUB0vrB4mZsjZWY7WCfGnvEUjwhvhK"/>
<C>
<T ID="1" SID="0">
<L P="51390" N="fe80::596d:88b0:2ef6:bf13%4"/>
<L P="51391" N="fe80::103c:155b:b1fc:9854%9"/>
<L P="51392" N="2001:0:9d38:6abd:103c:155b:b1fc:9854"/>
<L P="51393" N="2002:c31d:e328:1000:981c:91bc:adbd:6703"/>
<L P="51394" N="2002:c31d:e328:1000:c878:a88a:f1fb:f25d"/>
<L P="51395" N="fe80::981c:91bc:adbd:6703%10"/>
<L P="51396" N="192.168.1.36"/>
</T>
</C>
</E>
I have noticed that there is only local IP address in this invitation. Am I doing something wrong here? Is it even possible to share desktop between PC on public network using Windows Desktop Sharing API?
If not, what are my options? Other then setting up VPN? Thank you