We need a desktop VPN client software. It is similar to the openVPN client software the differences are:
1. The client connects to more than one servers (Get server and login details form API)
2. Not using VPN for all traffic, only certain destination IP through certain VPN server. If the destination is not in the IP list, put it through normally without VPN. (Get the IP list from API) We call this feature smart routing.
3. Connection method is either OpenVPN or PPTP. Our VPN server support both method. It's better if the client software can support both method.
4. Need a switch to turn Smart Routing feature on or off. When it is off do not use VPN at all.
5. Need another switch call Full Routing. (API is ready.) When full routing is on, the routing table API will return a routing table that make all traffic through one VPN server. When user turn on this feature, user choose a VPN server from the available VPN server list. (Provided by API)
6. Need Windows and Mac versions. But we can do one first.
[API]
This API defines the VPN server information
[login to view URL]
Sample result:
14
accgw001 Shanghai
pptp
[login to view URL]
1723
tcp
tun
username
password
15
accgw002 Shanghai
pptp
[login to view URL]
1723
tcp
tun
username
password
[API]
This API definds the routing tables such as which destination ip to use which VPN server.
[login to view URL]
[{"vpnid":"14","network":"[login to view URL]","maskbit":"32","tag":"1"},
{"vpnid":"15","network":"[login to view URL]","maskbit":"16","tag":"1"},
{"vpnid":"14","network":"[login to view URL]","maskbit":"32","tag":"1"},
{"vpnid":"11","network":"[login to view URL]","maskbit":"24","tag":"1"},
{"vpnid":"14","network":"[login to view URL]","maskbit":"32","tag":"1"},
{"vpnid":"14","network":"[login to view URL]","maskbit":"24","tag":"1"}]
[API]
turn on full routing
[login to view URL]
turn off full routing
[login to view URL]
[API]
turn on smart routing
[login to view URL]
turn off smart routing
[login to view URL]
Windows and Mac versions.
OpenVPN or PPTP method
Not using VPN for all traffic, only certain destination IP through VPN. (Get the IP list from API)
API has been done.