Author Archives: lkeyes70

Monthly Introduction June 2007

Welcome to Tech for Non-Profits, the unplugged version of Microdesign Consulting. Part lab-notebook, part brain-extension, it is a repository for new and half-baked ideas that we run across as we provide software and database development, network support, and R&D for a growing list of clients in education, health care and non-profit organizations.

Occasional features include Tech Friday, which may include code(!), our (mostly) annotated VoIP resource guide, Stuff That Works for hardware and software items that have passed the Five Minute Test, and Chron This Week, which is a synopsis of technology articles of interest in the Chronicle of Philanthropy. Topics on grantwritng and fundraising appear as we seem to have one or more grant application in progress most of the time.

I’ve just come back from the TrixBox Fonality Training in Boston, and will be posting a lot more about open source communications adn telephone systems.

Comments and suggestions are welcome. They are moderated, so will show up shortly after you add them.

At the Trixbox seminar in Boston

Day 2 at the Trixbox seminar in Boston…not that I’ve learned a whole lot of new things, but we are all finding that our prejudices are confirmed. Yesterday we spent much of the morning installing the VMWare version of Trixbox and connecting a couple of SIP end points. We have the X-Lite softphone connected to a Polycom desk set. My seat partner is David Mandelstam of Sanoma, one of the sponsors at the conference. We’re having a terrific troubleshooting session by Mike Joyce of Fonality. Lots of tidbits/opinions and debate. For example:

Mike Joyce of Fonality

Sizing the machine adequately.

The load is especially heavy with software echo cancellation
Use hardware echo cancellation

AppConference will be added for conferencing….and will be an alternative or replace MeetMe.

Recording — Recordall – is really a bottleneck. DiskIO is the issue, and you need a quad Opteron, huge disks, etc.

“Bus Bubbles” interrupt conflicts.

PatLoopBack – Zaptel repository

Ethernet Card Considerations
Cache optimization
9 out of 10 on-board Ethernets on motherboards are good

Rhine Chipsets
Intel Ethernet Express is not good for VoIP
For cable modem and DSL setups (Motorola Surfboard…etc)

The routing equipment at the CPE that has packet optimization that sucks on cable modems. You can’t see more than a couple concurrent calls on a typical cable or DSL connections. Not a problem with the carrier, but the problem at the CPE….the DSLAMS are OK,

Problem is shared cache for inbound and outbound
The cheap modems can’t do context switching enough between the two to support more than a couple of calls.

Under 50 concurrent calls is where Asterisk has a sweet spot..with all the features of a more expensive system. Asterisk doesn’t scale up higher (easily), the big guys don’t scale down (easily).

Using VoIP on the Internet
Limitations of Broadband Connections
Ping 20 millseconds at As you lower the interval, you have
ping -c 0.02 -c500

Need to see 0 packet loss.

Place in the DMZ setup sometimes…and make sure that the DMZ is located

SIP compatible routers don’t work unless it is under $1000 dollars. Finality

Linksys BEFSR81 – DMZ host.
PFSense – OpenBSD – Live installation, etc.
IPFW

People try to overcomplicate things.

NAT issues – Don’t install the phones and the PBX on different NATs.

InGate – Sipperator — Sip Proxy Session Boarder Controller

Aeronaut 1050G
Astra 480Et (?) wifi phone

Fonality: The vast majority of problems are related to networking.

Don’t ever ever ever sell a system without RAID
Software raid is better than hardware
Don’t use RAID 5 for a Linux or Asterisk
80 gig drives work fine.
Never been able to justify the cost of SCSI disks
Rebuilding a RAID 1 drive takes about 10 minutes.
Hot swapping
They have to be able to fix things over the network. All PBXtra stuff is supported remotely.

MDADM man
SATA RAID at the install Disk DRUID, etc.
there is also a setup RAID.
Swap needs to go on both disks.

For 50 bucks a month offer back up service with a chron job, and ftp the data to a NAS at a co-lo.

AGIs are super easy to write.
If you don’t have friends who write perl, get some.
Call Files – Click-to-Call, Ticketing Systems, CRM systems
split() on csv for easy archiving Tie the call records into a CRM system. How much does it cost you to convert a prospect to a customer.
If you go into the operations side a company, you’ll have an easier time, rather than go into the IT side a company.

Setting up Trixbox on a Windows Machine

In preparation for the Boston TrixBox seminar, I’m setting up my laptop to run TrixBox. Think about this concept for a moment… I’m going to run a version of Red Hat Enterprise Linux, as a virtual machine on my three-year old Dell laptop, and on top of that run the Asterisk/Trixbox PBX server. This is mind-boggling on a several levels.

The minimum recommended specs for doing this include 1 gigabyte of memory and a 2.4 gigabyte processor. I’m hoping it will still be functional with my 2 gig laptop processor…it is a little late to go out and replace my laptop.

