The following modifications work well for multiple profiles:
Local Port 0 to your .conf files in /etc/vpnc, if you haven't done so. This will use random local ports, and will allow multiple connections better.
For every connection, pick an IP and port on the vpn network which you want to connect to (and maintain a connection to). For every connection, write a script in /usr/local/bin that checks the connection is still possible and if not launches vpnc, e.g.
if ! nc -z -w 2 targetip targetport
then /usr/sbin/vpnc-connect connectionprofile.conf
Change the reconnect script
/etc/vpnc/reconnect-script to use all of those
EnsureXXX.sh scripts (do them one after another, so no
& at the end)
/etc/init.d/vpnc script is almost the same, except you don't need to source
/etc/default/vpnc any longer
Don't forget that scripts need to be executable. As long as you call them from root, these scripts work very well in any automated cron-jobs, e.g. before you call
rdesktop on any box in the vpn network, just do a quite
EnsureVPNxxx.sh. You can always drop back out of root with a
su -u yourusername command. And use root's crontab, obviously.