Home » Technology » Nerd Vittles Birthday Bash: freePBX 2.2.0, TrixBox for Macs, CallerID Trifecta for Asterisk, and…

The Most Versatile VoIP Provider: FREE PORTING

Nerd Vittles Birthday Bash: freePBX 2.2.0, TrixBox for Macs, CallerID Trifecta for Asterisk, and…

We made some New Year’s Resolutions this year… that we intend to keep. So, no, we’re not going to discuss losing weight. Our most important resolution was to stop getting caught up in upgrade-itis with Asterisk® and TrixBox. After all, we’re building phone systems that folks expect to be considerably more reliable than their Windows desktop machines… which doesn’t take much. We’ve gotten literally hundreds of emails asking the same two questions: when do we plan to switch to TrixBox 2.0 and how about upgrading to Asterisk 1.4? Our answer is always the same to both questions: not anytime soon. Why? Because there is almost nothing that can’t already be done with TrixBox 1.2.3. It’s 99% reliable, at least once you NerdVittlize It using our upgrade script. So what do these upgrades buy you other than another version number? Who knows? We’d suggest you do a lot of reading before making the leap. Start with Chris Sherwood’s Guide and see if there’s some new feature you really can’t live without. And then check out the TrixBox Help Forum to determine if you can deal with the reported problems. That’s the balancing act we all have to perform, and we’ll let you know when we finally take the plunge. For now, we’re happy with the feature set in TrixBox 1.2.3, and it lets us build reliable snap-on applications that really make a phone system hum. If there are features you don’t need or use, just turn them off. That’s what WebMin is for! Think of it as TrixBox 2.0 in reverse. Instead of enabling apps, you disable them. Are you really that short on disk space? As for the feature set, you’re not missing much. Our home phone system has so many gimmicks and gizmos that some callers (mostly my perverted friends) ask to speak to Allison when they call. She doesn’t live with us. She’s a nice Canadian girl, but you might still enjoy listening to her recent interview with Ronald Lewis.

Having said all that, there’s one new product for Asterisk that is nothing short of incredible. That’s the Rob Thomas & Co. upgrade of freePBX to 2.2.0. While the developers have conservatively numbered the new version, don’t be deceived. It’s more like 3.0 compared to the 2.1.3 version that ships with TrixBox 1.2.3. Why the enthusiasm? Because freePBX now includes the toolset that lets developers add unlimited new functionality without mucking around in the basic freePBX code. We’ll show you what we mean in a little bit so hang in there. Our diatribe is almost over.

We’ve also gotten a lot of questions about whether we’ve looked at AsteriskNOW, the new "appliance" from Digium. Yes, we’ve looked and we’ve read some excellent documentation. If all you want to do is set up some extensions around your house and replace your answering machine, it looks like an interesting product. What’s missing? Well, the 80 million things you can do with freePBX for openers. So we actually thought about writing a HOW-TO covering installation of freePBX 2.2.0 with AsteriskNOW, but then we remembered our New Year’s Resolution, not to mention the Asterisk 1.4 wrinkle with a bunch of missing commands. They call them "deprecated." It’s a nice word for throwing the baby out with the bath water. To save a few lines of code, the Asterisk developers removed some important, old commands from the product. So now application developers have to review and update every piece of code they’ve ever written for Asterisk to make sure there aren’t any deprecated commands lurking. To make matters worse, you have to have different versions of applications to run on Asterisk 1.2 and Asterisk 1.4. Dumb idea not to mention a huge waste of time and talent! So… here’s our bottom line: why reinvent the wheel when TrixBox 1.2.3 is rock-solid reliable and when TrixBox uses the very best tools in the business: Asterisk, Apache, MySQL, PHP, Flite, SendMail, SugarCRM, and on and on we go. Aside from the IAX security hole which our upgrade script patches, every one of these applications is a proven winner which brings us back to freePBX.