I’ve downloaded and installed the VMWare player.
I’ve downloaded and installed the TrixBox. Zip file which contains four files:
* Red Hat Enterprise NVRAM File (which I’m assuming is some kind of memory emulator)
* VMWare virtual disk file,
* VMSD File
* VMX configuration file.

Clicking on the VMX configuration file, starts the configuration process. This looks identical to the setup process that you run when installing TrixBox on a standalone machine.

The next snag comes up when the CentOS installer complains about a network card driver. I accepted “Remove Configuration”, and it immediately came back and said it would attempt to configure the card again. At this point I get the blank screen asking for network information.

There is no direction on this in the installation instructions so I just accept the dynamic configuration for now.

This is accepted, and the boot sequence for CentOS continues smoothly. I see that eth0 starts up.

A few more minutes, and the login CentOS login prompt appears. I login with user name=root, and password = trixbox

The web interface is also available on the local IP address for the virtual machine

This shows the handsome new front page of the 2.2 interface. Click on the image to see it full size.

Windows XP Embedded….just like Novell

I’m dating myself here…but I remember about twenty years ago when the Novell NetWare operating system was compiled from components. In the earlier case, the operating system was linked to include object files for specific networking hardware. I recall provisions for up to a dozen different hardware manufacturers and topologies, including ArcNet, Ethernet, IBM Systems Network Architecture, and something called OmniNet. The linking and build process used 30 or more floppy disks, and the process was fraught with errors and mixups. The target hard drives were tested with the infamous CompSurf program (for Comprehensive Surface Test), and this could take several hours to run if the disk was a large one, like 40 megabytes. We would routinely let these tests run overnight, and hope in the morning that our disk would have a clean bill of health.

So it is interesting to build a Windows XP embedded image, which basically gives you 1200 possible components that can be selected to build a version of Windows XP that will run on embedded hardware or for a dedicated device. This is displayed in the Microsoft Virtual Labs, which create a virtual PC environment ActiveX control that shows up embedded in an Internet Explorer Window. Pretty slick actually. And, as the second picture shows…it is just like real life. Here is what I ended up with after working through ninety minutes of the lab when I attempted to reboot the virtual machine.

Tangled up in Macros – Errors when opening Access Files

Eliminate the Macro Security messages when opening Access projects.

Here is a fix for a perennial problem, which appears to work.

I’ll spare you the rant.

You need to run this on every workstation which uses your application, so in a networked situation, this needs to be part of the installation routine on each workstation.

Martin Geddes: Cold on VoIP? Exactly

Martin Geddes is sceptical.

I ought to explain why I’ve suddenly gone cold on VoIP.

It’s just I’ve watched my own behaviour. I’ve grown tired of the inconsistency of PC VoIP calls, and instead I’ve reverted to using landlines, mobiles and Jajah (for callback). But I’m still using IM to set up many of those calls!

The problem isn’t unique to any one client — they’re all proving unsuitable for business use with clients (which is most of my telephony needs covered).

The worst of all seems to be Skype conference calling. We probably would rate the quality as “unacceptable” for 50% of the attempts. When it’s good, it’s great. But that isn’t what I’m after.

He goes on to talk about how softphones don’t work very well.

Another problem with PCs is they’re just lousy telephones. When you hibernate Windows XP on my HP laptop, all kinds of audio settings seem to go wrong and the volume buttons stop working. Bluetooth is hopelessly unreliable, and who wants another wireless headset device to remember to charge up (and bring the charger when you travel)? Or to have to rush to fish out a headset and plug it in when a call arrives?

Before I get accused of plagiarizing the whole piece, you can read the full post.

There are a couple of issues here:

VoIP qua VoIP is really a very broad spectrum of technologies, encompassing softphones, free calling, replacing million dollar hardware PBX switches with open source software switches, and new applications. Martin’s definition for purposes of his discussion, if I read his article correctly cites two problematic applications; softphones on PCs, and conference calling on Skype.

I agree with his scepticism. My own interest in more in Asterisk/Trixbox and replacing the traditional circuit switched phone line infrastructure with packet switched calls over the internet. While I have made a couple of calls from my laptop, it seems a little bit silly to do so when I’ve got my $15.00/month cell-phone handy. So if softphones don’t work I’m personally not going to slit my throat.

But, the internet calls thing, is more problematic. Clearly, we are at the mercy of the internet when placing such calls… once your packets get outside your own local area network, they are flung out on the storm-tossed seas of the public internet. And, as we all are getting what we wished for with network neutrality, our packets are being treated like everyone else’s packets. So, your 911 call’s packets might be held up by an image of Johnny Depp, or even the whole movie.

