From Electron Cloud
Revision as of 21:19, 6 September 2005 by Ecloud (Talk | contribs) (Usability; temporal organization)

Jump to: navigation, search

I've been playing with Asterisk off and on in my spare time. It's a bit of a bear to configure!

I had tried VOIP service a couple years ago from iConnectHere and gotten a Grandstream BT100 to use with it. The primary goal was for my wife to have a cheap way to call her family in Belarus. Unfortunately that's one of the most expensive countries to call in that part of the world. No doubt the government phone monopoly there is charging 20+ cents/min just to terminate the calls, because I can't find service anywhere for less than 25 cents or so. But it simply wasn't reliable. In several months and many attempts I think we got through once or twice. No doubt you'd have better luck if you are calling different countries, so I'm not saying iConnectHere is so terrible, just that I experienced technical problems which they tried to solve and were ultimately unable. And it worked dandy for just calling within the United States.

So, I want to use the Grandstream with my new router running Asterisk. It's a 600MHz fanless dual-ethernet Epia motherboard mounted in a 1U rack case (with a fan ironically), so far running Gentoo on a laptop hard drive. It runs from 24VDC power from my solar/battery setup. I had it sortof working several months ago but then had some problems with the power supply in this box and had to RMA it. When I got around to getting it running again this last weekend, I saw that Asterisk 1.0.9 was out so decided to upgrade. But I already forgot everything I knew about the config files (and there are too many of them anyway - sheesh!) so I decided to try AMP, which promises to make managing Asterisk much easier. Well, it has a lot of requirements, some of which I didn't really want to install on this box, but I slogged through it all and got AMP working. It still took a while to figure out how to get around in the web management interface which AMP provides, but in the end I was able to get the Grandstream to register itself as extension 200 and I can access voicemail. That's about it. If a call comes in, it answers very quickly, says "goodbye" and hangs up. Despite the configuration I made which is supposed to ring extension 200. As for outgoing calls, I configured that too but it always says "all lines are busy" when I try to make a call. So I think the basic problem is Asterisk is so darn complex that nobody's been able to figure out how to really simplify it for normal home use. It's all about creating the kind of voice-response hell that you nearly always encounter when calling a business of any size. There is still room (and I bet there will be, for many years) for a more dumbed-down system. Preferably one that doesn't depend on both PHP _and_ perl, mysql, apache, various stuff from cpan etc. It should make some reasonable assumptions about what home users want - multiple extensions yes, multiple voicemail maybe (depending on whether you've got kids or roommates), but ring all the phones if the call is within normal hours, and try to ensure there's always a way to place an outgoing call, choosing by priority among the services available. Unless you go out of your way to change any of this.

Also the web interface for AMP has too many text fields which you must fill out (like number-matching rules for instance) and nothing to help you do it. At least they have pop-up help balloons in some of those cases.

It's very good that there are so many asterisk-oriented semi-wholesale VOIP carrier services now. None of that polished Vonage stuff for me, thanks. (They charge too much. I want to pay by the minute, not by the month, because I try to avoid talking on the phone as much as possible anyway.)

A couple years ago I was using vgetty, which is OK as far as it goes, and I had a PHP web interface for checking voicemails too. It was kindof slick. But VOIP makes it obsolete. And I'd really like to get rid of the $50ish phone bill every month, just for basic service. Amazing how taxes and caller ID make it so much more than the price that they advertise.

But the Cox cable 'net service, after many years of reliability (I was one of their first customers in Phoenix back in 1997), quit working about a week ago. A tech came out and replaced all the F connectors on all the cables and it started working again. But now I see that it can temporarily stop and the modem re-trains, and this happens quite often. I wonder if my modem isn't quite working like new. So maybe VOIP isn't going to be very reliable either until this problem gets solved.

I also discovered Limey Linux. It partially realizes a goal I was trying for a year or so ago with this Epia box - I wanted to boot from a CF card, use a ramdisk for the root filesystem, and power up the hard drive only once a day or so to back up the files in case the box goes down. (Running from DC power off a big bank of batteries, it shouldn't ever go down. But the batteries are old and not in as good condition as I hoped. They fade pretty fast when they're not being charged.) That should save some power. I already maxed out the RAM at a full gig (there's only one slot on an Epia). And I wanted to use uclibc and busybox to try to optimize it for space and speed at the same time. (On Via processors, there is not enough processor cache, so smaller code usually ends up being faster, unlike on a typical X86 where you often make space/speed tradeoffs.) But I didn't get very far. It was hard enough to build a kernel that will boot on this box - I've never seen so many problems on any Intel or AMD processor. Then there is the matter of building everything else. Asterisk has some dependencies, and some of those wouldn't build against uclibc, and asterisk itself also had some problems with this.

Well Limey is built using buildroot, an excellent set of makefiles for building embedded systems of all kinds. I've seen it used successfully for other projects, such as the GumStix version of Linux, and the TuxScreen. It uses uclibc. It boots from a CF card. It runs from a ramdisk (only 256M in total necessary though). It can re-update any changed config files onto the CF card. It can compile Asterisk natively. It at least includes the iptables command. So that's getting kindof close to what I want.

But it doesn't include any firewall scripts, mail server, php, and so on and it would probably continue to be a lot of work to compile some of that stuff. I haven't taken the time to learn iptables that well and usually use gshield.

So what I really want is probably more like a uclibc branch of Gentoo, with some mods to do the ramdisk/cf thing. I bet it will happen pretty soon. You can already configure it to use uclibc in make.conf, you just won't succeed in compiling everything if you do so. I like being able to compile anything I suddenly find out that I want, rather than being stuck with "just a router". If I wanted a plain old router I could just use a WRT54GS. Could even put asterisk on it.

In the meantime I think I'll stick with running Gentoo off the hard drive.

Usability; temporal organization

Slashdot linked to an interesting article today. I mostly agree with the points he makes about the big glaring things that are wrong with most of the prevalent computer UI's. Somebody commented about Symphony OS at least getting Fitts's Law right. That looks like an interesting system to try. It's based on Linux and some existing UI packages, just does a couple of new things. Mostly the big idea is to make the desktop useful for finding everything you should reasonably need to find, and try to get rid of extraneous menus and dialogs.

I question using the lower-right corner just for "trash" though. I know it's a venerable tradition but I think I would replace it with "history". Outlook has the Journal - it tracks certain things you have done throughout the day in certain Microsoft programs. I think this idea could be extended to track most of what you have done in most programs on a Linux box - URLs you visited, individual commandlines that you typed, calculations that you did, documents you edited, as well as the obvious email and IM stuff. Well maybe it's all kindof obvious but nobody's done an integrated history like that yet.

As disk space grows, and methods of organization improve, there may not be much of a need for trash anymore. I know I rarely delete things from my home directory. At work I delete much more, because of collaboration. Often you must get a copy of something just to look at it, or to imporve on it, and then you delete it when you're done with it, or upload it to a shared storage space. At home, what I create is stuff I want to keep, and I only download things I really need to use. Anyway I have a separate directory for downloads.

The top level of my home directory is a very disorganized mess because I used to create files directly in it. I've gotten into the habit of using a few subfolders for certain things (projects, letters, documents I downloaded, recipes, source code, pictures, art, etc.) It mostly works but I find more and more that what I want to see is temporal organization rather than alphabetic or hierarchical. I've added a new alias to my bashrc on all my systems and use it more than I ever thought I would:

alias lt='ll -rt'

It shows me the most recent files at the bottom, with dates so I can see when I was working on what. And my memory is getting kindof bad (even though I'm way too young for that) so it helps me remember what I was last doing, which projects I was working on when. But it does not give me a clear picture of everything at once, everything that I was doing at some point in time, just the files in one folder. I'm going to solve this problem some day. But first I have to build a new portable, extensible gui system that I will be comfortable using for the rest of my life, not build on an obsolete thing like X or any existing toolkit that runs on it. I have the ambition of Donald Knuth, see, but not the focus, I'm afraid. Meanwhile I keep getting distracted by all the other stuff, like basic computer maintenance, Asterisk, trying to keep my wife happy, home improvement projects, random other projects that strike my fancy, my day job, various kinds of entertainment etc. I'm a little jealous of old Donald for being able to work full-time on whatever he wants. If I could pull that off, I'd do just that, and maybe manage to be half as productive if I was lucky. As it is, it seems like I'm having less fun than I've had in a long time, and not getting a lot done either. I've been kindof depressed about that. I thrive on megalomania but the percentage of time that I can fool myself into feeling invincible is dwindling. And my wife keeps reminding me that I act like I'm going to live forever, and I won't. I'd much rather pretend that I can.