Sunday, July 18, 2010

Aastra disappoints again

I have been doing VoIP work with Asterisk since pre 1.0 days, which is about 6-7 years. The very first phones we choose were the Aastra/Sayason 480i which were very feature rich and pretty good hardware. The software quality is what seemed to be lacking, it was a while ago so I can't remember specific examples. We decided, back at that time, to switch to Polycom 501s. The 501s were not much more in price, had the same features, maybe even more at that time, and just felt like a much better product.

After a few years Aastra came out with the 57i. The popular Nerd Vittles Blog run by Ward Mundy called this phone the best asterisk phone back in 2008 http://nerdvittles.com/?p=207. I was still hesitant to use it due to my poor experience that I had with Aastra phones previously.

We decided to try them again about 6 months ago, and with the new XML scripts that Aastra has made for Trixbox/Elastix/PIF these phones work great with Asterisk and I have not had one issue with the phones firmware.

Now due to my renewed faith in Aastra we decided to try the Aastralink Pro 160 bundle, which comes with a few phones. Our customer also needed wireless as well so we thought we would try the MBU400 which the ALP 160 fully supports. This is where the fun started.

First the Aastralink Pro 160. It has decent hardware, 2 FXS ports and 6 FXO ports, and it a pretty reasonable price compared to building your own system with Sangoma or Digium PCI cards. For the software that is a different story.  As an Asterisk hacker I have been spoiled by flexibility. Even with Elastix (my choice of FreePBX distro) I can always throw something in extensions_custom.conf and change the dial plan to suite any customer's needs. Now I knew the ALP 160 didn't give me root access so I figured the basic stuff would be supported by the web based GUI, I guessed wrong.
  1. You are forced to dial 9 (PSTN) or 8 (SIP) to dial out, you can't change this and my customers hate dialing prefixes
  2. Not only do you have to dial a 8 prefix for SIP but if you have multiple SIP trunks you have to dial another prefix for the trunk number, ie 80 or 81 or 82
  3. Inbound SIP calls all go to the same place, you cannot control calls based on SIP trunk or DID, you can control where the calls from the FXO ports go.
  4. Each extension must have a Aastra hardware phone and must be online. You can have any SIP device as a mirrored extension but if the phone that it's mirrored to goes offline so does it.
  5. I am guessing that timing is not sync'd between the FXO and FXS because I could not get faxing to work for the life of me.

So what other options are there for a small PBX? Xorcom makes one that is decent, this is what we switched our customer to. Building your own out of a Atom based barebones kit is a good option too. Or Ward calls his choice the Orgasmatron http://nerdvittles.com/?tag=orgasmatron but they don't have any FXS or FXO.

Second the MBU 400. Now this is a nice looking unit. It actually is identical hardware to the SNOM m3. It integrates pretty easy with the Aastralink Pro 160 (except it can't be a mirrored extension it has to be its own extension). But for some reason the unit we had would not connect back to the access point after being out of range, unless there was some sort of manual intervention. So I spent hours going back and forth with Aastra tech support. Now you figure people calling reseller tech support would be fairly technical, so the support people should be just as technical or even more. This is not the case for Aastra. The most common response I get from them for a few different issues that I had called about was "I don't know." If it is a tough problem that is fine, but at least offer a next step or some sort of escalation.

So what did we do? We switched to Polycom, again. This time to the Polycom Kirk 5040 handsets with the 600 access point, and a couple repeaters. These were a bit tough to dig through the manual and figure out how to get it setup, I did need help from our distributor on setting up the repeaters, but other than that these things have been rock solid for our customer.

The point of me writing this, other than to bash on Aastra, is to plead for them to stop trying to be a software company. I have heard of and experienced many show stopping issues in their firmware.  Every time I upgrade an Aastra device I am not sure what I am going to get. It has been like this since the 480i days 7 years ago. I don't know what their development and testing process is, but I doubt that it is good. On the flip side, the hardware they make seems to be great, the problem is it takes them years to release firmware for it that is as good as the hardware is.

Thursday, July 15, 2010

Rails on Debian

Ran into a strange issue while debugging a Rails app that I am working on. I finally found the exact problem and issue here http://wiki.github.com/radiant/radiant/undefined-method-for-enumerable

Turns out that
the error comes from an incompatibility between Ruby 1.8.7 and Rails 2.0.2. Ruby 1.8.7 has String#chars and returns an Enumerator object, but Rails 2.0.2 expects an ActiveSupport::Multibyte::Chars object.
Which is pointed out here http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg528878.html

Putting this in your environment.rb fixes the issue
unless '1.9'.respond_to?(:force_encoding)
  String.class_eval do
    begin
      remove_method :chars
    rescue NameError
      # OK
    end
  end
end

Wednesday, July 14, 2010

Fixing Python indentations in VIM

Had this problem today where I created a file with eclipse then edited it with vim and that made the tabs inconsistent. Found this post on stackoverflow that had a couple of suggestions

http://stackoverflow.com/questions/1024435/howto-fix-python-indentation

1. Use reindent.py - this requires apt-get install python-examples on debian/ubuntu
2. :%s/\t/ /g - this is what I used and it worked great

Other vim tricks I have used lately:
- Remove empty lines :%s/^[\ \t]*\n//g
- Re-indent entire file gg=G
- Remove lines with comments g/^#/d