Tag Archives: VoIP

DialplanPro Beta – Windows GUI

Here is an Asterisk dialplan creation tool for Windows. Even if you don’t use this directly, it includes all the bits and pieces of a dial plan including trunks, channels, inbound and outbound routes, and a visual planner for interactive voice response menus. Fun to play with as you try to understand the Asterisk configuration files.

From the description over at Asterisk and VoiP News:

Originally an exercise to learn Asterisk and have a GUI of my own to use, I developed a Windows based GUI to build dial plans and upload them to the Asterisk server. Currently in beta, it’s aim is to abstract routine chores such as dialing an extension or playing a voice.

I also wanted to be able to implement custom code in a easy graphical way as well so I included a scripting editor with most of the core functionality you’d expect like syntax highlighting, Parameter Hints, etc.

Although the GUI is Windows based, it communicates with a Linux binary TCP socket server written in house to control basic Asterisk functionality such as uploading required or included files, issuing simple commands like reload, restart, etc over the network. I also have plans to write a function to remote debug an AEL script using the aelparse executable and it’s output sent back to the Windows GUI.

While definitely still in beta, we are using the software to program our own Asterisk box here in our office and it’s working very well for us. Although note that we have a fairly simple dialplan with just a little bit of conditional logic, FirebirdSQL access and some TTS stuff to tease our resellers when they call in ;).

TrixBox 2.0 updates

And while we’re on the subject of VoIP… TrixBox now has a 2.0 version available. I downloaded and installed this on another machine, before realizing that, like Dorthy, all I had to do was click the heels of my ruby slippers together three times, and I could upgrade my current Trixbox to version 2.0. And indeed that is all it takes; running the upgrade script, letting it chug for an hour or so, and then going in on the FreePBX interface and running the module upgrade procedure for FreePBX.

2.0 includes new versions of almost everything, including a release candidate 1 of FreePBX 2.2.0. So, now I have TrixBox 2.0 with FreePBX 2.2.0 which manages Asterisk 1.2.13.

Over at the Digium they are touting the Asterisk appliance, which is intended as a Trixbox competitor. This comes with Asterisk 1.4.0, beta a notch more recent than the version provided with TrixBox. I flirted with this; installed it actually, but then ran into some problems. I was intrigued however, to see that there was some additonal support for H.323 video…does this means that Asterisk will someday compete as a videoconferencing multi-point control unit (MCU)?

While the new interfaces are fine, the great news from my perspective was that the update blew away my IAX2 trunk configurations for VoicePulse. It left, however the VoicePulse SIP trunks, and I’ve been using them for two days without difficulty, not a single reboot or missed call. Call quality seems to be consistantly good. If this continues, I may actually get confident enough to apply for a phone number for the VoicePulse trunks and use them for inbound calls as well as outbound.

I’ve been using VoicePulse for calls now for a little over a month. Calls within the U.S. have a rate of up to two cents per minute. Calls to Germany were charged 2.7 cents per minute. The one outlier was a charge of 75 cents per minute to directory assistance in the U.S. What a rip!

Fonality Whitepaper on VoIP

I’d like to post the entire contents, but I’d recommend everyone to go over to the Fonality web site and sign up to receive their whitepaper VoIP without Hype – What Busnesses Need to Know which contains a rather dispassionate discussion of the role of VoIP in the context of our “traditional” phone system. Of several migration approaches discussed, the most conservative, yet still effective is the “hybrid PBX”, using IP phones inside the business, and connecting calls over the internet between branch offices, but retaining the ability to still make calls over the regular telephone network.

Whatever approach you decide on for migrating to
VoIP, a hybrid IP-PBX is an excellent first step. Hybrids
operate in three modes – PSTN, VoIP, and what’s called
PSTN-fallback – a mode which ensures that you’ll
always have phone service, even during Internet
outages. With a hybrid IP-PBX, you can also connect
and use analog phones (including cordless sets), IP
phones, or a combination. So you can convert select
employees to IP telephony according to their needs
and the capacity of your Internet connections.

