Showing posts with label hacks. Show all posts
Showing posts with label hacks. Show all posts

Thursday, December 20, 2007

Asterisk Mashes Up Politics

I ran across this application today, called CommitteeCaller.com, which makes it easier for (U.S.) folks to contact their representatives. It's a nifty example of the type of applications that become possible when some imagination gets combined with lowered barriers to entry. This is what mashups are all about. Taking information that is out there on the Internet and combining it in ways that make it more useful, accessible, relevant, visible, etc.

This particular one uses Asterisk for the telephony, a database built from information on the Internet, and a custom AGI to interact with the user input, look up things in the database, make the calls, and get post-call rating feedback. AGIs are the equivalent of HTTP world CGIs (yes, the Asterisk world is progressing quite fast but the Web did get a big head start on it so it's still a little behind; CGIs, or AGIs, are pretty 1997 but you have to start somewhere).

Just wait until all the old school web developers that are used to coding in PHP, Ruby (Adhearsion), C, Perl (Asterisk::AGI), etc. discover they can write Asterisk telephony applications just as easily and in the same languages. (The Adhearsion page, even if you're not a Ruby programmer, has a good overview and example applications if you're curious).

CommitteeCaller.com is a site that allows one person to target an entire congressional committee over the phone. The web application utilizes the open source Asterisk PBX system to connect you to every senator or house member on a particular committee. No more digging around the 'net entering zip-codes to retrieve phone numbers of representatives. CommitteeCaller.com automates the tedium of finding and dialing your favorite politicians.

Select a committee, enter in your phone number and click "Put me in touch with democracy!" and you'll be called by our system and sequentially patched through to the front office of each member on that committee. You can even rate how each call went; information that will enable us to rank representatives on how accountable and responsive they are to their constituents.
[...]
Once connected Committee Caller will tell you which representive you are calling, who their legislative director or chief of staff is, and what district they represent. At any point you can use the * to hang up the call and move on to the next one. Remember not to hang up after each call as you will have the opportunity to rate how your call went.

-jr

Friday, December 7, 2007

My New Home Asterisk PBX Embedded Box





[ The first two are photos of the actual unit, pulled from the eBay auction. The last two photos are not mine but stolen from a friendly Flickr source. Hoping Santa will bring the family a new camera.. ;-) ]

On Friday my HP Thin Client arrived. Only I'm not going to use it as a thin client. Instead I'm going to install Linux (or FreeBSD, see below) along with Asterisk, the open source telephony platform, onto it. This particular unit is an HP T5700.

It cost me <$100 on eBay. Low power <20w, class="blsp-spelling-error" id="SPELLING_ERROR_1">Ghz (Transmeta Crusoe) based with 256MB RAM, and 256MB Flash. I may add a 2.5 laptop drive (has IDE and USB too).

The lack of noise and the tiny form factor is a huge driver since this is going into our apartment and the low power is for our savings accounts and the environment. :) The flexibility and ease of use gained by keeping it x86 based is a big plus for saving time (no cross compiling, no searching out funky code patches for less mainstream architectures) and maintaining compatibility with the maximum amount of things I may want to do with it.

I nearly bought an IP04, or one the variations based on it like uCpbx. These are Blackfin based embedded systems designed to run Asterisk, specifically the Astin distro. These are very cost effective looking solutions for SMB type environments. They are also very very similar to Digium's Asterisk Appliance 50 (AA50), which is also Blackfin based. In fact, they are nearly the same thing if you don't count formal Digium backing and support. (I recently got some experience in with an AA50, in an installation for a client with Snom 320 phones and intend to post some about that at a future date).

I'm looking forward to getting this box on-line as our full-time home phone system. If all goes well I'll probably pick up another one (or several) for lab use. This should free up some space in the apartment and not require me to keep shutting my dev box down to eliminate ambient noise and power consumption. Now if only the power supply would get here quick. :)

Typically I install Debian or Ubuntu then plop in Asterisk. This time, this is meant to be more of a true "appliance" than a server. So I'm going to evaluate some other options before I settle on anything. This will give me the opportunity to get experience with and thus cross out some items on my "To Evaluate/Learn" list.

I'm going to try out Askozia which looks promising. It'll be a new one for me and it's actually FreeBSD, rather then Linux based (it's based on m0n0wall). Askozia also has a built-in web GUI which I'm looking forward to contrasting with Digium's own GUI (which is in AsteriskNOW). AstLinux is another option I'll check out. Unfortunately out-of-the-box it's Asterisk 1.2.x not 1.4.x based (though there's a dev version that is 1.4.x).

I do miss having a lot of tools anytime I've worked with embedded distros. And I like having extensive logging available -- even if the device is supposedly an "appliance" that just sits there. Tough to troubleshoot an appliance when there ain't no logs. :-)

Ultimately I may roll my own stripped down something or other. Or, grab a more generic already stripped down distro and put Asterisk plus the Digium Asterisk GUI on top. Having the option to add a laptop drive gives me comfort I can go with this route, even as far as installing Debian or Ubuntu stock if need be, while remaining low-power.

I also intend to experiment with the various Bluetooth integration options for Asterisk. Namely chan_mobile for headset and cell phone integration.

We'll see what else. :) The nice thing is that, besides really enjoying Asterisk, I can justify more than one solution, since whatever I don't actually use as the house system will still be rewarding in the lab for self-education and evaluating the options out there for my clients.

-jr

Wednesday, October 17, 2007

Sanitize All Possible Inputs

If you write applications, well, it's not just public web form input that needs to be sanitized...


:-)

-jr

Friday, September 28, 2007

Running MacOS X on a Generic (non-Apple) x86 PC

Uh, nifty. Of course, no one reading this entry would ever do this because it violates Apple's EULA (even if you bought a Mac, deleted its copy of MacOS X, and installed from its media onto your, uh, alternative hardware). Nah, none of you would ever do that. Nope, won't happen.

http://wiki.osx86project.org/wiki/index.php/Main_Page