You really, really need freePBX 2.2.0! We plan to build all of our future goodies using it so climb on board today. We promise. You’ll enjoy the ride… every week! If you’re using TrixBox 2.0, you’re all set. If not, here’s how to upgrade your TrixBox 1.2.3 system to freePBX 2.2.0 in about 10 minutes! There’s nothing hard about any of this. The remainder of this article does assume that you have installed TrixBox 1.2.3 from the original .iso image and then NerdVittlized it on a dedicated Linux machine OR that you’ve installed our VMware/Windows XP version of TrixBox 1.2.3 which comes NerdVittlized out of the box. Otherwise, as they say, YMMV. If you’re new to all of this and have no idea what NerdVittlizing means, read up on the gerund here, and then come back and join us once you’ve secured your system and added all of the the Nerd Vittles goodies.

When we get finished with the freePBX upgrade to your TrixBox 1.2.3 system, everything that worked before you started the upgrade will still work when you get finished. Of course, we recommend you try this out on a non-production system and verify for yourself that your system still functions reliably. That’s what VMware is for! But we think you’ll find that you still have a system that is ready to put in production: phones ring, applications run just as before, and all the things you have come to rely upon in your phone system will still function. And we’ll have an essential, new building block to add all sorts of additional features to your system in coming weeks without breaking anything. We’re even going to add a few goodies today just to get you started!

Upgrading to freePBX 2.2.0. The upgrade process is straight-forward, but you need to pay attention and perform the steps in the order we’ve outlined below. Winging it will result in a system that either doesn’t work at all or one that may exhibit all sorts of quirky behavior. So, be reasonable. Do it our way! We’ve tested this about a dozen times on all sorts of different machines which is something you’re probably not going to find all that exciting to replicate.

First, make sure that your TrixBox 1.2.3 server is working reliably. It handles incoming calls correctly, voicemail works, outbound calls work, etc. Once you’re certain that you have a stable TrixBox 1.2.3 system, then log into your server as root and issue the following commands in order. If, for some reason, the freePBX mirror site is unavailable, substitute bestof.nerdvittles.com/applications/callerid for mirror.freepbx.org below:

cd /usr/src
wget http://mirror.freepbx.org/freepbx-2.2.0.tar.gz
tar zxvf freepbx-2.2.0.tar.gz
cd freepbx-2.2.0
./install_amp  (When prompted whether to overwrite existing files, type a)

Once the installation is completed, don’t reboot your system or restart Asterisk! Instead, using a web browser (IE 6 works great) point the browser to the IP address of your web server. Choose System Administration and type the username maint followed by your password to gain access. Now choose freePBX. Whatever you do, don’t click the Red Bar to update settings until you’ve completed all of the steps below.

Pass #1. We’re going to make three passes through the FreePBX module update process before we’re ready to click the Red Bar. So choose Tools then Module Admin then click Check for Updates online. Click Download all at the top, far right side of your browser window. Then click the Process button followed by the Confirm button. Wait for the downloads to be processed. Then click the Return button at the bottom of the browser window.

Pass #2. Click Upgrade all at the top, far right side of your browser window. Then click the Process button followed by the Confirm button. Wait for the upgrades to be processed. Then click the Return button at the bottom of the browser window.

Pass #3. Click Upgrade all at the top, far right side of your browser window. Then click the Process button followed by the Confirm button. Wait for the upgrades to be processed. Then click the Return button at the bottom of the browser window.

Finally, click the Red Bar to apply the configuration changes. Count to 20. Now let’s log into your server as root again and make a minor correction or two, and you’ll be ready to reboot and go. Once you’re logged in, issue the following commands to fix the initial voice prompts with our Stealth Autoattendant:

cd /var/lib/asterisk/sounds/custom
mv nv-greeting.wav nv-greeting.wav.bak
mv nv-menu.wav nv-menu.wav.bak

Now edit line 428 in the extensions.conf file to resolve a freePBX bug with Enum Lookups:

nano -w /etc/asterisk/extensions.conf
Ctrl-W and type: arg3 is pattern
press Enter key
Ctrl-W again and press Enter key

You can verify the line number by pressing Ctrl-C in Nano. You should be positioned on line 428 which begins like this:

exten => s,1,GotoIf($["{$ARG3}" = 

Just insert an exclamation point (!) immediately before the equals sign (=) so that it looks like this != and save your change: Ctrl-X, Y, then press Enter.

Now restart your server, and you’re done: shutdown -r now. Congratulations! You now should have a functioning freePBX 2.2.0 system. Be sure to take a look at the Release Notes and the freePBX Wiki.

Adding Free Directory Assistance to freePBX. We’ll have a whole bunch more to say about freePBX 2.2.0 in coming weeks, but we wanted to give you a couple of sneak previews of new functions which are incredibly powerful. First, there’s a new way to add loads of functionality to your system without having to be a programmer. For example, here’s how to integrate free Directory Assistance into your system by simply dialing 411 from any phone connected to your Asterisk system.

Using your web browser, go back into freePBX (System Admin, freePBX, Setup) and choose Misc Destination. Make the following entries:

description  Directory Assistance
dial  8003733411

Then click the Submit Changes button followed by the Red Bar to reload your configuration into memory.

Now choose Misc Application and make the following entries:

description  Information
Feature Code  411
Status  Enabled
Destination  Misc Destination:Directory Assistance

Then click the Submit Changes button followed by the Red Bar to reload your configuration into memory. Now dial 411 from any phone on your system and enjoy free Directory Assistance.

Checking Your AutoAttendant. The real beauty of the new Misc Application function is that you can use it for internal testing of almost anything. For example, to try out your Stealth AutoAttendant by dialing 412 from any extension, add the following Misc Application:

description  Test AutoAttendant
Feature Code  412
Status  Enabled
Destination  IVR:Stealth AutoAttendant

Click the Submit Changes button followed by the Red Bar to reload your configuration into memory. Now dial 412 from any phone on your system and you can try out the Nerd Vittles Stealth AutoAttendant without having to dial into your system from an outside phone.

Accessing the VoiceMail System. Another nice trick is to add hidden extensions to access VoiceMail. Let’s assume you want to do this for extension 500 and for the hidden extension number we add another zero: 5000. Here’s how to set up the Misc Application:

description  VoiceMail 500
Feature Code  5000
Status  Enabled
Destination  Core:voicemail box 500

Click the Submit Changes button followed by the Red Bar to reload your configuration into memory. Now dial 5000 from any phone on your system to access the VoiceMail box for extension 500. It’s an easy way to leave messages for someone else on your system without dialing in from an outside phone. You can also use it to retrieve voicemail. Just press the asterisk (*) button while the voicemail prompt is playing on the phone. Then enter your voicemail password for extension 500. You should be catching on by now. Build a few more just for fun.

Happy Birthday to Us. We’ll close by mentioning that it’s a big week here at Nerd Vittles. And we have a couple more surprises for you. This Friday marks our Second Birthday. Hard to believe it’s been two years. We spent our first six months covering what you could do with a $500 Mac mini. But the last 18 months have been devoted almost exclusively to Asterisk. Our gift to you is the brand new Best of Nerd Vittles web site. Have a look. There’s an RSS Feed for the new site as well. We think you’ll enjoy both the new format and the content. And, it’ll only get better as time marches on.

And your gift to us? Glad you asked. What a great time to send along a modest contribution through the PayPal link at the top of the page. If every person that reads Nerd Vittles each week donated just ten bucks with any major credit card, we’d have the resources to pull off some really slick projects and hire a little help. Those additions just aren’t feasible without Yankee Dollars. So skip that overpriced cheeseburger today and do your part for the cause. We promise to spend it wisely, and, just like your church, we won’t come calling again (at least not too often) until this time next year. Finally, an apology for the yo-yo’s at PayPal. Once in a while, their system tacks on a shipping charge to donations. No shortage of Village Idiots, is there? If it happens to you, just reduce the amount of your donation accordingly. We’ve screamed and hollered for two years, but it still happens once in a while for no apparent reason. We’ve gotten two generous contributions in recent days for $47.50, not the sort of number someone usually pulls out of their hat. But thanks nevertheless and our apologies for the shipping charge! Now back to the party. All together now… Happy Birthday, Nerd Vittles… and to all a good night.

From the Really Cool Dept. We’ve got a few more surprises to pull out of our hat so hang in there. What’s this? A New Bunny! We received a rather unique birthday gift from a fan. It’s a new Nabaztag/tag Wi-Fi Rabbit. We’ve named him PatTheNerd, what else? In addition to blinking lights and wiggly ears, you get a talking bunny with one of the best voice synthesizers on the planet. And it all runs over a self-configured wireless network connection on your LAN. Want to try it out? Feel free to send us a voice message. Just click on the bunny (inset). And soon, you’ll be able to issue voice commands directly to your bunny as well. Who’s Yo Daddy?

If you’ve never heard of these little guys, you’ve got some serious reading to do. Start here and then head to their Forum. Every kid should have one! And, once you get yours, leave it to Nerd Vittles to turn your little critter into a Weather Bunny, maybe not as cute as the one at your local television station, but still pretty cool. Your Weather Bunny will tell you the latest weather conditions in any city in the United States as often as you like. Just add an entry to your Asterisk crontab! Sound familiar? You can download our WeatherBunny for NabazTag application written in PHP at your convenience. And now there’s a News Bunny as well! We’ll continue NerdVittlizing Pat in the coming weeks so stay tuned. Pat should be great at providing message alerts and reading emails and voicemail. Someone has even set up an Asterisk voicemail box for their rabbit. So what are you waiting for? Order one for yourself and put a bunny to work! Thanks, anonymous!

News Flash! For Intel-based Mac users, the wait is over. A beta of VMware is now available simply by filling out this form. Once installed, you should be able to run the VMware version of TrixBox 1.2.3 or the VMware version of TrixBox 2.0 on your Mac Desktop. Let us know how it goes! We’re jealous and wishing we had an Intel Mac ourselves. All we got was a dumb bunny.

CallerID Trifecta. NOTE: This application has been superseded. Continue reading the latest article here.

Finally, we’ll leave you with some seriously good, new software if we do say so. It’s been almost a year since we last discussed CallerID Tips and Tricks. Seems to be our favorite topic on Nerd Vittles around the time of our birthday celebration. Don’t ask us why? But we wanted to continue the tradition this year by introducing an all-new CallerID Trifecta. Thanks to freePBX 2.2.0, with just a couple minutes of effort, you can snap our code into the web directory on your Asterisk server, make a couple of freePBX entries, and, presto, you get instant CallerID name lookups for all your incoming calls using AsteriDex, the Google Residential Phonebook, and AnyWho. We’ll add more sources including SugarCRM in the coming weeks. For today, you’ll find the documentation and download at this link on the Best of Nerd Vittles site. Particularly for those outside the U.S, we think you’ll find the PHP code easy to follow if you want to build additional directory resources on your own. Just be careful to always exit from the procedure rather than letting it just play out, or freePBX gets squirrelly and often just dumps incoming calls into voicemail. Guess how we know. Enjoy and thanks for visiting!

Some Recent Nerd Vittles Articles of Interest…


  1. Ward,

    Thanks for everything. On your 411 Directory Assistance Instructions, you will also need to go into Feature Codes and disable the 411 Phone Book Dial by Name Directory.

    [WM: Technically, you’re correct but, because it’s further down in the Feature Codes list than these new entries, it will get ignored either way. But thanks for catching it.]

  2. Ward, your CallerID Trifecta is a great idea, but some of us may not want to go through the hassle of installing AstriDex just to enable a local CallerID name lookup source. Is there any way you could make it look through a comma-quote delimited text file as the local lookup source? That way, those of us who only have a few numbers could simply add them to a flat file that looks like something like this:

    "2345552368″,"John Smith"
    "7895550000″,"FooFoo, Inc."
    "7655554545″,"DON’T ANSWER!!"

    Or whatever name or comment you may want to add.

    The beauty of this is that if you already have an address/phone book program, you can usually tell it to export certain fields in comma-quote delimited format. Even if it won’t export them in quite the format you need, you can always use a program like CSVed (http://csved.sjfrancke.nl/index.html) to massage the output you do get into the file format you need.

    I just don’t see the point of having to install what amounts to a whole new database program, which also mucks around with the FreePBX speed dialing codes (I think), when all I really need is to be able to read a few phone number and name combinations off a short list. If AstriDex didn’t change the FreePBX dial plan AT ALL then I might consider using it just for this application, but I would still think it’s gross overkill for the purpose, kind of like renting a backhoe to dig a post hole for a mailbox.

    On a more positive note, thanks much for the tip about the free Directory Assistance, and the use of Misc Destinations and Misc Applications to create a shortcut. In the past I’ve done this sort of thing by creating a custom extension; I think the way you’ve shown is a bit better, because you don’t have to remember any oddball dial strings for the custom extension.

    [WM: Thanks for your comments but, just to be clear, AsteriDex and the CallerID Trifecta do NOT muck around in the freePBX Dialplan. That’s the real beauty of freePBX 2.2.0.]

  3. Ward, I apologize, I was looking at the AsteriDex page and I saw the dial plan listings and the phrase, "To use the AsteriDex RoboDialer, pick up a phone and dial 00 followed by the five-digit code for the person you wish to call" and assumed that it was doing something to the dial plan. Now that I read it more closely, I see that’s only if you actually add those dial plan snippets in manually. I still think that installing AstriDex just to be able to create a list of caller names and numbers is serious overkill (and would still prefer to have it read a comma-quote delimited file), but I do apologize for not reading the AstriDex page more carefully before making my original comment.

  4. Hmm. on the note about CSV files. It would be really slick if Asteridex could use them to simply import them into asteridex itself. Then problem solved, and your asteridex is now full of useful numbers, bonus! Of course iSync compatibility will remain distant dream.

    As to Trixbox 2.0, I got antsy and backed up my old install (then lost the backup, major pita), and installed 2.0. At first I was disappointed in the slow-down of the web-gui, but then I installed turck mmcache, and everything sped back up. (http://turck-mmcache.sourceforge.net/) Other than that the big thing was just redownloading all the cool nerd vittle stuff and pasting some dial plan code around. Still looking for the differences between what I had after the NV tutorial, and what I have now. (I’m also still a newbie at using the freepbx gui, as I can’t get a spa-3000 to work without injecting my own lines in sip_custom.conf)

  5. Hi,

    Just want to let you know that I just installed your trixbox123 (Linux) on my VMware host – went through the full install & updated with your scripts – got it working with my local extensions and trunks. Then I used your instructions to update to freepbx 2.2.0 – all working!

    I did spot one problem in your instructions –

    cd /var/lib/asterisk/sounds/custom
    mv nv-greeting.wav nv-greeting.wav.bak
    mv nv-menu.wav nv-menu.wav.bak

    .. the .wav files in the directory specified above were missing – there were .gsm versions only

    Is this an error in your instructions?? Or did something go wrong in my initial install?

    I am not sure why you are changing the greeting message – it seems to be working same as in trixbox123 (never got overwritten from update to 2.2.0) – perhaps you can check and let us know. I only mention this since I did a clean install and then upgrade.

    Any feedback on this would be appreciated…

    [WM: There were several versions of the image floating around. Some had the .wav files as well as the .gsm versions which broke playback using the .gsm sound files. If you didn’t have the .wav files, then there wasn’t a problem, and the instructions above were harmless.]

  6. Great!

    Thank you for the explanation.

    Just doing some more tests on my VMware host – and am quite impressed with the performance. We have a P4 2.8G CPU with 1G RAM – running W2K3 Web Edition Server (with 6 e-store websites) and mail server. In this server we have the VMware guest OS installed which is once again W2K3 Web Edition Server – running a heavily loaded mail server only. There is also an additional VMware guest OS running – the TrixBox123 with freepbx 2.2.0 upgrade which was just installed. Everything is working – cpu load is moderately low (between 2-15%) and memory is running below 500MB. The only problem we have is network traffic which directly affects the asterisk voice quality – it gets choppy at times. I guess there is no easy way to prioritize the network traffic for Asterisk? (or is there??) since the other appliances running on this hardware don’t care as much if several packets are delayed in transit. It would be nice if we could put Asterisk first in line when the packets are handed out.

    Your experience with this would be welcomed..

    I also noticed that the current upgrade to freepbx 2.2.0 will yield two .wav MOH files. Unfortunately .wav files will not play in this default installation. For a while I thought MOH was broken – but noticed that once converting (or removing the .wav files) MOH is functioning as expected.

    Thanks again!

    [WM: Take a look at the comments section of the article on our VMware TrixBox 1.2.3 implementation. There are a couple of tweaks there that should improve voice quality dramatically. If those don’t do it, then you’ll need to consider a router that can prioritize packets. Most of the new gaming routers have this functionality, and it’s easy to implement and configure. Good luck!]

  7. Ward,

    Thanks for the VMware process priority tip! It will keep Trixbox at the front of the processor cycle queue.

    Just another bit of feedback for you…

    1. The Zork application appears to have all the modules installed – BUT it is not working on completion of the default install of the freepbx 2.2.0. Unless I broke something (I hope not) your input would be most welcome in solving this…

    2. In the TrixBox – configuration and administration window – if you select the ENDPOINT MANAGER – it is broken (again in my default install). There appears to be a problem in the trixbox.php code – it hardwires the default mySql root password – so it you change it (as recommended in the freepbx 2.2.0 upgrade) – it creates an undefined function call.

    [WM: Thanks for your comment. The MySQL password should NOT be changed on a TrixBox system unless your Asterisk server is in a public area. It causes all sorts of problems.]

  8. Ooops…

    I forgot to ask you about something which is a big problem for all of us who have multiple DIDs from the same provider. I think this would be an issue for many of your readers – so perhaps there is a solution or a workaround…

    Here is the scenario…

    I have a DID in Melbourne and another in Sydney (Australia for the uninformed) – both of these DIDs have unique numbers and are serviced by the same provider.

    Unfortunately the provider only operate a SIP trunk (no IAX) and has the same host registration details for each DID – the only things which differ are the username (number) / passwords for the respective accounts.

    The problem I am having is in setting up BOTH trunks to work independently on the TrixBox.

    When they are set-up – all is fine – both are registered but unfortunately with same IPs and port numbers (because they have same host). This creates the problem – because TrixBox is unable to differentiate the two trunks when receiving incoming calls. One would expect that the CID for the individual DIDs would be sufficient for TrixBox to know which trunk is being used. The result is that when you try to ring one trunk from the other (or visa versa) the response is a busy message – telling you the party you are calling is on the phone – because it is calling the trunk which instigated the call.

    After researching this behavior – I found the following …

    “Registering multiple SIP accounts with one SIP provider has been a nightmare in Asterisk. Or, rather, still is. The match-on-IP scheme for peers is a hack to handle registrations, but not a very good hack. If you register for multiple accounts, the incoming calls will all match the same peer. A poor solution.”

    … so is there a workaround for this behavior – that can be implemented in the TrixBox?

    OR have you already a way of handling multiple SIP registrations to the same host?
    Hope you can point all of us with this problem in the right direction!

    I’ve stuck out on most of the forums and would be very happy if there IS a solution to this problem.

    [WM: If I were you, I’d try posting this on Rob’s freePBX Forum. He may have some ideas particularly since he’s from Australia. Good luck!]

  9. hi! 2 things:

    Re: 2 DID problem:

    Have you tried to differentiate your trunk by adding the number at the end of your registration string?

    In my case I own multiple DIDs from the same provider in sip and got many wasted hours to solve incoming route… but when I tuned my registration string and defined specific inbound routes, it worked:

    Re: my problem now

    I upgraded from 1.2.3 following the 3 PASS recommendation, but just after rebooting, everything seemed fine except the fop.
    Now i get msg icon on all extensions, and the down arrow icon for all trunk and extension..

    [WM: Trying resaving your trunks and extensions in freePBX. This worked wonders with the original PBX-in-a-Flash utility as well.]

  10. Hi! Thanks for all the work you do on this stuff!

    I’ve setup CallerID Trifecta on my trixbox and it works for 2 of my DID’s but not the 3rd. All are from VoIPStreet. The 2 it works on are pay-per-minute and the one it doesn’t is a flate rate. Any idea what could be going on? Here’s some logfile output both from the same caller.

    Working –

    Verbosity was 1 and is now 3
    — Executing Set("SIP/2guys-669xxx-09961d58″, "FROM_DID=281657xxxx") in new stack
    — Executing Gosub("SIP/2guys-669xxx-09961d58″, "cidlookup|cidlookup_3|1″) in new stack
    — Executing Set("SIP/2guys-669xxx-09961d58″, "CALLERID(name)=E P S Software Corp") in new stack
    — Executing Return("SIP/2guys-669xxx-09961d58″, "") in new stack

    Not working –

    — Executing Set("SIP/2guys-669xxx-099c9700″, "FROM_DID=1832252xxxx") in new stack
    — Executing Gosub("SIP/2guys-669xxx-099c9700″, "cidlookup|cidlookup_3|1″) in new stack
    — Executing Set("SIP/2guys-669xxx-099c9700″, "CALLERID(name)=") in new stack
    — Executing Return("SIP/2guys-669xxx-099c9700″, "") in new stack

    [WM: Check to be sure both are passing the CallerID number in the same format. Perhaps the "not working" is adding a 1 or +1 to the incoming number.]

  11. Ward,

    I absolutely love the site and have learned a lot in a few short days. Thanks for the great work!

    One topic I’d like to see if you can cover is least-cost routing. If I sign up for multiple VOIP providers, I’d like to be able to direct calls based on their rates, which may differ based on day of week, time of day, and destination. In addition, if I have a fixed-time plan (e.g., 500 minutes per month) it would be great to have Asterisk stop using the trunk after that point. Setting the trunk priority in the outgoing routes is a start, but it would be nice to see something more robust. Any interest in tackling this in a future column?
    Thanks, ed

    [WM: Take a look at last week’s article. VoicePulse offers a service such as you describe.]

  12. Hi, I checked the numbers being presented on the trunk and you’re right, there is a difference. The DIDs that work are getting it as area code+number and the one that isn’t is coming in as 1+area code+ number? Could you tell me how to allow for that in the callerid.php file?


  13. Had the trifecta working…but..if it can’t find a number either in the internql database or google or anywho, the call won’t go through. It just rings and rings…

    [WM: Try downloading the app again. There was a problem in the initial release.]

  14. Ward,

    Very cool as usual. I just wanted to point out a new toy that I have found to be very useful. SSL-Explorer http://www.sshtools.com/showSslExplorerCommunity.do A very powerful clientless SSL based VPN. Very good for giving remote access to web apps, trixbox, VNC, rdesktop, etc, without exposing anything more than port 443 to the internet. You can even create custom tunnels to alow SIP connection for a softphone. Several authentication methodes are available. Enterprise license add extra features like a full VPN tunnel and more authentication options, including active directory. Easy install via rpm or windows installer. Server requires a recent JRE. Client side needs a semi-recent browser with a recent Java plugin. Also available as a vmware prebuilt appliance, http://www.vmware.com/vmtn/appliances/directory/543

    And thanks for all the goodies.

  15. Hello again, I changed the beginning of the script as follows and it has cleared up my issue. Hopefully this will help someone else.


    function right ($str, $howManyCharsFromRight)
    $strLen = strlen ($str);
    return substr ($str, $strLen – $howManyCharsFromRight, $strLen);
    if (strlen($thenumber)<10) :
    exit ;

    if (strlen($thenumber)>10) :
    $thenumber = right ($thenumber, 10) ;

  16. Downloaded the new version as you suggested. The problem seems to be this:

    Telco provides a valid CLID. The Telco Database is more complete than either Google or Anywho. I’d think the flow should go something like this:

    1. If there is a CLID name from telco, the call should no be processed through Google or Anywho, but should be processed against Asteridex and the Internal Asterisk Phone Book.

    2. If there is no valid entry in either of the above sources, the telco CLID should be passed downstream.

    3. If there is an entry in the above sources, then the CLID should be changed to reflect that.

    [WM: Good suggestion. We’ll take a crack at it for the next version. Our initial thought was that the lookup probably would not be applied at all to "phone company" trunks, but there may be situations in which the scenario you propose above will work better. Thanks.]

  17. Can anyone give me a url for the VMware tweaks in item 6 above as I cannot seem to find these.


    P.S. Keep up the fantastic work on trixbox!!!

    [WM: Here’s the article. Be sure to read the section on "Making VMware Keep Correct Time." Better yet, read the whole article and also the comments which follow it… especially #10, 17, and 21.]

  18. Hi Ward,
    I’ve been tinkering with Asterisk for a while but just dabbling. The trixbox stuff is cool and thank you for your cool toys. In your 411 blip you said "Now choose Misc Application and make the following entries:…" I am running Trixbox 2.0 and I don’t find the Misc Application nor do I see that it’s a module I’m lacking. Is it called something else? Is it only in 1.2.3 and older versions? I found the Misc Destinations and put that in but I never found the Application one.


  19. Would the poster of the comment below give the entire entry… I am suffering from the same problem…

    >> Hello again, I changed the beginning of the script as follows and >> it has cleared up my issue. Hopefully this will help someone else.

    >> 10) :
    >> $thenumber = right ($thenumber, 10) ;
    >> endif;

    [WM: See #20 above. WordPress has problems with some of the PHP code insertions for obvious reasons. The main one is that it, too, is written in PHP.]

  20. I think it’s a good idea to make sure that, if a phonenumber begins with 1 and has 11 digits, the app can handle it. here is the code:
    $pos = strpos($thenumber, ‘1’);
    if (($pos == 0) && (strlen($thenumber)==11)) : //if the caller id added a 1 to the number and its 11 digits long
    $thenumber=substr($thenumber, 1);

    if (strlen($thenumber)10) :
    exit ;

  21. I agree with you about 99% for this article. The 1% is regarding the asterisk 1.4 series. Almost all commands have a new version, otherwise they had been marked as deprecated for a long time (and even the new ones they have been asking people to use instead for quite awhile).

  22. Just want to say thank you on all the articles, a coworker and I have these up and running connected. Your articles I have found are one of the best!! Keep up the good work

  23. anyone have an idea on how to allow the name from the existing caller ID through the trifecta setup? I mean, only have the trifecta look up unknown name entries or items that come through with only a number?

    [WM: This is a current limitation in freePBX. You might want to post something on freePBX.org. The more requests they get, the quicker it will get addressed.]

  24. The upgrade went great, but I think one feature is broken – I can’t seem to use # to blind transfer calls any more.

  25. Update on the # transfer – it’s reverted (or updated) to ## to transfer. I’m sure this can be edited in a configuration file back to a single #, but I think it’s better this way anyway (so I can still use # for IVRs when calling other IVR systems).

  26. I had a functioning system with inbound, outbound, and auto-attendant working based off of the nv-vm install. After performing the freePBX upgrade inbound calling stopped working. When I call my number nothing happens. No ringing, no sound, no greeting, do not see anything in the logs. Any suggestions are greatly appreciated!

    [WM: Restore backkup. Then try again.]

  27. when performing the update it seems that asterisk cli is broken and will not update.

    everything runs more or less correct and I can still log into asterisk-cli.

    Even tried redoing the installation, with the same problem. Everything else upgrades and installs successfully except asterisk-cli.

    Is this normal? Any ideas?
    Thanks in advance

  28. I ran into a "file not found" problem when I followed these instructions:

    " Once you’re logged in, issue the following commands to fix the initial voice prompts with our Stealth Autoattendant:

    cd /var/lib/asterisk/sounds/custom
    mv nv-greeting.wav nv-greeting.wav.bak
    mv nv-menu.wav nv-menu.wav.bak "

    I think I fixed my problem by substituting "gsm" for "wav" in the above instructions. (just an FYI)

  29. Once upon a time, I found a link on your web site that allowed us to set and publish the cnam/ani on our DID numbers, once activated it would call us to confirm that we owned the number and confirmed the cnam/ani we set.

    Where is that again??? It is so valuable!

    Tbanks Ward, for all you do for us Nerds!!!

Comments are closed.