A hybrid IP-PBX enables you to start saving money right
away, even if you choose to use the PSTN connections
to the outside world. With a hybrid IP-PBX at your
business, you get free VoIP calls between offices and
with all your telecommuters, but you can selectively
choose to pay more for calls across the PSTN where
the quality matters most. Think of it this way, your
employees get free VoIP calling between themselves,
but your customers are guaranteed perfect POTS
quality when they call you, or you call them.

Fonality is the vendor which snapped up the very wonderful TrixBox. So, the whitepaper is more useful than many, as it points out the disadvantages of VoIP, and it doesn’t promise the moon.

Network Troubleshooting Tools


Wireshark is the new name for Ethereal. It is a GUI packet sniffing program which watches your network traffic and reports on what’s going on at the network level. Ethereal has been around for years, but it is an ongoing project that just seems to be getting better all the time. Among other things, it will discriminate and display packets that are typical VoIP packets, that is SIP (Session Initiation Protocol), and IAX2 (InterAsterisk Exchange).

Set up a Wireshark capture and you are bound to find a ton of stuff that may be irrelevant. You’ll see requests for web pages, OutLook going out and checking for new mail, DNS requests (where is mxdesign.net?) and ARP broadcasts (who is 192.168.0.9?). So, one of the first things to consider is filtering the captured packets as they are being examined. This is done by using a capture “language” to create filters that are compatible with a predecessor program called tcpdump. Mike Horn has written a tutorial on these, which includes a basic set of capture filters.

I was puzzled why I couldn’t see traffic from my Asterisk/Trixbox computer on my desktop workstation. It turns out they were connected with a network switch which isolates traffic from individual devices. This makes network sniffing more difficult than in the old days when most LAN segments were connected via hubs. I ended up rummaging in the garage and found an older NetGear 16 port hub which I used to connect both stations, and Voila now I could see everything, the SIP phone calling the Trixbox, and the Trixbox calling out on the internet to Voicepulse. The Voicepulse tech support people want to see a capture file of just IAX2 packets, which should show (or not show) why my Trixbox occasionally loses the registration to the Voicepulse server. We’ll see.

Tech Friday: Asterisk/Trixbox quirks

A couple of interesting quirks have come up after about ten days of using Asterisk/Trixbox as our “home office” phone system.

1. The Grandstream Budgetone 101 and 102 SIP phones that we are using are not (apparently) FCC Type-B accepted. That means that they are not shielded to prevent television or other interference. So the phones make a hash of Channels 5 and 33 on our non-cable television….thereby rendering these phones essentially useless in a home environment. To be fair, they are a couple years old….maybe the new Grandstream phones are better shielded? So, the way we’re coping is to plug in the phone when we want to make a call. Saves power, that way, of course.

2. As described earlier, I’m using VoicePulse as our outbound call service, and it seems to work very well indeed. However, the IAX2 channels sometimes become unregistered with VP during the course of a day. When this happens, if you place a call via the VoicePulse trunk…you get a ring-no-answer…that sounds just like a conventional ring-no-answer..i.e. you can’t distinguish whether this is a problem with the VoicePulse registration, or if in fact the person really isn’t at home. As a precaution, in the morning, I’ve been making check calls to my cell phone….if the cell phone rings, then I know my outbound trunk is working. At the Asterisk command line, if I type IAX2 show channels, it should show two registered VoicePulse channels. Even if channel voicepulse1 is unregistered, I would have hoped that channel 2 would take the call, but there doesn’t appear any to be any logic that can deal with this issue. What I’d really like to see is some kind of real-time indication that the channels are not working, and/or some kind of fall-back or re-registering function.

3. I’ll be checking the power consumption of all the components, but I was pleased to see that the idle power consumption of the Dell server that I’m using goes at about 44 watts. This seems pretty reasonable for a server.

Tricks with Trixbox

Trixbox is a pre-configured Asterisk PBX which allows you to create a comprehensive home or business phone system which multiple extensions, and multiple lines. The single TrixBox installation CD creates a Linux server with a web server, database backend, the Asterisk PBX, the Sugar CRM server application, and a set of web-based management tools to manage everything. While all the bits and pieces are available separately, Trixbox automates much of the setup.

