Before moving to iPhones, we used Treos with the SprintPCS network as our mobile phone platform. One feature of the Treos was tethering to a laptop to give network access while out of the office. The only problem was that the connection would time out quickly and have to be re-established taking several minutes each time. Our CIO got so fed up with this annoying problem that he asked me to come up with a solution.
So, I wrote pppalive which uses the SystemConfiguration framework to monitor the state of ppp connections. When connected to SprintPCS it would either send out a ICMP ping packet or request a web page from our corporate website, which gave us the added benefit of monitoring usage. We used launchd to keep the pppalive process running automatically. Best of all, there was no interaction needed for it to work so all a user had to do was start their connection and it would continue for as long as they wanted.