Writing

Feed Software, technology, sysadmin war stories, and more.

Tuesday, January 17, 2012

Notifications based on who's calling you are not new

I always wonder when one of my ancient programs will turn out to be prior art used to smash someone's software patent. So many things are just plainly obvious and definitely have been done before. This is but one example of something simple which might wrongly be called innovative if someone did it today.

Years and years ago, I ran a BBS. My friends knew about it and would dial in to post messages, play games, or just chat. Granted, we did a lot of talking on the phone too, but text-mode typing happened a fair amount as well. Not all of them had multiple phone lines, so they had to choose one or the other at any given time.

Yet, I didn't want to stay in the room with the BBS computer just waiting for someone to call. That was dumb. There were much more interesting things which could be done elsewhere in the house. So now I had a problem: I wanted to know when a friend logged on, but I didn't want to constantly check in to see who was there.

My solution was easy enough. I wrote a quick utility program which would look at the name of whoever had just logged in and would make a noise if they were in the right list. This is back in the days of the "PC squeaker" set right into your system's front panel, and it was plenty loud. I set up a bunch of different noises and could even tell who had just logged in based on the sound.

There were practical considerations here, too. I wound up writing "quiet hours" for that program so it wouldn't make noise while people were trying to sleep. Sometimes, the people on my list would dial in in the middle of the night, and there was no point in waking everyone up.

After writing the quiet hour filter, I then set up yet another type of user who didn't have any quiet hours. This was one where it would make noise no matter what time it was, just like the earliest version of the code. I used this particular feature for exactly one user account: mine.

My logic was simple enough. If someone managed to guess my password or exploit some hole which let them onto the machine as me, it would scream bloody murder. Now you're probably thinking this must have been terribly loud when I logged in at the console. Well, it would have been, but by virtue of being at the console, I could press a key to make it stop.

This alert program didn't talk to the COM ports (yep, DOS) so there was no way for a caller to make it shut up. They just had to wait until it was finished. Someone who had broken into my account would be forced to just sit there until it ran its course and hopefully summoned help.

The only time this would have been an issue is upon logging in remotely. It didn't come up too often back in those days, and it's been a while, but I suspect I may have added a back door. This was something not in the stock BBS software login sequence that I could trigger to make it skip the noise. Failing that, I could just wait and then hope nobody else in the house noticed and started freaking out.

Did I invent this? Not a chance. In all likelihood, I was inspired by Cliff Stoll's pager hack which notified him when "sventek" logged in. This was all documented in The Cuckoo's Egg which I had read about a year before writing my alert program.

So, if your phone or IM client has custom alert tones for different people, quiet hours, and profiles which ignore quiet hours, it's nice, but it's nothing new. Odds are, it's been done somewhere before.