Tag Archives: Asterisk

Trixbox Training – More and Better!


Trixbox has added some more in-depth training options. I took the FtOCC (Fonality Trixbox Open Communications Certification training in June, and it started to get interesting on a technical level.

Now the TB folks have two new courses that go deeper into the technology:

  • FtOCC Technician (trixbox CE, Pro and PBXtra)
    FtOCC Technician is a three-day technical certification course designed to train resellers and consultants to support their clients running trixbox CE, trixbox Pro, and PBXtra systems. Taught by Fonality technical support instructors, FtOCC Technician dives deep into platform and application installation, carrier setup and integration, network configuration, echo causes and remedies, and other common issues. A requirement for Authorized and Premium Resellers, this course should be taken by Linux technicians and engineers who regularly support client installations.
  • FtOCC Engineer (trixbox CE, Pro, and PBXtra) FtOCC Engineer is a new course designed to teach engineers how to do custom application development for trixbox CE, Pro and PBXtra. Write deep CRM integration, database dips, text-to-speech, internet look-ups and more by combining the Asterisk Gateway Interface (AGI) and Asterisk Manager Interface (AMI) with a CGI, SQL database, IVR, or all three. Want to hear a perl-based IVR in action? Call 310-861-4393 and hit option 2. Taught by Fonality’s lead engineers who created trixbox Pro and PBXtra, this course is for serious programmers with deep Linux knowledge.

The original FtoCC training course now appears to be renamed Trixbox Administrator course, and is the “entry-level” course of the series.

Even if you aren’t selling and installing Trixboxes, the courses are useful on a general level as you learn a great deal about Asterisk, VoIP, Linux, echo-cancellation, etc.

Trixbox and VoIP Update

I have done an extensive hoeing out of the VoIP Resource Guide, if you thought it was getting a bit long in the tooth, there are new items and I’ve deleted a lot of the old stuff. But, to cut the chase, here are some Stuff That Works:

The above are components that I’ve been using recently. Just today I ordered another Polycom phone, and a Sangoma A200 FXO card to replace my Digium X100p card. The difference between the Polycom phone and the Grandstream B100 phones in sound quality is noticable, and the general fit and finish of the Polycom phones is outstanding. Of course they cost twice of what the Grandstream phones had cost.

Other things highly thought of:
At the Boston Trixbox seminar, people spoke highly of Aastra phones, and Rhino interface cards. M0n0wall, the open source firewall was also recommended.

Unsolved Problems:
I was really happy with Gizmo for awhile, but have never been able to get it to register with my Trixbox server. I fiddled, but always given up.

And, still looking for a QoS solution for my home router, so that when I’m on the phone, and am casually surfing the web, it doesn’t destroy the conversation mid-word.

Trixbox Boston


The cockpit. Laptop with the VMWare image of Trixbox installed. You can see the version 2.2 management screen. To the right, a Polycom 330 phone. These were part of the package that everyone took home. These are really nice phones, a real step up for those of us who have been using lower-end phones in our Trixbox experiments.


Andrew Gillis tries to debug problems with David Mandelstam’s Polycom phone. If David can “brick” a phone…is there any hope for end-users? ;-0

Andrew, Kerry and Stefanie Chao-Narayan handing out diplomas.


The object of our affection. A pre-production TrixBox. This one was the enterprise version, with dual power supplies. It runs cool as a cucumber, but belongs in a server room or wiring closet, not under your desk.

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.

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.

Trixbox Webinar

Just got off the Trixbox webinar, conducted by Kerry Garrison and Andrew Gillis and thought there were some interesting ideas that came out of it. Here are some rough notes.

Call Queues
You can set up call queues which are not to be confused with ring groups. A call queue is where you stack up calls and where the caller can be told “You are caller number 5. There are four callers ahead of you. The average wait time is 2 minutes”. and so on. You can have a call queue point to a ring group. (A ring group is a set of extensions that are called by some kind of rules, in a specified sequence, say, or based on the amount of time since an extension was last connected on a call.

Bandwidth and Latency
DSL typically has lower latency than cable, even though cable typically has higher bandwidth.

TDM Hardware connections vs. Internet SIP/IAX phone termination services
Many of the example installations they gave involved hardware connections. T-1s. ISDN PRIs, etc. This supports the notion of having conventional hard connections for important inbound and outbound calls to your company, rather than rely entirely on a VoIP termination provider.

DTMF Tones
There are at least three different ways that phones can send DTMF (the numeric tones that are generated when you press numbers on the phones). They are not all compatible with each other.

Seminars and Training
There are starting to do seminars. March 5-6 they are offering a two-day course in Los Angeles for $1495 for Trixbox beginners. In the second quarter of 2007 they will offer two more courses; Advanced Trixbox Administratrion, and Advanced Troubleshooting. More on their training site.

Asterisk documentation:
VoIPSpeak.net (Kerry’s Blog)
AsteriskTutorials.com – A set of free screencast tutorials for Trixbox, FreePBX, etc. These are great. You can see demos of how to set up some of the basic and advanced functions like inbound and outbound routes, how to do a follow-me function, etc.
Book: Trixbox Made Easy
Web Documentation: Trixbox Without Tears
#FreePBX IRC channel

Vendors:
VoIPSupply.com
VoIPLink.com
ATAComm.com

TDM cards
Sangoma
Rhino
Digium

Using Trixbox under VMWare (software emulation)
VMWare drivers are required when emulating, so you can’t use hardware cards. That said, emulation works great for training, and I see that is the plan for their traning seminar; you are to bring a laptop capable of emulating trixbox and you’ll walk away from the seminar with a fully configured system.

Compare Trixbox Training vs. an Asterisk Boot-Camp
Boot camp concentrates on the Asterisk configuration files
Trixbox training goes into how to use the Trixbox configuration tools (FreePBX, etc.)

Recommended way to Upgrade from 1.2.3 to 2.0
Upgrade 1.2.3 from 2.0
1. Download and upgrade FreePBX
2. Do a backup using the FreePBX backup functino
3. Do a clean install for 2.0
4. Then do a restore (using the new FreePBX)

n.b. I manged to upgrade by running the upgrade script from the Linux command line, and also running an update of modules from FreePBX. This seems to have worked OK, from my end, but they suggested the above steps as being more reliable.

Relationship between Asterisk and Trixbox
“Asterisk is the engine…Trixbox is the car.”

Should you editing Trixbox Config Files
How does FreePBX treat the Asterisk config files… can/should we ever update the config files themselves, or will they get overwritten?
Example of the extensions file:

Extensions <-usually only overwritten when upgrading ASterisk
Extension_Additional <-overwritten from FreePBX (don't edit directly)
Extension_Custom <-changes that are never overwritten by the system – use for customization

DUNDI
There is no web interface for DUNDI, but you can edit the DUNDI config file manually

HudLite – “Heads Up Display”
HudLight – OutLook Integration and Heads-Up display

Distributed PBXs
Remote extensions (single phones in a branch office connected over VoIP0
Remote Trixboxes, (whole trixboxes in branch offices, federated together).
DUNDI – Sort of a DNS which points to IAX and SIP peers. Totally distributed. Created by Mark Spencer of Digium (inventor of Asterisk).

Voice Recognition
Voice Recognition in the IVR – They are working with a couple vendors to make this available, Right now there isn’t anything in open source available.

Additional multi-language support is coming.
Trixbox 2.0 has multi-language support

The webinar was a kick. They had 800 participants (!) Both the slides and the commentary will be available later today.

Economics: Home-Grown vs. Full-Service VoIP Providers

While wallowing around getting the Asterisk/Trixbox up and running, I’ve been wondering about the economics of this especially when placed against other possible solutions. For example, Packet8 offers a business phone plan as a service; they provide you with phones, but everything else is provisioned over the internet. No server required.

Packet8 is a full service IP phone provider with both business and home phone plans. They offer a business service with a required minimum of three phones at $40.00/per extension. This includes unlimited calling throughout the U.S. and Canada. Calls to Germany are 2 cents per minute. So, the minimum would be $120.00 per month. They’ll sell you phones for about $99.00 each which is a good deal. If you would rather not buy the gear, and you can commit to a minimum two-year contract, they’ll give an option for $49.00 per month.

That covers the outbound calls and provides you with one inbound number. Additional inbound numbers, which can be virtual numbers, are $5.00 /month. They have a calculator on their site which gives you an idea of what the upfront and monthly costs will be.

If you wanted to start up with an Asterisk box, you would still have to buy IP phones. You can’t get a phone for much less than about $80.00, so that part of the equation is comparable.

Now, as I said with VoicePulse, there is a charge of roughly 2 cents per minute, and it all depends, on the amount of calling you are going to make. Comparing with the Packet8 rate, of $40.00 per extension per month, you would have to talk for thirty-three hours for a single extension to use up the $40.00 bucks. Further, with Packet8 the 5th or 8th phone costs as much as the first phone; there are no cost breaks as you scale up. They have a calculator on their web site that shows the upfront and monthly recurring costs.

Inbound virtual numbers with VoicePulse are $11.00 per month. Of course with Packet8, you don’t have a server; everything is done virtually over the internet connection.

After reading several reviews, (decidedly mixed), on Packet8, I’m thinking that the idea of the Asterisk box is still a good one. For one thing, using an Asterisk server allows you to maintain a hybrid system; a mixture of VoIP and connections to a landline. It also allows you to mix and match your own IP phones and soft phones. And, for me at least, the monthly charges are negligible. I can add as many extensions as I want, for just the cost of the phone hardware.

More Links:

Here’s an older review of the VoicePulse regular (non-Asterisk) service.

Test your network for VoIP. This service will place test calls between your location nd several cities including Sydney, Vienna, Boston, and Montreal.

A similar test for videoconferencing.

Finally, I ran into this great article about how to rewire the phone wiring in your home or business to use VoIP. Many systems, like the home service of VoicePulse, Packet8 or Vonange assume that you want to connect a single telephone to their servcie. This article explains how to work around that problem, and includes a great deal of general information about phone wiring. Get your dykes and screwdrivers ready!

Trixbox/Asterisk Progress Report

Two steps forward, one step back. There has been some incremental additions and improvements to our home internet phone system project based on Trixbox.

I’m reminded of a foreman I once had who boasted that he had a vacuum cleaner in every room of his house so that he could take care of any spillage or dust immediately. This is the guy who lined his entire garage with ceramic tile; it looked like an operating room. S.O. is starting to compare us with him, only in our case we have multiple phones.

Anyway, click on the sketch to view the larger version. You’ll see now that we have three SIP phones. All three are the Grandstream Budgetone phones. I’ve got two in my home office, along with the Trixbox server, and we’ve placed one of the phones in our upstairs study. I mentioned before that the power supplies appear to interfere with the television set, so the upstairs phone only gets plugged in when we’re going to actually make calls. Too bad…I still have to yell up the stairs.

We have two Verizon landlines. I have my old two-line phone on my desk. One line is our “home” line and one line is the “business” line. The business line now goes into the Trixbox, so that I can take calls there and transfer them to any of the three SIP phones. Right now, I have any inbound call ring at my desk, but eventually I’ll see about an automatic call director. (“Welcome to Microdesign. Press 1 for technical support, 2 for database and software development, or 3 for videoconferencing”)

Outbound calls from the SIP phones can go out over the internet either via VoicePulse (the default outbound route), or, if you prefix the call with a ‘9’, they’ll go out via the business line. VoicePulse calls cost 2 cents per minute or less. The business line has eight cent per minute long distance via MCI. As a test we’ve been using the VoicePulse lines exclusively, and I note that even without a single call, I’m paying $10.00 per month for the MCI connection in monthly charges, FCC fees, and taxes. So, the MCI long distance service is certainly a candidate for dropping if my confidence in VoicePulse continues as high as it has the past couple of weeks.

The PSTN “home” line remains untouched, it is connected to a phone in our kitchen and an extension in the bedroom.

Why is this taking so long? It is a question of confidence. I’m moving incrementally because I want to be confident about the reliabilty of every step of the chain. If parts aren’t reliable, then I need to know about that and either design a workaround, or decide to live with the limitations. Right now, “best practices” suggest that for client calls, the PSTN still has the edge over the internet, but for interoffice calls, and “casual” long distance calls, the savings in phone charges will add up substantially. The goal is to have a reliable, scalable, business phone system…and I think I’m on the way.

Debugging SIP in Asterisk/Trixbox

Here’s the scenario:

Significant Other calls Mother. Gets a “ring no-answer”…which means of course, that it just rings and rings and rings. The assumption, then, is that Mother is not at home. Or she might be downstairs doing in the laundry room, or something, but she definitely is someplace else.

However, what is happening in reality, is that Mother is on the phone with Sister. So we should be getting a busy signal, but we’re not.

My theory was that since my PSTN connection provider, Voicepulse, couldn’t complete the call, that it just kept things ringing. However, they said that they actually send back a SIP message 486 [Busy here] to Asterisk…and Asterisk should then be dealing with that by changing the ring tone to a busy signal.

So, there is a SIP debug mode within Asterisk, and I’ll set this up by going into the Asterisk Command Line interface. I’ll log into this remotely using Putty using SSH (the secure shell). I’ll also set this up to log everything that appears in the terminal to a file.

So, I place a call to a known busy PSTN line.

But, nowhere in the transcript is there any evidence of a SIP message 486 Busy. So, I placed an outbound call via my ZAP hardware line to the PSTN number for that number. This is the same as calling your own phone number from a conventional phone. In this case, I get an immediate busy signal, as expected. But, looking at the transcript of that call, there is no evidence of a SIP message 486 there either. So now I’m wondering about the phone. In the transcript it shows the following entry:

<-- SIP read from 192.168.0.161:5060:
BYE sip:98639587@192.168.0.180 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.161
From: "Larry Keyes" ;tag=8d48abf7-9a54-5966-3784-6ae80bce9d87
To: ;tag=as5fa85f66
Contact:
Proxy-Authorization: DIGEST username="200", realm="asterisk", algorithm=MD5, uri="sip:98639587@192.168.0.180", nonce="1c3041c5", response="759f615b48878ff3d617936450ae3c8e"
Call-ID: fc430bce-606a-00c1-18aa-c326d5af2e1b@192.168.0.161
CSeq: 45540 BYE
User-Agent: Grandstream SIP UA 1.0.4.17
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, OPTIONS, INFO, SUBSCRIBE
Content-Length: 0

I’m wondering about the Allow:. Does this mean that the phone doesn’t accept any SIP message except those that are offered by the phone?

Now, my own opinion is that we can indeed live with this, just like we can live without E911 calling and all that. Still, it is just one more damn thing that is different between my VoIP implementation and the “real” PSTN. But, there is a safety issue there…if we can’t reliably determine when the phone is off the via a VoIP call, then we may want to place a PSTN call to verify. Which seems to sort of defeat the purpose.

We could solve this by just getting her an answering machine.

Here is another viewpoint about the anomolies of VoIP. Men are from VoIP and Women from PSTN.

My wife has been using Vonage for the past 3 years with me and she complains at every little Vonage hiccup, every little “fast busy” when dialing, every little Internet outage that brings down the phone line. She used to complain about the sound quality on the VoIP connection all the time, but she has gotten better. Or perhaps she’s resigned to the fact that I’m never going back to PSTN.

Me? I’m like “Hey, sounds great to me. I never have any problems when I’m making a call using Vonage. Sure, when the power goes off or the Internet connection dies, we lose our phone, but hey, we’re saving a ton of money each month. And it’s a cool technology to boot. Plus I write about this stuff all day long, so I should practice what I preach.”

I don’t think she bought it.