" /> BP's Weblog: September 2006 Archives

« August 2006 | Main | November 2006 »

September 27, 2006

Myth of the single phone number, part 2.

A little less than a year ago, I blogged about my experiences building a one-number system. The major quandries from that still stand - added to the equation that many too-good-to-be-true VoIP offers tend to mean that the company goes AWOL quickly. Callpacket/telepacket, I'm talking to you. I can't even link to their website, they're so far gone....

Anyway, a new service has come along that looks like it does the One-Number trick right. GrandCentral will give you a free number for life, presumably on the business model that added services (after the first 2 months, you'll only get 100 minutes free per month) will pay for the rest of the freeloaders. We'll see.... but, I'm not totally holding my breath. Otherwise, they bring contact and contact-group based call management features, some good-to-have tricks like the ability to listen-in when someone is leaving a voicemail and "pick up", just like we used to do with answering machines. The announcement at DEMO has led to a crush on their servers, and I haven't had much time to test yet, but it looks like they did things well, including the requisite dose of Web 2.0 goodness (...."now with rapidly sliding in/bouncing login windows"). For those with low-enough call volume to not want to pay their $15/mo for an unlimited service, they're promising to sell extra minutes (beyond the first 100 free each month) for $10 per 400 minutes - hitting a low enough price-per-minute to be a viable option even for those of us too cheap to have a cell phone contract. They also have a pretty slick click-to-call interface. -1 for their entire website being useless from my Sidekick2, though. Going to have to keep using own callme tricks while mobile for now....

Of course, there's still no support for text messaging. Why can't anyone build a one-number system with text messaging? Just one more sign that the cell phone networks are strangling innovation...

And, at least for the moment, they buck the trend of virtually every other VoIP service with voicemail, and force you to log in to their website, or call, to pick up your voicemail. No sidekick voicemail tricks possible with GrandCentral yet.

Technorati Tags: , ,

September 21, 2006

Quick SocialText RSS from Bloglines tip

I've been playing with SocialText's publicaly hosted solution lately. More on that later, but, first, a quick tip.

As with many on-the-curve companies, SocialText's products extensively export web standards - RSS, SOAP, REST (in beta). I use Bloglines for reading lots of things, so, subscribing to changes to a shared wiki seemed obvious. Except that SocialText workspaces are, by default, authenticated and password protected. However, Bloglines has no explanation of how to subscribe to authenticated feeds... worse, when I found an explanation of how to do it, it didn't actually work with my SocialText username and password - because my SocialText username is an e-mail address, containing its own, conflicting, @ sign.

The fix is to rewrite the e-mail address in HTTP encoded mode. If you wanted to subscribe to a SocialText RSS feed like http://www.socialtext.net/feed/workspace/my-workspace?category=Recent%20Changes, with e-mail address myemail@somewhere.com and password password, then follow these steps:

  1. Rewrite your e-mail address, replacing @ with %40. ie: myemail%40somewhere.com
  2. Generate the new feed URL: http://{rewrittenemail}:{password}@{rest of original URL}. In this example that would be http://myemail%40somewhere.com:password@www.socialtext.net/feed/workspace/my-workspace?category=Recent%20Changes
  3. Use the newly generated URL to subscribe with Bloglines.
  4. ... profit?

Now, you're subscribed to that RSS feed. Maybe someone will read this an generate the requisite bookmarklet to automate the rewrite/subscribe to Bloglines process. Anyone?

(P.S. Anyone know why Technorati refuses to update my blog, especially noticing the Technorati Tags?)

Technorati Tags: ,

September 14, 2006

Sidekick voicemail delivery tricks

Wow. So, the Sidekick I have can receive .wav files, attached to messages. However, it has a ridiculously short incoming .WAV limit. I'm not sure if this is because I have prepaid service, or if the Sidekick just has this tiny limit on its own.

Anyway, why would I even care? Well, with my previous GSM phone (a fairly pedestrian Moto V330), I'd figured out that pushing a voicemail into an email destined for the phone would get converted to an incoming MMS, with the properly formatted sound file attached. So, I set up my VoIP system to collect my voicemails, and I set it to forward voicemail to the e-mail address of my phone. Presto, I get voicemail push-delivered, with local archiving, and no per-minute fees. As a bonus, I could forward them along to anyone who could receive an MMS or an e-mail.

With the Sidekick, however, this didn't work. The limit on incoming sounds amounted to something like 15-20s of audio. More than that, and you'd get told you had an attachment, but have no way to retrieve it from the device itself. For whatever reason, you can't even play .WAV files from the Sidekick's built-in web browser, only from e-mail.

Not content to have a fancier gadget with less capabilities than a pre-existing one, I set out to figure a workaround. In the end, I strung together a bunch of Unix shell tricks to receive, convert, chop, re-convert, and transmit as a new e-mail the received voicemail. This looked roughly like this:

VoIP voicemail -> via e-mail to local account -> procmail match -> convert script -> Sidekick.

Gross, but, do-able, right? Making the conversion worked was more tricky. Fortunately, everything I needed was already a Debian package. Below the fold is the entire script needed to pull off the trick.

Technorati Tags: ,

--- start

#!/bin/bash

if ! TEMPDIR="`mktemp /tmp/splitvoicemail.XXXXXX`"; then
  echo "$0 is unable to create the temporary file."
  exit 1
fi

# not perfect, but, we'll live
rm $TEMPDIR
mkdir $TEMPDIR

mkdir -p $TEMPDIR/source
mkdir -p $TEMPDIR/tomail

#absorbs stdin
munpack -C $TEMPDIR/source

#convert to raw WAV
sox $TEMPDIR/source/*.WAV -u $TEMPDIR/out.wav

#wavsplit to make the splits
wavsplit -s $TEMPDIR/out.wav 12 24 36 48

for f in `ls $TEMPDIR/out`; do
        sox $TEMPDIR/out/$f -g $TEMPDIR/tomail/$f
done

FILES=`find $TEMPDIR/tomail/ -type f | tr '\n' ','`
# strip trailing ,
FILES="${FILES:0:$((${#FILES}-1))}"
echo $FILES > $TEMPDIR/files.lst

echo Your voicemail should be attached | biabam $FILES -s "You've received a voicemail." youremail@address.com

rm -fr $TEMPDIR

--- end

Then, make sure the script gets invoked appropriately. Here's how I invoke mine (goes into a .procmailrc):

--- start

:0
* ^TO(match something appropriate here)
| /path/to/script

--- end

September 12, 2006

eGO cycle registration in California?

It is regularly reported, and even argued on barely related blog posts, that the eGO Cycle 2 is not required to be registered/insured/licensed for in California.

This is not true.

It's easy to see, based on a nice summary of the law on the CHP's website, that the eGO is a "moped" (speed greater than 20, power greater than 1000 watts, but all electric and top speed less than 30), not a 406b "motorized bicycle" (speed <20, power less than 1000watts). A "moped"/406a vehicle requires an M2 license, registration (one-time, ~$18, but, still, its required) and insurance. This is all spelled out very simply in the CA law.

I'd like to know where Mary Jensen, on the Treehugger post I mentioned above, found a dealer who says otherwise. Perhaps the dealer was just republishing the technote from eGO themselves, which is dated from 2002, even though it wasn't true then.

This just makes one more instance of how eGO vehicles participates in dishonest practices. Their product is great out-of-the-box, but a nightmare in the long run. Opening their customers up to tickets and fines for bad legal advice doesn't make it sound any better for them.

Technorati Tags: ,

Sidekick Toll Averter, Wife Alerter.

A friend recently gave me his old Sidekick 2. I quickly activated it, using T-mobile's pay-as-you-go plan, which lets you have unlimited chat and data for the fairly modest $30/month (no contracts, no taxes or fees). I already had pay-as-you-go service, because, with all of the VoIP tricks I have, I was rarely using my cell phone.

It immediately occurred to me that a sidekick screen friendly click-to-call app would be really handy. Digging around the web, I found a Nerd Vittles tutorial that covered how to set things up given the Nerd Vittles setup - I had to do some adapting/extending to make it fit into my own setup.

Here is my adapted callme.php. Download it, stick it on a webserver, either one with Asterisk, or one that can reach an Asterisk server through its network. Edit it in a text editor to change the password it expects, probably also the manager interface details, as I don't know what your settings are. Though similar to the Nerd Vittles ones, I have re-factored things, and put the form inline - you only need this one script to do it all. Also, to minimize screen usage, it stashes your password in a cookie, and only shows the password prompt if you haven't set it, or the password doesn't match. Don't use this script on a machine you don't trust enough to stash your password on... password handling is naive, to say the least.

To enhance things a little, I added two more features: 1) "Connecting" notification to the first person called. 2) A Wife Alerter feature (also known as a text-to-speech mode), for sending a one-way message to someone who doesn't have a SMS/MMS capable phone.

The "connecting" notification is straightforward. I created a new macro in my dialplan that looks like this:

    [macro-notify]
    ;exten => s,1,Background(transfer)
    exten => s,1,Background(pls-wait-connect-call)
    exten => s,2,SetVar(__FestivalMessage=${ARG2})
    exten => s,n,Macro(diallocal,${ARG1})

You might need to change the last line to do an appropriate type of dial for your dialplan. I use another macro to handle dial-out logic, but, you can easily substitute a normal Asterisk Dial() command for the last line if you don't need such sophistication.

Notice that this macro also does a SetVar - this is stashing an argument passed in to it via the CallMe script, so that, if appropriate, the message is available to the dialplan on the completing extension. To make a call that delivers a message, then, just fill in the message field, set the "Call first" to whoever you want to alert, and "Connect to:" to "tts". You'll need to stash the following "tts" in an appropriate place in your outbound dial plan. Here's the line you need:

    exten => tts,1,Festival(A message for you: ${FestivalMessage})

Once you've got all that set up, give it a test - Call First: yourself, Connect to: tts, and say "Hello world" if you'd like. Depending on your Asterisk install, you might still have to set up Festival - I leave this as an exercise to the reader, but used the Voip-Info explanation with no troubles after installing the "festival" Debian package on my own machine.


In the end, I now have a Sidekick-friendly app that lets me use any nearby phone, rather than my expensive pay-as-you-go minutes, using just my Sidekick to kick it off. In addition, when I'm in traffic or in a meeting, I can send a message to a wife or friend, even if they don't have a cell phone of their own.

Enhancements that would go well with this: 1) Auto-populated drop-down lists of who you call, and where you often call from. Why re-type a number, if you've typed it recently? This could even be done with cookies, to avoid having to do anything substantial server-side. 2) Canned outgoing messages, like most SMS-capable phones have. "Honey, I'm running late, I'll be home soon" is a lot of characters to type, if you type it every time from scratch. 3) Live call status, so you can figure out errors more quickly, or cancel an accidentally dialed call.

So far, I'm really happy with this solution, though. I'll add a Sidekick screen snap as soon as I can figure out how to take one.

Update: Here's a screenshot of the UI on my Sidekick:

a screenshot of the sidekick UI

Technorati Tags: ,