Home » Technology » 50 Great Halftime Projects Using Your Free Asterisk@Home PBX

The Most Versatile VoIP Provider: FREE PORTING

50 Great Halftime Projects Using Your Free Asterisk@Home PBX

This article has been updated. Go to this link for the most recent version.


  1. Thank you for a fantastic tutorial. Thanks to your help, I got Asterisk running in about a day I have tried other tutorials and been lost. This one was easy enough for a non-linux person to clearly understand!

  2. Fantastic work. It just makes you want more. One small issue with setting up receiving faxes. It just seems to lock up the port??

    [WM: A better fax solution is coming as soon as we get through this upgrade phase. Hang in there and thanks.]

  3. Mr. Mundy,
    Your AAH info is bar none, the best. Better than the @home handbook, better than the sourceforge forums… practical info all the way. I’ve setup one home server in my office using a Via-based machine from SolarPC, http://www.solarpc.com . Nice guys . I am getting ready to setup another machine, and would like to install AAH on a compact flash HD solid state . How big is your fullest featured AAH install in MB? I’m thinking that 2 gb should be enough, but if I can do it in 1gb, I save $30ish. I’m not planning on storing any voicemail on the box, and I’d like to work with a vanilla install to totally avoid any hacks to make it smaller. Thanks for the help!

    [WM: Thanks for the kind words. I’m anxious to try something similar to what you want to do except I want to use the little devices for proximity detection. I think you’ll need 2GB… at least for the first one. But take a look at gumstix. You could easily do it with 1GB or maybe even 512MB using their Linux OS.]

  4. Update to the Compact Flash install attempt… I purchased a 2 gb CF card and proceeded to install AAH. No success. Full install of AAH 1.8 was 1.6 gb. Full install of AAH 2.ish is 1.8 GB. The AAH installer needs more overhead. Found the following "http://www.voip-info.org/wiki/view/Asterisk+at++Home" which mentions that 4gb is the minimum HD size. Off to purchase a 4 GB card as I’d like this to "Just Work ™" and not have to fuss with Damnsmall or Puppy linux (tho I am interested).

    [WM: Just a thought. You could build the AAH system on a regular hard disk and then clone that disk to the 2GB CF card using rsync.]

  5. Ward, Thank you so much for all of your articles on Asterisk@Home. I have enjoyed setting up my asterisk box. I seem to have everything working except one thing. I have just set up my PSTN line with a Sipura SPA-3000. Your instructions were great. I would like to use the *3xx function of AAH 2.2 to tell me what number is stored in a speed dial location. When I use the SPA-3000 phone to enter *3xx, I get a busy signal. I tried to add *3xx to the dial plan, but that does not do anything. Any help would be greatly appreciated.

    [WM: Log in as Admin and look in the Regional tab for entries beginning with *3. Blank them out, and you should be good to go.]

  6. these two links appear to have gone screwy…i checked a bunch before and after… (but not all) and it appears to be throwing an extra mundy.org/blog into each of the url’s



    Configuring the Sipura SPA-3000 for Asterisk

    Telephone Instruments

    [WM: Fixed. There was a missing http in both places. Thanks.]

  7. Great training and general blog detail! Congratulations – best I have seen out there by far! Have played and impressed with *home’s operation. Have you evaluated Voicetronix Open Switch cards… http://www.voicetronix.com/hda.htm ??? I like the ability of the card to drop to safe operation when loss of hardware watchtimer detects system apparent non-functioning. Any information appreciated.

  8. I first downloaded AAH last summer, signed up with Broadvoice, and proceeded to pull my hair out trying to get things to work. After a few months, I wound up shelving the project – until recently, after finding NerdVittles. After working up the courage, I reinstalled AAH and signed up with Telasip per your instructions here. Worked first time. Finding NerdVittles (and ditching Broadvoice) have made all the difference and have restored my faith in this technology. Thanks!

    [WM: Yeah, BroadVoice was one of our favorite providers once upon a time. But that was before all the talent left the company. This is now. Too bad!]

  9. Thanks for your instructions for setting up the voip fax.
    Well, I do have a slightly simpler and more powerful solution for someone who has a dedicated fax number.
    Do not change any previous code

    Just add to extensions conf (after the pstn stuff):

    exten => s,1,GotoIf($[${FAX_RX} = disabled]?from-pstn-reghours-nofax,s,1:2); if fax detection is disabled, then jump to from-pstn-nofax – else continue
    exten => s,2,Answer
    exten => s,3,Playtones(ring) ; play fake ring so caller doesn’t wonder whats going on
    exten => s,4,NVFaxDetect(10) ; while playing ring sound, detect faxes for 2 rings (goes to "fax" extension if detected)
    exten => s,5,SetVar(intype=${INCOMING})
    exten => s,6,Cut(intype=intype,-,1)
    exten => s,7,GotoIf($[${intype} = EXT]?8:9) ; If INCOMING starts with EXT, then assume its an extension
    exten => s,8,Goto(ext-local,${INCOMING:4},1)
    exten => s,9,GotoIf($[${intype} = GRP]?10:11) ; If INCOMING starts with GRP, then assume its a ring group
    exten => s,10,Goto(ext-group,${INCOMING:4},1)
    exten => s,11,GotoIf($[${intype} = QUE]?13:14)
    exten => s,13,Goto(ext-queues,${INCOMING:4},1)
    exten => s,14,Goto(${INCOMING},s,1) ; not EXT or GRP – it’s an auto attendant
    exten => fax,1,Goto(ext-voipfax,in_fax,1)
    exten => h,1,Hangup

    exten => s,1,Answer
    exten => s,2,Goto(in_fax,1)
    exten => in_fax,1,StopPlaytones ; you must do this or it will play ring sounds over your fax
    exten => in_fax,2,GotoIf($[${FAX_RX} = system]?3:analog_fax,1)
    exten => in_fax,3,Macro(faxreceive)
    exten => in_fax,7,Hangup
    exten => analog_fax,1,GotoIf($[${FAX_RX} = disabled]?3:2) ;if fax is disabled, just hang up
    exten => analog_fax,2,DBGet(DIAL=DEVICE/${FAX_RX}/dial);
    exten => analog_fax,3,Dial(${DIAL},20,d)
    exten => analog_fax,4,Hangup
    exten => out_fax,1,txfax(${TXFAX_NAME}|caller)
    exten => out_fax,2,Hangup
    exten => h,1,system(tiff2ps -2eaz ${FAXFILE} | ps2pdf – ${FAXFILE}.pdf)
    exten => h,2,system(mime-construct –to ${EMAILADDR} –subject "Fax from ${CALLERIDNUM} ${CALLERIDNAME}" –attachment ${CALLERIDNUM}.pdf –type application/pdf –file ${FAXFILE}.pdf)
    exten => h,3,system(rm ${FAXFILE} ${FAXFILE}.pdf)
    exten => h,4,Hangup()

    Then in Asterisk setup inbound rounting for your fax number, change fax to ‘system’, Select an email address, Immediate Answer = no. Set destination to ‘Custom App’ and enter ‘custom-receivevoipfax,s,1’ as the App.
    And presto…
    An advantage is that you can now easily setup in Asterisk multiple fax numbers, with multiple email address destinations.


  10. Anyone out there who have setup the a2billing that comes with A@H? Is there a tutorial out there? The manual that comes with the a2billing is very incomplete. Perhaps we could hope for a tutorial on this fantastic website. Keep up the good work!!

  11. This is a simple question I know but can you please tell me how many concurrent callers I can have with Asterisk if I have only one phone line? Won’t the second caller get a busy signal?

    [WM: Unless you’ve paid for extra trunk lines, the second caller will either get a busy or your voicemail (with your provider). Most providers give you at least two lines in order to support call waiting.]

  12. I have been doing some reading and spring cleaning. I have found that I can reduce the size of my extensions_custom.conf making it easier to manage.

    I created a new file for all of nerdvittles stuff called extensions_mundy.conf and placed it in etc/asterisk with the others.

    In extensions_custom.conf the top looks like this:

    ; This file contains example extensions_custom.conf entries.
    ; extensions_custom.conf should be used to include customizations
    ; to AMP’s Asterisk dialplan.

    ; All custom context should contain the string ‘custom’ in it’s name

    #include custom_telemarket.conf
    #include extensions_mundy.conf

    ; Extensions in AMP have access to the ‘from-internal’ context.
    include => telemarket
    include => mundy-internal

    In this file I have all of the mundy extensions. At the top I have a section called mundy-internal which has the extensions to call the scripts.

    my extensions_mundy.conf starts like this: ( haven’t put in the rest of the gems yet)


    ; Reminder
    exten => 123,1,Answer
    exten => 123,2,Wait(1)
    exten => 123,3,Authenticate(12345678)
    exten => 123,4,Goto(reminder,s,1)

    include => reminder

    exten => s,1,DigitTimeout(7)
    exten => s,2,ResponseTimeout(10)

    the custom-reminder extensions enables me to use it in FreePBX.

    Hope this is of use

    [WM: Wow! Why didn’t we think of that! Thanks.]

  13. Great tutorials. I still working my first attempt with Asterisk. Another VOIP service that I was able to get running using another tutorial was voipjet.com. Free account for testing with 20 minutes of calling then just .013 a minute after that for calls to the US.

  14. Hi all
    I’ve installed asterisk@home on a friends server and I’m having a lot of trouble with faxes. Believe it or not NVfaxdetect works perfectly on an iax truck, but fails to detect 90% of the faxes on a zap channel.
    I’d like to setup two zap channel to be fax only inbound lines and I’m not sure how to do that. Help please

Comments are closed.