Currently, my setup includes two IP phones that look like conventional desk phones. These plug into my local area network. Each has an IP assigned to it. Each is a small web server in itself, as they can be configured using a web browser. I’ve assigned extension 200 to my phone, and 201 to the second desk in the office (John).

When the two IP phones connect to the network and register with the Trixbox, they behave much like regular phone extensions in a corporate office. I can call from one to the other by dialing the three-digit extension. I can put a caller on hold, or I can “park” a call. I can set up a conference call.

Both extensions have voice mail. If an extension receives voice mail, then it flashes its lights to show that there is a message waiting. You can also have the Trixbox automatically forward voice mail to eMail, with the voice message as an attachment. After leaving myself a message from the 201 extension, I received the following message in my Outlook Inbox:


Dear Larry:

Just wanted to let you know you were just left a 0:09 long message (number 1) in mailbox 200 from John, on Wednesday, November 29, 2006 at 06:12:07 PM so you might want to check it when you get a chance. Thanks!

--Asterisk

The voice message was attached as a .WAV file. The names of Larry and John are automatically taken from the assigned names within the Asterisk configuration. I’m assuming you can customize this further…by digging into the configuration.

My outbound telephone connection provider Voicepulse provides a service which completes calls from my PBX to virtually any phone number in the world. Voicepulse accepts calls via the internet and then transfers them to the regular phone system. (see diagram). Voicepulse provides capacity for up to four simultaneous calls. Additional capacity can be added by buying additional “trunks”, which then would allow you to make higher numbers of simultaneous calls. What’s interesting about this is how scalable it is…you don’t need to run wires, or wait for the phone company to come to install additional lines.

Of course, I’m running this with very low volume; since I have a two phones, I can have a maximum of two simultaneous calls. Eventually there will be issues as far as internet bandwidth, and processor capacity. Right now I’m running my Trixbox on an old Dell Optiplex, with a 450Mhz processor.

Trixbox/Asterisk PBX

After hours and hours and hours of troubleshooting. I have finally managed to get my Trixbox software PBX to use the Voicepulse service for outbound calling. Kudos to the Voicepulse tech support folks who patiently called back each day for five days. A test call to my mother-in-law sounded fine…better than calls made through the hardware interface to my second land-line.

The problem appears to be the router, a DLink DI-604 router which is admittedly a low cost router, and frankly, one that has worked well for videoconferencing, which is, arguably even more complex than routing voice over IP. But, when I finally eliminated it from the chain of boxes on the way to my cable modem, indeed I was able to connect. So, now, I’m running on an older Linksys BEFSX41. I have the Trixbox in the DMZ of the Linksys router.

So, reviewing: My problem had nothing to do with Comcast. It had nothing to do with the change from Adelphia to Comcast last week. It had nothing to do with Trixbox. It was the router.

Now, there are a couple other outstanding issues. Currently, the hardware connection to the landline doesn’t work any more since my latest reinstall. I think this is a configuration problem. I’m also trying to get inbound service from Voicepulse, but they don’t provide phone numbers in my local calling area.

As part of my troubleshooting, I installed a scratch Asterisk install on a Ubuntu Linux box. Ubuntu is the up and coming distribution these days, and I like it a lot. It is available in various flavors, including a server, LAMP server, Desktop, Educational Desktop version, Education Server version as a terminal server, and several others. Configuring Ubuntu is a snap when the GUI front end is installed, less so when you are mucking about on the command line.

Trixbox uses Cent-Os which is a derivative of Red Hat.

With both distrubutions it helps to be able to use a remote login via SSH. With Ubuntu, I had to install a server to allow this…Cent-Os includes it as part of the base installation. I also installed Webmin, which is a web-based management package, again which allows you to perform the most common system server maintenance from a web browser.

The PBX is nowhere near production yet. I’ve got bits and pieces that work sometimes, but not others, and getting everything to work together seems to be a ways off. I need to set this aside for a few days, and go back to my “day job”.

Tech Friday: Asterisk/Trixbox Update

Tech Friday is our occasional Friday afternoon dweeb-fest, where if we are going to publish actual programming code (rarely), or get technical, it tends to happen on Friday.

