Trixbox2 Without Tears
Trixbox2 Without Tears
If you find this book helpful, a PayPal donation of $5 to $10 (US equiv) made to bensharif@gmail.com would be
                                              very highly appreciated.
http://dumbme.voipeye.com.au/Trixbox/index1.htm
                                            (Version 2.0)
                                      INCOMPLETE DRAFT
                                    (Still under construction)
                                                    by
                                      Ben Sharif
(The same author who brought you Asterisk@Home without tears and Trixbox without tears)
mailto:netvoice.solutions@gmail.com
   This document is released under the Creative Commons By-Attrib Non-Commercial Share-Alike 2.1 licence.
 This work is dedicated to my wife, who has been very patient with me, Andrew Gillis and
       Rob Thomas whose devotions to TRIXBOX and freePBX made it all possible.
Forward......................................................................................................................................... 10
1 Introduction.............................................................................................................................. 11
  1.1 Is VoIP for you?............................................................................................................ 11
     1.1.1 What is it going to cost?........................................................................................ 11
     1.1.2 What will the quality of the phone calls be?.......................................................... 11
  1.2 What is Trixbox?........................................................................................................... 11
  1.3 The IP PBX Components ............................................................................................. 12
     1.3.1 The IP PBX ........................................................................................................... 12
     1.3.2 Phones .................................................................................................................. 13
     1.3.3 SIP Gateway ......................................................................................................... 13
     1.3.4 Home Network ...................................................................................................... 13
     1.3.5 VOIP Service Providers ........................................................................................ 13
2 Initial Preparation and Planning............................................................................................. 14
3 Installation................................................................................................................................ 15
  3.1 Initial Installation........................................................................................................... 15
  3.2 Change Default Settings .............................................................................................. 18
     3.2.1 To get Help ........................................................................................................... 19
     3.2.2 Change IP Address (set IP address to Static) ...................................................... 19
4 Set-up TRIXBOX....................................................................................................................... 21
  4.1 Installing Trixbox Modules............................................................................................ 23
  4.2 Installing freePBX Modules .......................................................................................... 25
5 Basic configuration using freePBX ....................................................................................... 30
  5.1 General Settings........................................................................................................... 30
     5.1.1 Dial Command Options......................................................................................... 31
  5.2 Extensions.................................................................................................................... 34
     5.2.1 Create Extensions................................................................................................. 34
     5.2.2 Enable Voicemail ................................................................................................... 36
  5.3 Follow Me ..................................................................................................................... 38
  5.4 Ring Groups ................................................................................................................. 39
     5.4.1 Now it’s a good time to set up your softphones.................................................... 40
6 Trunks to the outside world ................................................................................................... 41
  6.1 What is a Dial Pattern? ................................................................................................ 41
  6.2 What is a Trunk? .......................................................................................................... 41
  6.3 Trunks and Outbound Routes – a circus of confusion ................................................. 42
     6.3.1 Outgoing Route Dial Pattern................................................................................. 42
     6.3.2 Trunk Outgoing Dial Rules.................................................................................... 42
  6.4 Let’s Create The VoIP Trunks...................................................................................... 43
     6.4.1 Pennytel ................................................................................................................ 43
     6.4.2 Oztell (SIP)............................................................................................................ 45
     6.4.3 Oztell (IAX)............................................................................................................ 46
7 Calls Handling.......................................................................................................................... 48
  7.1 Inbound Routes (Incoming Calls)................................................................................. 48
  7.2 Time Conditionds ......................................................................................................... 50
     7.2.1 Simple Time Condition.......................................................................................... 51
     7.2.2 Complex Time Condition....................................................................................... 51
  7.3 Outbound Routes ......................................................................................................... 52
     7.3.1 What is an Outbound Route? ............................................................................... 52
     7.3.2 How does it work?................................................................................................. 52
     7.3.3 International .......................................................................................................... 53
     7.3.4 Domestic ............................................................................................................... 54
     7.3.5 MobileAust ............................................................................................................ 55
     7.3.6 Oztellonly .............................................................................................................. 55
  7.4 ENUM........................................................................................................................... 56
     7.4.1 Setting up ENUM Trunk ........................................................................................ 56
     7.4.2 Setting up ENUM Outbound Route....................................................................... 57
8 How to restrict Outgoing Calls.............................................................................................. 58
9 System Recordings ................................................................................................................. 61
  9.1 Direct recording ............................................................................................................ 62
   Only a competent VoIP consultant can provide you the necessary know-how for a
   complete solution, and as for spiritual guidance, I will leave that to you.
   This document was compiled mainly based through my experience going through the
   wash, supplemented by inputs from dozens of participants in the Whirlpool and other
   Trixbox and Asterisk related forums. These people were mentioned in A@H and Trixbox
   without tears. They have helped me whenever I get into difficulties, and I still seek
   guidance (the Trixbox/Asterisk type) from them.
   I take no primary credit for this document (I am only the compiler of the not so divine
   revelation). I invite others to participate in improving this document. Please send me your
   feedbacks; so together we can make this document a valuable resource for our peers in
   the Trixbox community, experienced and new alike.
              The usual disclaimer: (Don’t you just hate it, having to say this.)
              In its Basic form, all that I have outlined worked for me but it may contain many
              errors – typographical, omissions and even misguidance that may require a lot of
              extra corrections. While I have taken due care, however, it may not necessarily be
              suitable for your individual configuration. I do not take; neither will I accept any
              responsibility for any losses incurred due to actions or inaction conducted as a result
              of methods or advice found in this document.
http://forums.whirlpool.net.au/forum-threads.cfm?f=107
   Ever since the release of A@H without Tears, I have received numerous emails asking
   for assistance. Since I am putting a lot of efforts into providing personal assistance to
   those who have sent me donations (incidentally, my only source of income), the volume
   of email I received has become unmanageable. While I will try to assist within my limited
   knowledge, I hope you will understand if I don’t answer each and every email.
              I am not an expert and therefore I do not have all the answers. I ask those
              requiring assistance to post their questions in the Whirlpool, Digium, freePBX
              or Trixbox Forum (forum participants may not answer any question if the
              solution is already in this guide) where there are many knowledgeable
              Asterisk and Linux savvy participants who will be able to assist.
   Within this document, Trixbox© and Asterisk will be referred to frequently and they are
   interchangeable as Trixbox© is in essence a superset of the Asterisk.
       If you already have a spare computer to dedicate to this task, then the cost is almost
       nothing unless you need to buy an audio headset ($15.00 from your local electronic
       store) for the softphone. If you do not have a spare PC with the above specification,
       then you may be able to buy one from your local swap meets for under $200.00,
       which may include a monitor. Ensure that the PC has an Ethernet NIC for connecting
       to your home network.
       Your only other initial cost will be the $20.00 or so activation fee to Oztell (or other
       VSP of your choice). In fact many VSPs, the like of Pennytel, Primus etc., will
       register you for free if you want to restrict your calls to VoIP only within the same
       VSPs. If you want the ability to make to PSTN or between different VSPs, you may
       have to pay for the calls.
       All these “Major Expenses” will be recovered when you receive your monthly Telstra
       or Optus phone bills.
       VoIP via the Public Internet is very much dependant on a number of factors –
       available bandwidth not withstanding, your usage habit of the internet and LAN traffic
       and equipment quality, amongst others, also play very important roles.
http://forums.whirlpool.net.au/index.cfm?a=wiki&tag=VOIP_Quality
   Trixbox-2 while essentially similar to the previous version 1.x, does consist some set-up
   differences that warrant explanation. I will attempt to describe the set-up of each of
   these. In most cases it does not matter if you are behind a firewall provided that you have
   all the appropriate ports forwarded correctly. You are not required to do anything special
   like running the IP PBX outside the NAT or in the DMZ. However, it is important to
   ensure that you have enough bandwidth (upstream and downstream) to carry voice
   traffic.
                If you are using Telstra Alcatel SpeedTouch 510/530 ADSL Router, you will need
                to unbind port 5060. To do this, please refer to this link (or see Appendix D).
                http://www.sipgate.co.uk/faq/index.php?aktion=artikel&type=faq&rubrik=024&id=398&lang=de
       When you install Trixbox© on this “old” computer, it will take it over – it starts by
       formatting all the hard disks (if you happen to have more than one), so make sure
       there is nothing on the machine that you want to keep. Detailed instructions are
       given in the installation section.
       Register with a VSP such as Faktortel, Oztell, Pennytel and several other VOIP
       Service Providers (VSPs) or you may buy Engin locked ATAs from Harvey Norman
       and Dick Smith Electronic. The choice is yours.
       To get started, it is easiest to get a softphone and run it on another computer. See
       the section on installation of Softphone later in this document.
       You will need to pick a static IP address for your IP PBX that is on your home network
       e.g. 192.168.0.100. To keep it simple, please ensure that the Asterisk box is in the
       same network segment of your existing LAN.
   Compare the requirements with what facility you already have. You may find that you
   may need to provide extra facilities that you do not already have e.g. Network switches,
   router, ATAs or IP Phones and needless to say a suitable broadband service.
For the purpose of this guide, I have determined that we will start with the following:
Once the above are set-up, I will customise it further with the following;
       •   Time conditions
       •   Ring groups
       •   Follow me
       •   Conference facility
       •   DISA
       •   Etc.
   In this exercise we will cover all of the above (not necessarily in the stated sequence) and
   we may also look at other possibilities as we go along, if time and/or resources permit.
Once you are clear on what you want, you can start the installation in earnest.
   For stability, I will suggest that Trixbox© be installed on a dedicated machine. This is
   what we are setting out to do.
• Burn the ISO image that you have just downloaded to a blank CD.
       •   Ensure that your PC will boot from the CD.         If necessary change the BIOS
           settings to enabled this.
       •   **NOTE: This will erase all data on the hard drives of the PC.
           If you have 2 drives, both may be blown away as well - beware.
       •   Boot your Trixbox PC with the CD in the CD Drive and press enter. After a few
           seconds, the following screen will be displayed. You press F2 to see the various
           options. However, it is not really necessary. Just press [Enter] to start the
           installation
       •   After system hardware probing is completed, you will be asked to select the Time
           Zone you are in.
       •   Use your cursor arrow keys to navigate to the appropriate time zone. In our case,
           we will selected Australia/NSW. Use the TAB key to move the focus to OK and
           hit [Enter] to accept.
• Next you will be asked to enter your root password (remember this password).
       •   From this point it will take about 30-45 minutes for the installation to be complete
           and ready for the configuration stage.
       •   During this stage, you will see screens similar to the following. Linux and the
           required files are being installed. All you do is, wait for it to finish.
       •   After Linux is loaded the CD will eject. Take the CD out and wait for the system to
           reboot.
       •   When Asterisk build is complete, it will reboot itself. Once rebooted, Trixbox© is
           ready for you to continue configuring and make changes to the system default.
Log in to your new Trixbox© (user: root, password: The one you gave earlier)
                Trixbox 2.0 uses freePBX 2.1.3. To take full advantage of the latest freePBX
                features, lets upgrade the existing freePBX to the latest version 2.2. See the section
                on upgrading freePBX. Once that is done we will come back here.
help-trixbox
                   The help screen will also tell you the necessary command required to
                   change the password of the various default users e.g. passwd-maint for
                   user maint and passwd for user root.
Change Asterisk IP address from DHCP to Static. At the command prompt enter:
netconfig
       Use the Tab key to cycle through the fields. Enter the IP address that is to be
       allocated to the Asterisk box, the Netmask (subnet mask), Default Gateway, and
       Primary nameserve as per the example above. In my example above, I used my
       existing network regime.
       Those are the initial inputs that require immediate attention. Others, such as Admin
       password etc, are optional although it is recommended that you change them. Once
       done, log off Linux and reboot.
       amportal stop
       Shutdown –r now
   You will be presented with the Trixbox© initial User Mode splash screen as illustrated
   below.
   This screen (once Trixbox© has been properly set-up) enables users to monitors ARI,
   FOP (flash operator panel), Client Manager (SugarCRM) and setup personal MeetMe
   requirement.
   As it stands, Trixbox© need to be configured before any of those facilities are operable by
   users.
   A username and password dialog screen will appear where the default username and
   password need to be entered as per the illustration below.
   The Username is maint and the default password is password, unless you have
   changed the default password for user maint to something else using the passwd-maint
   command in chapter 3.2 above.
              To log in to System Administration, use user: maint, password: password unless you
              have changed the user maint password during initial set up in 3.2
Once you logged in, you will be presented with the following screen,
   I am already registered to the site and therefore I simply need to enter my username and
   password to login otherwise registration will be required before one can log on to the
   Package Manager site.
   If you are new, click on the “Register” button and register. Simply follow the prompt.
   However if you are unable to register through this method (some Firefox users are having
   this problem – Ed Note. Since the new interface, neither Firefox nor IE is able to register
   this way), you will need to go to http://www.trixbox.org and register to be a member of the
   forum.
   It is this username and password that you that is required for you to successully log in to
   Packages database (Please don’t ask me why this is so).
   Once logged in, select/click on the “Packages” tab (marked with an arrow above) and the
   current package list will be downloaded as illustrated below.
   Most of the modules necessary to get Trixbox© operational are already pre-installed and
   ready for the individual administrator to start setting-up. However there are other optional
   modules that can be installed if necessary, MySqlManager, tbm-phpmyadmin.noarch
   is one such example. Without this package you will not be able to get to phpadmin
   through the GUI.
   To find the package, you may need to scroll down the list till you get to the package called
   “webmin noarch” adjacent to Trixbox update as per the illustration below and place a tick
   in the update box.
            You will now have to wait for the installation to finish, as there is no progress
            indicator during the process. Patience is a virtue.
   How long you will need to wait depends on the number of modules that you selected. If
   you only select one module, it may only take a minute or so. If you selected to more
   modules it will take much longer. Once done, we can focus on the rest of the chores.
   You are now ready to take the next step of installing freePBX modules as without these
   you will not have the GUI interface for managing Trixbox. There are other GUI interface
   that can be used but freePBX comes with Trixbox.
              Before you proceed further, it is a good idea to upgrade to the latest freePBX because
              by the time you install Trixbox, there is a good chance that there is a new version of
              freePBX. Besides, Trixbox did not come with the latest version of freePBX.
   Before you can use freePBX you need to install all the modules that you require. You
   need to do this through freePBX.
   On the Trixbox Admin Mode screen, hover the mouse pointer over the Asterisk tab and
   select FreePBX from the dropdown list as illustrated below (see arrow).
   The following screen will appear. Notice that only Welcome is shown on the left side of
   the screen.
We are now in freePBX and this is where most of your configurations will take place.
   Click on the Tools tab and a screen similar to the following screen will appear, then select
   the “Module Admin” selection on the left.
If the red bar as displayed above appears, simply ignore it for now.
   Start selecting all the modules that you want to install. To make it simple, let's install all
   the modules to start with (you can always remove modules or choose to disable some of
   the modules that you do not need at a later stage).
   Click 'Process' at the bottom of the list of modules once you have selected all of the
   modules.
   On the confirmation page, click 'Confirm.' You should get a page telling us that all
   modules were installed successfully.
   See the red bar at the top of the page that says 'Apply Configuration Changes’? To
   confirm your intention, click on it and then click 'OK' on the window that pops up. This
   reloads the Asterisk configuration and the red bar will then go away.
We will need to click on the red bar anytime you make changes
   Before you go any further, you will check for modules updates that may be available or
   you may wish to include other extra modules that have been released since the
   installation of freePBX, online.
   We will go back to the Module Admin screen and lick on the “Check for update online”
   label as illustrated below.
   If there are updates that you need, simply select the necessary updated modules
   indicated in the list, click “Download and upgrade” radio button.
You can also uninstall or disable any module using this modular approach..
   A list of all the modules that we have selected for updating will be displayed similar to the
   screen below.
Click on the confirm button and freePBX will start the updating process.
   During the updating process, freePBX will inform you of the progress of the update by
   displaying the status of the modules being updated as per the illustration below.
   You can now click on ‘Setup’ tab next to the “Tools” tab to get to the modules you have
   just activated and finally start to configure the Trixbox© IP PBX.
   Notice that the extra information that will define the way Asterisk behave, are also
   required in freePBX. Set the fields to the following (these are vital settings):
   Voicemail:
   Change the Direct Dial to Voicemail message type to something other than default - this
   will save you a lot of head scratching later on when you start using follow me etc. as your
   customs recorded message will not be played, instead the default Asterisk message will
   be played back if you don’t change the setting.
   Allow Anonymous Inbound SIP Calls? Yes (if this is set you ‘No’, all inbound unidentified
   SIP calls will not be accepted).
   Generally the default values are sufficient to get you started. These values can be
   changed later to suit your purposes. However the value I have as example above is
   required to ensure that Trixbox© will function as expected – at the very list, during the
   testing stages.
   Naturally, help is available. Hovering your mouse on the corresponding field description
   with a dotted underline (e.g. Asterisk Outbound Dial Command options) will display the
   purpose of the fields and the various switches related to it.
   After setting up the General Settings, click on Submit Changes button and the red bar on
   top of the screen for the change to take effect.
       The following are the dial command options available to you but for now, lets leave it
       alone:
Options:
       We need to create a few SIP extensons. Therefore you should select Generic SIP
       Device from the device drop-down list then click “Submit”.
You will notice a few fields that you will need to populate. The important ones are:
           •    User Extension: 2000 (that’s the extension number I gave for reception)
           •    Secret: 2000 (for simplicity, I used the exten number as the secret password)
       For simplicity, we will allocate passwords to be the same as the extension numbers.
       Where Voicemail is enabled, we will allocate the same password as well (but you
       don’t have to. You may also nominate an email address for Voicemail Email
       Notification – it’s up to you). Voicemail will be covered in more detail a little later in
       this document.
                    If you want this extension to be a remote extension, you will need to edit the
                    extension and ensure that the entry under Device options reads Nat: yes.
In this case let us enable voicemail on extension 2001 (the Manager’s extension).
       Go back to the Extension Option of freePBX and click on extension 2001. Scroll
       down to the Voicemail and directory section and do the following:
Click submit when done followed by the red bar on top of the scree.
   .
   Select the extensions that you want to define (the extension selection is on the right of the
   screen). In this case, we will pick the Medical Centre Manager’s extension – ‘Manager
   <2001> add’
In the screen that follows (see the illustration above), enter the following information.
   Every time the Manager’s extension is called, Asterisk will try to connect to extension
   2001 and if no answer, it will call Ext. 2005 followed by the Reception. If still no answer, it
   will simply hang up. During business hours, the reception will take down messages for
   the manager or the Doctors.
   Click “submit” followed by clicking the red bar on top of the screen to finalise this
   selection.
   You may not want a ring group – it’s entirely up to you. If you don’t require a ring group, you
   may ignore this section.
   When there is an incoming call to the ring group, the phones nominated in the selected
   group will ring. You may select different ring group for each of the incoming trunk or you
   may nominate the same group for all the trunks, in which case you will only need to define
   only one ring group.
   For simplicity, we will only defined 1 ring group for all incoming calls from all trunks – at
   this stage, let’s not get too fancy.
   We will create a ring group 600 for this purpose. Let’s call it AdminGroup as it rings all the
   phones related to the Administration of the Medical Centre. A single digit ring group is not
   recommended.
   We have included the Manager’s Mobile Phone number in as the last one in the group. If
   noone answer the call, Asterisk will simply hang up. Since the last number in the group is
   the Manager’s mobile phone, generally, the Mobile phone voicemail will take the message
   if the phon is not answered.
       To do this, go to the chapter – Setting up Soft Phone and come back to the next
       chapter after that is done.
       If everything has been done as explained above, we should be able to make and
       receive calls between our internal extensions. If not, it is time to re-inspect what we
       have done above and make the necessary correction before attempting to go any
       further.
       Let’s take a break and test the soft phone extensions by making calls to each
       extension that we have created.
To be able to do these, you will need at least one trunk to the outside world.
   This is a simplified guide to give the budding Trixbox© users some understanding in
   setting up Trunks.
The various patterns you can enter are similar to Asterisk's definition of them:
   If you have paid for VOIP service to enabled you to make calls out through PSTN, you
   can use this as a trunk for that purpose otherwise, you can only use it for making calls
   using VOIP between subscribers of the VSP only (unless there are peering arrangements
   with other VSPs).
   You can have several trunks if you want to. You can have Telstra and/or Optus
   telephone lines and use them as trunks, and you can also have a few VSPs that you
   subscribed to as additional trunks.
To make external, PSTN or VOIP calls; you must have at least one trunk.
       •   Trunk (a) charges the best rate for Local calls but is expensive for Mobile calls and not so
           great for international calls.
       •   Trunk (b) has great rate for international call.
       •   Trunk (c) has good mobile rate and will allow 1300 numbers while the other 2 do not.
   A properly planned route will direct the phone calls you make to the appropriate trunk that
   will provide you with maximum effectiveness and savings.
   E.g. When you make a call to a Mobile phone, asterisk will route your call via trunk (c)
   while it will route your call to trunk (a) if you make a local call. Similarly, when you make
   an international call, asterisk will route your outbound call via trunk (b).
   Each of these two works in conjunction with each other – they compliment each other
   when an outgoing call is being made.
       Since your VOIP provider does not discriminate where you are calling from or where
       you are calling to, it requires a universal type number to call so your call can be
       directed to the correct recipient.
       In most cases, the VOIP provider will need to dial the universal e164 format e.g.
       61291234567 for Sydney or 61391234567 for Melbourne. (61 being the code for
       Australia, 2 or 3 being the code for Sydney or Melbourne respectively, followed by
       the telephone number of your friend which is 91234567).
       Since you are dialling 03 91234567, asterisk only need to send 391234567 (without
       the 0 prefix). Therefore in your Outbound Route Dial Pattern (lets call this Outgoing
       Route Domestic) you will need the following pattern:
0|NXXXXXXXX
       That pattern tells Asterisk to send only 9 digits out of 10 dialled by not sending the
       first digit 0. Thus, if you dialled 0291234567, the number that will be sent to the
       Trunk will be 291234567.
       How will this then be translated to 61291234567? This is where the Trunk Outgoing
       Dial Rule comes in.
       Using the above example, assuming that the VOIP service provider requires the full
       e164 format, Asterisk will need to add the missing Australian code 61.
61+NXXXXXXXX
       That pattern tells Asterisk to add 61 in front of the 291234567 before dialling the
       number via the trunk. For variations of patterns, see What is a Dial Pattern in the
       previous chapter earlier on in this document.
For this example, let’s create 2 SIP trunks; Pennytel and Oztell.
   To create a new Trunk, click on the Add Trunk option (first option on the right of the
   screen).
Outbound Caller ID: “Insert Your Name” <Your Number> (Must include the “ “ and <>)
   In this example we will create a Pennytel and Oztell SIP Trunks, which we will call
   pennytel and oztell respectively. We will also define their dialling patterns.
       6.4.1 Pennytel
       In this example, we will use Pennytel for all international and mobile calls only.
       Pennytel requires numbers dialled to follow the international format Country code +
       area code + phone number. To call an overseas destination you would normally dial
       0011+country code + phone number. E.g. to call New Zealand is 0011 64 <phone
       number>, and to dial France is 0011 33 <phone number>. Since Pennytel only requires
       the country code and the phone number but does not require the 0011, the route (that
       we will create later) will not pass the 0011 to the trunk.
       We will require the following Outgoing Dialling Rules for this trunk, which instruct the
       trunk to dial whatever is sent by the appropriate route. This example is for dialling
       Malaysia with a country code of 60, and Australian Mobile phones.
        Pattern             Explanation
                            This pattern tells Pennytel to dial all Malaysian Mobile numbers
        601XXXXXXXX
                            starts with 601 followed by 8 more digits.
                            This pattern dials numbers start with 60 followed by a one-digit
        60NXXXXXXX
                            number in the range of 2-9 followed by 7 more digits.
                            For dialling Australian Mobile phone. The 61 is the Australian
        61+4XXXXXXXX
                            Country code that will be added to the mobile phone number.
                                                                  601XXXXXXXX
       In your Outgoing Dial Rules box, we will enter the
                                                                  60NXXXXXXX
       following;                                                 61+4XXXXXXXX
       Next we need to create the Outgoing Setting, Incoming Settings and Registration for
       Pennytel.
                                                         allow=alaw&ulaw&gsm
                                                         canredirect=no
        In the Peer Details enter the following;         canreinvite=no
        Pennytel preferred codecs are: g729, gsm         disallow=all
        and g723 but g729 and g723 are not installed     host=sip.pennytel.com
        as default in TRIXBOX©                           insecure=very
                                                         secret= Password
                                                         type=peer
                                                         username=8880XXXX
       Incoming Settings
       In the User Context, enter the Pennytel User ID: 888XXXXX
                                                              canreinvite=no
       In the User Details we will have the following:        context=from-trunk
                                                              fromuser=888XXXXX
                                                              qualify=no
                                                              secret= Password
                                                              type=user
                                                              username=888XXXXX
       Registration
       In the registration field, enter the following:
888XXXXX:Password@sip.pennytel.com/888XXXXX
       After all these have been done, click on the Submit Changes button and click on the
       red bar across the top of the screen.
useragent = Trixbox
       ; Note: If your SIP devices are behind a NAT and your Asterisk
       ; server isn't, try adding "nat=1" to each peer definition to
       ; solve translation problems.
[general]
       ; #, in this configuration file, is NOT A COMMENT. This is exactly how it should be.
       #include sip_nat.conf
       #include sip_custom.conf
       #include sip_additional.conf
        Pattern                  Explanation
        899060X.                 This pattern tells Oztell to dial the inter Oztell’s numbers
                                 This pattern dials numbers start with 60 followed by a one
                                 digit number 1-9 followed by other numbers minimum of 2
        60ZXX.                   digits from 0 -9. This can be an international number with a
                                 Country code of 60 followed by a number between 1 and 9
                                 inclusive.
        06612+NXXXXXXX           Using the Oztell 06 rate to dial any NSW number.
        0661+NXXXXXXXX           Using Oztell 06 rate to dial any Australian number.
        61+1300XXXXXX            Dials 1300 numbers
        61+13ZXXX                Dials 13 numbers
        61+1800XXXXXX            Dials 1800 numbers
                                                                    899060X.
       In your Outgoing Dial Rules box, it will look like this:     60ZXX.
       – this is simply an example based on my setting;             06612+NXXXXXXX
       yours will no doubt be different.                            0661+NXXXXXXXX
                                                                    61+1300XXXXXX
                                                                    61+13ZXXX
                                                                    61+1800XXXXXX
       Next we need to create the Outgoing Setting, Incoming Settings and Registration for
       Oztell.
       Outgoing Settings
       In the Trunk Name, enter the name of this trunk: oztellsip (as an example)
                                                           allow=ulaw&alaw
       In the Peer Details we will need the                canredirect=no
       following;                                          disallow=all
                                                           dtmfmode=rfc2833
        You must enable all the codecs that you want to    fromuser=899060xxxxx
        use through Oztell’s web page.                     host= sip2.syd.net2max.com
                                                           insecure=very
                                                           secret=Password
                                                           type=peer
                                                           username=899060XXXXX
                                                         canreinvite=no
       In the User Details enter the following:          context=from-trunk
                                                         fromuser=899060XXXXX
                                                         insecure=very
                                                         qualify=no
                                                         secret=Password
                                                         type=user
                                                         username=899060XXXXX
       Registration
       In the registration field, enter the following:
899060XXXXX:Password@sip2.syd.net2max.com/899060XXXXX
       After all have been done, click on the Submit Changes button and click on the red
       bar across the top of the screen.
       Note* Don’t forget to Forward UDP Port 4569 to your Asterisk IP address and edit your
       iax.conf file.
       Outgoing Settings
       In the Trunk Name, enter the name of this trunk: oztelliax (as an example)
                                                         allow=ulaw&alaw
       In the Peer Details we will need the              disallow=all
       following;                                        host=iax2.syd.net2max.com
                                                         secret=Password
        Note: You must enable all the codecs that you    type=peer
        want to use through Oztell’s web page.           username=899060XXXXX
       Incoming Settings
       In the User Context, enter the Oztell User ID: 899060XXXXX
                                                         context=from-trunk
       In the User Details enter the following:          secret=Password
                                                         type=user
       Registration
       In the registration field, enter the following:
899060XXXXX:Password@iax2.syd.net2max.com
       After all have been done, click on the Submit Changes button and click on the red
       bar across the top of the screen.
       Now that you know what the trunk will do, you may proceed to the next chapters to
       create the Inbound and outbound routes.
   When an incoming call from PSTN or VoIP trunk is received, asterisk needs to know
   where to direct it. It can be directed to a ring group, an extension, Digital Receptionist
   (IVR) or Queue. For this purpose, Inbound Route needs to be set up.
Select the Inbound Routes selection in the left bar of the screen.
   Initially, (since we have not created an IVR yet) we will set all incoming calls to be
   directed to Ring Group 600 as illustrated below (later on in this guide we will create a
   digital receptionist for this purpose and we will redirect all the incoming calls to the IVR).
                 As a matter of fact, this can be the only Inbound Route that you will need if
                 you deploy IVR (to be discussed later on). Besides, without this inbound
                 route created, your 7777 simulated calls will not work.
For our purpose, only put in the following data. The rest are optional.
   For each extra trunk, a corresponding inbound route may be created (you don’t have to).
   All incoming calls from all the different trunks that you may have can have their own
   individual characteristic by judicious deployment of the time condition facility available in
   FreePBX (to be discussed later on).
   However, at least one Inbound Route must be created for Trixbox© to answer incoming
   calls. This includes calls from PSTN trunk as well. The route that we have created above
   is precicely for this purpose.
   This route will handle the calls that come in without Trunk ID and calls from trunks that do
   not have an Inbound Route created (which includes all calls from PSTN and incorrectly
   created incoming route). We call this a “Catch-All” route, an Inbound Route with the DID
   Number and Calling ID Number fields left blank.
   As usual, you will need to click on the red bar on top of the screen after each time you
   submit a new Inbound Route.
           •   Add a new time condition by selecting Setup - > Time Condition - > Add
               time condition.
           •   In the Time condition name field, give it a name eg: DayNight
           •   Under Time to match, do the following:
                    o Time to start: 08:00
                    o Time to finish: 20:00
                    o Week Day start: Monday
                    o Week Day finish: Sunday
           •   Under Destination if time matches, select IVR (or Core extension or ring
               group)
           •   Under Destination if time does not match, select Core mailbox: eg
               voicemail box 2001 (if you have voicemail enabled for ext. 2001).
           •   Submit and click on the red bar on top of the page.
       Once the above is done, go to Inbound Route, select the appropriate inbound route
       and under Set Destination, select Time Condition DayNight, submit and click the red
       bar on top of the screen.
       4. Once the above is done, go to Inbound Route, select the appropriate inbound
          route and under Set Destination, select Time Condition OfficeMorning, submit
          and click the red bar on top of the screen.
       What the inbound route will do is, as soon as an incoming call is accepted, it will be
       forwarded to the OfficeMorning time condition.
       If the time condition is met, it will then be forwarded to the IVR. On the other hand, if
       it does not match, it will be forwarded to time condition OfficeAfternoon.
       If it matches the OfficeAfternoon time condition, the call will be forwarded to IVR, if
       not, it will be forwarded to the voicemail box that you have determined.
   Following the above example, time conditions can be nested to multiple levels deep
   allowing you to manage your time condition and make them as complex or as simple as
   the situation demands – imagination is the only restricting factor.
Every time you dial a number, asterisk will do the following in strict order:
                     To make an external call (except inter extension calls), you will need at least
                     one trunk and one route.
           •   International
           •   Domestic
           •   MobileAust
                 The International Route will be used for all international phone calls.
                 The Domestic Route will take care of the Australian phone and mobile.
                 The other two will do as the names suggest.
       To create a new route using freePBX, select Setup tab and then select the
       Outbound Route option from the vertical menu on the left.
Click on the Add Route in the menu on the right of the screen.
       7.3.3 International
       You will need the following pattern to match international dialing.
               Pattern              Explanation
                                Most of my International calls are to Malaysia, I have defined
               0011|60NXX.
                                the Malaysian PSTN pattern here.
                                This pattern dials all international numbers by prefixing it with
                                0011 and any digit between 7 and nine inclusive. Before the
               0011|[7-9]XX.
                                number is sent to the trunk the 0011 will be stripped. If
                                required by the trunk, the trunk will insert the 0011.
                                This is the catchall international dialling including International
               0011|NXX.
                                Mobile (excluding USA which is a 1).
Dial Patterns
                       0011|60NXX.
                       0011|[7-9]XX.
                       0011|NXX.
       You will then need to pick the Trunk Sequent. In this case we will use Pennytel as
       the trunk for this route and if it fails, we will use Oztell as a second choice/backup.
Trunk Sequence
                       0   Pennytel
                       1   Oztell
       Any number dialled with the 0011 prefix will be routed through the Astratel trunk and
       should it fail, it will be routed to Pennytel.
       7.3.4 Domestic
       You need the following pattern to match the Australian Telephone numbers and the
       Australian Mobile numbers.
            Pattern                        Explanation
                                       You will dial Australian telephone number as normal
                                       using 03, 02 prefix but the route will strip the leading
           0|[23478]XXXXXXXX
                                       0 before it is sent to the trunk.
                                       If the trunk requires the 0, the trunk will insert it.
                                       If you dial local number and not use the STD prefix, it
                                       will send to the trunk as is and the trunk will insert the
           [2-9]XXXXXXX
                                       02 if required (this is a NSW pattern. If you are in
                                       Victoria you will need to modify the trunk).
                                       This is the catchall dialling for numbers that does not
           ZXX.
                                       start with a 0 such as 1300, 1800, 13 etc.
In your Dial Patterns box, you will see something like this.
Dial Patterns
                       0|[2378]XXXXXXXX
                       [4689]XXXXXXX
                       ZXX.
       You will then need to pick the Trunk Sequent. In this case we need Oztell as the
       trunk for this route and if it fails, we want Pennytel to take over as a second
       choice/backup.
Trunk Sequence
                       0   Oztell
                       1   Pennytel
       All numbers dialled matching the above pattern will be routed through Oztell and if it
       failed, it will be routed via Pennytel.
Dial Patterns
0|4XXXXXXXX
       We want all my domestic mobile calls to be routed via Pennytel and we have not
       nominated a second trunk. If it fails then we will not be able to make a Mobile call, as
       we don’t have a second trunk nominated.
Trunk Sequence
0 Pennytel
       7.3.6 Oztellonly
       The following pattern is in the Oztellonly route. We will use Oztell for a number of call
       types therefore some explanation may be in order.
                Pattern                  Explanation
                               This pattern will allow me to dial a Malaysian Mobile number.
                               The 0011 will be stripped before the number is sent to Oztell.
        0011|601XX.
                               Oztell does not require the 0011. It only requires the Country
                               code.
                               You will dial Australian telephone number as normal using
                               03, 02 prefix but the route will strip the leading 0 before it is
        0|[378]NXXXXXXX
                               sent to the trunk.
                               If the trunk requires the 0, the trunk will insert it.
        1[38]XX.               This is for dialling 1300, 1800 and 13 numbers.
        899060XX.              For dialling Oztell inter Oztell users
        NXXXXXXX               Catchall for dialling a local number that doesn’t start with 1
In the dial pattern box you will see something like the illustration below.
Dial Patterns
                       0011|601XX.
                       0|[378]NXXXXXXX
                       1[38]XX.
                       NXXXXXXX
       Since the above pattern is for Oztell only, in my trunk sequence, Oztell was chosen to
       be the only trunk for any of these calls.
Trunk Sequence
0 Oztell
   I will not enter into any elaborate explanation how enum works, as there are already a
   number of articles describing this. In essence, your phone number and server information
   are stored in a special DNS zone (very similar to a reverse lookup zone). When an
   ENUM enabled Asterisk user calls your phone number, it will first attempt to find your
   phone number in the ENUM DNS zone. If it finds your phone number it will use the
   information to setup a call directly between his Asterisk server and yours, resorting to
   PSTN only if your number is not found.
   Note: ENUM only works between ENUM enabled Asterisk (or other ENUM enabled VOIP)
   users.
   There is no easy way of imposing this restriction through the freePBX GUI. The only way
   that can be done currently is to introduce special scripts in the extensions_custom.conf
   file or create a special .conf file. For now, we will stick with the simplest method.
It is somewhat complicated, but I will try to explain it here and provide an example.
   1. Set up all your trunks and outbound routes as normal. At this stage, users can make
      unrestricted calls. This is the normal way of doing it with freePBX. You probably
      would have already done this.
       [outbound-allroutes]
       include => outbound-allroutes-custom
       include => outrt-001-PSTN
       include => outrt-002-SPA3K
       include => outrt-003-Oztell
       include => outrt-004-Pennytel
       include => outrt-005-Domestic
       include => outrt-006-MobileAust
       include => outrt-007-International
       include => outrt-008-12Number
       include => outrt-009-13N1800Numbers
       include => outrt-010-e164
       include => outrt-011-SingaporeLink
       include => outrt-012-KualaLumpurLink
       include => outrt-013-MalaccaLink
       exten => foo,1,Noop(bar)
; end of [outbound-allroutes]
       Highlight them, copy and paste in a notepad text file somewhere and will get back to
       this a little later.
       [from-restricted]
       ;
       ; These are all the applications that you will require
       ;
       include => app-cf-busy-off
       include => app-cf-busy-off-any
       include => app-cf-busy-on
       include => app-cf-off
       include => app-cf-off-any
       Now copy your [outbound-allroutes] that was saved to the text file directly underneath
       the last line of the above context. Remember to delete the [outbound-allroutes] label.
       Unfortunately you can’t cut and paste my example because they are my routes NOT
       yours.
Your final handiwork will look something like the example below:
       [from-restricted]
       ;
       ; These are all the applications that you will require
       ;
       include => app-cf-busy-off
       include => app-cf-busy-off-any
       include => app-cf-busy-on
       include => app-cf-off
       include => app-cf-off-any
       include => app-cf-on
       include => app-cf-unavailable-off
       include => app-cf-unavailable-on
       include => app-calltrace
       include => app-callwaiting-cwoff
       include => app-callwaiting-cwon
       include => app-dialvm
       include => app-directory
       include => app-dnd-off
       include => app-dnd-on
       include => app-echo-test
       include => app-recordings
       include => app-speakextennum
   4. You may now comment out the outbound routes you do not want the restricted
      extensions to use.
       E.g. If you comment out include => outrt-001-PSTN, the restricted extension
       cannot use PSTN.
   5. After you have done that, you need to go back to FreePBX and edit the extension that
      you want to restrict by change the context to from-restricted instead of from-internal.
   By now we should be able to navigate ourselves through the freePBX menu. To get to
   the system recordings, select the Setup tab and pick System Recordings as per the
   illustration below.
   Clicking on the System recording label as highlighted by the red arrow will open the
   following “System Recordings” screen.
   You will be making your recording using the telephone on this extension (or the
   microphone of the softphone).
Click Go.
Follow the prompt on the screen and dial *77 on your phone to do your recording now.
   “Hi, you have reached the Family Health Centre. Press 1 for Reception, 2 for the
   Centre’s Manager, 3 for Dr. Roberts, 4 for Dr. Forbes, 5 for Dr. Wong, 6 for the Admin
   Office, 7 for Lab and X-Ray or you may simply hold and your call will be answered by one
   of our available receptionists. If no one answers your call, please leave a message”. -
   Then hang up.
   Once you are happy with the recording, give the recording a descriptive name e.g.
   “MainMenu” so you will know what the recording is for.
Click Save.
   Follow the prompt for the upload and once again when the upload is completed, give the
   file a descriptive name for you to know what that recording is for.
   The above recorded files either recorded manually or uploaded using the system
   recording facility will be stored in the /var/lib/asterisk/sounds/custom directory.
   Click on the Add IVR option on the top right on the screen (see arrow) and the new
   Unnamed IVR configuration screen will be presented to you.
   Then proceed to enter the selection options that you require for this IVR when the caller
   presses the appropriate option.
   If you need more choice options in the IVR, click on the Increase Options button at the
   bottom of the screen.
   For number 1 - 7, we select Extension, and for 8, which we have changed to the letter “t”,
   we also selected Extension.
   Once finished, click Save and also click on the Apply Configuration Changesed on the
   top of the screen.
   Test it by dialling 7777, (Asterisk will simulate an incoming call) and you will hear your
   Digital receptionist in action.
   Trixbox© allows multi languages IVR handling by simply telling Trixbox© what language
   to use. Naturally you will need to install all the language sets that you wish to use.
   See Installing Other Languages in the chapter referring to Customised Voice in later part
   of this document.
   I am assuming that you already have your MainMenu IVR in English set up for selecting
   various options. This IVR is known as IVR-2 in your extension_additional.conf file. Any
   subsequent IVR created will be IVR-3, IVR-4 and so on.
   You will need to create another IVR for selecting the language options that you want to
   present to the callers. This will be the IVR that will greet all callers with Select 1 for
   English, 2 for Italian etc. In this example, we will have 2 language sets, Australian and
   Italian. Let us name this second IVR LanguageChoice.
   Being the second IVR you have created, this IVR will be known as IVR-3 in your
   extension_additional.conf file. Any subsequent IVR created will be IVR-4 and so on.
In choice 1, select the Custom App: radio button and enter the following in the box:
In choice 2, select the Custom App: radio button and enter the following in the box:
   The third choice, instead of a number, you will enter the letter “t” in the option box, select
   Custom App: radio button and enter the following:
   Next, you will need to do a little editing of the extensions_custom.conf file. You need to
   add the following towards the end of your extensions_custom.conf.
   You will also need to create another IVR called MainMenu_IT with options to be
   presented in Italian. This is similar to your main IVR except that it is presented to the
   caller in Italian. This IVR being the third that you have created will be referred to as IVR-4
   in the extensions_additional.conf file.
   [custom-language_au]
   exten => s,1,Set(LANGUAGE()=au)
   exten => s,n,Playback(vm-dialout)
   exten => s,n,Goto(ivr-2,s,begin)
   [custom-language_it]
   exten => s,1,Set(LANGUAGE()=it)
Save it and re-read the configuration change and you are done.
   Now you will need to change your inbound route to point to the LanguageChoice IVR.
   All calls will then be greeted by the LanguageChoice IVR and when the caller select 1 (or
   2), the IVR will call the appropriate exten. If the caller selected 1, the [custom-
   language_au] will be selected and the language will be set to Australian English, an
   announcement in the appropriate language will be made and the caller will be sent to the
   MainMenu (or MainMenu_IT) for call options (you must also have recorded the call
   options announcement in the various languages).
       To take the multi-language IVR one step further, we can also have multi-language (or
       multi category) MOH to compliment the language.
       If the language used is Italian, it is safe to assume that the caller is Italian and would
       much prefer to listen to Italian music instead of Chinese or Arabic music.
