What Keepalive Does
You run Keepalive whilst you are using a dial-up connection, and it starts pinging a server on the net that you nominate. It sends out one ping packet every few seconds (it defaults to 120 seconds), which generates a tiny amount of traffic on you link, so it won't affect your bandwidth, but is sufficient to fool any software that is monitoring your connection into thinking that there is meaningful traffic, and thus it won't automatically disconnect you due to inactivity.
Why I Wrote It
I wrote this software because I had a connection that would drop out automatically after three minutes of no link activity, which was highly annoying when I was writing emails or reading lengthy web pages. The first incarnation was a short Perl script that I whipped up in a fit of pique after being disconnected in the middle of writing an email to a friend. I was also in a situation where I had to pay payphone rates for my local calls (in the order of AUD 0.40), so having to redial was annoying and expensive.
The second incarnation was written in C with a GTK+ GUI, because I wanted a better, configurable version. I also wanted to learn how to use GTK+, so I threw in the GUI for good measure.
The third inarnation, and initial public release, I wrote about a year later as part of teaching myself the Ruby language. I also discovered the ease of creating good GTK+ GUIs in Glade. This version also solved a couple of inadequacies in the previous version which prevented me from releasing it. The current version is all singing and all dancing (almost). It captures the output of ping, which allows for status reports on the GUI, and prevents annoying output in the term where it was launched from. It also reads the last server and time used from a configuration file ($HOME/.keepalive).