One solution of this so far, as been “quality of service”, which is a euphemism for “prioritizing packets”. If people played nice, then, every router on the net would be smart enough to know that some packets are more equal than others, and voice and media packets in particular need to be forwarded before eMail and ftp packets. And indeed, if I’m making VoIP calls from my Trixbox while downloading those bloody updates for Windows, call quality goes down the tubes, (and this is with me, placing a single call, and downloading from a single workstation on my LAN).

The second solution, and really the only one at this point, has been to provide enough bandwidth so that whatever the exigencies of packet transfer there is enough slack in the network so that most of the voice packets will arrive, in the correct order. In buildings that use VoIP phones, the best practice is to run a separate set of 10BaseT cabling for the softphones. Mind you, this is a separate subnet from the data network that is currently in place. (Note: Someone will argue that this already in place, because we’ve got the existing two or four pair wiring in place for the telphone…)

So, is it responsible of us to suggest for a non-profit that they should:
1. Invest in new desk phones at $125.00 for each desktop location
2. Double their cable infrastructure
3. Purchase a quality of service router that at least will prioritize packets moving in and out of their own location
4. Purchase a dedicated server, with attendant UPS backup and management
5. Figure out how all this goes together.

when it may not work. Specifically, that you won’t be able to rely on 99.99% availability when placing internet calls, and you won’t be able to ensure that 99.99% of inbound calls to your internet-brokered phone lines will reach you.

when you can go to Best Buy or Amazon and get a Panasonic key phone system with six phones for $2500 or so, which you can forget about once it is installed.

I’m just asking.

Access 2007 Runtime Delayed & Linux Patent Assault

Microsoft Matters:

The Access 2007 runtime which was scheduled to be available today is delayed by a couple of weeks.

In other news:

Microsoft also seems to be trying to pick up where the SCO lawsuit left off, by threatening companies using Linux for patent infringement. Same story as before…they won’t say what is being infringed, won’t point to any code in particular. They mention OpenOffice (which isn’t Linux, of course, merely open source). Lots more about this over on Slashdot.

What a crock!

It is behavior like this which makes a customer think about where they are sending their money.

It’s like General Motors blaming their customers for not buying enough GM cars.

It’s like health insurance companies blaming their customers for whinging about the cost of premiums which rise at 2 or 3 times the annual rate of inflation.

Chron This Week: HP Grants for Micro Business Programs

Seen in the Chron….

Hewlett-Packardis accepting applicaitons for a program that provides cash, laptop computres and other equipment to non-profit orgnaizations that help low-income entrepeneurs build and expand small businesses in the United States. Deadline for grant applicaitons is June 5.

http://www.hp.com/go/hpmicroenterprise

Also, there was a very interesting article about volunteers; Charities Face Trouble Keeping Volunteers and Attracting New Ones, Study Finds. An excerpt:

The Nationwide Mutual Insurance Company, in Columbus, Ohio, recently released a survey that reinforces the Corporation for National and Community Service’s findings about volunteers dropping out.

The Nationwide survey, based on online interviews with 462 adults, found that 57 percent of respondents do not plan to increase their volunteerism over the next year.

Moreover, 42 percent of people who don’t volunteer say it isn’t a lack of interest that prevents them from donating their time, but rather difficulty finding opportunities where they feel they can make a difference, use their skills, or act on personal values.

The full survey is available online.

Trixbox and FreePBX

In one of those serendipitous moments, I found that by upgrading one thing, I fixed another thing.

One of the nifty things that you can do with VoIP is add a virtual number to your system. The number can be located pretty much anywhere, as long as your “voice ISP” has a block of numbers available in the locale that you want to have the number.

In my case, I wanted to have a local number available in Albany, New York which is area code 518. So, I logged into the VoicePulse web site, chose the location and selected a number from the ones available. VoicePulse charges US$11.00 to set up a number, and then $11.00 at the beginning of each month for the number.

That should have solved the issue. I was able to verify almost immediatly that my credit card had been charged. But when I called the number I’d get the “the number you have dialed is not in service” message, which follows the three high-pitched tones.

What to do? First, of course, send a note the VoicePulse tech support. They called back and asked for a transcript of the SIP debugger in Asterisk. So, I logged into the Trixbox with my SSL terminal program, logged on to the Asterisk command line, and then activated SIP Debug.

AsteriskBox$ asterisk -vvvvvvvvvvr
AsteriskBox$ sip debug

This gave me a transcript of all the SIP commands, and it was obvious that indeed the call was getting as far as the Trixbox, but was being rejected for some reason. So, I figured it had to be an issue with inbound routes in the Asterisk configuration. These are configured using FreePBX. Poking around on the FreePBX forums, I found that the version I was using was still a release candidate, and indeed other people had had problems with inbound routes. So, an upgrade was in order, and excellent instructions were given on the forum. And indeed, now the inbound number works.
I now have a “local presence” in Albany, even though I’m in Vermont.