To do this you will need to have the appropriate MOH music in Trixbox©.
       Assuming that you already have the default music category that comes with Asterisk,
       you will need to create a new music category using freePBX On Hold Music option.
       Let us call this new category ItalianTune.
See the chapter relating to MOH in the later chapter of this document.
       Once you have created this category, upload a few MP3 Italian music/Tunes to it. If
       you want the tune to be randomised, click the Enable Random button and you are set
       to go.
       [custom-language_au]
       exten => s,1,Set(LANGUAGE()=au)
       exten => s,n, SetMusicOnHold(default)
       exten => s,n,Playback(vm-dialout)
       exten => s,n,Goto(ivr-2,s,begin)
       [custom-language_it]
       exten => s,1,Set(LANGUAGE()=it)
       exten => s,n, SetMusicOnHold(ItalianTune)
       exten => s,n,Playback(vm-dialout)
       exten => s,n,Goto(ivr-4,s,begin)
You may have to restart asterisk after this (although it may not be necessary).
Now you will have multi language IVR as well as the complimentary MOH.
   While freePBX is a very versatile GUI front-end for Trixbox© it does not have the facility to
   configure a PBX for multi-Tenants application. However, Trixbox© (Asterisk) has the
   ability to do it with a little creative manipulation.
   In the chapter above we covered multi languages IVR handling by simply telling Trixbox©
   what language to use. We are going to use the same principal to handle the Multi-
   Tenants requirement.
   In this example, I will use a Medical Centre in Malaysia, that I have the privilege of
   installing the Asterisk PABX for. There are 3 tenants involved – a General Practitioner, a
   Dental Practitioner and a Pathology representative. Each has separate incoming
   telephone numbers with their own receptionist but using a common PABX.
   I have picked this organisation as an example because it is small enough to write about.
   If I choose one of my bigger installations, this book will never see the light of day ☺
       •    Calls that come in through the different tenants should be directed to the
            appropriate IVR. One IVR for each tenant.
       •    12 extensions - 4 for Dental Practitioner, 3 for Radiologist and 5 for General
            Practitioners.
       •    Voicemail for each receptionist.
   There are other requirements such as multi language prompts, after-hours ring groups,
   time conditions, Interlinking 2 Trixbox© boxes between the Medical Centre and the
   Pathology Main Office in Kuala Lumpur etc., but I have only listed the major requirements.
   In this example I will only highlight the Multi-Tenants incoming route handling and
   restricting outgoing calls to the appropriate telephone lines only.
   The full case study can be found in the Appendix titled, Live Case Study at the end of
   this document.
   My first task was to install the base Trixbox© as per the chapter on Installation. In this
   installation, there is no VOIP trunk involved. All telephone communications are through
   PSTN lines apart from the Trixbox© inter-connect between the Medical Centre and the
   Pathology Main Office in Kuala Lumpur, which will be done via a DSL connection.
   PSTN Interface
   2 x TDM400 were installed in the PC designated for the PBX
   IVR Prompts
   3 x IVR were created, one for each of the different tenant.
   Inbound Routings
      • ZAP channels 1,2 and 3 (3 PSTN numbers for GP) routed to MedicalIVR
      • ZAP channels 4,5 and 6 (3 PSTN numbers for Dentist) routed to DentalIVR
      • ZAP channel 7 and 8 (2 PSTN numbers for the Pathology representative) routed
         to PathoIVR
Extensions
           •    [from-Internal-medical]
           •    [from-internal-dental]
           •    [from-internal-pathology]
   All of the basic set up requirements above are explained in the various chapters of this
   book and should not present any difficulty to complete.
   Once the basic is completed, the rest of the variations and extras can be handled as per
   the individual requirement.
                     Config files manual tweaks in this guide are meant for advanced users.
                     Unless you have a compelling reason to do so, users are advised against
                     any manual config file tweaks.
   Just as you think that all is OK, you realized something else requires attention. This is
   true with Trixbox© as well.
   To do this we may need to edit some configuration files (.conf) that reside both in the
   /etc/asterisk directory and /etc directories. Configuration files in the /etc/asterisk are
   generally editable through Config Edit.
   To start editing the .conf files we need to hover on the Asterisk tab and select the Config
   Edit selection from the dropdown menu as illustrated below.
   Select Config Edit (marked with red arrow) and we will see a new screen with a list of all
   the .conf files, which can be edited manually.
Scroll down the page to find the file that needs to be edited.
11.1.1 sip.conf
[general]
       qualify=yes
       progressinband=yes
                   Every time you update freePBX, there is a good chance that changes or
                   additions you have made in sip.conf will be overwritten. To avoid this,
                   all additions I wish to make in sip.conf are made in sip_custom.conf
       language=au
       videosupport=yes
       allow=g729
       allow=g723
       allow=h261
       allow=h263
       allow=h263p
       11.1.2 iax.conf
       In the general section, add the following lines if it is not already there:
       [general]
       delayreject=yes
       jitterbuffer=yes ; I placed this line in my iax_custom.conf instead
       mailboxdetail=yes ; I placed this line in my iax_custom.conf instead
                      Every time you update freePBX, there is a good chance that changes or
                      additions you have made in iax.conf will be overwritten. To avoid this, all
                      additions I wish to make in iax.conf are made in iax_custom.conf
Iax_custom.conf
       ;externip = <your fixed external IP> or (one or the other NOT both)
       externhost = <your DynDNS name>
       localnet = 192.168.1.0/255.255.255.0
       languagae=au
       delayreject = yes
       jitterbuffer = yes
       allow=g729
       allow=ilbc
       allow=g723
       11.1.3 Indications.conf
       In the general section ensure the following exist:
       [general]
       country = au ; (The default is country = us, therefore replace “us” with “au”)
11.1.4 enum.conf
       [general]
       ;
       ; The search list for domains may be customized.
       ; Domains are searched in the order they are listed here.
       11.1.5 extensions_custom.conf
       If you have a ZAP trunk and you want to get an external line and be presented with a
       dial tone first before you dial the external line, you may add the following codes in the
       extensions_custom.conf file.
       Immediately after the line following the include => from-internal-Trixbox context,
       insert the following codes:
       This will allow you to dial 0 and you will get a second dial tone from PSTN. Following
       which you can dial a PSTN number that you wish to call.
       11.1.6 features.conf
       The default features.conf included with Trixbox© is fairly minimal. It is recommended
       that you reflect the following in your features.conf file. The extra keywords will come
       in handy later on.
       ;
       ; Sample Parking configuration
       ;
       [general]
       ; do not manually enter parkinglot config information, use the parkinglot module
       ;
       ; the parking_additional.inc file is auto-generated by the Parkinglot Module, do
       ; not hand edit that file
       #include parking_additional.inc
       #include features_general_custom.conf
       [applicationmap]
       #include features_applicationmap_additional.conf
       [featuremap]
       blindxfer => ##                            ; Blind Transfer (default is # - change if having
                                                  ; problem with external DTMF that requires #)
       disconnect => **                           ; Disconnect Call
       automon => *1                              ; One Touch Record
       ;atxfer => *2                              ; Attended Xfer
   The following are some basic steps for you to do – at least to ensure that your installation
   is running correctly and is registered to the appropriate VSP before you start doing
   anything more adventurous.
   There are two places where you can obtain a quick health report of your system – the
   System Process Status and the Asterisk Info screens.
                If you don’t have the Asterisk Info option, refer to the NOTES section on how to
               obtain this module.
   To do the initial checking, let us start with the System Maint option of Trixbox© System
   Menu.
   Hover the mouse on the System tab and select the System Maint selection from the
   dropdown menu as highlighted by the red arrow below.
Clicking on the System Maint selection will open the Process Status screen.
   When your maintenance screen is presented to you, all the processes should be running
   as illustrated in the Process Status screen below.
   Ensure that the minimum requirements have been met. If the minimum requirements and
   the right type of hardware requirements have been met, and yet it is still not working, then
   maybe its time to start the installation again.
   When presented with the info page, scroll down to the SIP (or IAX if you are using IAX)
   section and ensure that you are registered to your trunks. You will only be able to make
   and receive external calls – hopefully - if you are registered.
   In the majority of cases, if you have done everything as described in the preceding
   chapters, the chances of your installation working are pretty good. However there are
   always times when you think that the weather is going to be fine and yet you are pelted by
   a thunderstorm.
   If you are not able to make or receive calls, the most common causes are Trunk
   Registrations, the choice of Codec, Routings, and Dialling rules errors.
   Routings and Dialling rules are something that needs to be thought out logically with no
   simple way of determining, as different people has different requirements and different
   VSP have different dialling rules.
   This card allows you to connect a POTS (plain Old Telephone System) line to your
   Asterisk box (See Notes if it does not install correctly).
   If this card is added after Asterisk has been configured, it may be necessary to configure
   it by using the zaptel card auto-config utility so the correct zaptel driver will be set up. To
   do that, enter the following from the command line.
rebuild_zaptel
Restart Asterisk
Shutdown –r now
genzaptelconf
Restart again.
Shutdown –r now
   Next go into the freePBX web interface to create a trunk and you will notice that there is
   already a trunk called ZAP/g0. You need to edit this.
       1. Enter the phone number for you pots line in the Caller ID field
       2. Enter 1 for Maximum channels
       3. Set a dial rule you want for this trunk
   Once the card is configured, you must add a route for Incoming Calls or asterisk will not
   answer this line
   Click on Incoming Calls in freePBX and set up an incoming route. To make outbound
   calls you will need to set an outbound route as well.
   If you have this card installed, you may need to edit the following files (usually you don’t
   have to); zapata.conf, zapata-auto.conf, zaptel.conf and modprobe.conf. The last 2
   files live in the /etc directory – use a text editor (I use nano) to edit them as you cannot
   edit them through Config Edit.
       13.1.1 zapata.conf
       Under [channels] add the following lines:
       [channels]
       busydetect=yes
       busycount=6
       The above is to ensure that the line is hung up if there is no answer or busy after 6
       busy tones.
       For my installation to function correctly, I have also changed the following setting to
       obtain a good compromise on volume/echoing:
       13.1.2 zapata-auto.conf
       Ensure the following exist in Zapata-auto.conf. It is located at the end of the file.
       context=from-pstn
       group=0
       channel => 1
       13.1.3 zaptel.conf
       Change the loadzone and defaultzone to “au”
       # Global data
       loadzone = au
       defaultzone = au
   If this card is installed after Asterisk has been loaded, you will need to configure it just like
   the X100P by using the following command on the command line:
rebuild_zaptel
Shutdown –r now
genzaptelconf
Restart again.
Shutdown –r now
       13.2.1 zapata-auto.conf
       Next, using config edit, look in the zapata-auto.conf file and you will see a list of all
       your channels in your TDM400P. Set up the trunks as trunks and the extensions as
       extensions in freePBX.
       When you open the Zapata-auto.conf file, it will look something like the illustration
       below.
       If in the illustration it shows channel 1 is your Zap extension then add a zap extension
       for channel 1 in freePBX and if it shows your Zap trunk is channel 2 you should
       create a zap trunk for channel 2 in freePBX.
       Once this is done, reboot your PC and when Asterisk starts, use freePBX to add a
       route for incoming calls or asterisk will not answer your trunk. Similarly, to make
       outbound calls you will need an outbound route. Set them up as per setting up routes
       in the earlier chapters of this document.
       If you have this card installed, you may need to edit the following files: zapata.conf
       and zaptel.conf as per the X100P card in the previous section.
       13.2.2 modprobe.conf
       You may need to edit the modprobe.conf to add the necessary option for usage in
       Australia (in later versions of Trixbox© you don’t need to do this):
       If exist, locate the line “install wctdm /sbin/ztcfg-- --ignore-install wctdm && /sbin/ztcfg” and edit it
       to reflect the following:
       Mar 10 13:30:09 asterisk1 kernel: Module 0: Installed -- AUTO FXO (AUSTRALIA mode)
       Mar 10 13:30:09 asterisk1 kernel: Module 1: Installed -- AUTO FXO (AUSTRALIA mode)
       Mar 10 13:30:09 asterisk1 kernel: Module 2: Installed -- AUTO FXO (AUSTRALIA mode)
       Mar 10 13:30:09 asterisk1 kernel: Module 3: Installed -- AUTO FXO (AUSTRALIA mode)
If you see an FCC mode then you will have an impedance mismatch.
       •   In Australia, for you to get Caller ID is actually having to apply to your Telco to
           have it activated on your line – this is not activated by default by your Telco
           (Optus or Telstra). If caller ID is not activated on your line, you will not get CID.
       •   If you already have caller ID activated and still don’t get caller ID, it’s time to have
           a look at the ZAP configuration file. Typically you may have to look at
           zapata.conf and/or zapata-auto.conf.
   Naturally if you are using an X100P clone for your FXO, the following exercise will
   probably be futile as the X100P, even at the best of time will probably not handle the CID
   properly. However if you are using a more substantial device such as the TDM400, then
   this may possibly help you towards getting the CID passed correctly.
   (caveat: This solution may not necessarily work for your installation but you have nothing to
   loose if you try)
   A participant (Shane B) in the Whirlpool Forum provided the solution below that will
   correctly pass the CID to Asterisk and your telephones:
You may need to set the following switches in your zapata.conf and zapata-auto.conf.
13.3.1 zapata.conf
       usecallingpres=yes
       callwaitingcallerid=yes
       threewaycalling=yes
       usecallerid=yes
       hidecallerid=no
       relaxdtmf=yes
       useincommingcalleridonzaptransfer=yes
       adsi=yes
       sendcalleridafter=2 ;you may need to add this switch