Since installing Trixbox, the pre-configured version of Asterisk I’ve been playing with all the features. I’ve got it connected to a single phone line, with a simple automated attendant, “press 1 for Larry, press 2 for Bob” kind of thing and that part seems to work fine. I’ve got two Grandstream Budgettone 101 phones working fine. They have message ready lights, tell the date and time and will show the caller-id on their LCD read-out.

I read the O’Reilly book about Asterisk, which serves as the Asterisk user manual, and it was very helpful in figuring out the intricacies of trunks, routes, and extensions, and how these all fit into a dial plan. But now I’ve hit the wall, and am trying to figure out two show-stoppers:

Hanging up the line

Sometimes the hardware phone line doesn’t “hang up” after a call. Example: Somebody calls through the landline, leaves a voice mail and then hangs up. There are times when the hardware card doesn’t hangup. Searching through through the archives, I found several mentions of this, so far with no good solutions. It applies to both the X100T Digium cards, and apparently the T4xxxx cards as well. Supposedly the Sagamore cards are more reliable. But, I’m hesitant to shell out another couple hundred bucks for more cards.

Configuring software “trunks”

As an alternative to hardware trunks, (destinations for calls placed outside your own organization), you can configure either free or (usually) paid-for internet destinations where your call is sent and then connected to other subscribers or to landliness. Ultimately, of course, this is indeed what you want to do…any phone system is useless if you can’t connect to other phones. I first tried Free World Dial-Up a free service that was one of the first available termination services. My box seemed to register with this without problems, but any calls sent out to the destination were unanswered.

So then, I subscribed to VoicePulse using their plan for Asterisk. VP will provision your Asterisk service with four trunks, two for the IAX2 protocol, native to Asterisk, and two SIP trunks. The SIP trunks appear to register, but the IAX2 trunks do not. According to the VoicePulse tech support, I may have problems with closed ports at my router.

You need to have port 5060 open for SIP and/or 4569 UDP open to use IAX2. Using my D-Link DI-604 router I tried several different configurations; I put the Asterisk machine in the DMZ, which means that is should be exposed to anything coming to the router, and I forwarded specific ports to the Asterisk box. No cigar.

I then checked the availability of the ports using Steve Gibson’s Shields-Up. These show both ports as “closed”. Uh oh. It may be related to the router or possibly something else. However, if they have been closed by Comcast (our new owner who has taken over from Adelphia Cable) then I may be SOL.

Tech Friday – Installing the Asterisk PBX system

New phone system day.

I spent Friday and much of Saturday installing the latest and greatest Asterisk PBX system using TrixBox, a pre-configured version of Asterisk which comes with the underlying Linux operating system already in place. On a single downloadable CD, you get:

  • Cent-OS – The open source version of A Major commercial Linux Distribution
  • Apache web server
  • Asterisk – the open source PBX
  • freePBX – a web browser based interface for Asterisk configuration and management
  • mySQL – which is the back-end database used by freePBX
  • The SugarCRM – an open source Customer Relationship Manager which integrates with Asterisk

Rather than setting all this stuff up yourself, the TrixBox setup scripts do it automatically, which, in my case, would save hours if not days of futzing around. In addition, if you have existing Digium hardware (i.e. Zaptel) for connecting analog phones or connecting to a regular phone line the setup scripts will configure those cards as well.

So, you could consider the TrixBox implementation a superset of Asterisk.

But wait there’s more!

There is even a super-set of Trixbox, which installs Trixbox on a virtual machine within Windows. This is available from Nerd Vittles. There are also instructions on setting up a slew of extra applications at the Nerd Vittles site, like an extension number to read back the latest weather forecast.

Personally, I prefer setting up the Linux version. Right now my system is working happily on an older 450Mhz 256Kb RAM Dell Optiplex.

There are several set-up tutorials available. One good one is from Sureteq. Looking at these, it is clear that just by setting up a TrixBox, you aren’t out of the woods by any means. What these superb pre-configured systems do, however, is bypass hours of setting up the base system, and get you to the point where you can start working on your dial plan.