Amportal restart
If you are lucky, it should work. If not, you haven’t really lost anything.
   I have come across a few people in the various forums wanting to use their Sipura SPA-
   3000s as FXO front-end to their TRIXBOX© boxes. To help them in their endeavours,
   I've put the following together, as no one single source of information that I've found so far
   has a config that would actually work for me.
       Before you change anything, I'd suggest taking a snapshot (i.e. just save the .html
       page) of your current SPA-3000 configuration, just in case you ever need to refer
       back to your own customisations.
       If you're not already running the latest SPA-3000 firmware, then upgrade it to the
       latest version (at the time of writing, it's 3.1.5a). Take another snapshot for good
       measure. Nothing should have changed in your settings, except that you have a few
       extra options that you didn't have before.
       Now reset SPA-3000 back to factory defaults, because I'm only going to list the
       minimum changes required to keep things simple. Take another snapshot now too, in
       case you ever want to know what the defaults were.
       System tab
       DHCP: No
       Static IP: something on your local subnet e.g.; 192.168.1.200
       NetMask: 255.255.255.0
       Gateway: your router's IP address e.g.; 192.168.1.254
       Primary DNS: your ISP's primary DNS address e.g.; 203.12.160.35
       Secondary DNS: your ISP's secondary DNS address e.g.; 203.12.160.36
       Regional tab
       Dial Tone: 400@-19,425@-19;10(*/0/1+2)
       Busy Tone: 425@-10;10(.4/.4/1)
       Reorder Tone: 425@-10;10(.2/.2/1)
       Ring Back Tone: 400@-19,425@-19,450@-19;*(.4/.2/1+2+3,.4/.2/1+2+3,0/2/0)
       Ring 1 Cadence: 60(1.5/3.4)
       Ring 3 Cadence:
       Line 1 tab
       Proxy: IP address of your Asterisk box e.g.; 192.168.1.100
       Register Expires: 60
       Display Name: Whatever
       User ID: Asterisk extension number e.g.; 2000
       Password: password for that extension
       Silence Threshold: medium
       DTMF Tx Method: INFO
       Hook Flash Tx Method: INFO
       Dial Plan: (**|*xx|000|0011xxxxxxxx.|0[23478]xxxxxxxx|09xxxxxx|1100
       |122[135]|1222xxxxxxx|12510[12]|12554|1[38]00xxxxxx|13[1-9]xxx
       |2xx|393xxxxxx|3xxxx.|[4689]xxxxxxx|899060xxxxx.) for example
       Using method 1 above, it will be necessary for you to create an inbound route using
       the 0298765432 (or whatever you have defined) as your inbound route DID number.
       As this incoming call is identified by the (S0<:0298765432>) in the dial plan 1 setting
       of your SPA3000, this can be directed to any extension by the inbound route.
       Using method 2 above, you are not required to create an inbound route as the call is
       directed directly to asterisk and will be handled by the any DID / any CID catch all
       inbound route. Through this route, you can direct it to your IVR or any extension you
       like. This method is simpler if you only have one SPA3000, however if you are using
       multiple SPA3000, method 1 is the recommended method.
       User 1 tab
       Default Ring: 3
       Default CWT: 8
       General Settings:
       Outbound Caller ID: <0298765432> (for example)
       Maximum Channels: 1
       Dial Rules:    0+NXXXXXXXX (for example)
                      0011+ZXXXXXXXXXX.
       Trunk Name: telstra (for example)
       Peer Details:
       canreinvite=no
       context=from-pstn
       host=the IP address of your SPA-3000 (for example; 192.168.1.200)
       User Details:
       canreinvite=no
       context=from-pstn
       host=the IP address of your SPA-3000 (for example; 192.168.1.200)
       insecure=very
       nat=no
       port=5061 for example
       type=user
       username=PSTN
              If you are usingthe later versions of Trixbox©, the following instruction may not
              apply as you can create DISA from FreePBX option without having to resort to
              the manual configuration below – see DISA,
   Now that the SPA-3000 has been set-up to accept PSTN, TRIXBOX© can be turned into
   a PSTN to VOIP Gateway. You will not need a SPA-3000 if you have an FXO card
   installed.
   I need such a gateway because I often have to call overseas from my office. Needless to
   say, we don’t make private overseas calls from the office phone. I overcame this by
   calling my Asterisk box from the office and when it answered, I can then use asterisk to
   call overseas.
   I accomplished this through DISA – I have resorted to this manual method because in the
   initial release of Trixbox© , DISA did not work, as I would like it to. This has since been
   rectified
   [custom-pstn2voip]
   ; I use this to call VOIP from PSTN
   exten => s,1,Answer
   exten => s,2,DigitTimeout(5)
   exten => s,3,ResponseTimeout(10)
   exten => s,4,Authenticate(my password)
   exten => s,5,DISA(no-password|from-internal)
   I have Digital Receptionist answers all incoming calls (refer to Digital Receptionist in the
   previous section).
   In the previous section I have 5 options in Digital receptionist e.g. Press 1 for Ben, 2 for
   Rohani, and 3 for Norsurya. I did not announce the 4th option as I use it for DISA and is
   only known to me, besides, it requires a password.
   For option 4, I chose the radio button next to Custom App. In the custom app field I
   entered custom-pstn2voip,s,1
   When 4 is pressed, followed by the # key, during the announcement, the digital
   receptionist will ask for a password. On entering the correct password, the one defined
   in the example above, a dial tone will be heard. At this stage, you can start dialling the
   number you wish to call.
   Option 5, (which I have changes to the letter ‘t’, for timeout) is invoked if the caller does
   not select any option or if the DTMF tone is not recognised. This option can be directed
   to a Ring Group or to a human receptionist if you are using Asterisk in a business
   environment.
   DISA (Direct Inward System Access) allows you to dial in from outside to the Asterisk
   switch (PBX) to obtain an "internal" system dial tone. You can place calls from it as if
   they were placed from within.
   Normally you can do this via the Digital Receptionist and enter the unannounced option
   number known only to selected callers.
   The caller enters his/her password, followed by the pound sign (#). If the password is
   correct, the user is then given system dial tone on which an external call may be placed.
   This type of access has SERIOUS security implications, and GREAT care must be taken
   NOT to compromise your security.
   In my "MyMenu" that says, “Hi, you have reached the Sharif’s household. Press 1 for
   Ben, 2 for Rohani, 3 for Norsurya etc…” I have created an extra option – option 4 (best if
   you use a few digits) that has an "Action" of "Custom App", which reads, "custom-
   pstn2voip,s,1".
Then in extensions_custom.conf, I have added (do this towards the end of the file).
Change "12345678" to whatever digits you want your "DISA password" to be.
   The above is one way of doing it (the hard way). The easier way of doing it is through
   freePBX - see below.
   When you set up your digital receptionist, in the DISA dropdown selection, simply select
   PSTNtoVOIP as your DISA application.
   If you are using this method, there is a slight catch. When you choose the DISA option to
   call a number, you will be greeted with “Please enter your password followed by the
   pound key” and immediately you will get a dialtone. You may start dialling the password
   followed by # followed by the telephone number.
   E.g. If you have chosen to have a password e.g. 12345, and the number you wish to dial
   is 0292345678, you must dial the number thus: 12345#0292345678 without waiting for
   another dialtone, otherwise it will not dial out correctly and you will be wondering what
   happened. I hope this will be fixed up soon.
To configure the softphone, click on the hammer icon and you will see the following.
Profile Tab
Click OK
Network Tab
Click OK
STUN Tab
   In my case, I do not use STUN and therefore I left that section blank and Enable STUN
   check box un-ticked.
Click OK to close.
       Call Forward
       This is pretty simple to set-up. To forward an unanswered call to this extension, all
       you need to do is click on the Call Forward tab and enter the telephone number you
       want to forward your incoming calls to. You have 3 options of call forwarding –
       Always, On Busy or On No Answer. However this facility is only available if your PC
       is on and the softphone is active.
   You might want to set-up a couple of PCs with the softphone after which you may start
   testing your brand new Phone System by dialling each extension in turn.
If you use one of the softphone and dial 7777, Asterisk will simulate an incoming call.
The Flash Operator Panel is the one that comes with TRIXBOX©.
   Apart from Flash Operator Panel, There are a number of operator panels available. One
   that comes to mind can be found at SOFTPEDIA and another is HUDLite from Fonality.
   HUD will integrate nicely with TRIXBOX© and the support for HUD is already integrated
   within TRIXBOX©.
   The layout is configurable (button sizes and colours, icons, etc). You can have more than
   100 buttons active per screen. It also supports contexts: you can have one server
   running and many different client displays (for hosted PBX, different departments, etc).
   It can integrate with CRM software, by popping up a web page (and passing the CLID)
   when a specified button is ringing.
   FOP can be activated either from within freePBX by clicking on the Panel tab on the top
   of the freePBX screen or from TRIXBOX© User Mode Welcome screen.
       •   Hang-up a channel
       •   Using drag-&-drop to transfer a call
       •   Initiate calls by drag-&-drop
       •   Barge in on a call using drag-&-drop
       •   Set the caller id when transferring or originating a call
       •   Automatically pop up web page with customer details
       •   Click-to-Dial from a web page
       •   Mute/Unmute meet-me participants
       In this example, Putty is used to log in remotely to TRIXBOX© . Once logged in,
       change the directory to /var/www/html/panel
cd /var/www/html/panel
nano op_server.cfg
security_code=cowscomehome
       Close off nano and putty. Open your web browser and go to FOP. You should now
       be able to click on the little lock, put in your password and you will see it lock up. Now
       you can begin to have some fun.
   17.2 HUDLite
   HUDLite from Fonality integrates very nicely with Trixbox© and the HUD manager is
   already incorporated in Trixbox©. It has most of the necessary functionalities (if not all) of
   a modern operator switch panel where you can handle such tasks as:
       •   Answer Calls
       •   Transfer calls
       •   Hang up calls
       •   Put calls on hold etc.
       •   Monitor status of extensions just like the default FOP that comes with TRIXBOX©
           and more.
   To install HUDLite server, you must log in to Package (Trixbox Packages Tab) and select
   to install HUDLite server from the Package Manager.
       To set up HUDLite Admin, you will need to mouse ove the Asterisk Tab and select
       HUDlite Admin selection from the dropdown menu as shown below.
       When clicked with the mouse, you will be presented with the following screen where
       you may populate it with new devices..
       To populate the HUDlite Admin, click on New device and the manage device fields
       will be expanded. This is where you enter the credentials of the extensions that you
       want to register with HUD Manager.
The other three fields are not mandatory and you can leave them blank.
Click save.
       If you have more extensions to register, click on New device again and repeat this
       process as many extensions as you have.
       After downloading, simply click on the EXE file and HudLite will be installed in your
       Windows XP machine. Select the Typical setup option.
       Once installed, run HUDLite you will be prompted to enter your Username and
       Password:
       Enter your username and password as required. I would enter one of my extension
       number here and the extension password.
       Username: 2000
       Password: 2000
Click Next
       Next you will be asked for the server details. This is your TRIXBOX© credentials.
       However in the password field, don’t use your server password, instead use HUDLite
       default password of password.
       HUDLite will now start. Initially you will see just a blank hudlite screen like the
       illustration below, as it will take a few seconds for it to gather some details.
       After a few seconds, it will populate all the extensions that you have added in the
       HUD Manager.
       If after following the above instruction, and it does not work, make sure that you have
       the correct values in the setup above.
       Click on File -> Setting on the HUDLite screen, expand the Advanced setting and
       make sure that the fields are correctly set as the set-up instructions above.
parking_additional.inc
   ; do not manually enter parkinglot config information, use the parkinglot module
   ;
   ; the parking_additional.inc file is auto-generated by the Parkinglot Module, do
   ; not hand edit that file
   #include parking_additional.inc
   #include features_general_custom.conf
   [applicationmap]
   #include features_applicationmap_additional.conf
   [featuremap]
   blindxfer => ##                          ; Blind Transfer
   disconnect => **                         ; Disconnect Call
   automon => *1                            ; One Touch Record
   ;atxfer => *2                            ; Attended Xfer
   The following are other options that you can include in the general section of
   features.conf if necessary.
   Each call parked will be parked at that extension +1 e.g. if you have 3 calls that you need
   to park, the first call parked will be parked at ext. 71, the next call will be automatically
   allocated ext. 72 and the next ext. 73 and so on.
   This is handy if you want to manage the calls to be transfer. After parking the call, you
   may call the person you are transferring it to and tell him/her that there is a call on
   extension 71. The person can then dial 71 and get the parked call.
2. While all this is happening, the caller will be listening to the music on hold.
           3. If for any reason the person refused to take the call, you then hang up and
              dial 71 to pick up the call back to you and speak to the caller making the
              usual excuses “I am afraid Mrs. Roberts, Dr. Roberts is busy with his nurse and
              his office door is being locked from the inside” ☺ and the next time Dr. Roberts
              will always accept the calls from his wife.
E.g. to transfer to extension 2001, you simply dial ##2001 and hang up.
   When you are ready to take the call, dial 71 (or whatever the park extension is) and the
   call will be picked up again. While the call is being parked, the caller will be listening to
   your MOH music.
   Group call pickup is typically invoked by dialling ** from another phone in the call pickup
   group.
   For this purpose, the Privacy Manager option of the extension can be invoked, however I
   found that caller often get confused with the need to enter the 10 digits phone number as
   often they may have only 9 digits or more than 10 digits.
   This feature will force callers to record their names before the calls will be parked. The
   extension that you nominate will ring and on answering, you will be informed that there is
   a call waiting for you in a parked extension e.g. 71.
   After receiving the call and if you wish to take the call, hang up and dial 71 and you will be
   connected to the caller. Otherwise, just hang up and the caller will just have to leave a
   message in the voicemail. Real nifty ☺
   This is how I did it with my Asterisk. Since I am pretty simple myself, I just take the low
   road make it really simple.
[from-internal-custom]
   [who-r-u]
   exten => s,1,Background(privacy-unident)
   exten => s,2,Background(vm-rec-name)
   exten => s,3,Wait(2)
   exten => s,4,Record(/tmp/asterisk-stranger:gsm|5|15)
   exten => s,5,Background(pls-hold-while-try)
   exten => s,6,Goto(parkedcalls,70,1)
   exten => s,7,VoiceMail(2001@default)
   exten => s,8,Playback(Goodbye)
   exten => s,9,Hangup
   [parkedcalls]
   exten => 70,1,Answer
   exten => 70,2,SetMusicOnHold(default)
   exten => 70,3,ParkAndAnnounce(asterisk-friend:/tmp/asterisk-
   stranger:vm-isonphone:at-following-
   number:PARKED|40|local/2001@from-internal|who-r-u,s,7)
   exten => 70,4,Hangup
   Next I create a new extension using freePBX e.g. 222. Using a softphone, I connect to
   extension 222 and unconditionally forward all calls to extension 222 to extension 111 by
   dialling *72111
I then direct all my incoming calls from my PSTN trunk to extension 222.
   The result is, when there is an oncoming call from PSTN, the call will be sent to extension
   222 and in turn, the call will be forwarded to extension 111.
   When the call gets to extension 111, the caller will hear a message saying that,
   “unrecognised calls are not accepted and asking the caller to record his/her name after the tone”
   (or something to that effect). After the caller has complied and press the # key, the call
   will be parked.
   Extension 2001 will be called by Asterisk. When you answer the call, Asterisk will
   announce that there is a call by <name as recorded> on extension 71 (or 72 depending on
   how many calls are being parked). If you recognize the name recorded, or if you want to
   take the call, simply hang up and dial 71. You will be connected to the caller. While this
   is all happening, the caller will be put on hold listening to your MOH.
   If however you do not wish to accept the call, you simply hang up and do not dial 71. The
   caller will be asked to leave a message instead.
   Conference is pretty easy to set up, as there is very little to do. However, to set up
   Conference, a Zaptel card may be required (at least in my case as I don’t seem to be able
   to get it working without a Zaptel card installed). In the latest Trixbox 2, this seems to
   have been resolved.
In Trixbox, there are 2 .conf files that relates to conferencing. They are:
   meetme.conf
   meetme_additional.conf
       meetme.conf
       Ensure that you have the following 2 lines (only 2 lines in the file):
       [rooms]
       #include meetme_additional.conf
       meetme_additional.conf
       This is where the extensions for the meeting rooms are created. One line per room.
       You may have just one extension for your meeting room or you may have several
       meeting rooms.      In my case, I have 1 meeting room and therefore my
       meetme_additional.conf contains the following extension:
   Naturally there are some options that you may wish to have for the conference room.
   They are entirely up to you. The main important things are for you to create the
   conference room number and the conference name for you to know what that
   conference room is for. The rest of the fields are optional.
   Once these are done, from one of your phones dial, 8000 and you will be able to join the
   conference.
   You are now in the conference room and every time someone joins or leaves the
   conference, it will also be announced.
   To test this, go to another phone and also dial 8000. You should hear an announcement
   (if you are listening on the first phone), indicating that someone has joined the
   conference.
   If there are 2 (or more) of you, you will be able to talk to each other. If one of you hangs
   up, you will know about it.
       It seems that in some installations, the meetme directory may be missing from the
       /var/spool/asterisk (this has been rectified in the later ISOs).
       If this is the case, It may be necessary for this directory to be created otherwise if you
       have the user join/leave feature enabled, meetme will not function correctly.
       If you have the need to create this directory, do the following at root command
       prompt:
mkdir /var/spool/asterisk/meetme
Log in to your Asterisk box as root, and at the command prompt, do the following:
       cd /usr/src/zaptel
       make install
       /etc/init.d/zaptel stop
       /etc/init.d/zaptel start
               If you have enabled voice mail when setting up your extension, and you hear a
               stutter tone (not the normal dial tone) when you initially pick up your phone, it is
               indicating to you that you have a voice mail waiting.
   You must run setup-mail from the command line initially for Voice Mail and
   Notification to work in Trixbox.
   To enable voicemail on an extension simply "enable" it when you create the extensions
   from the freePBX GUI. If you require email notification of your voicemail, you may enter
   your email address in the email address field.
Click submit when done followed by the red bar on top of the scree.
       I have been having some problem to get mail notification to be sent to my email
       address. I later discovered that sendmail needed to be installed for this function to
       work (thanks Thunderbird1 for pointing this out to me). Sadly, this is not mentioned
       anywhere and has caused me major grief.
       To install sendmail with yam, you can do it on the Asterisk box itself or connect
       through SSH (I use putty to connect), by logging in as root.
       This installs the necessary files for configuration of the sendmail client. Select “y” for
       yes when prompted and sendmail will be installed.
Next you will need to do a little editing. I use nano to edit, thus:
nano /etc/mail/sendmail.mc
dnl define(`SMART_HOST',`smtp.yourprovider')
define(`SMART_HOST',`smtp.yourprovider')
       Then press CTRL-X, and type in Y, hit enter. You'll be asked for the file name you
       want "File Name To Write: /etc/mail/sendmail.mc", and hit enter.
make -C /etc/mail
/etc/init.d/sendmail restart
You should now be able to have your voice mails sent to you via email.
       20.1.2 /etc/hosts
       There is a couple of things that you will need to do otherwise your email, although
       sent to the email address, your email host may not accept the email if you do not
       have a valid DNS.
       Your mail server will not accept this as a valid DNS. Therefore you will need to use
       your valid Domain Name e.g. pbx.myasterisk.com. If you are like me, without a
       valid Domain Name, you should obtain one through DynDNS.
Using Nano, you will need to edit your /etc/hosts file from command line to this:
You may use an editor (such as nano) to edit /etc/hosts file through CLI.
                     If you are using SipBroker or Pennytel, its best not to make this change
                     as describe above, as SipBroker and Pennytel will resolve your DNS name
                     as the local host address of 127.0.0.1 as defined in the hosts file and not
                     your actual external IP address. To overcome this I substitute my DNS
                     hostname with another valid DNS name such as yahoo.com (as I have an
                     account with Yahoo – not sure about the legality side of this though).
       Next, if you wish, you will need to customize your email notification message in
       /etc/asterisk/vm_email.inc file and to include the actual IP address of your asterisk
       PC. I have found that this is best done through a text editor (e.g. Nano) as AMP
       tends loose the formatting character. In the later versions of Trixbox, this can be
       done through Config Edit.
       Change the entry in red to reflect your requirement e.g you may change vm@asterisk
       to FHC PBX and change Voice mail System to read Family Health Centre Voicemail.
       Once these are done, you will receive email notification of voicemail left in your
       voicemail box.
You may start testing it and your email received will look something like this:
Ben Sharif,
   If you wish to gi this path, it is strongly recommend you remove Sendmail and replace it
   with Postfix, with only 2 easy commands:
   Following this, edit your /etc/postfix/main.cf, (use nano and my smtp server is shown
   below, but you should be using yours) and add:
relayhost = smtp.ozemail.com.au
   Replace smtp.ozemail.com.au with your own smtp server. E.g. if your belong to OPTUS,
   it should be:
relayhost = mail.optusnet.com.au
   You should also edit /etc/asterisk/vm_general.inc and set the "serveremail" parameter to
   your real email address. This is to avoid messages with invalid from-addresses floating
   aimlessly in the Internet.
Postfix will now send all outgoing email to your ISP's mail server.
This is how I do it (you may have been told of other different methods).
20.3.1 Method 1
           1. Call my number and when the Digital Receptionist answers, I will dial my
              extension number prefixing it with an *. E.g. My extension number is 2001,
              so when the DR answers me, I will dial *2001
2. I will then be ask to leave a voicemail, but instead, I will dial * again.
            1. From freePBX Setup Screen, create a Misc Destination and give it a name
               of e.g. “Check VM”
            2. Select Feature Code Dial Voicemail (*98) from the dropdown menu.
            3. Submit the changes.
            1. Increase option. If you already have 7 options, this will be the 8th.
            2. Create an unannounced IVR selection e.g. selection no: 8
            3. For this option, select Misc Destination and from the drop down, select
               “Check VM”
            4. Save and don’t forget to click on the red bar.
            5. When you call your PBX from an external phone, DR will naturally ask you to
               make a selection. Selection 8 will not be announced, however you should
               select 8.
            6. DR will ask for a mailbox number
            7. Enter your extension number (which is also your mailbox number)
            8. Dr will then ask for your password
            9. And you will get your mailbox IVR prompt.
               Ensure that you have changed your Direct Dial to Voicemail message type, in
               General Setting, from Default to something else e.g. Unavailable. Otherwise
               when you use follow-me and the like, your custom recorded message will not
               be played back. The Asterisk default message will be played back instead.
   While sending and/or receiving Faxes is one of the available functions in TRIXBOX, there
   have been reports of various degree of success. This is very much dependant on the
   type of equipment used such as PC, processor speed, line quality etc.
   In the earlier incarnation of TRIXBOX (it was AAH for those old enough to remember), for
   the fax facility to work reliably, you will also need Newman Telecom’s NVfaxdetect. This
   can be downloaded FREE. This may require some modification and recompiling.
   SpanDSP allows Asterisk to receive faxes by converting the received data to .pdf format.
   This service must be installed. If you want to have this function, you will need to install the
   support for encoding incoming faxes as PDF. This support is not pre-installed with
   TRIXBOX although the necessary files are there for you to manually install.
   There has been mixed reactions on the ability of sending and receiving fax through
   Trixbox as such I would suggest that, if you are relying on fax, to use a dedicated fax
   machine and only use Trixbox for experimental purposes only (at this stage anyway).
   The Australia weather report reference file can be obtained from the following site:
   http://www.bom.gov.au/
   You may choose the reference file (text file) for the area that you are interested in. You
   do not need to manually download the file, instead only the file name is required to be
   noted and can be incorporated within the Trixbox’s extensions_trixbox.conf file later.
   The script will download the file for you in the background.
   The following are examples of available weather report files that you can reference in
   your script.
   I used Putty to log on to the Asterisk box remotely and used Nano to create a text file
   called “convert2wav” in the /usr/bin directory containing the following:
(This command is used to convert the weather text file to a .wav sound file).
   Once this is done, the permission for the “convert2wav” text file need to be appropriately
   set to allow it to be executed. To do this you need to run the following command from
   Command Line.
       The next step is to include the following in the extensions_trixbox.conf through the
       Config Edit option of TRIXBOX Maintenance Tab. Select an unused extension code
       e.g. *61, *63, *64 etc.
       Add the following example (*Note: The third line in each section (bold) should read as a
       complete single line- change the file reference in red to suit.).
       ; ##################################
       ; Forecast for Sydney Metro
       ; ###################################
       exten => *61,1,Answer
       exten => *61,2,Playback(national-weather-service)
       exten => *61,3,Playback(pls-hold-while-try)
       exten => *61,4,System(/usr/bin/wget -O weather.txt
                 ftp://ftp2.bom.gov.au/anon/gen/fwo/IDN10064.txt)
       exten => *61,5,Wait(1)
       exten => *61,6,System(/usr/bin/convert2wav)
       exten => *61,7,Playback(/tmp/weather)
       exten => *61,8,System(rm /tmp/weather.* -f)
       exten => *61,9,Hangup
       ; ######################################
       ; Forecast for the whole of NSW
       ; ######################################
       exten => *63,1,Answer
       exten => *63,2,Playback(national-weather-service)
       exten => *63,3,Playback(pls-hold-while-try)
       exten => *63,4,System(/usr/bin/wget -O weather.txt
                 ftp://ftp2.bom.gov.au/anon/gen/fwo/IDN10031.txt)
       exten => *63,5,Wait(1)
       exten => *63,6,System(/usr/bin/convert2wav)
       exten => *63,7,Playback(/tmp/weather)
       exten => *63,8,System(rm /tmp/weather.* -f)
       exten => *63,9,Hangup
       Restart asterisk and test. You will be presented with the weather report of the areas
       you have chosen.
       (Source Reference:
        http://forums.whirlpool.net.au/forum-replies.cfm?t=364420&p=1)
   This method is very slow and therefore is only suitable for a very fast PC. Depending on
   the speed of your computer during the .wav conversion, there may be about 1 minute or
   more delay between dialling the extension and the weather announcement. Therefore I
   have included step 3 telling the caller to hold while trying to connect.
   If you want to get rid of a couple of nasty characters, you can always add the following
   line or lines in the appropriate places and changing the characters that you want to
   discard or change,
   - but we are not going there. It may get too confusing. For the moment we will just stick
   with the batch file example above.
   Use Webmin to schedule a Cron job to run this batch file every 4 hours (or schedule it to
   suit your purpose). This will run the batch job at the scheduled time avoiding having to
   download the weather file and converting them to sound files when a caller chooses the
   weather report option.
   The sound files will always be available when a caller requires them without having to
   wait for them to be downloaded and converted.
       ; ##################################
       ; Forecast for Sydney Metro
       ; ###################################
       ; ######################################
       ; Forecast for the whole of NSW
       ; ######################################
       Restart asterisk and test. You will be presented with the weather report of the areas
       you have chosen without any delay whatsoever.
   ; ##################################
   ; Forecast for Sydney Metro
   ; ###################################
   [custom-weathermetro]
   exten => s,1,Answer
   exten => s,2,Playback(national-weather-service)
   exten => s,3,Playback(pls-hold-while-try)
   exten => s,4,Playback(/tmp/weather1)
   exten => s,5,Hangup
   ; ######################################
   ; Forecast for the whole of NSW
   ; ######################################
   [custom-weathernsw]
   exten => s,1,Answer
   exten => s,2,Playback(national-weather-service)
   exten => s,3,Playback(pls-hold-while-try)
   exten => s,4,Playback(/tmp/weather2)
   exten => s,5,Hangup
   When you create your menu option in Digital receptionist, e.g. “Press 6 for Sydney
   weather report, press 7 for the whole of NSW weather report”, select the custom app: and
   enter the appropriate custom procedures above. See example below:
   You should also forward port 80 on your router to point to the local IP address of your
   Asterisk box.
   23.1 httpd.conf
   If you are using Optus Cable, you may not be able to use port 80. However this can be
   overcame by changing the port to 8080. To do this, you will be required to change one
   setting in the httpd.conf file which resides in the /etc/httpd/conf directory.
   If you are not a Linux fan, I suggest you use either webmin or putty to access the file. I
   use Putty to log on remotely to the console and edit the file with Nano using the following
   command.
nano /etc/httpd/conf/httpd.conf
In the file, look for the following entry (marked in red) - below :
   Don’t panic if you can no longer access AMP through you web browser. You simply
   append: 8080 after the address e.g. 192.168.1.101:8080
   Since I am on Optusnet cable, I only have the privilege of a dynamic IP hence I registered
   for a Domain ID with DynDNS pointing to my Dynamic IP address. Every time my
   dynamic IP changes, DynDNS will point to the new IP address. This way I don’t have to
   keep changing IP addresses. I simply use the same DNS ID eg: myasterisk.freedns.com
   As mentioned above, you may create a SIP extension instead, if you so wish but you
   must ensure that you set “nat” field to “yes” ( in the device option) instead of “never” as
   illustrated in the screen below - see red arrow.
   24.2 IAX.Conf
   The following is the content of my iax.conf file.
       iax.conf
       [general]
       bindport = 4569 ; Port to bind to (IAX is 4569. Forward this port to your Asterisk box)
       externip = <your fixed external IP> or
       externhost = <myasterisk.freedns.com>
       localnet = 192.168.1.0/255.255.255.0
       bindaddr = 0.0.0.0          ; Address to bind to (all addresses on machine)
       delayreject = yes
       disallow=all
       allow=g729
       allow=ilbc
       allow=gsm
       allow=g723
       allow=alaw
       allow=ulaw
       jitterbuffer = yes
       mailboxdetail = yes
       #include iax_additional.conf
       #include iax_custom.conf
   24.3 Sip_Nat.Conf
   The only other .conf file that requires attention is the sip_nat.conf in case you want to
   use SIP. If you do, ensure that you have forward ports 5004 – 5082 as well. My file is as
   per the example below.
       sip_nat.conf
       nat=yes
       externip=<your fixed external IP> or
       externhost=< myasterisk.freedns.com> (see note)
Those are the only 2 .conf files that require changing if needed.
   Setting up IDEFISK is very simple. All you have to do is download the file, extract it and
   save it in its own directory.
Click on the idefisk.exe and just configure it like the example below.
       The next option to take care of is the Account option. Apart from that, there is nothing
       else critical to be done for you to use IDEFISK.
   The rest of the options are there for you to set up your sound preference and customize
   your look and feel. They are pretty straightforward.
Now you are ready to go on the road with an Asterisk extension under your arm.
   For those who do record conversations, the recording are kept in the
   /var/spool/asterisk/monitor directory or you can monitor the recording through the ARI
   interface.
   If you want to monitor all the calls, you will need to log in as admin with the default
   password of ari_password.
   To play the recording, simply click on the Play link related to the extension that you want
   to listen to, in the screen that follows.
   To enabled this feature, the following Dial Command Option must be enabled in freePBX
   General settings Asterisk Dial command option and Asterisk Outbound Dial
   command option fields by adding the following flag in the fields.
   w: Allow the called user to start recording after pressing *1 (Asterisk v1.2)
   W: Allow the calling user to start recording after pressing *1 (Asterisk v1.2)
   Some users have noticed that the *1 need to be pressed very quickly for this feature to
   work. This can be remedied by adding the following line in the features,conf file under
   the general section.
featuredigittimeout = 1500 ;(the default is 500 which is too fast for an old guy like me
   I never have the need to use STUN. The list below is provided for those who have the
   need to use public STUN Servers. These are the servers that I am aware off - there may
   be others.
   stun.xten.com                    stun1.noc.ams-ix.net
   stun.fwd.org                     stun.voipbuster.com
   stun01.sipphone.com              stun.voxgratia.org
   I was alerted of this facility in Outlook® and Asterisk® and asked to prove the application
   and publish a simplified instruction in this guide.
   To get started, you will need to edit manager_custom.conf file. The easiest is to use
   freePBX Config Edit (the easiest way!)
   On opening the manager_custom.conf file, you will notice the following, which you will
   need to do a tiny weeny edit:
   [phpconfig]
   secret = php[onfig
   deny=0.0.0.0/0.0.0.0
   permit=127.0.0.1/255.255.255.0
   read = system,call,log,verbose,command,agent,user
   write = system,call,log,verbose,command,agent,user
   [phpagi]
   secret = phpagi
   deny=0.0.0.0/0.0.0.0
   permit=127.0.0.1/255.255.255.0
   read = system,call,log,verbose,command,agent,user
   write = system,call,log,verbose,command,agent,user
   [AstTapi]
   secret = AstTapi
   deny=0.0.0.0/0.0.0.0
   Under the [AstTapi] User context, remove the # from the permit line and change the
   192.168.1.0 to the network address of your network. In my case I left it as it is because
   my network is under 192.168.1.0 (see red highlight).
Fire up Outlook®.
   User Channel: (your extension – the extension you want Asterisk to ring before
   connecting you the number you are calling) e.g. sip/2001
You can now start making calls from Outlook using the click-to-dial facility.
   To do this, you will need to edit extensions_custom.conf by adding the lines below
   containing the relevant exten expressions.
   ; #############################################################
   ; Speed Dial to some predefined numbers (added by Ben 2/12/2005)
   ; #############################################################
   You will need to substitute the example phone numbers above such as 6140036xxxx with
   the real phone numbers.
   When 236 (which is BEN) is dialled, you will hear a voice prompt saying “Please wait
   while I connect your call” followed by Asterisk calling Ben’s Mobile number which is
   61400336510 using the Pennytel SIP trunk.
Pennytel SIP trunk was called Pennytelsip when it was initially set up.
   The call will be tried for 60 seconds (,60) and while the call is being attempted, the caller
   will be listening to a MOH tune (,m) instead of the ringing tone. You may however
   change it to a ringing tone by substituting the “m” with a “r” or remove “,m” altogether
Once you have done that, click on Update and re-read the config. That’s all there is to it.
   TRIXBOX has included a built-in speed dialling utility amongst the goodies that comes
   with it. Numbers 300 to 399 has been reserved for this purpose.
   To add a number to your speed dial list, you simply pick up one of your extensions and
   punch in 3003XX61212345680 (assuming 61212345680 is the number you want to save
   in your speed dial list) where 3XX is the speed dial code for 61212345680 (substitute 3XX
   for the position e.g. 301).
   After doing that, Asterisk will confirm the code and the number that you have just
   registered. If you want to make correction to or change the telephone number that you
   have entered simply repeat the process.
   In the above example, every time you dial 301 Asterisk will dial out the number
   associated with that code. In this case, it is 61212345680.
   Ensure that you enter the number to be called in the same format that is supported by
   your Asterisk dialplan.
   To look up speed dial numbers, simply dial * followed by the 3-digit speed dial code, e.g.
   *301. This will tell you the number stored in speed dial position 301.
   Here you simply enter the Phone number of the party you wish to call, the name and the
   Speed Dial Code in the appropriate fields as per the example below. Submit change
   when done.
   To call the Speed dial, e.g. you want to call Ben Sharif, simply dial *069 (the *0 tells
   Trixbox that you want to use the Speed Dial and the 69 is the Speed Dial Code for Ben
   Sharif).
   Naturally if you have a big list of Names and Phone Numbers that you want to enter in
   your Trixbox Phone Book, you have the option of uploading the list. You have to scroll
   The “Import from CSV” is a misnomer because, if you havae created a list using EXCEL
   and trying to import the list, it will not work since EXCEL CSV file is a comma delimited
   one where as freePBX is expecting a semi-colon delimited file. Mousing over the word
   file will give you the format it is expecting;
“Name”;Number;Speeddial code
   Any speeddial code that already exist in the phone book cannot be reused. If you want to
   use an existing speeddial code in your so called “CSV” file, the existing entry in the phone
   book must first be removed.
From the Windows Messenger dialog box, go to Tools -> Options ->Accounts:
           •   Check the [My contacts include users of a SIP Communications Service] checkbox.
           •   Enter "sip:<your extension>@<Asterisk Address>"
               (e.g.."sip:206@192.168.1.101") in the [Sign-in name] field
   In order for Windows Messenger to work as a voice communication device, you must
   have a microphone and speaker(s) connected to your PC.
   Verify that Windows Messenger has successfully registered with Asterisk by logging in to
   Asterisk.
    freePBX -> Tools -> Asterisk Information. – this is available as an addon (see NOTES
   on Adding the missing Maintenance Modules)
   You should see under SIP Registry that the Windows Messenger is registered as a
   user/phone number of 206, with a contact URL of your local PC IP Address e.g.
   192.168.0.11, among other registration information.
   Note: Windows Messenger 5.0 or later has support for VoIP communications but it seems
   that it may create problems with chat or other features. For this purpose, please focus
   your testing on VoIP only.
   I have 2 different locations, the Main Office (def.com.au) with about 11 extensions and
   another office in a different location (xyz.com.au) about 20 km away with 9 extensions.
   The main office is the only box that will have accounts with different VSPs and all external
   communications are through the main office Asterisk box. I settled for the simplest
   solution and after some fiddling around I managed to get them to work the way I wanted it
   but not happy with it, I solicited some advise from a friend (thanks to Mark Brooker) who
   provided further assistance.
   Instead of being verbose in my explanation, I will just create a few tables outlining what I
   did. I hope this will help those in the same position as I am, to set 2 very basic systems
   together (you can refer to DUNDi for a more complete solution). A little tutorial on DUNDi
   can be found here.
                                 System 1                          System 2
                                 def.com.au                        xyz.com.au
    IAX Trunk
    Outgoing Dial Rules:         XX.                                  XX.
    Trunk Name                   Parramatta                           MainOffice
                                 host=xyz.com.au (or System 2 IP) host=def.com.au (or System 1 IP)
    Peer Details                 secret=xxxyyy                        secret=xxxyyy
                                 type=peer                            type=peer
                                 username=91000                       username=90000
    User Context                 Leave blank                          Leave blank
    User Details                 Leave blank                          Leave blank
    Register String              91000:xxxyyy@xyz.com.au              90000:xxxyyy@def.com.au
   Note: Registration isn’t really necessary. It will still work without it unless you use Dynamic IP.
System 1 System 2
    Extensions
    Phone Protocol               IAX                               IAX
    Extension Number             90000                             91000
    Extension Password           xxxyyy                            xxxyyy
    Fullname                     Parramatta                        Main Office
    Voicemail & Directory        Disabled                          Disabled
    Outbound Routing
    Route Name                 Parramatta                         MainOffice
    Route Password             Leave Blank                        Leave Blank
                               6XXX                               XX.
    Dial Patterns              (6001 to 6009 are Parramatta       (Apart from Local extensions, all
                               Office extensions)                 others go via Main Office)
    Trunk Sequence             IAX2/Parramatta                    IAX2/MainOffice
   The above Outbound Routing rule assumes that you do not wish to use a dialling prefix. If
   you want to use a prefix to dial the remote extensions and to use the remote routing rules,
   you may place a prefix e.g. 9|6XXX and 9|XX. for system 1 and system 2 respectively
   instead of just 6XXX and XX.
                    While this method will provide some rudimentary security (though pretty
                    weak), as it requires an extension to be created for the peer Asterisk box, it will
                    not pass the calling party extension number to the remote Asterisk box.
                    Instead, it will pass the Trunk ID only and all calls will seem to come from the
                    same trunk and not individual extension – I did say that this is a simple
                    solution.
   Unlike the first method, this second method will pass the Caller ID to the receiving party.
   The receiving party will actually get the callers’ extension number/ID instead of the
   extension number of the peer Asterisk box.
Rather than being verbose, I will illustrate this method using tables as follows:
                               System 1                           System 2
                               def.com.au                         xyz.com.au
    IAX2 Trunk
    Outgoing Dial Rules:       XX.                                XX.
    Trunk Name                 InterOffice                        InterOffice
                               host=xyz.com.au (or System 2 IP)   host=def.com.au (or System 1 IP)
    Peer Details               Qualify=yes                        Qualify=yes
                               type=peer                          type=peer
    User Context               InterOffice-In                     InterOffice-In
                               context=from-internal              context=from-internal
    User Details               host=xyz.com.au (or IP)            host=def.com.au (or IP)
                               type=user                          type=user
    Outbound Routing
    Route Name                InterOffice                        InterOffice
    Route Password            Leave Blank                        Leave Blank
                              6XXX                               XX.
    Dial Patterns             (6001 to 6009 are Parramatta       (Apart from Local extensions, all
                              Office extensions)                 others go via Main Office)
                              9|XX. (To call external number
                              via Main Office)
    Trunk Sequence            IAX2/InterOffice                   IAX2/InterOffice
   This method is by far the simplest method where the boxes are treated as friend to each
   other. Like Method 2, registration is not required and this method will also pass the Caller
   ID to the receiving party.
                              System 1                           System 2
                              def.com.au                         xyz.com.au
    IAX2 Trunk
    Outgoing Dial Rules:      XX.                                XX.
    Trunk Name                InterOffice                        InterOffice
                              host=xyz.com.au (or System 2 IP)   host=def.com.au (or System 1 IP)
    Peer Details              Qualify=yes                        Qualify=yes
                              type=friend                        type=friend
    User Context
    User Details
System 1 System 2
    Outbound Routing
    Route Name                InterOffice                        InterOffice
    Route Password            Leave Blank                        Leave Blank
                              6XXX                               XX.
    Dial Patterns             (6001 to 6009 are Parramatta       (Apart from Local extensions, all
                              Office extensions)                 others go via Main Office)
                              9|XX. (To call external number
                              via Main Office)
    Trunk Sequence            IAX2/InterOffice                   IAX2/InterOffice
   All the above examples assume that both Asterisk boxes have Public Fix IP address. If
   you have Dynamic IP addresses, you will need to register both the boxes with DynDns to
   obtain a valid DNS ID. If you are a part of a Corporate LAN, than you will have no need
   to worry about DynDns and what not.
Warning: You must provide for security, as this is pretty wide open.
   Like all installation, you must provide for security. As different installation resorts to
   different types of security arrangement, I will leave that to the individual implementer to
   deal with the security issues.
                    Except for local traffic, all external and inter-office (inter-branch) traffic goes
                    via Box A. – with the appropriate dial plan of course.
   Both the above methods, while useable for a basic configuration, will not provide you with
   a complete solution. To provide a complete solution is beyond the scope of this
   document.
   The following link will provide further reference for connecting two Asterisk boxes together
   http://www.voip-info.org/wiki/view/Asterisk+-+dual+servers
   If you require a complete solution tailored to your exact requirement, my advise to you is
   to hire a VOIP consultant.
   Personally I really wouldn’t do this as it is simpler to get a redirection to the new number from
   the exchange.
   In this example, lets say that all calls coming to your head office Trixbox PABX made on
   phone number 12345678 need to be sent to your Trixbox PABX in a different location.
   Let us call your Head Office PABX Box-A and your remote PABX Box-B and calls coming
   in to Box-A to be sent to Box-B.
   There are a number of ways that this can be achieved but most involved editing conf files
   and adding extra codes in the conf files. Unless you are quite comfortable with doing this,
   it can be quite daunting to the uninitiated.
   The example I am illustrating here does not involve editing any conf file. All can be done
   through freePBX. It is a little long winded but you don’t have to touch any of the conf files.
6000
       To unconditionally forward calls made to this extension to extension 6000, you need
       to connect to extension 500 using a softphone and dial *726000. Any calls to this
       extension will be unconditionally forwarded to extension 9000.
   i. Create a Trunk
       Trunk name: TransferTrunk. Leave the peer details blank.
context=from-trunk
   That is all we need to do and from now on, calls that come in to Box-A on your phone
   number 12345678 will be directed to extension 500 of Box-A. However, since all calls to
   extension 500 has been unconditionally redirected to extension 6000, asterisk will forward
   the call to extension 6000 which your outbound route will pick up and send to Box-B.
   Although there are separate voice sets that can be used, sometimes we only require a
   few prompts and not the entire voice set.
   However, if you want to manually cut the script, you can do the following (personally I
   wouldn’t bother – why re-invent the wheel?). Under the [from-internal-custom] context
   of extensions_custom.conf, add the following codes.
[from-internal-custom]
   To start recording, use one of the phone extension and dial 5678. At the beep, start
   recording the voice prompt.
The voice prompt will be saved as my-recording.gsm (gsm format) in the /tmp directory.
When completed, hang up and dial 5679. The voice prompt will be played back.
   Once you are satisfied, rename the file to something related and recognisable e.g.
   my_office_business_hours.gsm.       The file should then be moved to the
   /var/lib/asterisk/sound directory.
   The file can be played through your custom applications or prompts using the Playback
   or Background function of Asterisk.
   A good information on Asterisk sound files and how to create them can be found here
   http://voip-info.org/wiki/view/Asterisk+sound+files
   Create a subdirectory for the particular language (eg: ‘au’ for Australian English, ‘fr’ for
   French, ‘it’ for Italian etc.) in the /var/library/asterisk/sounds directory, e.g.
   /var/library/asterisk/sounds/au and send all your prompts sound files there. Also create
   the language directories in the digits, letters etc directories, and send the entire prompt
   files there.
   Add the following line in the iax.conf and sip.conf configuration file under [general]. In
   zapata.conf configuration file the line should be added under [channels].
               You may use the Edit Configuration facility of TRIXBOX, otherwise you can use
               nano at the command prompt of your Asterisk box (or SSH to your Asterisk box) to
               edit the files that resides in the etc/asterisk directory.
   Trixbox will be able to play virtually any sound that it has the codec for e.g. wav(pcm),
   wav49, gsm, g711, g729 etc. However, the gsm format seems to be the common format
   used for the default voice prompts.
       Since the WAV format is the most common format that is being adopted when
       recording with a windows based PC, and most times, the windows based WAV format
       does not play well with asterisk, below is a method of converting the windows
       recorded WAV format to GSM using SOX.
Your result will be better if you record your sound files in mono, 16 bit, 8000 Hz.
       After recording the WAV sound files, transfer the sound files to the TEMP directory of
       the Trixbox PC. In this example, let,s call one of the sound files hello.wav.
           Login as root and change directory to the directory where you have transferred
           the sound files to e.g. cd /tmp
• If your sound files were recorded in mono but NOT 16 bit, 8000 Hz
           •   if your sound files were recorded in ADPCM wav files, to convert to standard
               wav file;
           Next, move the sound file to the sound directory where all your prompts are
           stored and you are done.
       You may also convert a number of WAV files at once using the following command.
       In this example, lets assume that the files were all recorded in stereo;
       Starting from Asterisk version 1.2.0, the .sln (SLINEAR) format seems to be the
       format that is being adopted (the GSM format is still commonly being used), so don’t
       worry about converting your existing prompts.
Further reference for converting wav sound files can be found here at voip-info.org.
You may also need to add the following, under [channels] in your zapata.conf file:
musiconhold=default
   Pretty much any mp3 will work with Trixbox. Prior to that, it's better to convert it to a
   standard format. When converting my MP3 music, I use FreeRip and convert the music
   as per the following:
   To customise your music to your favourite, you may need to create a new music category
   directory to hold your favourite music. Do this through the freePBX “On Hold Music” GUI
   interface. I call my category favourites.
   Upload your favourite music to this directory. Again, do this through the freePBX GUI.
   Once finished uploading, click the “Enable Random Play” button and the red bar.
   Make a little change to your musiconhold.conf file like the example below (this way you
   don’t have to delete the music in your default directory).
You will now have to get used to the newer approach (it no longer uses the [classes] tag):
   The musiconhold.conf files in 1.2 is now set out differently as per the example of my file
   below:
   musiconhold.conf
   ;
   ; Music on hold class definitions
   ; This is using the new 1.2 config file format, and will not work with
   1.0
   ; based Asterisk systems
   ;
   [default]
   mode=files
   ;
   ; valid mode options:
   ; quietmp3 -- default
   ; mp3 -- loud
   ; mp3nb -- unbuffered
   ; quietmp3nb -- quiet unbuffered
   ; custom -- run a custom application
   ; files -- read files from a directory in any Asterisk supported format
   ;
   directory=/var/lib/asterisk/mohmp3/favourite ;<- I pointed this to my favourite
musiconhold_additional.conf
       [acc_1]
       mode=files
       directory=/var/lib/asterisk/mohmp3/acc_1/
       random=yes
   While freePBX does not have a ready method of doing it from the GUI, we can trick the
   system into doing it with a simple creative modification. Here goes.
   Create 3 separate music categories (Rock, country and classical) and populate them with
   MP3s or whatever that turns you on.
   [custom-department_1]
   exten => s,1,playback(pls-wait-connect-call)
   exten => s,n,SetMusicOnHold(country)
   exten => s,n,Dial(SIP/2001,60,r)
   exten => s,n,Macro(vm,2001); voice mail to extension if no answer
   exten => s,n,Hangup
   [custom-department_2]
   exten => s,1,playback(pls-wait-connect-call)
   exten => s,n,SetMusicOnHold(classical)
   exten => s,n,Dial(SIP/2002,60,r)
   exten => s,n,Macro(vm,2002); voice mail to extension if no answer
   exten => s,n,Hangup
   [custom-department_3]
   exten => s,1,playback(pls-wait-connect-call)
   exten => s,n,SetMusicOnHold(Rock)
   exten => s,n,Dial(SIP/2003,60,r)
   exten => s,n,Macro(vm,2003); voice mail to extension if no answer
   exten => s,n,Hangup
Assuming 2001,2002 and 2003 being the extensions of the various departments,
   Below is what I have to do to get Streaming On Hold for my system. I realised that it is
   not the best method, but for the sole purpose of getting Music on Hold, it got me working.
From command line, find out if you have mpg123 installed using the following command.
mpg123 –v
   You will find out if you have mpg123 installed or not and its version number. The version
   that we want is mpg123-0.59r.
   Since I do not have mpg123 installed, first I have to download and install mpg123 - it is
   not included in Trixbox implementation of Asterisk. To get mpg123 I have to log on as
   root and at the command prompt I did the following:
       cd /usr/bin
       wget http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz
       tar –zxvf mpg123-0.59r.tar.gz
       cd mpg123-0.59r
       make linux
       make install
       ln -s /usr/local/bin/mpg123 /usr/bin/mpg123
   I have to make a directory for the streaming music. You can do this though the freePBX
   GUI or manually. In this example, I have shown the manual method.
       su asterisk
       cd /var/lib/asterisk/mohmp3/
       mkdir stream
   Next I need to create a zero length dummy MP3 file for this purpose in the
   /var/lib/asterisk/mohmp3/stream directory (this can be done manually).
       cd stream
       touch stream.mp3
       exit
   Open the musiconhold.conf file using the Config edit option on your Trixbox and add the
   following lines on top of the file;
       [classes]
       default => quietmp3:/var/lib/asterisk/mohmp3/stream,http://128.177.3.80:4064/
and leave everything else out (or commented out) like my example below.
       [classes]
       ;default => quietmp3:/var/lib/asterisk/mohmp3/stream,http://202.6.74.107:8060/triplej.mp3
       default => quietmp3:/var/lib/asterisk/mohmp3/stream,http://128.177.3.80:4064/
The lines in BOLD are the lines that was added to the musiconhold.conf file.
amportal restart
   The above is not necessarily being the best way to approach it but that is the only way
   that I know of for now. I would like to hear fron those with alternative ways.
The following are addresses where you may find some streaming music for your MOH.
   Provision for flexibilities was built in this tool. You can schedule your backup, Daily,
   Weekly, Monthly, Ad-Hoc and even hourly if you wish to. Therefore there is no excuse for
   not making a regular backup.
I have chosen to schedule a Weekly (on Sundayst) backup as per the illustration above:
       •   In the Schedule Name, I have given it a name Weekly (to signify that it is a
           weekly job)
       •   I have also selected all the items to be backed up – VoiceMail, System
           Recordings, System Configurations and CDR only.
       •   Next from the Run Backup drop down choice, I have chosen Weekly (on
           Sundays)
   Naturally you can schedule numerous backups. It is up to you to decide. If you are
   wondering where it is being stored, it is here /var/lib/asterisk/backups. The backup files
   are identified by the backup names.
              If this is the first time you schedule a backup, it is advisable to do the backup right
              away by selecting Now from the Run Backup drop down selection box. After this is
              done, you may start scheduling your regular backup by selecting the appropriate
              option presented to you.
              .
   This is a very simple procedure. All you need to do is click on the Restore option and the
   rest are all a matter of choosing what it is that you want to restore.
   For security reason you should change the Admin password. To do this, click on 'My
   Account' in the upper right-hand corner, then click on the 'Change Password' button
   underneath 'Users: Administrator (Admin) in the center-left of the screen.
Change it to a new password and confirm your new password and click 'Save.'
   Now it's time to set up your contacts. I will start off setting up a couple of my internal
   extensions.
   Click on 'My Account' again and then click the 'Edit' button.
   Change 'Asterisk Phone Extension' to your Asterisk extension. My extension is 2001.
While you are at it, change your time zone and date format as well.
   Click on the contacts tab and then select 'Create Contact' from the left hand Shortcuts
   menu.
   Firstname: Norsurya
   Last name: Sharif
   Home: 2002
Add another and another if you want to, using the method above.
   At this point, you may find that you are unable to make a phone call through SugarCRM.
   This is due to a little bug in the popup_picker.php (this bug may have been fixed by the
   time you read this, but at the time of writing, this bug exists).
To fix this bug, you need to edit popup_picker.php by doing the following:
cd /var/www/html/crm/modules/Contacts
nano Popup_picker.php
To
You can add multiple users who will each have their own settings/contacts etc.
   The following are links, which may interest USB phone users, where appropriate drivers
   may be found. Users may have to try different drivers to find a suitable one.
   http://www.yealink.com/english/support.htm
   http://www.packetizer.com/products/
   http://www.sednacomputer.com/products/se-p1k.html
   http://www.welltech.com/product_e_06.htm
   http://www.waytec.com.au/download.htm
   http://www.pc-telephone.com/free-phone.htm
   http://www.sjlabs.com/usbphone/SJphoneDriverATCOM-AU-100.exe
g729 does not come preinstalled with Asterisk – you will need to purchase it.
   So the more bandwidth you have, the less need for a higher compression ratio and the
   less powerful the CPU that will be needed.
   Most VoIP providers/hardware/licensed software will support G711 and G729 (However
   be sure to check this before purchasing hardware, or signing up with a VoIP provider!),
   with G711 requiring almost 3 times as much bandwidth, and providing excellent quality
   and the G729 providing quality similar to a good mobile call but using less bandwidth.
   Below are the approximate bandwidth requirements for Several Common VoIP
   Compression Algorithms using SIP. They vary slightly depending on the protocol used.
   The following links will give you some indications of the bandwidth usage of the various
   codecs that you may be using or contemplating on using.
   http://www.asteriskguru.com/tools/bandwidth_calculator.php
   http://www.cisco.com/en/US/tech/tk652/tk698/technologies_tech_note09186a0080094ae2.shtml
   http://www.voip-calculator.com/calculator/lipb/
   http://www.connect802.com/voip_bandwidth.php
   http://www.newport-networks.com/pages/voip-bandwidth-calculator.html
   There are others. All you have to do is Google for them ☺
       DISCLAIMER:
       You might have to pay royalty fees to the G.729/723 patent holders for using their
       algorithm.
       Before downloading the codec module you need to verify what your processor type is,
       as to get a compatible compiled codec.
# cat /proc/cpuinfo
       Look specifically at the model name and the flags. The following is an example of the
       process that I am using.
       Process:            0
       vendor_id:          GenuineIntel
       cpu family:         6
       model:              8
       model name:         Pentium III (Coppermine)
       stepping:           3
       cpu MHz:            648.110
       cache size:         256 KB
       fdiv_bug:           no
       hlt_bug:            no
       f00f_bug:           no
       coma_bug:           no
       fpu:                yes
       fpu_exception:      yes
       cpuid level:        2
       wp:                 yes
       flags:              fpu vme de pse tsc msr pae mce cx8 mtrr pge mca
       cmov pat pse36 mmx fxsr sse
       bogomips:           1297.41
       From this information we can see that it is a Pentium III processor and it is using sse.
       This is the 2 bits of required information that we need. If you don’t see sse in your
       flag then the file you need must contain the words no-sse.
       So from the information above to obtain the G729 codec we need to get the file
       codec_g729-gcc-pentium3.so and for the G723 codec we need to get the file g723-
       gcc-pentium3.so
       The gcc represents the way the module was compiled. This is your most likely
       choice. To view the different type of compiled version look at this file
       http://kvin.lv/pub/Linux/Asterisk/README
Now that we know what file we need you can now download the appropriate file.
       # wget http://kvin.lv/pub/Linux/Asterisk/built-for-asterisk-
       1.2/codec_g729-gcc-pentium3.so
For Pentium IV
       # wget http://kvin.lv/pub/Linux/Asterisk/built-for-asterisk-
       1.2/codec_g729-gcc-pentium4.so
       # wget http://kvin.lv/pub/Linux/Asterisk/built-for-asterisk-
       1.2/codec_g723-gcc-pentium3.so
For Pentium IV
       # http://kvin.lv/pub/Linux/Asterisk/built-for-asterisk-
       1.2/codec_g723-icc-pentium4.so
If Asterisk does not start then you may need to try icc files instead of gcc.
   I have also pre-recorded a voice prompt to instruct the caller what to do after the second
   dial tone.
       ;##############################################
       ; To get outside line through ZAP - Ben 22-12-2005
       ; after dialling 0 will get a second dial tone.
       ; Then dial the number required.
       ; No need to press the send button after the second number dialled
       ;##############################################
       The example above is based on systems that have Zaptel card (e.g. TDM400 or
       X100P etc.) installed. Note:* If you're using a PRI line, you need to enable 'overlapdial'
       in /etc/asterisk/zapata.conf for this to work.
       Using SPA3K will be a little tricky. I am describing how I got around it (assuming that
       you have set up the SPA3K as described in this document), however there maybe
       other method.
1. In the SPA Line 1 Tab, I have included the following entry in the dialplan:
<0:#><:@gw0>)
(**|*xx|xx.|<0:#><:@gw0>)
       ;##############################################
       ; To get outside line through SPA3K - Ben 25-12-2005
       ; after dialling 0 will get a second dial tone. Then dial the
       ; number required. No need to press the send button again
       ;##############################################
       Every time when I dial ‘0’, the SPA3K will send it to Gateway 0, which is the PSTN
       line and present me with a second dial tone.
   Imagine what will happen if you want to use the PSTN line to call emergency 000 (in
   Australia) and someone else was hogging the line. The sensible way is for Asterisk to
   disconnect the line and allow you to make the emergency call instead.
   The following method will provide you with the facility, however you need to do some
   editing to the extensions_custom.conf file in /etc/asterisk.
   ;###################################################
   ; Give priority to emergency number by disconnecting existing user
   ; if using the PSTN line first, otherwise simply call the emergency number.
   ;###################################################
   exten => 000,1,Background(calling-emergency) ; voice warning
   exten => 000,2,Wait(1) ; give caller a chance to hang up
   exten => 000,3,Dial(Zap/1/000,,j) ; If ZAP 1 is busy, jump to n+101
   exten => 000,4,Hangup() ; hang up after the call
   exten => 000,104,Softhangup(Zap/1-1) ; hang up the line if being used
   exten => 000,105,Goto(3) ; make call after disconnecting the other user
   I am using the LinkSys WRT54G wireless router. In the example below, I have forwarded
   all the ports mentioned above to my asterisk box IP, which is 192.168.1.101
   I use the Linksys™ WRT54G®. Taking the easy way out, I simply restrict the PCs (see
   below) that more often than not will be used as a P2P client or chatting on the MSN chat
   channels.
   My recommendation is, if your router has the function, use it. At the very least, it will
   prioritise traffic within your own LAN especially when you have sons and daughters (for
   that matter you too can be the culprit) who are always on the P2P, leeching files and
   music.
              This may not be the best solution. If anyone has a better solution for the Linksys
              WRT54G, please let me know.
   If you are currently using Trixbox version 1.x and wish to upgrade to v2.x, the following
   instruction may get you there. It’s best to stop asterisk. Through SSH or the command
   prompt: type:
   amportal stop   (Remember to always stop asterisk first before doing this)
   service zaptel stop (it helps to stop the zaptel service as well)
Trixbox-update.sh
You will get a prompt: ‘Can I put the new script in /usr/local/sbin (y/n) ?
Type ‘y’ for yes. Then you will get the following:
Trixbox-update.sh update
   This process will take quite a few minutes while it downloads all the necessary updates
   and proceeded to install them. Make yourself a cup of coffee and wait.
reboot.
   Either one will be fine but I would like to suggest that you take the all-in-one version with
   modules and be done with it. Afterall, this is the method recommended if one is on a
   limited-bandwidth connection, or the FreePBX machine doesn't have easy Internet
   access.
To conduct this upgrade, you will need to log on to the Trixbox PC as root.
   cd /usr/src/
   wget http://mirror.freepbx.org/freepbx-2.2.1-withmodules.tar.gz
   tar zxvf freepbx-2.2.1-withmodules.tar.gz
   cd freepbx-2.2.1
   ./install_amp
   Once this is done, freePBX is now upgraded to version 2.2.1 and you can start managing
   and/or upgrading the freePBX modules.
   40.1 Webmin
   Webmin is an invaluable web based tool for managing a Linux box. Webmin make it easy
   to configure application like SMTP mail, editing files etc.
   Those who want to use Web Admin to maintain the Asterisk System may download
   Webmin from here or from CLI, do the following:
   I have found the above method is straightforward and simple. However there are some
   users who found that following an alternative method is simpler. If that is the case, the
   alternative installation method can be found here:
http://www.terrasoftsolutions.com/support/solutions/ydl_general/webmin.shtml
   You may connect to Webmin remotely through your browser using the following address
   http://<YourAsterisk_IPAddress>:10000. E.g.
192.168.0.101:10000
   If you would like to avoid clashing the port with your RTP port which is 10000 – 20000,
   you may edit the file /etc/webmin/miniserv.conf and change the port value to something
   else, such as 9000.
Port=10000
Port=9000
   The alternative is to edit the /etc/asterisk/rtp.conf file like the example below and you
   can keep http://192.168.0.101:10000
This will break PA1688 based phones. It's better to change your webmin.conf file
   [general]
   ;
   ; RTP start and RTP end configure start and end addresses
   ;
   rtpstart=10000 < - - change this to 10002(totally unnecessary.. ☺)
   rtpend=20000
   40.2 Putty
   PuTTY is a free implementation of Telnet and SSH for Win32 and Unix platforms, along
   with an xterm terminal emulator.
   It is written and maintained primarily by Simon Tatham and can be downloaded from the
   following link.http://www.putty.nl/download.html
http://winscp.net/eng/index.php
   To do this first you must download the MySQL ODBC driver for Windows here:
   http://www.mysql.org/downloads/connector/odbc/3.51.html save it somewhere in your
   Windows local hard drive but do not install it yet.
   Select and Click "Privileges" (see arrow in the illustration above) and a new screen will
   pop up – see below.
Since the database lives in the same host, leane the Host field blank.
   Under the Data section of "Global Privileges" – see arrow, check all the options. Since we
   don’t really want the user to start playing oround with the structure and other aspects of
   the database, leave the Structure and Administrations unticked.
   Once done, click "Go" in the lower right corner of the screen to save the new user after
   which you can get out of PHPAdmin.
   Once installed, on the Windows PC, click Start -> Control Panel -> Performance &
   Maintenance -> Administrative Tools -> Data Sources (ODBC)
Select the Uer DSN tab and click on the “Add” button.
Once this is done, click "Test" to ensure that the connection is working
Click "Ok" to save and finish and “OK” again to close the ODBC dialog box.
Select “Get External Data” and choose “Link Tables…” and click.
   On the explorer’s screen that follows, click the drop down on the “Files of type” and select
   “ODBC Database()” – see illustration below.
   Now if you click on the “cdr” table and it will open and display the data in the table in
   MSACCESS – see below.
My VOIP Network
IBM
Internet
PSTN
                                            8 Ports router
                                             192.168.1.1
                 SPA3000
                                                                           TALK / DATA
                                                                                   TALK    RS CS TR RD TD CD
                                                                     Broadband Modem
                 192.168.1.10
                                                                                                               1 2 3
                                                                                                               4 5 6
                                                                                                               7 8 9
                                                                                                               *   8 #
                                                                                                   C3010-2E
                                                                                                  192.168.1.11                            PC
                                           Asterisk PC (IPBX)                                                                         192.168.1.21
                                             192.168.1.101
                                                                                                               1 2 3
                                                                                                               4 5 6
                                                                                                               7 8 9
                                                                                                               *   8 #
                                                                                                   C3010-2E
                                                                                                  192.168.1.12
                                                                                                                                            PC
                    PC using SoftPhone                                                                                                 192.168.1.22
                         (X-Ten)                                                                                         1 2 3
                                                                                                                         4 5 6
                       192.168.1.20                                                                                      7 8 9
                                                                                                                         *   8 #
                                                                                                       C3010-2E
                                                                                                      192.168.1.13
   We will endeavour to list troubleshooting tips as we experience them (or those suggested
   by other users). These will be added progressively as we encounter them.
   The other is to monitor the activities of your Trixbox using the following command at the
   command line (which will give you the Asterisk CLI).
Asterisk –rvvvv (the “v” depends on the level of verbosity you need)
Studying the activities will give you an indication of what has gone wrong.
   This difficulty is due to the delay in connecting to the site (depending on how busy the site
   is at the time) and you get connection time out. Trying again later may solve this problem
   or you may use a hammer and fix it by changing an entry in the etc/php.ini file.
   Change the max_execution_time from 30 to 60 may solve this problem. All it does is to
   wait 60 seconds before reporting a time out.
   This also applies to all other ATAs, FXS devices such as the various routers with built-in
   FXS ports and IP Phones that has their own feature codes built-in. Unless these feature
   codes are disabled, they are likely to clash with Asterisk's feature codes and as such
   Asterisk feature codes will not give you the desired results.
   A quick fix for TRIXBOX is to create an Inbound Route with the DID and CID field left
   blank. At least this will let incoming calls through while you try to solve the problem.
   Only one catch with this: if you put somebody on hold for longer than the above settings,
   if they don't make any noise, it will hang up.
       #      Directory
       **     Call Pickup
       *11    User Log on
       *12    User Log off
       *30    Blacklist a number
       *31    Remove a number from the blacklist
       *32    Blacklist the last caller
   [at]
   ringcadence = 1000,5000
   dial = 420
   busy = 420/400,0/400
   ring = 420/1000,0/5000
   congestion = 420/200,0/200
   callwaiting = 420/40,0/1960
   dialrecall = 420
   record = 1400/80,0/14920
   info = 950/330,1450/330,1850/330,0/1000
   stutter = 380+420
   [au]
   ringcadence = 400,200,400,2000
   dial = 413+438
   busy = 425/375,0/375
   ring = 413+438/400,0/200,413+438/400,0/2000
   congestion = 425/375,0/375,420/375,0/375
   callwaiting = 425/200,0/200,425/200,0/4400
   dialrecall = 413+438
   record = !425/1000,!0/15000,425/360,0/15000
   info = 425/2500,0/500
   std = !525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100,!0/100,!525/100
   facility = 425
   stutter = 413+438/100,0/40
   ringmobile = 400+450/400,0/200,400+450/400,0/2000
   [br]
   ringcadence = 1000,4000
   dial = 425
   busy = 425/250,0/250
   ring = 425/1000,0/4000
   congestion = 425/250,0/250,425/750,0/250
   callwaiting = 425/50,0/1000
   dialrecall = 350+440
   record = 425/250,0/250
   info = 950/330,1400/330,1800/330
   stutter = 350+440
   [be]
   ringcadence = 1000,3000
   dial = 425
   busy = 425/500,0/500
   ring = 425/1000,0/3000
   congestion = 425/167,0/167
   callwaiting = 1400/175,0/175,1400/175,0/3500
   dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
   record = 1400/500,0/15000
   info = 900/330,1400/330,1800/330,0/1000
   stutter = 425/1000,0/250
   [cl]
   ringcadence = 1000,3000
   dial = 400
   busy = 400/500,0/500
   ring = 400/1000,0/3000
   congestion = 400/200,0/200
   callwaiting = 400/250,0/8750
   dialrecall = !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,400
   record = 1400/500,0/15000
   info = 950/333,1400/333,1800/333,0/1000
   stutter =
   !400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/100,!0/100,!400/10
   0,!0/100,400
   [cn]
   ringcadence = 1000,4000
   dial = 450
   busy = 450/350,0/350
   ring = 450/1000,0/4000
   congestion = 450/700,0/700
   callwaiting = 450/400,0/4000
   dialrecall = 450
   record = 950/400,0/10000
   info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400
   stutter = 450+425
   [cz]
   ringcadence = 1000,4000
   dial = 425/330,0/330,425/660,0/660
   busy = 425/330,0/330
   ring = 425/1000,0/4000
   congestion = 425/165,0/165
   callwaiting = 425/330,0/9000
   dialrecall =
   !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425/330,0/330,425/660,0/660
   record = 1400/500,0/14000
   info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
   stutter = 425/450,0/50
   [de]
   ringcadence = 1000,4000
   dial = 425
   [dk]
   ringcadence = 1000,4000
   dial = 425
   busy = 425/500,0/500
   ring = 425/1000,0/4000
   congestion = 425/200,0/200
   callwaiting = !425/200,!0/600,!425/200,!0/3000,!425/200,!0/200,!425/200,0
   dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
   record = 1400/80,0/15000
   info = 950/330,1400/330,1800/330,0/1000
   stutter = 425/450,0/50
   [ee]
   ringcadence = 1000,4000
   dial = 425
   busy = 425/300,0/300
   ring = 425/1000,0/4000
   congestion = 425/200,0/200
   callwaiting = 950/650,0/325,950/325,0/30,1400/1300,0/2600
   dialrecall = 425/650,0/25
   record = 1400/500,0/15000
   info = 950/650,0/325,950/325,0/30,1400/1300,0/2600
   stutter =
   !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/10
   0,!0/100,425
   [es]
   ringcadence = 1500,3000
   dial = 425
   busy = 425/200,0/200
   ring = 425/1500,0/3000
   congestion = 425/200,0/200,425/200,0/200,425/200,0/600
   callwaiting = 425/175,0/175,425/175,0/3500
   dialrecall = !425/200,!0/200,!425/200,!0/200,!425/200,!0/200,425
   record = 1400/500,0/15000
   info = 950/330,0/1000
   dialout = 500
   [fi]
   ringcadence = 1000,4000
   dial = 425
   busy = 425/300,0/300
   ring = 425/1000,0/4000
   congestion = 425/200,0/200
   callwaiting = 425/150,0/150,425/150,0/8000
   [fr]
   ringcadence = 1500,3500
   dial = 440
   busy = 440/500,0/500
   ring = 440/1500,0/3500
   congestion = 440/250,0/250
   callwait = 440/300,0/10000
   dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
   record = 1400/500,0/15000
   info = !950/330,!1400/330,!1800/330
   stutter =
   !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/10
   0,!0/100,440
   [gr]
   ringcadence = 1000,4000
   dial = 425/200,0/300,425/700,0/800
   busy = 425/300,0/300
   ring = 425/1000,0/4000
   congestion = 425/200,0/200
   callwaiting = 425/150,0/150,425/150,0/8000
   dialrecall = 425/650,0/25
   record = 1400/400,0/15000
   info =
   !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1
   400/330,!1800/330,!0/1000,0
   stutter = 425/650,0/25
   [hk]
   ringcadence = 400,200,400,2000
   dial = 350+440
   busy = 480+620/500,0/500
   ring = 440+480/400,0/200,440+480/400,0/2000
   congestion = 480+620/250,0/250
   callwaiting = 440/100,0/4000
   dialrecall = 300/1500,0/500
   record = 1400/500,0/15000
   info = !950/330,!1400/330,!1800/330
   [hu]
   ringcadence = 1250,3750
   dial = 425
   busy = 425/300,0/300
   ring = 425/1250,0/3750
   congestion = 425/300,0/300
   callwaiting = 425/40,0/1960
   dialrecall = 425+450
   record = 1400/400,0/15000
   info =
   !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1
   400/330,!1800/330,!0/1000,0
   [il]
   ; Source: libtonezone.
   description = Israel
   ringcadence = 1000,3000
   dial = 414
   busy = 414/500,0/500
   ring = 414/1000,0/3000
   congestion = 414/250,0/250
   callwaiting = 414/100,0/100,414/100,0/100,414/600,0/3000
   dialrecall = !414/100,!0/100,!414/100,!0/100,!414/100,!0/100,414
   record = 1400/500,0/15000
   info = 1000/330,1400/330,1800/330,0/1000
   stutter =
   !414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/16
   0,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,!414/160,!0/160,414
   [in]
   ; Source: libtonezone.
   description = India
   ringcadence = 400,200,400,2000
   dial = 400*25
   busy = 400/750,0/750
   ring = 400*25/400,0/200,400*25/400,0/2000
   congestion = 400/250,0/250
   callwaiting = 400/200,0/100,400/200,0/7500
   dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
   record = 1400/500,0/15000
   info = !950/330,!1400/330,!1800/330,0/1000
   stutter =
   !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!35
   0+440/100,!0/100,!350+440/100,!0/100,350+440
   [it]
   ringcadence = 1000,4000
   dial = 425/200,0/200,425/600,0/1000
   busy = 425/500,0/500
   ring = 425/1000,0/4000
   congestion = 425/200,0/200
   callwaiting = 425/400,0/100,425/250,0/100,425/150,0/14000
   dialrecall = 470/400,425/400
   record = 1400/400,0/15000
   info =
   !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1
   400/330,!1800/330,!0/1000,0
   stutter = 470/400,425/400
   [jp]
   ; Source: libtonezone.
   description = Japan
   ringcadence = 1000,2000
   dial = 400
   busy = 400/500,0/500
   ring = 400+15/1000,0/2000
   [lt]
   ringcadence = 1000,4000
   dial = 425
   busy = 425/350,0/350
   ring = 425/1000,0/4000
   congestion = 425/200,0/200
   callwaiting = 425/150,0/150,425/150,0/4000
   dialrecall = 425/500,0/50
   record = 1400/500,0/15000
   info =
   !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1
   400/330,!1800/330,!0/1000,0
   stutter =
   !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/10
   0,!0/100,425
   [mx]
   ringcadence = 2000,4000
   dial = 425
   busy = 425/250,0/250
   ring = 425/1000,0/4000
   congestion = 425/250,0/250
   callwaiting = 425/200,0/600,425/200,0/10000
   dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
   record = 1400/500,0/15000
   info = 950/330,0/30,1400/330,0/30,1800/330,0/1000
   stutter =
   !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!35
   0+440/100,!0/100,!350+440/100,!0/100,350+440
   [nl]
   ringcadence = 1000,4000
   dial = 425
   busy = 425/500,0/500
   ring = 425/1000,0/4000
   congestion = 425/250,0/250
   callwaiting = 425/500,0/9500
   dialrecall = 425/500,0/50
   record = 1400/500,0/15000
   info = 950/330,1400/330,1800/330,0/1000
   stutter = 425/500,0/50
   [no]
   ringcadence = 1000,4000
   dial = 425
   busy = 425/500,0/500
   ring = 425/1000,0/4000
   [nz]
   ringcadence = 400,200,400,2000
   dial = 400
   busy = 400/250,0/250
   ring = 400+450/400,0/200,400+450/400,0/2000
   congestion = 400/375,0/375
   callwaiting = !400/200,!0/3000,!400/200,!0/3000,!400/200,!0/3000,!400/200
   dialrecall = !400/100!0/100,!400/100,!0/100,!400/100,!0/100,400
   record = 1400/425,0/15000
   info = 400/750,0/100,400/750,0/100,400/750,0/100,400/750,0/400
   stutter =
   !400/100!0/100,!400/100,!0/100,!400/100,!0/100,!400/100!0/100,!400/100,!0/100,!400/100,
   !0/100,400
   [pl]
   ringcadence = 1000,4000
   dial = 425
   busy = 425/500,0/500
   ring = 425/1000,0/4000
   congestion = 425/500,0/500
   callwaiting = 425/150,0/150,425/150,0/4000
   dialrecall = 425/500,0/50
   record = 1400/500,0/15000
   info =
   !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1
   400/330,!1800/330,!0/1000
   stutter =
   !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/10
   0,!0/100,425
   [pt]
   ringcadence = 1000,5000
   dial = 425
   busy = 425/500,0/500
   ring = 425/1000,0/5000
   congestion = 425/200,0/200
   callwaiting = 440/300,0/10000
   dialrecall = 425/1000,0/200
   record = 1400/500,0/15000
   info = 950/330,1400/330,1800/330,0/1000
   stutter =
   !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/10
   0,!0/100,425
   [ru]
   ringcadence = 800,3200
   dial = 425
   [se]
   ringcadence = 1000,5000
   dial = 425
   busy = 425/250,0/250
   ring = 425/1000,0/5000
   congestion = 425/250,0/750
   callwaiting = 425/200,0/500,425/200,0/9100
   dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425
   record = 1400/500,0/15000
   info =
   !950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/3
   32,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/
   24,!1800/332,!0/2024,!950/332,!0/24,!1400/332,!0/24,!1800/332,0
   stutter =
   !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/100,!0/100,!425/10
   0,!0/100,425
   [sg]
   ringcadence = 400,200,400,2000
   dial = 425
   ring = 425*24/400,0/200,425*24/400,0/2000 ; modulation should be 100%, not 90%
   busy = 425/750,0/750
   congestion = 425/250,0/250
   callwaiting = 425*24/300,0/200,425*24/300,0/3200
   stutter =
   !425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/600,!0/200,!425/200,!0/200,!425/60
   0,!0/200,!425/200,!0/200,!425/600,!0/200,425
   info = 950/330,1400/330,1800/330,0/1000 ; not currently in use acc. to reference
   dialrecall = 425*24/500,0/500,425/500,0/2500 ; unspecified in IDA reference, use repeating
   Holding Tone A,B
   record = 1400/500,0/15000 ; unspecified in IDA reference, use 0.5s tone every 15s
   nutone = 425/2500,0/500
   intrusion = 425/250,0/2000
   warning = 425/624,0/4376 ; end of period tone, warning
   acceptance = 425/125,0/125
   holdinga = !425*24/500,!0/500 ; followed by holdingb
   holdingb = !425/500,!0/2500
   [uk]
   ringcadence = 400,200,400,2000
   dial = 350+440
   specialdial = 350+440/750,440/750
   busy = 400/375,0/375
   congestion = 400/400,0/350,400/225,0/525
   specialcongestion = 400/200,1004/300
   unobtainable = 400
   ring = 400+450/400,0/200,400+450/400,0/2000
   callwaiting = 400/100,0/4000
   specialcallwaiting = 400/250,0/250,400/250,0/250,400/250,0/5000
   creditexpired = 400/125,0/125
   confirm = 1400
   switching = 400/200,0/400,400/2000,0/400
   [us]
   ringcadence = 2000,4000
   dial = 350+440
   busy = 480+620/500,0/500
   ring = 440+480/2000,0/4000
   congestion = 480+620/250,0/250
   callwaiting = 440/300,0/10000
   dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440
   record = 1400/500,0/15000
   info = !950/330,!1400/330,!1800/330,0
   stutter =
   !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!35
   0+440/100,!0/100,!350+440/100,!0/100,350+440
   [us-old]
   ringcadence = 2000,4000
   dial = 600*120
   busy = 500*100/500,0/500
   ring = 420*40/2000,0/4000
   congestion = 500*100/250,0/250
   callwaiting = 440/300,0/10000
   dialrecall = !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,600*120
   record = 1400/500,0/15000
   info = !950/330,!1400/330,!1800/330,0
   stutter =
   !600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*120/100,!0/100,!600*
   120/100,!0/100,!600*120/100,!0/100,600*120
   [tw]
   ringcadence = 1000,4000
   dial = 350+440
   busy = 480+620/500,0/500
   ring = 440+480/1000,0/2000
   congestion = 480+620/250,0/250
   callwaiting = 350+440/250,0/250,350+440/250,0/3250
   dialrecall = 300/1500,0/500
   record = 1400/500,0/15000
   info = !950/330,!1400/330,!1800/330,0
   stutter =
   !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!35
   0+440/100,!0/100,!350+440/100,!0/100,350+440
   Note: In Peer Details, insert qualify=yes if you want fail-over to PSTN should you loose
   your internet connection.
B.1.1 BBPglobal
        allow=g723&gsm                                 context=from-trunk
        authuser=<user number>                         fromuser=<user number>
        disallow=all                                   insecure=very
        fromdomain=sip2.bbpglobal.com                  secret=<password>
        fromuser=<user number>                         type=user
        host= sip2.bbpglobal.com                       username=<user number>
        insecure=very                                  Note:You may need to include the
        secret=<password>                              following in your sip.conf
        type=peer                                      Maxexpirey=3600
        username=<user number>                         Qualify=yes
       Register String:
        <user number>:<password>sip2.bbpglobal.com/<user number>
       Register String:
        02321XXXX:<password>@byo.engin.com.au/02321XXXX
       Register String:
        xxxxxx:<password>@iax.faktortel.com.au
       Faktortel supports the following codecs: ulaw, alaw, ilbc, gsm, g729. The following is
       the link on the discussions for setting up Faktortel on TRIXBOX.
       http://www.faktortel.com.au/support-Trixbox-settings.shtml
B.1.4 iPrimus
       To get the necessary credentials, we cheated a little as the method was published in
       the whirlpool forum http://forums.whirlpool.net.au/forum-replies.cfm?t=604015
       https://spconfig.voip.iprimus.net.au/SoftphoneConfigurationServer/Default.aspx?Action=LOG
       IN&username=username&password=password&computerid=db7b351e57af&MAC=your
       _NIC_MAC_address
       Replace the bold type with your Talk Broadband username and password given to
       you by iPrimus. You can get your NIC MAC address by running ipconfig /all.
When you submit that address, the following data will be displayed in your browser.
         allow=alaw&ulaw                                          context=from-trunk
         disallow=all                                             type=user
         fromdomain=asnjla2.bw.iprimus.net
         fromuser=AU_XXXXXXXX
         host=asnjla2.bw.iprimus.net
         insecure=very
         outboundproxy=sbc01a.syd.voip.iprimus.net.au
         port=15060
         secret=YYYYYYYY
         type=peer
         username=AU_XXXXXXXX
       Register String:
        AU_XXXXXXXX@asnjla2.bw.iprimus.net:YYYYYYYY:AU_XXXXXXXX@iprimus/02********
B.1.5 Koala
         allow=g729&gsm&alaw&ulaw                       context=from-pstn
         disallow=all                                   fromdomain=203.122.248.173
         fromuser=<User-sip id>                         host=203.122.248.173
         host=203.122.248.173                           secret=<password>
         nat=yes                                        type=user
         port=5060                                      username=<User-Sip id>
         qualify=no
         secret=<password>
         type=friend
       Register String:
        <User SIP ID>:<password>@koalavoip.com.au
       (Source Ref: Curtis of Koala) also refer here https://www.koalavoip.com.au/billing/node/75
B.1.6 MyNetFone
         allow=g729&alaw&ulaw                           canreinvite=no
         authname=091xxxxx                              context=from-trunk
         canreinvite=no                                 fromuser=091xxxxx
         disallow=all                                   insecure=very
         dtmfmode=rfc2833                               qualify=no
         fromuser=091xxxxx                              secret=<password>
         host=sip01.mynetfone.com.au                    type=friend
         insecure=very                                  username=091xxxxx
         nat=yes
         pedantic=no
         qualify=yes
         secret=<password>
         type=friend
         username=091xxxxx
       For further information on MyNetFone, you may refer to the following link:
       http://www.myfone.com.au/downloads/sip.conf
       http://www.myfone.com.au/downloads/extensions.conf
         allow=g729                                  context=from-trunk
         disallow=all                                host=iax.ifone.com.au
         host=iax.ifone.com.au                       secret=<password>
         qualify=yes                                 type=user
         secret=<password>                           username=661xxxx
         type=peer
         username=661xxxx
       Register String:
        661xxxx:<password>@iax.ifone.com.au
B.1.8 Nodephone
         allow=g729                                  context=from-trunk
         canreinvite=no                              host= sip.internode.on.net
         disallow=all                                secret=<password>
         dtmfmode=rfc2833                            type=user
         fromdomain=sip.internode.on.net             username=<usernumber>
         fromuser=<usernumber>
         host=sip.internode.on.net
         insecure=very
         secret=<password>
         type=peer
       Register String:
        <usernumber>:<password>@sip.internode.on.net
B.1.9 SipMe
       Register String:
        1777xxxxxx:<password>@sip.sipme.com.au/1777xxxxxx
       Register String:
        2222xxxxxxxxxxx:<password>@210.80.182.142/2222xxxxxxxxxxx
        allow=ulaw&g729
        canreinvite=no                  You may prefix outgoing
        context=from-trunk              calls with 0197 to disable
        disallow=all                    outgoing CID.
        dtmfmode=rfc2833
        fromuser=64997xxxxx             Inbound route 64997xxxxx
        host=akl.italk.co.nz            required to be forwarded
        insecure=very                   to a destination ext/menu
        secret=<your password>
        type=friend
        username=64997xxxxx
   Register String:
        64997xxxxx:<your password>@akl.italk.co.nz/64997xxxxx
       (Source Ref: Steve Biddle)
        allow=ulaw&g729                 context=from-pstn
        disallow=all                    host=voip.0064.co.nz
        dtmfmode=rfc2833                insecure=very
        host=voip.0064.co.nz            secret=PASSWORD
        insecure=very                   type=user
        secret=<your password>          username=CUSTOMER_ID
        type=peer
        username=your_Customer_ID
   Register String:
        Your_Customer_ID: <your password>@voip.0064.co.nz
       Register String:
        <usernumber>@sip.broadvoice.com:<password>:<usernumber>@sip.broadvoice.com/<usernumber>
       Register String:
        65xxxx:<password>@iax2.fwdnet.net
B.3.3 SipBroker
       Peer Details
       Trunk Name: sipbroker-out
        allow=g729&ulaw&alaw                                        You will not require
        canreinvite=no                                              user details since you
        disallow=all                                                will not be receiving
        dtmfmode=rfc2833
        fromdomain=<your existing sip provider>
                                                                    incoming calls from this
        fromuser=<your user ID of existing provider>                trunk.
        host=sipbroker.com
        insecure=very                                               You do not need to
        nat=yes                                                     register either.
        port=5060
        secret=<password for existing provider>
       If you are using SipBroker, you must ensure that your sip_nat.conf is modified to the
       following;
       nat=yes
       externip=<Fix Ip address> ; if you have fix IP or
       externhost=<your DNS hostname> ; if you are using Dynamic IP
       localnet=192.168.1.0/255.255.255.0
B.3.4 SipPhone
       Register String:
        1747xxxxxxx:<password>@proxy01.sipphone.com/1747xxxxxxx
       Register String:
        <username>:<password>@sip1.voipbuster.com/<username>
       (Source Ref: Florent Chandelier)
   http://www.voip-info.org/tiki-index.php?page=Asterisk+sound+files
   http://www.voip-info.org/wiki/view/Asterisk+sound+files+additional
   http://www.nathanpralle.com/software/ast_masterlist.html
<Quote>
   I have just been setting up the Digital Receptionist and I wanted to use a professional
   voice for messages. I thought I might detail my exploits here for those that might be
   considering the same thing.
   First you need the original recording either from a real professional or a "text to voice"
   utility. I went with the Realspeak demo
   http://www.nuance.com/realspeak/demo/default.asp
   The "British Daniel" voice was deep and professional. Check this out
   http://www.cbservers.com.au/whirlpool.wav
   Now the demo has a 100-character limit so you may need to do 2 or 3 files and join them
   together with a program like Accoustica MP3 mixer.
   http://www.acoustica.com/mp3%2Daudio%2Dmixer/
   It was after this part that I had a lot of problems. Asterisk is very funny about sound files. I
   tried using all sorts of programs to get the file to the right specs but it failed to work every
   time. I eventually used "sox" an open source command line editing tool and it worked first
   go (using advice from VoIP-info & digium forums) http://sox.sourceforge.net/ then at the
   command line prompt use this syntax:
<End quote>
   The following is extract of the instructions by VOIPSHOP on their web site. Two files are
   available; one is as a replacement for the current asterisk files. The other is as an
   additional Asterisk language (if you are going to use the SetLanguage option).
Log into your TRIXBOX server and at the command prompt, do the following:
       wget http://files.voipshop.com.au/ausounds.tar.gz
       tar cvfz backupsounds.tar.gz /var/lib/asterisk/sounds/ (for backing
       up your existing files)
       tar -zxvf ausounds.tar.gz -C /var/lib/asterisk/sounds/
Done. Your asterisk sound files are replaced. Make sure you back up, just in case.
       wget http://files.voipshop.com.au/ausoundset.tar.gz
       tar -zxvf ausoundset.tar.gz -C /var/lib/asterisk/sounds/
   Please do not re-distribute. These are free for non-commercial use only. Contact
   VOIPSHOP mailto:support@voipshop.com.au for commercial license details.
   Of course, don’t forget to add the following line in the iax.conf and sip.conf configuration
   file under [general]. In zapata.conf configuration file the line should be added under
   [channels].
   But, as we know, there are more than just one way to skin a cat ☺ thus, the solution is to
   telnet to the ADSL modem and remove this restriction.
   Trying 10.0.0.138...
   Connected to speedtouch
   Escape character is '^]'.
   Username : root
   Password :
   ----------
   ...
   ... welcome message blah blah blah
   ...
You then should unbind the SIP protocol and reboot the modem thus:
   To check whether the SIP protocol is bound in your modem use this command to show
   the list of bindings (only showing SIP here):
   =>nat bindlist
   Application Proto Port
   SIP udp 5060
   Source Reference:
   http://www.sipgate.co.uk/faq/index.php?aktion=artikel&type=faq&rubrik=024&id=398&lang=de
   By default, if you enable the FXS ports on the Billion 7402 VL router to be sip enabled,
   the router automatically forwards the port (5060) to its own IP address and an error will
   occur if you try to forward that port to the Asterisk box. This is because it is intended for
   the FXS ports to connect directly to an external SIP provider.
voip set interfacename iplan (this changes it from the WAN to the LAN interface
   Now you can add the NAT to point to the asterisk server and the FXS ports will connect to
   the Asterisk box.
   NOTE: - Also codec G729 had to be disabled on the FXS ports for calls to work. Not sure
   why.
       Note:
            The set-up described here is for use with TRIXBOX and not for connecting the unit
            directly to the VOIP service provider.
   I will describe the minimum changes that are required to get these ATAs to work in
   conjunction with Asterisk.
   As supplied, the unit comes with DHCP enabled. It is best to allocate a fix IP address to
   the unit and therefore the first thing to do is to disable the DHCP and allocate a fix IP
   address e.g. 192.168.1.50. You need to do the following:
       1. Connect the unit to your network via the RJ45 port behind the unit.
       2. Power up the unit
       3. Plug in a telephone in the RJ11 port 1 behind the unit (any one will do)
       4. Dial **** and listen to the instruction that you will hear from the IVR
       5. Dial 101 and when prompted enter 0 followed by # (this will disable DHCP)
       6. Dial 111 and when prompted enter 192*168*1*50 followed by # (assuming that
          you want to allocate 192.168.1.50 as the IP address of the ATA).
       7. Dial 120 and you will hear the current sub-net mask. If it is not your existing
          network subnet mask you may want to change it. If it is the same as your current
          network’s subnet mask, do don’t need to do anything else). If you need to
          change the sub-net mask, do the following:
       8. Dial 121 and at the prompt enter 255*255*255*0 (assuming that is your existing
          sub-net mask)
   Next, connect to the Unit using your browser by entering http://192.168.1.50 in your
   browser address bar and hit enter.
   These are the minimum changes you need to do to get the ATA working in conjunction
   with Asterisk. There are other changes that you can do depending on your own
   requirement. There are various discussions on this topic in the Whirlpool, Voxilla and
   other forums that you can refer to.
   <quote>
   There are plenty of forum posts (on WP and elsewhere) + various how-to and guides that
   say don't use more than one if you want a reliable system with no audio problems.
   I'm sure that on the old Digium site they had a caution not to use more than one TDM or
   TE card (That's changed, they now brag about 1 box running 5 quad span TE cards).
   This machine is now working in a busy environment (medical centre) nicely, sometimes
   under full Zap call load. It has 5 x FXO & 5 x FXS on 3 cards. CPU is under 10% pretty
   much all the time.
   I asked them to be very fussy about audio quality and let me know if they have any echo,
   pops, clicks, distortion etc.
So far everyone is saying that it's perfectly fine, not a bad call yet.
   There is good reason behind the old advice not to do it though. Lots of people have had
   grief.
   Make sure you don't grab any old motherboard that is lying about (especially if it isn't PCI
   2.2 compliant) Even though minimum system specs aren't high don't go for a bottom of
   the range el-crapo brand motherboard. There is a list of some incompatible motherboards
   on the Digium site, but no doubt there will be others that have problems.
   Choose a board that has plenty of PCI slots (5 or so). Make sure that it has plenty of
   control over IRQ in CMOS. Eg the ASUS P5P-800 I used could use APIC to assign IRQ
   or you could manually assign an IRQ to a particular PCI slot.
Be very sure that each Digium card is not sharing an IRQ with anything else.
Disable any onboard devices you don't need inc. serial, parallel & USB ports.
   It may not be a problem, but to minimise chances of problems disable Hyper threading if it
   is supported on your CPU. Use 32 bit OS rather than 64 bit.
   Use plenty of RAM. You don't want a PABX to be thrashing about with a swap file. I used
   1GB of decent quality RAM which is definitely far more than the system needs. (It's using
   about 230MB at the moment), but 1GB of RAM doesn't really cost much any more.
   Check that your hard drives are running in DMA mode (or use SCSI drives). Sometimes
   they default to PIO, which might cause problems if there is a sudden burst of disk activity.
   Sometimes APIC can cause you grief. You might be able to tweak your kernel, but you
   might get what you need by turning it off.
http://www.asteriskguru.com/tutorials/pci_irq_apic_tdm_ticks_te410p_te405p_noise.html
If you have all of the driver stuff loading properly and still have audio problems.
Use recent zaptel drivers (unless you become aware of an issue with them).
       •   Have /usr/src/zaptel/fxotune -s run at startup to have the card set. Apparently the
           values in the conf file are often zero if you have the modules in the correct
           opermode. ( have one module at the office where the first value is 10 rather than
           zero. I'll try fxotune again and see if it changes at all).
       •   Check /var/log/messages after boot up. Each FXO port should have loaded with
           AUSTRALIA mode. If it is FCC mode then the card is set for North American
           lines.
   If fxotune is loading settings okay you should see a line saying something like after all of
   the other init stuff.
<\quote>
   Echo in the SPA-3000 is a common problem. In reality, most of the time the SPA-3000
   isn't causing the echo, it's just making it more noticeable. This is due to the fact that the
   SPA-3000 passes calls from the PSTN to the LINE1 by converting it to VoIP internally
   and then backs to analogue. This process does not produce any echo, however is can
   add about 30ms of latency to the call. This added latency can make echo that was
   previously unnoticed suddenly become annoying. A pure digital system has no echo (the
   TX and RX path are 100% separated). It's the interaction of the Digital and Analogue that
   cause problems.
This may help getting rid of that pesky echo on your Sipura SPA-3000 PSTN line:
   1. Make sure you are running the latest firmware (3.1.7) and you have everything back to
   factory defaults or at least undo all the previous tweaking.
   2. Switch *off* all echo can in all your devices. There are 6 places in the sipura to switch
   off echo can.
        • PSTN Line -> "Echo Canc Enable",
        • "Echo Canc Adaptive Enable",
        • "Echo Supp Enable" and
        • Line 1 -> "Echo Canc Enable",
        • "Echo Canc Adaptive Enable",
        • "Echo Supp Enable".
The idea is that we want to hear how bad the echo is with different configs.
   3. Unplug everything from your phone line except the SPA-3000. This includes all the
   extension cables even with nothing connected to them. These can cause impedance
   problems that lead to echo.
   Doesn't seem to affect echo, but I believe that these are the correct numbers for
   Australia.
   If you are using a poor quality VoIP service as well as the PSTN then you could change
   the
        • "LINE1 -> Network Jitter Level: = medium".
   7. Set the preferred codec for the PSTN to be g711a and lock it in.
       • "PSTN -> Preferred Codec = g711a",
       • "PSTN -> Use Pref Codec Only = yes".
   The g711a is fast to encode and decode. Using this codec again reduces your latency
   and may make the echo less obvious or easier to catch with the echo canceller.
   8. Power cycle the SPA-3000 (pull the power plug). Believe it or not, this sometimes fixes
   the problem. Especially after you have changed the physical phone wiring.
   9. Make some test calls. The telco test number 1800801920 is a good one to start with. It
   has a recorded voice telling you your local phone number. While it's talking, talk back and
   work out how much echo you are getting. Talk loud, talk soft.
   10. Look at what you have got. If you can hear an echo then the problem could be that
   your probably sending to much power down the line. This is probably reflecting back
   somewhere as an echo. If you’re close to the exchange and have good wires then this is
   probably the case. You need to crank back on the power. Go to PSTN -> "SPA To PSTN
   Gain" and turn it down. Be aware that at some point if you turn it down to much, the SPA
   sorts does a double negative and turns it way up. I believe the range of this variable is
   about -127 -> 127 (from my testing). Turn it down, down, down, down until the person can
   still hear you but reduced echo.
   Note: if you enable "Echo Supp Enable" then you will negate these parameters. It seems
   that the Sipura echo suppression is actually just an automatic gain control. It's really
   annoying - leave it off.
   11. Make a test call to someone with a known good phone out via the SPA's PSTN line or
   get someone to call in to the PSTN line. Best if it’s just a boring old Telstra phone hard
   wired to a socket on the wall. Don't call a mobile!
   If the remote party is hearing echo, it could be that your phone is so loud that it's feeding
   back into the microphone. Turn down the PSTN To SPA Gain until you can comfortable
   hear the person, no more. If the remote user can still hear echo, try using a different
   phone plugged into the SPA. Go for the basics first, a cruddy old Telstra phone is what I
   use for testing. If this solves the problem you may have a bad phone or an impedance
   miss match between your phone and the SPA.
   If this doesn't help, change it back. The impedance will only affect what the *remote* party
   hears, it won't help echo you are hearing.
   12. After you have the echo down to a reasonable level, go back into the "PSTN" tab and
   switch on the "Echo Can Enable = yes". Check to see if the echo has improved. If the
   echo is tolerable at this level, leave the adaptive echo canceller off. You should have the
   echo level down to a level that can be stomped on by the echo canceller. If you are using
   a sip device to talk through your PSTN line, you should probably do all the echo
   cancellation at that device and leave it switched off in the SPA.
   The adaptive echo canceller is a lot more aggressive but also can cancel out some of the
   incoming conversation. In particular if you’re calling in a loud environment then the voice
   going down the line from your end can trick the echo canceller to start canning some of
   the real conversation. It makes the incoming party sound a bit scratchy. Leave it off
   unless you really need it.
   The "Echo Supp Enable" switches on automatic gain controls. This means the Sipura will
   be constantly turning up and down the volume of the call for you and the remote party to
   13. Test call. Talk loud, talk soft. Is your conversation clear at both ends? Should be a lot
   better. If echo re-appears, at a later date, remember to try power cycling the SPA before
   you tweak with anything. It may also be at the other end of the call.
   If you are hearing the echo, the real problem is at the *other* end of the connection. In a
   normal phone conversation, the latency is so low that you don't notice it. Your brain
   automatically tunes out to its own voice when you’re talking (as long as the delay between
   talking and hearing isn't to long). When you insert the SPA, the delay is increased and
   sometimes the echo can become noticeable.
   The only way you can counter this is to reduce the latency (jitter buffer) and/or reduce the
   gains so the echo volume is reduced below the level that it is noticed. At this point, the
   SPA-3000 echo canceller should be able to kill off the rest.
   To do this you need to change one setting in the zapata.conf file. By default the setting is
   set to:
Immediate = no
Immediate = yes
   If you are not using Fax, it is also a good idea to disable fax extension in your General
   setting.
This may or may not work satisfactorily as Asterisk needs a couple of rings to detect CID.
On his Dell box, marner had to do the following to rebuild the driver and for it to work.
       cd /usr/src/kernels/2.6.9-34.EL-smp-i 686/include/linux
       wget http://nerdvittles.com/aah27/spinlock.h
The rest of the procedure is as per earlier chapter Rebuilding Zaptel Driver
rebuild-zaptel
   Stephen has attached samples of Zapata configuration files – with correct settings for
   Australia – loop start.
zaptel.conf
# Global data
   loadzone = au
   defaultzone = au
zapata_addiotional.conf
   ;;;;;;[230]
   signalling=fxo_ls
   record_out=Adhoc
   record_in=Adhoc
   mailbox=230@device
   echotraining=800
   echocancelwhenbridged=no
   echocancel=yes
   context=from-internal
   callprogress=no
   callerid=device <230>
   busydetect=no
   busycount=7
zapata.conf
   ;
   ; Zapata telephony interface
   ;
   ; Configuration file
[trunkgroups]
[channels]
   language=en
   context=from-pstn
   signalling=fxs_ls
   rxwink=300           ; Atlas seems to use long (250ms) winks
   ;
   ; Whether or not to do distinctive ring detection on FXO lines
   ;
   ;usedistinctiveringdetection=yes
   usecallerid=yes
   hidecallerid=no
   callwaiting=yes
   usecallingpres=yes
   callwaitingcallerid=yes
   threewaycalling=yes
   transfer=yes
   cancallforward=yes
   callreturn=yes
   echocancel=yes
   echocancelwhenbridged=no
   echotraining=800
   rxgain=0.0
   txgain=0.0
   group=0
   callgroup=1
   pickupgroup=1
   immediate=no
   ;faxdetect=both
   faxdetect=incoming
   ;faxdetect=outgoing
   ;faxdetect=no
Introduction
(See note 3 at the end if you want to use scsi or sata drives)
   For this particular application (A PBX) we are not too concerned about disk performance.
   Much of the software will run in memory on a 300Mb Ram machine (Trixbox default install
   consumes no more than 200Mb including the file cache). Fast hard discs improve
   performance in systems that are heavily dependant on a swap file. Linux will keep
   everything in memory + a reasonable file cache as much as possible. CPU performance
   and making sure you have sufficient memory to run the PBX are the key performance
   indicators of a healthy PBX.
   We wouldn’t want to put an Asterisk box in production without some kind of resiliency to
   survive continuous use over perhaps many years. To use an IDE disk based system we
   can use software RAID to provide some protection and to make sure the PBX stays up
   and running. The Raid subsystem can also email you if a drive fails.
   The following procedure describes setting up a software RAID during installation on all
   partitions of a Trixbox. This applies to a vanilla install from the Distribution CDROM.
   We will be using RAID and also Logical Volume Management. Logical Volume
   Management gives us the ability to dynamically resize drives and dynamically add disk
   space on a live system without having to delete or create new partitions. So if your
   requirements change in the future you can easily accommodate them.
The issues:
   1. Implementing RAID and logical volumes post-install is complicated, dangerous and not
   recommended.
   2. RAID (hardware or software) and LVM are desirable features. IDE is still the cheapest
   storage platform. This is especially true of Asterisk installs as many PBX's use low-end
   hardware.
3. The default install of Trixbox does not allow any options to install RAID or LVM
   4. The text mode Anaconda install does not allow manual configuration of Logical
   volumes however a kickstart file does.
   5. A kickstart install of RAID will always (!!!!) produce file system corruption if the software
   RAID is not allowed to complete its first sync before the first reboot.
   6. High end hardware RAID is still relatively expensive. Linux drivers are not always
   available or if available, not always stable.
   Point 5 will many times dissuade people from using software RAID and LVM. As long as
   we can accommodate the first sync then we will have no problems.
Hardware configuration:
   The hard disks don't need to be exactly the same size. Actually using this method the
   disks don't need to be the same size at all. I would recommend that the smallest disk be
   at least 5Gigs. The Raid will configure itself to the smallest disk and the larger disk will
   match up to the smaller disk’s partitions with any extra space left unused.
   Although I worked this for IDE drives it can be used on any type of disk subsystem -
   SCSI, sata etc with some modification for the drive labels.
Windows:
   I used UltraISO on windows to modify the CDROM. Open the ISO with UltraISO and copy
   the ks.cfg file somewhere. Remove the read only flag so you can edit it. It is very
   important you edit the file with an editor that knows how to do Linux linefeeds. I
   discovered and used Editpad pro for this. The lite (demo) version will suit the needs we
   have. If your editor is not 100% compatible with Linux linefeeds after you reboot you will
   get errors which have directory names with strange characters (/var/Trixbox_load^M/ or
   /var/Trixbox_load/R where the /rR is actually in the directory name of load not a separate
   directory)
Linux: (incomplete)
   Extract the CDROM to a temporary Directory. Make the file ks.cfg as non-read only. Edit
   and create the files as below. Use the following command to rebuild the ISO.
   We need to create a file that will tell the install program what to do. A copy of the existing
   file is located in the root of the CDROM. It is called ks.cfg. Make a copy of this file and call
   it ksRAIDlvm.cfg
   Delete the line where it says reboot. We don’t want it to automatically reboot at the end. !
   This is a critical step!
Where it says:
Replace with
   Very important: the –asprimary switch must only appear on the raid.01 and raid.02
   lines.
   This will give you a 100MB RAID 1 /boot partition, two 256Mb swap partitions (change the
   256 to a desirable size or replace with --recommended) and the rest of the disk will be a
   logical volume (over laying a RAID1 ) containing the / (or root) filesystem. All partitions will
   be formatted as Ext3 as normal. If you want to create other partitions to support other
   uses you can change the raid.11 and raid.12 lines to read --size=xxxx (in megabytes) and
   remove the –grow option. This will fix the size of the partition you create. After the
   installation completes you can then go ahead and create more RAID1 partitions and
   Logical volumes.
change to
   Add the following lines to the end of the %post% section. This will update the boot
   information to make both drives bootable. Remember to update the hdx numbers to
   match your drive configuration.
Add it to the root directory of the ISO and save the ISO under a different name.
   Burn the new ISO to a CD. Boot your soon to be asterisk machine from this CD and use
   the following command to start the install.
linux ks=cdrom:/ksRAID1lvm.cfg
   The install process will continue as before however it will create the RAID as we have set-
   up.
   Begin the install. Let it run through to the end. When you see the REBOOT screen STOP.
   Don't do anything here. We need to wait for the RAIDs to complete their first sync. For
   IDE disks the only way I have found of reliably checking this is to wait for the drive light to
Login as root using the password set-up during the earlier phase.
You can check the state of the RAID by using the following command:
cat /proc/mdstat
   You should have two raids called md0 and md1. In square brackets for each it should say
   [2/2]. Your disks are ready and Trixbox is installed. The block sizes may be different if you
   are not using identical disks.
   If it doesn't say [2/2] but the machine has restarted ok and it says [2/1] then one or both
   your raids have not synced properly or your disk is faulty (bad blocks). To manually sync
   the raids type some commands (for simplicity all the commands are included below. If a
   partition is already in a Synced RAID the command will fail with an error (in this case the
   error means success!). This you can ignore and move onto the next command):
use
to monitor the raid re-build. Once it is complete you can issue the
reboot
command and restart the machine. Check your raids again with
cat /proc/mdstat
   If the machine has not started ok (errors on the startup screen) then the chances are the
   RAID was not completely built before the restart. The best idea here is to re-install this
   time waiting longer before rebooting. It is difficult to know which files are not complete.
Notes:
   1) In a VMWARE machine everything works fine. (To test this you need to create a
   second hard drive when creating the virtual machine then do the install booting either off
   the new CDROM or the new ISO).
2) For anyone who wants to revert (or vert) an existing drive to Raid, here is a good link:
http://linux-sxs.org/hardware/raid_for_idiots.html
Just ignore the last bit and use grub instead (Lilo is too old!!!!).
grub (enter)
   root (hdx0,0)
   setup (hdx0)
   root (hdx1,0)
   setup (hdx1)
(ctrl-z to exit)
   3) This procedure will work for SCSI and SATA drives as well. Bearing in mind the
   caveats Digium have about using IDE many people have successfully installed RAID 1 on
   SCSI and SATA drives. To accomplish this replace the HDx with a suitable replacement
   (usually hd0 is replaced with sd0 and hd1 with sd1).
   If you have any issues booting from the RAID they can usually be fixed by booting from
   the Trixbox CD and starting the Rescue Environment and running some commands:
Linux rescue
Issue:
grub (enter)
   root (hdx0,0)
   setup (hdx0)
   root (hdx1,0)
   setup (hdx1)
(ctrl-z to exit)
reboot
   We continue to use the textmode install because it reduces the chances of the install
   failing. For example if you have a Rage XL video card then using a graphical install, the
   format of the drives will fail (RAID or no RAID). In textmode logical volumes can only be
   created in the kickstart file.
   If your disk controller needs to have special drivers then the install must be started using
   the following command:
Linux ks=cdrom:/ksRAIDlvm.cfg dd
   At some point it will ask you for a driver disk. This can usually be obtained from the
   manufacturers website.
   O’Reilly has licensed the book under the creative commons license and as such, you are
   free to download and distribute it.
   The following are two tutorial sites that I recommend everyone who is serious about
   Trixbox and Asterisk generally.
   http://mundy.org/blog/index.php?p=81
   http://www.asteriskguru.com/tutorials/
http://www.freewebs.com/voipformula/VoIP-HOWTO.html
http://www.cisco.com/en/US/tech/tk652/tk698/technologies_tech_note09186a0080094ae2.shtml
   A2Billing
   A2Billing is a calling card platform to manage calling card users’ accounts. To log on to
   A2Billing through Web Interface, connect to asterisk.ip.address/a2billing e.g.
   192.168.0.101/a2billing
   A2Billing is not being covered in this guide, as it is a whole documentation exercise on its
   own. Those interested in A2Billing may have to refer to other source for instructions
   available on the net such as the following link:
   http://sourceforge.net/forum/forum.php?thread_id=1398290&forum_id=420324
   http://www.voip-info.org/wiki/view/Asterisk+billing
       •   These records are being kept in the SQL database and to delete them, do the
           following:
       •   From Tools Menu
       •   select phpmyadmin
       •   In the Database dropdown field, (top left), select the asteriskcdrdb.
           Select the 'cdr' table in the tick box
       •   At the bottom of the list of table you will find a dropdown field “With Selected”,
           select EMPTY
       •   You will be asks to 'confirm truncate table cdr',
       •   If you click Yes at this point the content of the table will be erased.
Login to the shell (SSH) as root. You can do this using Putty.
       mysql –p
       Enter password: passw0rd
       use asteriskcdrdb;
       delete from cdr;
       exit;
   sip_nat.conf
   To those who use this configuration (not all do), I have an issue with externip = <DNS
   name>. I wasn’t able to accept incoming calls although SIP was registered. Changing to
   externip=<my fixed external IP> if you have a fixed IP or externhost=<DNS name> if
   you don’t have a fixed IP and use Dynamic DNS service, solved the issue or do the
   alternative as I have outlined below.
   This issue may not be apparent at first as Asterisk will show that it is registered and you
   will still be able to make a call out (except calls to another Asterisk that have this property
   set). Another telltale sign is, you may not hear the ring tone when you are calling a party
   or you may have audio problem.
   127.0.0.1                     localhost
   127.0.0.1                     pcnovation.homelinux.org asterisk1.local
   Taking my DNS name out solved the issue, but I cannot send e-mail notification of my
   voicemail. To fix this problem (a kludge) I substituted pcnovation.homelinux.org with
   another valid domain name different to my DynDNS domain name such as yahoo.com
   thus:
   Determine if there is any conflict with other PCI hardware. If there is, you probably will
   need to replace or use another motherboard. If there is no conflict, make sure you have
   the kernel sources installed and rebuild the zaptel component.
rebuild_zaptel
Once done, run zttool on the command line to ensure the the card is functioning.
   To confirm that zaptel is actually running, after reboot, log in to Asterisk and at the
   command prompt issue the following command to configure zaptel.
genzaptelconf
Amportal restart.
   Using your browser on another PC, connect to TRIXBOX and using the Asterisk Info
   option, check to see if zaptel is loaded.
If this happens, run the following at the command prompt to force the reload:
   If the problem is related to Asterisk, this should get you going otherwise, it may be some
   other gremlin that has gotten into the system.
   Here is the link and as I have personally done it this way, I can assure you that it will
   solve your problem – I hope ☺
http://www.freepbx.org/2006/09/28/un-Trixbox-your-Trixbox/#more-7
   Hangs on shutdown
   Using X100P card caused Trixbox to hang on shutdown in Trixbox 2.0beta2. This
   happened to me on 2 different make X100P. This does not happen with TDM400 card.
   To avoid this hanging anomaly amportal stop must be executed before a reboot or
   shutdown.
Log in as root:
   Rename all of the K92zaptel files to K95zaptel so that they are invoked after the
   K94asterisk scripts:
   mv   rc0.d/K92zaptel       rc0.d/K95zaptel
   mv   rc1.d/K92zaptel       rc1.d/K95zaptel
   mv   rc2.d/K92zaptel       rc2.d/K95zaptel
   mv   rc4.d/K92zaptel       rc4.d/K95zaptel
   mv   rc6.d/K92zaptel       rc6.d/K95zaptel
shutdown -r now
   This was also highlighted by Ward Mundy of Nerd Vittle who said that he exploit allows an
   attacker to spoof caller-IDs, sniff voice calls on the network and take complete control of
   the system. This vulnerability has been identified in all versions of Asterisk included in
   the Trixbox and Asterisk@Home releases except the new Asterisk 1.4 (currently still
   under development).
   An attacker who can connect to the Asterisk server SCCP “Skinny” port (by default
   2000/tcp) can attack the vulnerable function prior to registering as a configured Skinny
   phone, permitting pre-authentication remote compromise and remote code execution as
   the root user.
   To overcome this, simply block port 2000 tcp traffic through your firewall. Otherwise, if
   your server is in the DMZ or connected to the Internet directly, then you should disable
   the chan_skinny module. To do this, edit /etc/asterisk/modules.conf and add the following
   line in the [modules] context.
amportal restart
Note: This module is primarily used to talk to Cisco phones in their native language, i.e. non-SIP.