Professional Documents
Culture Documents
Without Tears: The Other Dumb-Me Guide
Without Tears: The Other Dumb-Me Guide
If you find this guide helpful, a PayPal donation of $5 to $10 (US equiv) made to bensharif@gmail.com would
be very much appreciated.
Without Tears
http://dumbme.voipeye.com.au/trixbox/index1.htm
by
Ben Sharif
(The Author of Asterisk@Home without Tears)
About the Author
Last updated on November 30, 2006
Please send comment or suggestions to me at the address below
mailto:netvoice.solutions@gmail.com
Please do not send questions directly to me. Instead post all questions in the
Whirlpool Forum below so others may also benefit from it.
http://forums.whirlpool.net.au/forum-threads.cfm?f=107
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.
*
Stay tuned for our next episode TRIXBOX version X
Page 1 of 209
Page 2 of 209
TABLE OF CONTENT
Forward........................................................................................................................................... 8
1 Introduction................................................................................................................................ 9
1.1 The Components............................................................................................................ 9
1.1.1 The IP PBX ............................................................................................................. 9
1.1.2 Phones .................................................................................................................. 10
1.1.3 SIP Gateway ......................................................................................................... 10
1.1.4 Home Network ...................................................................................................... 10
1.1.5 VOIP Service Providers ........................................................................................ 10
2 Is VOIP for You? ...................................................................................................................... 11
2.1 What is it going to cost? ............................................................................................... 11
2.2 What will the Quality of the phone calls be? ................................................................ 11
3 Installation................................................................................................................................ 12
3.1 Change default Settings............................................................................................... 15
3.1.1 To get Help ........................................................................................................... 16
3.1.2 Change IP Address (set IP address to Static) ...................................................... 16
3.2 Configure TRIXBOX using Web Browser..................................................................... 18
3.2.1 Log in to System Administration ........................................................................... 18
3.2.2 Configuring Trixbox using freePBX....................................................................... 19
3.3 General Settings........................................................................................................... 22
3.3.1 Dial Command Options......................................................................................... 23
3.4 Extensions.................................................................................................................... 25
3.4.1 Extension numbers to avoid ................................................................................. 25
3.4.2 Create Extensions................................................................................................. 25
3.5 Follow Me ..................................................................................................................... 27
3.6 Ring Groups ................................................................................................................. 28
3.6.1 Now its a good time to set up your softphone...................................................... 29
4 Trunks to the outside world ................................................................................................... 30
4.1 What is a Dial Pattern? ................................................................................................ 30
4.2 What is a Trunk? .......................................................................................................... 30
4.3 Lets Create Some Trunks ........................................................................................... 31
4.3.1 Pennytel ................................................................................................................ 31
4.3.2 Oztell (SIP)............................................................................................................ 33
4.3.3 Oztell (IAX)............................................................................................................ 34
4.3.4 Astratel .................................................................................................................. 35
5 Calls Handling.......................................................................................................................... 37
5.1 Inbound Routes (Incoming Calls)................................................................................. 37
5.2 Time Conditionds ......................................................................................................... 39
Simple Time Condition.................................................................................................... 39
Complex Time Condition................................................................................................. 40
5.3 Outbound Routes ......................................................................................................... 41
5.3.1 What is an Outbound Route? ............................................................................... 41
5.3.2 How does it work?................................................................................................. 41
5.3.3 International .......................................................................................................... 42
5.3.4 Domestic ............................................................................................................... 43
5.3.5 MobileAust ............................................................................................................ 43
5.3.6 Oztellonly .............................................................................................................. 43
5.3.7 Astratelonly ........................................................................................................... 44
5.4 ENUM........................................................................................................................... 45
5.4.1 Setting up ENUM Trunk ........................................................................................ 45
5.4.2 Setting up ENUM Outbound Route....................................................................... 46
5.5 How to restrict Outgoing Calls...................................................................................... 47
6 System Recordings ................................................................................................................. 51
6.1 Direct recording ............................................................................................................ 51
6.2 Upload Pre-recorded Material ...................................................................................... 52
7 Digital Receptionist ................................................................................................................. 53
7.1 Setting Up Digital Receptionist..................................................................................... 53
7.2 Customising Individual Extension ................................................................................ 55
7.3 Multi-Language IVR...................................................................................................... 55
Page 3 of 209
Page 4 of 209
Page 5 of 209
Page 6 of 209
Page 7 of 209
FORWARD
This guide is not meant to be a detailed Manual for TRIXBOX; instead it is just a quick
and dirty guide and a resource to assist you get started with minimum pain. Use this
document only as a guide, not as a Gospel. It does not cover all minute details, variations
and possibilities of TRIXBOX neither will it provide you with a complete solution.
If a complete solution is required for your specific requirement, I suggest you
obtain the service of a VOIP consultant who will design your solution for a fee.
This document was compiled with input from dozens of participants in the Whirlpool - in
particular, Peter Q, Chippy, Rob Thomas and Leslie (Un-Nefer), and other forums to
whom I owe a great deal while learning how to configure TRIXBOX. These people have
helped me whenever I get into some difficulties and there are many difficulties and
counting.
If this document is of some use to you, I take no credit for it. 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, experienced and new alike.
Footnote:
I DO NOT provide TRIXBOX support and NEITHER do DIGIUM. If assistance is
required, please post in the forum. Participants in the forum may have a number of
solutions and at the same time providing the opportunity for others with similar
questions to benefit from the solutions provided.
http://forums.whirlpool.net.au/forum-threads.cfm?f=107
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, 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 dont answer each and every email.
I am not an expert on Asterisk and therefore I do not have all the answers. I ask those
requiring assistance to post their questions in the Whirlpool Forum 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 with TRIXBOX.
Page 8 of 209
1 INTRODUCTION
Asterisk is a Linux based IPBX application developed by Mark Spencer of Digium,
the company behind Asterisk. TRIXBOX evolved from the core Asterisk. It is made up
of several major components. These were developed under GPL supported relatively by
users themselves. It consists of applications, a provisioning system, an installer, and an
operating system that, together, make a complete package ready for use as an out of the
box PBX.
Within this document, TRIXBOX and Asterisk will be referred to frequently and they are
interchangeable as TRIXBOX is in essence a superset of the raw Asterisk.
The major components that make up TRIXBOX are
I will attempt to describe the set up of each of these. It does not matter if you are behind
a firewall. 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.
Note* 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).
Page 9 of 209
http://www.sipgate.co.uk/faq/index.php?aktion=artikel&type=faq&rubrik=024&id=398&lang=de
Install TRIXBOX on this old computer. It will take it over it starts by formatting the
hard disk, so make sure there is nothing on the machine that you want to keep.
Detailed instructions are given in the installation section.
1.1.2 Phones
You can buy SIP phones from Grandstream, SNOM, and Cisco etc. Or you can buy
an ATA (Analogue Telephone Adapter) produced by Linksys, Netcomm or Sipura,
which enables you to use an analog phone. The Netcomm and Linksys ATAs can be
bought from Harris Technology and a number of VSPs.
Register with a VSP such as Faktortel, Oztell 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.
Page 10 of 209
Page 11 of 209
3 INSTALLATION
(The dumb-me way)
Download the ISO from here
http://www.trixbox.org/modules/smartsection/item.php?itemid=2/
Burn the ISO image that you have just downloaded to a blank CD.
**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 initial system detection, you will be asked to select the type of keyboard that
you will be using. Use your cursor keys to navigate the keyboard types and use
the Tab key to move the focus to the OK or Back option. Select the appropriate
keyboard. I selected us and move the focus to OK and hit [Enter]
Page 12 of 209
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. I selected
Australia/NSW after which I use the TAB key to move the focus to OK and hit
[Enter] to accept.
Page 13 of 209
After entering and confirming your password, installation will now commence by
first formatting your Hard Disk.
From this point it will take about 30-45 minutes for the installation to be complete
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.
Page 14 of 209
After a moment, it will continue and you will see lots of lines of codes. This
process will take a while because it is building Asterisk.
When Asterisk build is complete, it will reboots itself and once rebooted,
TRIXBOX is ready for you to make changes to the system default and configure
TRIXBOX the way you want it.
Page 15 of 209
Page 16 of 209
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.
Page 17 of 209
Note
To log in to System Administration, use user: maint, password: password unless you
have changed the password during initial set up in 3.1.2
Once you logged in, you will be presented with the following screen,
Page 18 of 209
Select Tools
The red bar will appear. Click on it to begin
You will need to activate all the Administration/Management modules that you require
eg: Extensions, Queue, Digital Receptionists, and Trunks etc.
To do this, select Module Admin option on the left right under the FreePBX decal and
you will be presented with the Module Administration screen. You will be required to
enable and installs all the modules that you are likely to need. It does not matter if
you enabled modules that you do not require as all it will do is making FreePBX
refresh a little slower.
Click on Module Admin option on the left.
You will notice all the modules that are available as illustrated below.
Page 19 of 209
Note: You dont have to select all the modules. Only select the modules that you need.
To make it simple, I selected all modules by ticking all the tick boxes.
Click on the Submit button
However you may, at a later stage, choose to disable some of the modules that you
will not need by ticking the box next to the module and from the dropdown box next to
the submit button, select Disable Selected and hit Submit.
Connect to online module repository to update any of the modules that have been
updated since the installation, or include any other extra modules that have been
released.
Page 20 of 209
Click on the link pointed by the red arrow in the illustration above.
When connected, you will be presented with the following screen:
Apart from the modules that are already enabled, you will also see more modules that
you can install and also modules that have been updated (highlighted in amber) since
your installation.
Again to simplify matter, I will select all the modules.
First I will select all the Yellow modules and hit the submit button. When the screen
refresh, I will select all the other modules beneath it and hit the submit button.
I now have all modules installed and enabled.
Click on the red bar to commit the updates. When the screen refreshed, you are
done with the modules management section.
You will now notice more options have appeared on the left side of the screen.
Page 21 of 209
Once you have enabled all the required modules, you are ready to start. From this
point onward, the setup process are similar the difference being the presentation of
the management screen and some extra options in FreePBX.
Now you can start configuring TRIXBOX. Notice the selection options on the left.
Selecting each option will display configuration screen for that particular function e.g.
creating new extensions, creating new trunks etc.
This is where most of the action begins.
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 dont change the setting.
I have set mine to Unavailable.
Page 22 of 209
Asterisk Outbound Dial command option: r which generate the ring when you
dial out, or m if you want music instead. There are other options of course refer to
the chapter on Dial Command Options.
Country Indications: Australia
Allow Anonymous Inbound SIP Calls?: Yes (if this is not set you Yes, all inbound
unidentified SIP calls will not be accepted
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.
Options:
A(x)
C
d
D([called][:calling])
G(context^exten^pri)
Page 23 of 209
h
H
i
L(x[:y][:z])
m([class])
M(x[^arg])
p
P([x])
Page 24 of 209
r
S(x)
t
T
w
3.4 EXTENSIONS
The number of extensions to be set up depends on you. You can have soft phones
installed in 4 or 5 computers or mixture of ATAs and SIP SoftPhones. In my case I have
4 extensions to experiment with 3 soft phones and one ATA.
There are a number of extension numbers you should avoid using unless you are
prepared to edit and change some codes.
Park Notify
Reserved for speed dial
Reserved for FAX testing
Reserved for calls on hold
Reserved for calls on hold
Reserved extension for incoming calls simulation
Page 25 of 209
Note:
If you want this extension to be a remote extension, you will need to edit the extension and
change the entry under Device options. Nat: Never to Nat: yes.
Page 26 of 209
3.5 FOLLOW ME
After setting up your extensions, you need to decide if you want Asterisk to call another
pre-arranged extension, if the extensions called do not answer. This is where you will
define it as per the illustrations below:
To do this, select the Follow me option; Setup -> Follow Me.
You will be presented with the following screen:
.
Select the extensions that you want to define (the extension selection is on the right of the
screen). In my case, I picked my extension Ben Sharif <2001> add
In the screen that follows (see the illustration above), I entered the following information.
Page 27 of 209
Every time my extension is called, Asterisk will try to connect to extension 2001 and if no
answer, it will call my mobile. If still no answer, it will drop to my mailbox.
Page 28 of 209
Page 29 of 209
Page 30 of 209
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 call via trunk (b).
To create a new trunk using freePBX, select Setup tab and then select the Trunks option
from the vertical menu on the left.
4.3.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
601XXXXXXXX
60NXXXXXXX
61+4XXXXXXXX
Explanation
This pattern tells Pennytel to dial all Malaysian Mobile numbers
starts with 601 followed by 8 more digits.
This pattern dials numbers start with 60 followed by a one-digit
number in the range of 2-9 followed by 7 more digits.
For dialling Australian Mobile phone. The 61 is the Australian
Country code that will be added to the mobile phone number.
Page 31 of 209
601XXXXXXXX
60NXXXXXXX
61+4XXXXXXXX
Next we need to create the Outgoing Setting, Incoming Settings and Registration for
Pennytel.
Outgoing Settings
In the Trunk Name field we will enter the name of this trunk: pennytelsip
allow=alaw&ulaw&gsm
canredirect=no
canreinvite=no
disallow=all
host=sip.pennytel.com
insecure=very
secret= Password
type=peer
username=8880XXXX
Incoming Settings
In the User Context, enter the Pennytel User ID: 888XXXXX
canreinvite=no
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.
** Note: It seems that Pennytel is rejecting Asterisk. To overcome this problem, it is
necessary to add the following in the general section of your sip.conf.
useragent = MyPABX
*Note: The useragent can be any name, as long as it is NOT Asterisk.
My sip.conf looks like this;
; 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]
port = 5060
bindaddr = 0.0.0.0
Page 32 of 209
disallow=all
allow=ulaw
allow=alaw
; If you need to answer unauthenticated calls, you should change this next line to
; 'from-trunk', rather than 'from-sip-external'. You'll know this is happening if when
; you call in you get a message saying "The number you have dialled is not in service.
; Please check the number and try again."
context = from-sip-external ; Send unknown SIP callers to this context
callerid = Unknown
tos=0x68
useragent = MyPABX
; #, 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
60ZXX.
06612+NXXXXXXX
0661+NXXXXXXXX
61+1300XXXXXX
61+13ZXXX
61+1800XXXXXX
Explanation
This pattern tells Oztell to dial the inter Oztells numbers
This pattern dials numbers start with 60 followed by a one
digit number 1-9 followed by other numbers minimum of 2
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.
Using the Oztell 06 rate to dial any NSW number.
Using Oztell 06 rate to dial any Australian number.
Dials 1300 numbers
Dials 13 numbers
Dials 1800 numbers
899060X.
60ZXX.
06612+NXXXXXXX
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
canredirect=no
disallow=all
dtmfmode=rfc2833
fromuser=899060xxxxx
host= sip2.syd.net2max.com
Page 33 of 209
insecure=very
secret=Password
type=peer
username=899060XXXXX
Incoming Settings
In the User Context, enter the Oztell User ID: 899060XXXXX
canreinvite=no
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.
Outgoing Settings
In the Trunk Name, enter the name of this trunk: oztelliax (as an example)
allow=ulaw&alaw
disallow=all
host=iax2.syd.net2max.com
secret=Password
type=peer
username=899060XXXXX
Incoming Settings
In the User Context, enter the Oztell User ID: 899060XXXXX
context=from-trunk
secret=Password
type=user
Registration
In the registration field, enter the following:
899060XXXXX:Password@iax2.syd.net2max.com
Page 34 of 209
After all have been done, click on the Submit Changes button and click on the red
bar across the top of the screen.
4.3.4 Astratel
To make an international call, Astratel requires the numbers dialled to follow the
international format Access Code (0011) + Country code + area code + phone number e.g.
0011 60 6123456. To call an Australian number e.g. Sydney 67541234, Astratel
requires it in the following Australian format, Area Code + Phone number e.g. 02
67541234. Therefore the dialling rule will be in this form:
We need several patterns here:
Pattern
8888XXXX
0011+ZXX.
0+4XXXXXXXX
Explanation
This pattern tells Astratel to dial the inter Astratels numbers
This pattern dials all international numbers by prefixing it
with 0011 since the Outgoing routing stripped the 0011
before the number is sent to the trunk.
Using Astratel to dial any Australian Mobile number
8888XXXX
0011+ZXX.
0+4XXXXXXXX
Next we need to create the Outgoing Setting, Incoming Settings and Registration.
Outgoing Settings
In the Trunk Name field we will enter the name of this trunk: astrasip (you can call it
whatever you like)
In the Peer Details we will have the
following;
*Note: Astratel requires
fromdomain=sip03.astrasip.com.au
without which it may not work. Entries in
bold are mandatory, while the rest can
be left out.
allow=alaw&ulaw
disallow=all
fromdomain=sip03.astrasip.com.au
fromuser=8888XXXX
host=sip03.astrasip.com.au
insecure=very
secret= Password
type=peer
username=8888XXXX
Incoming Settings
In the User Context, we enter the Astratel issued User ID: 8888XXXX
In the User Details we will have the following
(entries in bold are mandatory. Others can be left
out).
canreinvite=no
context=from-trunk
fromuser=8888XXXX
insecure=very
qualify=no
secret=Password
type=user
username=8888XXXX
Registration
In the registration field, we will enter the following:
8888XXXX:Password@sip03.astrasip.com.au/8888XXXX
Page 35 of 209
After all these have been done, click on the Submit Changes button and click on the
red bar across the top of the screen.
The Trunks screen in freePBX will look like the following illustration below:
Page 36 of 209
5 CALLS HANDLING
5.1 INBOUND ROUTES (INCOMING CALLS)
This is where the behaviour of incoming calls from all trunks is being handled.
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 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, I have set all my incoming calls to be directed to Ring Group 10 as illustrated
below (later on in this guide I will create a digital receptionist for this purpose).
For each extra trunk, a corresponding inbound route may be created. All incoming calls
from all the different trunks that you may have can have their own individual characteristic
Page 37 of 209
To handle the calls that come in without Trunk ID, you may create a Catch-All route. In
my case, I simply create an Inbound Route with the DID Number and Calling ID
Number fields left blank. This will have the effect of handling all calls from trunks that
does not have an Inbound Route created (which includes all calls from PSTN and
incorrectly created incoming route). 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 may not work.
Page 38 of 209
You may create several time conditions and give each of the time condition a Short Name
to identify it. These time conditions can then be assigned to each individual Inbound
Route if you choose to do so.
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
Page 39 of 209
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.
Page 40 of 209
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.
Page 41 of 209
To make a call out (except inter extension calls), you will need at least one trunk and one
route.
In my case I created 5 routes:
International
Domestic
MobileAust
OztellOnly
AstratelOnly
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 three will do as the names suggest.
Click on the Add Route in the menu on the right of the screen.
5.3.3 International
You will need the following pattern to match international dialing.
Pattern
0011|60NXX.
0011|[7-9]XX.
0011|NXX.
Explanation
Most of my International calls are to Malaysia, I have defined
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
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
Mobile (excluding USA which is a 1).
In your Dial Patterns box, you will see something like this.
You will then need to pick the Trunk Sequent. In my case I need Astratel as the trunk
for this route and if it fails, I want Pennytel as a second choice/backup
Any number dialled with the 0011 prefix will be routed through the Astratel trunk and
should it fail, it will be routed to Pennytel.
Page 42 of 209
5.3.4 Domestic
You need the following pattern to match the Australian Telephone numbers and the
Australian Mobile numbers.
Pattern
0|[23478]XXXXXXXX
[2-9]XXXXXXX
ZXX.
Explanation
You will dial Australian telephone number as normal
using 03, 02 prefix but the route will strip the leading
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
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
start with a 0 such as 1300, 1800, 13 etc.
In your Dial Patterns box, you will see something like this.
You will then need to pick the Trunk Sequent. In this case I need Oztell as the trunk
for this route and if it fails, I want Astratel to take over as a second choice/backup
All numbers dialled matching the above pattern will be routed through Oztell and if it
failed, it will be routed via Astratel.
5.3.5 MobileAust
I have only a single pattern for calling Australian mobile illustrated below.
I want all my domestic mobile calls to be routed via Pennytel and I have not
nominated a second trunk. If it fails then I will not be able to make a Mobile call, as I
dont have a second trunk nominated.
5.3.6 Oztellonly
I have the following pattern in my Oztellonly route. I use Oztell for a number of call
types therefore some explanation may be in order.
Page 43 of 209
Pattern
0011|601XX.
0|[378]NXXXXXXX
1[38]XX.
899060XX.
NXXXXXXX
Explanation
This pattern will allow me to dial a Malaysian Mobile number.
The 0011 will be stripped before the number is sent to Oztell.
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
sent to the trunk.
If the trunk requires the 0, the trunk will insert it.
This is for dialling 1300, 1800 and 13 numbers.
For dialling Oztell inter Oztell users
Catchall for dialling a local number that doesnt start with 1
In the dial pattern box you will see something like the illustration below.
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.
5.3.7 Astratelonly
There is only one pattern for Astratel only calls. It is the Astratel DID for calling interAstratel users.
I use 1278 as a unique number to identify that this number must be dialled through
Astratel.
Page 44 of 209
5.4 ENUM
ENUM is a way for us to use VOIP to establish calls between VOIP systems without using
PSTN even though the numbers called are PSTN numbers provided that the numbers
called are registered with ENUM. In short, ENUM offers you the ability to call other
telephones directly over the Internet without involving a third party.
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.
Page 45 of 209
7. Make the ENUM trunk the first route in your Trunk Sequence. You may also
add other trunks in the sequence in case ENUM failed.
Page 46 of 209
Page 47 of 209
[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
include => app-speakingclock
include => app-userlogonoff
include => app-zapbarge
include => app-vmmain
include => ext-group
include => ext-fax
include => ext-meetme
include => ext-findmefollow
include => ext-paging
include => ext-queues
include => ext-test
include => ext-local
include => parkedcalls
;
; #### OutBound Routes ########
; # Below are all restricted routes #
; ###########################
;
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 cant 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
Page 48 of 209
Page 49 of 209
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.
Now go enjoy yourself with it.
Page 50 of 209
6 SYSTEM RECORDINGS
System recording is a facility available under freePBX to enable the recording of
customised voice prompts etc.
By now you should be able to navigate yourselves through the freePBX menu. To get to
the system recordings; Freepbx >> Setup >> System Recordings and you will get to the
following screen.
There are two methods that you can capture your recording:
Follow the prompt on the screen and dial *77 on your phone to do your recording now.
In my message, I have asked Rohani to record the following:
Page 51 of 209
Hi, you have reached the Sharifs household. Press 1 for Ben, 2 for Rohani, 3 for
Norsurya, or you may hold for someone to answer your call if anyone is available. If no
one answers your call, please leave a message. - Then hang up.
I then verify my recording by dialling *99. I can go to step 1 again if I am not happy with
the recording. Keep doing this till you are satisfied.
Once I am happy with the recording, I gave the recording a descriptive name MainMenuRohani1 so I know what the recording is for.
Click Continue.
Page 52 of 209
7 DIGITAL RECEPTIONIST
I found that the digital receptionist is very handy to filter some of the phone calls I have
been receiving. As in most households, no one will pick up the phone when it rings. One
is waiting for the other. Yours truly usually is the one who will pick it up and has to look
for the recipient usually my teenage daughter.
Select Add IVR option on the top right on the screen and the new Unnamed IVR
configuration screen will be presented to you.
Page 53 of 209
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.
In my IVR, I have defined my requirement as outlined below:
For number 1 & 2, I selected Extension, for 3 & 4 I have selected Custom App: and for
5 which I have changes to the letter t, I selected Ring Group.
For 1, I selected my extension from the drop down selection list.
For 2, I selected Rohanis extension.
For 3, which is for Norsurya, I have selected Custom App: to call her mobile.
For 4, I selected Custom App: for DISA (we will get to DISA a little later).
For 5, (I changed it to read t for timeout), I selected Ring Group 1
To call Norsuryas mobile I have included the following context in the
extensions_custom.conf file.
[custom-callmobile]
; to direct calls to Norsuryas mobile number.
exten => s,1,playback(pls-wait-connect-call)
exten => s,2,Dial(SIP/6140XXXXXXX@pennytelsip,60,r)
exten => s,3,Hangup
The last extension (which I have changed to the letter t) is to capture timeout, if the
caller does not press any option or, in case the DTMF tone does not register, the call will
be sent to Ring Group 1.
Once finished, click Save and also click on the red bar on the top of the scree.
Test it by dialling 7777, (Asterisk will simulate an incoming call) and you will hear your
Digital receptionist in action.
Page 54 of 209
Line 1 (priority 1) will tell the caller to wait while he/she is being connected.
Line 2 (priority 2) will call extension 2001 (my extension) and will try calling the
extension for 60 seconds. While waiting for me to answer the call, the caller will
be listening to soothing music hence the m, or, if r the caller will hear the
ringing tone instead.
Line 3 (priority 3) will direct it to my voicemail if the call is not answered within 60
seconds.
custom-myextension,s,1
You can do this to all the individual extension or you can call a number of extensions
simultaneously like a ring group like so.
exten
exten
exten
exten
=>
=>
=>
=>
s,1,playback(pls-wait-connect-call)
s,2,Dial(SIP/2001&SIP/2002&SIP/2003,60,m)
s,3,Macro(vm,2001); voice mail to my extension
s,4,Hangup
Page 55 of 209
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 LanguageChoice, we will have 3 options.
In choice 1, select the Custom App: radio button and enter the following in the box:
Custom App
custom-language_au,s,1
In choice 2, select the Custom App: radio button and enter the following in the box:
Custom App
custom-language_it,s,1
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:
Custom App
custom-language_au,s,1
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 MAINIVR_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)
exten => s,n,Playback(vm-dialout)
exten => s,n,Goto(ivr-4,s,begin)
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 [customlanguage_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
MainIVR (or MainIVR_IT) for call options (you must also have recorded the call options
announcement in the various languages).
Page 56 of 209
Page 57 of 209
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.
Each IVR will act as a traffic cop to direct calls to the appropriate extensions belonging to
each 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
1. Extensions 2000 to 2004 allocated to GP
Page 58 of 209
[from-Internal-medical]
[from-internal-dental]
[from-internal-pathology]
Page 59 of 209
Just as you think that all is OK, you realized something else requires attention. This is
true with TRIXBOX as well.
To do this you 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 you need to log in to TRIXBOX Configuration and
Administration and select the Config Edit selection.
Select Config Edit (marked with red arrow) and you will see a new screen with a list of all
the .conf files, which can be edited manually.
You may scroll down the page to find the file that you wish to edit.
Page 60 of 209
8.1.1 sip.conf
[general]
port = 5060
; Port to bind to (SIP is 5060)
bindaddr = 0.0.0.0
; Address to bind to (all addresses on
machine)
disallow=all
allow=g729 ; I add this in sip_custom.conf instead
allow=ulaw
allow=alaw
allow=gsm
; the 2 lines below I added them in sip_custom.conf although
; you can add them in sip.conf
defaultexpirey=600
; **Engin users: include this if necessary
maxexpirey=3600
; **Engin & BBP Global users: include this if necessary
qualify=yes
progressinband=yes
;
;
;
;
;
;
#include sip_nat.conf
#include sip_custom.conf
#include sip_additional.conf
;;#include additional_a2billing_sip.conf
Note:
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
Page 61 of 209
sip_custom.conf
language=au
videosupport=yes
allow=g729
allow=g723
allow=h261
allow=h263
allow=h263p
defaultexpirey=600
maxexpirey=3600
8.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
Note:
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
; additions to iax.conf that would not get deleted if you
upgrade freepbx
;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
8.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)
8.1.4 enum.conf
[general]
;
; The search list for domains may be customized.
Page 62 of 209
8.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.
The example below assumes that your ZAP is on channel 1.
Immediately after the line following the include => from-internal-trixbox context,
insert the following codes:
exten => 0,1,Dial(ZAP/1/{EXTEN})
exten => 0,2,Hangup
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.
Note:
If you're using a PRI line, you need to enable 'overlapdial' in
/etc/asterisk/zapata.conf for this to work.
.
8.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 etc.
;
[general]
parkext => 70
; What ext. to dial to park
parkpos => 71-79
; What extensions to park calls on
context => parkedcalls
; Which context parked calls are in
;parkingtime => 60
; Number of seconds a call can be
; parked for (default is 45 seconds)
transferdigittimeout =>3
courtesytone = beep
xfersound = beep
xferfailsound = beeperr
;adsipark = yes
;pickupexten = *8
featuredigittimeout = 800
[featuremap]
;blindxfer => ##
;disconnect => **
Page 63 of 209
automon => *1
;atxfer => *2
Note:
If you are having problem with # when you are calling external number that requires
you to input #, you may change the blind transfer key to ## which will solve the
problem but you must remember to use ## when you want to do blind transfer
.
Page 64 of 209
Note:
If you dont have the Asterisk Info option, refer to the NOTES section on how to obtain
this module.
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
and highlighted in green as illustrated in the Process Status screen below.
Page 65 of 209
If any of the four services arent showing green and running, chances are something is
wrong and your Asterisk will not be working correctly or not working at all. A probable
cause can be wrong configuration of your zaptel drivers. If you dont have a zaptel
devise, you should try to disable the related .conf files.
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.
Next, select and click Asterisk Info to verify your status.
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.
See illustration below.
Page 66 of 209
If all trunks are registered, you can be almost certain that at the very least, your TRIXBOX
installation is working (although not necessarily that you can make or receive calls).
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.
Page 67 of 209
Enter the phone number for you pots line in the Caller ID field
Enter 1 for Maximum channels
Set a dial rule you want for this trunk
Select an outbound dial prefix to select this trunk when dialling
Set the Zap Identifier to 1 (the default is g0)
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 dont
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.
10.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.
Page 68 of 209
For my installation to function correctly, I have also changed the following setting to
obtain a good compromise on volume/echoing:
rxgain=4 (you may have to experiment a little with this setting)
txgain=2
(you may have to experiment a little with this setting)
10.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
Leave the rest of the file as it is.
10.1.3 zaptel.conf
Change the loadzone and defaultzone to au
# Global data
loadzone = au
defaultzone = au
10.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.
Page 69 of 209
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.
10.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 dont 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:
install wctdm opermode=AUSTRALIA fxshonormode=1 boostringer=1 /sbin/ztcfg-- --ignore-install
wctdm && /sbin/ztcfg
Note:
As of Zaptel Drivers 1.2.4, by selecting opermode=AUSTRALIA the zaptel drivers
automatically add the "boostringer=1 , fxshonormode=1". Also see Appendix E.3
(Users Suggestions)
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
Page 70 of 209
(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 dont get caller ID, its 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.
10.3.1 zapata.conf
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
usecallerid=yes
hidecallerid=no
relaxdtmf=yes
10.3.2 zapata-auto.conf
The following switches may need to be added to the existing ones.
useincommingcalleridonzaptransfer=yes
adsi=yes
sendcalleridafter=2 ;you may need to add this switch
After the above are done, restart trixbox:
Amportal restart
If you are lucky, it should work. If not, you havent really lost anything.
Page 71 of 209
Page 72 of 209
Do the
touch /etc/fxotune.conf
/usr/sbin/fxotune -s
Once done, reboot using the following command:
reboot
When the reboot completes, you can start rebuilding the support for your ZAP devices or
for that matter, ztdummy if you dont have any ZAP devices.
Log in as root and type the following command:
(Every time there is a kernel update with yum (which is the case with Asterisk and CentOS),
ZAP device support needs to be rebuilt using the new kernel and you will need to follow the
same process below.)
rebuild_zaptel
Then reboot your system:
reboot
Now log in as root again and enter the following command:
amportal stop
genzaptelconf
Reboot once again:
reboot
and you're done.
(See also user Users Suggestions)
Editors Note: While the procedure above seems to have fixed most TRIXBOX users woes, it
didnt with mine for me, its back to reinstalling from scratch
..and after reinstall, still it would not detect my card. It seems that there is a detection
issue with the procedures, so, this time armed with a bigger hammer I proceeded to use
the brute force method.
Page 73 of 209
Page 74 of 209
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:
60(1.5/3.4,.4/.2,.4/2,.4/.2,.4/2,.4/.2,.4/2,.4/.2,.4/2,.4/.2,.4/2,.4/.2,.4/2,.4/.2,.4/2,.4/.2,.4/2,.4/.2,.4/2
,.4/.2,.4/2)
CWT8 Cadence: 30(.2/.2,.2/4.4)
Hook Flash Timer Min: .07
Hook Flash Timer Max: .13
Delete all the Vertical Service Activation Codes.
FXS Port Impedance: 220+820||120nF
Line 1 tab
Proxy: IP address of your Asterisk box e.g.; 192.168.1.234
Register Expires: 60
Display Name: Whatever
User ID: Asterisk extension number e.g.; 200
Password: password for that extension
Silence Threshold: medium
Page 75 of 209
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.
Note:
Disconnect Tone setting of 425@-30,425@-30;1(.375/.375/1+2) seems to work
well for Telstra, while 425@-30,425@-30;1(.390/.390/1+2) works better with
Optus.
Page 76 of 209
Note:
Disconnect Tone setting of 425@-30,425@-30;1(.375/.375/1+2) seems to work
well for Telstra, while 425@-30,425@-30;1(.390/.390/1+2) works better with
Optus.
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)
insecure=very
nat=no
port=5061 (for example)
qualify=yes
Page 77 of 209
type=peer
username=PSTN
Page 78 of 209
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 dont 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
To do this, I manually edit the extensions_custom.conf, by adding the following entries
at the end of the file,
[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
Custom App
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.
Page 79 of 209
12 DISA
12.1 DISA - HAND CODING METHOD
I use this function in my PSTN to VOIP gateway above.
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.
The example below is how I have implemented my DISA.
In my "MyMenu" that says, Hi, you have reached the Sharifs 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, "custompstn2voip,s,1".
Then in extensions_custom.conf, I have added (do this towards the end of the file).
[custom-pstn2voip] < -- you can name it to whatever you like
exten => s,1,Answer
exten => s,2,DigitTimeout(5)
exten => s,3,ResponseTimeout(10)
exten => s,4,Authenticate(12345678)
exten => s,5,DISA(no-password|from-internal)
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.
Page 80 of 209
Page 81 of 209
To configure the softphone, click on the hammer icon and you will see the following.
Profile Tab
This is the only screen that is required to be
filled in.
These are the only information required:
Account: <enter the extension number e.g.
201>
Password: 201 (I use the same number as
password for simplicity. I use the same
password when I set up the extension in
Asterisk).
Page 82 of 209
Click on the Tuning Wizard to tune your audio input and output.
Check Auto Send Video (if you are using Video). I checked it anyway.
Check Auto Receive Video (if you are using Video). I checked it anyway.
Click OK
Network Tab
Ensure that your Internet Connection Type is
set to LAN.
You may ignore the Information of Network
field.
Click OK
STUN Tab
You may or may not need to use a STUN
server. If you need to use it, click on the
STUN tab and enter the STUN server you
want to use. If you do, a list of publicly
available STUN server is listed in the section
referring to STUN Servers later in this
document.
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.
Click OK when done.
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.
Once done, you may test your softphone connection to Asterisk.
Page 83 of 209
14 OPERATOR PANEL
Operator Panel is a switchboard type application for the Asterisk PBX. Typically, it runs
on a web browser. It is able to display information about your PBX activity in real time.
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.
Page 84 of 209
Logged in Agents
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
Page 85 of 209
14.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 tasks such 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.
Page 86 of 209
To populate the HUD Manager, 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.
Page 87 of 209
If you have more extensions to register, click on New device again and repeat this
process as many extensions as you have.
Once this is done, you may proceed to install HUDLite.
.
Enter your username and password as required. I would enter one of my extension
number here and the extension password.
In my case I use my main office extension 2000.
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, dont use your server password, instead use HUDLite
default password of password.
Page 88 of 209
After a few seconds, it will populate all the extensions that you have added in the
HUD Manager.
Page 89 of 209
If any of the extension is being called or making a call, you will see it highlighted just
like the main office extension on the top left corner (the main number rang as I was
capturing the illustration).
Note:
The default password for HUD admin is password.
Page 90 of 209
features.conf
; Sample Parking configuration
;
[general]
parkext => 70
; What ext. to dial to park
parkpos => 71-79
; What extensions to park calls on
context => parkedcalls
; Which context parked calls are in
;parkingtime => 60
; Number of seconds a call can be
; parked for (default is 45 seconds)
transferdigittimeout =>3
courtesytone = beep
xfersound = beep
xferfailsound = beeperr
;adsipark = yes
;pickupexten = *8
featuredigittimeout = 800
[featuremap]
;blindxfer => ##
;disconnect => **
automon => *1
;atxfer => *2
Note:
If you are having problem with # when you are calling external number that requires
you to input #, you may change the blind transfer key to ## which will solve the problem
but you must remember to use ## when you want to do blind transfer.
extensions.conf
[from-internal]
include => parkedcalls
If that entry does not exist, add it to extensions.conf.
In the above example, the extension to park a call to is ext.70.
Page 91 of 209
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.
Page 92 of 209
simply dial the pickup number and your extension number. If the ringing phone is
your phone, the call will be transferred to you.
Group call pickup is typically invoked by dialling *8# or *8 from another phone in the call
pickup group.
You can also change *8 to something else if you wish.
see http://www.voip-info.org/wiki/view/Asterisk+config+features.conf
Page 93 of 209
Page 94 of 209
16 MEETME TELECONFERENCE
Meetme Tele-conference can be configured through FreePBX.
Meetme is pretty easy to set up, as there is very little to do. However, to set up Meetme,
a Zaptel card will be required (at least in my case as I dont seem to be able to get it
working without a Zaptel card installed). There may be a workaround for it and I hope
someone will be able to tell me what it is so it can be included in this guide (in the latest
TRIXBOX 1.1, this seems to have been resolved).
The Meetme function of Asterisk is similar to a Tele-conference call where multiple callers
can call in and participate in a two-way conference like in a party room where everyone
can talk and listen to one another or just to listen to a Tele-presentation.
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
All these lines do is point to the meetme_additional.conf where the conference
room extensions are being created when you create a conference room through
freePBX conference setup option.
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:
; Extensions for my meeting rooms
conf => 8200|
Page 95 of 209
Once these are done, from one of your phones dial, 8200 and you will be asked to enter
the PIN number and to confirm it.
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 8200. 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.
Page 96 of 209
16.1.1 /var/spool/asterisk/meetme
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
then change the ownership of this directory
chown asterisk.asterisk /var/spool/asterisk/meetme
next you need to change the permission,
chmod 775 /var/spool/asterisk/meetme
Page 97 of 209
17 VOICEMAIL
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 AMP GUI. If you require email notification of your voicemail, you may enter your
email address in the email address field.
Page 98 of 209
make -C /etc/mail
Once done, restart sendmail thus;
/etc/init.d/sendmail restart
You should now be able to have your voice mails sent to you via email.
The above instruction is also mentioned in this link:
http://sourceforge.net/forum/message.php?msg_id=3387743
and http://sourceforge.net/forum/message.php?msg_id=3432175
17.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.
By default, your host will look like this:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1
localhost
127.0.0.1
asterisk1.local
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:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1
localhost
127.0.0.1
pbx.myasterisk.com asterisk1.local
You may use an editor (such as nano) to edit /etc/hosts file through CLI.
Note:
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).
Page 99 of 209
Change the entry in red to reflect your requirement e.g you may change vm@asterisk
to My Super PBX and change Voice mail System to read My Cool System
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:
From: My Cool System
To: Ben Sharif
Subject: New Message 1 in mailbox 201
Ben Sharif,
There is a new voicemail in mailbox 201:
From: "Mary" <321>
Length:
0:20 seconds
Date: Friday, July 29, 2005 at 11:16:38 PM
Dial *98 to access your voicemail by phone.
Visit http://pbx.myasterisk.com:8080/cgi-bin/vmail.cgi?action=login&mailbox=201
17.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.
3. DR will ask for a password to be followed by the # key.
4. I enter my password followed by #
5. DR will then give me my voice mail if there is any.
17.3.2 Method 2
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.
Next modify your IVR
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 dont 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.
As I said, it is indeed simple.
Note:
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.
18 FAX TO E-MAIL
Before setting up Fax over IP, I suggest that we should read this: http://www.softswitch.org/foip.html and : http://www.voip-info.org/wiki-Asterisk+fax
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 Telecoms 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.
Note: Whatever it is worth, I have not been able to utilise this facility to my satisfaction.
19 WEATHER REPORTS
The existing weather forecast information that comes with TRIXBOX is configured for
New York. However, Asterisk can be configured to allow the automatic downloading of
Australian weather forecast information, convert it to a .wav file and play the
announcement. The announcement will be a simulated announcement (ala Dr. Whos
Dalek). However it will provide you with the weather report of your region of choice.
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 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.
Forecast Area
NSW Sydney Metro
All NSW
ACT
Snowy Mountain
Brisbane Metro
All Queensland
Melbourne Metro
All Victoria
Adelaide Metro
All SA
Perth Metro
All WA
Darwin and Rural Area (All NT)
Tasmanian Cities
All Tasmania
File reference
IDN10064
IDN10031
IDN10035
IDN10103
IDQ10090
IDQ10700
IDV10450
IDV10310
IDS10034
IDS10033
IDW12300
IDW12000
IDD10110
IDT13400
IDT13100
Now you have completed all the necessary preparations for me anyway.
(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.
Therefore, there has to be a better method so read on.
First we will use putty to make a batch text file called convert2wav in the /usr/bin
directory containing the following:
/usr/bin/wget -O /tmp/weather1.txt ftp://ftp2.bom.gov.au/anon/gen/fwo/IDN10064.txt
/usr/bin/flite /tmp/weather1.txt /tmp/weather1.wav
/usr/bin/wget -O /tmp/weather2.txt ftp://ftp2.bom.gov.au/anon/gen/fwo/IDN10031.txt
/usr/bin/flite /tmp/weather2.txt /tmp/weather2.wav
(Change IDN10064.txt and IDN10031.txt to suit the areas you require)
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,
# sed 's/\[/ /g' /tmp/weather1.txt > temp.txt
# sed 's/\]/ /g' /tmp/weather1.txt > temp.txt
# sed 's/\_/ /g' /tmp/weather1.txt > temp.txt
as an example
- but we are not going there. It may get too confusing. For the moment we will just stick
with the batch file example above.
Once this is done, change the permission for convert2wav thus:
chmod 755 /usr/bin/convert2wav
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.
=>
=>
=>
=>
=>
*61,1,Answer
*61,2,Playback(national-weather-service)
*61,3,Playback(pls-hold-while-try)
*61,4,Playback(/tmp/weather1)
*61,5,Hangup
; ######################################
; Forecast for the whole of NSW
; ######################################
exten
exten
exten
exten
=>
=>
=>
=>
*63,1,Answer
*63,2,Playback(national-weather-service)
*63,3,Playback(pls-hold-while-try)
*63,4,Playback(/tmp/weather2)
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:
Custom App
custom-weathermetro,s,1
Custom App
custom-weathernsw,s,1
20 REMOTE MANAGEMENT
Some may want to manage their Asterisk Box remotely. If you are thinking about doing
this, I highly recommend you register with Dyndns to get yourself a dynamic DNS unless
you have a fixed public IP address.
You should also forward port 80 on your router to point to the local IP address of your
Asterisk box.
To log on to your Asterisk box remotely using your browser, use
http://your_Dyndns_name:80 or http://your_public_ip_address:80
20.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 :
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
# e.g. "Listen 12.34.56.78:80"
#
# To allow connections to IPv6 addresses add "Listen [::]:80"
#
Listen 0.0.0.0:80
change this from 0.0.0.0:80 to read 0.0.0.0:8080
#
After doing the above, reboot Asterisk.
Dont 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
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 instead of never as illustrated in the screen
below - see red arrow.
Once you have done this, you will need to ensure a couple of things in your .conf files are
set correctly.
21.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
21.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)
localnet=192.168.1.0/255.255.255.0
externrefresh=10
Those are the only 2 .conf files that require changing if needed.
In the general options, checked the Check for update and Automatic popup on incoming
call.
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.
22 CALLS RECORDINGS
There have been numerous discussions on the legality of recording telephone
conversations. Some say its OK while others say its illegal. If you are recording
conversation without the consent of all parties, you may be breaking the law so be
warned.
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 of freePBX.
If you want to monitor all the calls, you will need to log in as admin with the default
password of ari_password.
To monitor the calls for any individual extension, log in using the extension number and
the extension password.
The configuration file for ARI is /var/www/html/recordings/includes/main.conf.php
There are 2 ways you can record your calls:
23 STUN SERVERS
STUN (Simple Traversal of UDP through NAT - Network Address Translation) is a
protocol for assisting devices behind a NAT firewall or router with their packet routing
operates on TCP and UDP port 3478.
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
stun.fwd.org
stun01.sipphone.com
stun1.noc.ams-ix.net
stun.voipbuster.com
stun.voxgratia.org
#permit=192.168.1.0/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
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).
Once this is done, click Update and restart Asterisk.
User Channel: (your extension the extension you want Asterisk to ring before
connecting you the number you are calling) e.g. sip/2001
Select dial by context radio button.
Enter outbound-allroutes in the context box
When done, click Apply and you are done.
You can now start making calls from Outlook using the click-to-dial facility.
Now that was quite painless
25 SPEED DIAL
Sometime you may just need to call someone quickly without having to look up his/her
phone number. Well, you can by simply defining a shortcut number. There are 2 ways
you can do this - my way and TRIXBOXs way.
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 Bens 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. Thats all there is to it.
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.
Note:
This setting means the Windows Messenger has a user/phone number of 206 known to
the SIP server (your Asterisk box) of 192.168.1.101.
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.
System 1
def.com.au
System 2
xyz.com.au
IAX Trunk
Outgoing Dial Rules:
Trunk Name
XX.
Parramatta
XX.
MainOffice
host=xyz.com.au (or System 2 IP) host=def.com.au (or System 1 IP)
secret=xxxyyy
Peer Details
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 isnt really necessary. It will still work without it unless you use Dynamic IP.
System 1
System 2
IAX
90000
xxxyyy
Parramatta
Disabled
IAX
91000
xxxyyy
Main Office
Disabled
Extensions
Phone Protocol
Extension Number
Extension Password
Fullname
Voicemail & Directory
System 1
System 2
Parramatta
Leave Blank
6XXX
(6001 to 6009 are Parramatta
Office extensions)
MainOffice
Leave Blank
XX.
(Apart from Local extensions, all
others go via City Office)
IAX2/Parramatta
IAX2/MainOffice
Outbound Routing
Route Name
Route Password
Dial Patterns
Trunk Sequence
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.
Note:
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.
System 1
def.com.au
System 2
xyz.com.au
6XXX
InterOffice
XX.
InterOffice
host=def.com.au (or System 1 IP)
Qualify=yes
type=peer
InterOffice-In
context=from-internal
host=def.com.au (or IP)
type=user
IAX2 Trunk
Outgoing Dial Rules:
Trunk Name
Peer Details
User Context
User Details
Qualify=yes
type=peer
InterOffice-In
context=from-internal
host=xyz.com.au (or IP)
type=user
System 1
System 2
InterOffice
Leave Blank
6XXX
(6001 to 6009 are Parramatta
Office extensions)
InterOffice
Leave Blank
XX.
(Apart from Local extensions, all
others go via City Office)
IAX2/InterOffice
IAX2/InterOffice
Outbound Routing
Route Name
Route Password
Dial Patterns
Trunk Sequence
System 1
def.com.au
System 2
xyz.com.au
6XXX
InterOffice
Qualify=yes
type=friend
XX.
InterOffice
host=def.com.au (or System 1 IP)
Qualify=yes
type=friend
System 1
System 2
InterOffice
Leave Blank
6XXX
(6001 to 6009 are Parramatta
Office extensions)
InterOffice
Leave Blank
XX.
(Apart from Local extensions, all
others go via City Office)
IAX2/InterOffice
IAX2/InterOffice
IAX2 Trunk
Outgoing Dial Rules:
Trunk Name
Peer Details
User Context
User Details
Outbound Routing
Route Name
Route Password
Dial Patterns
Trunk Sequence
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.
28 CUSTOMISED VOICE
The default pre-recorded voice prompts and announcements in TRIXBOX are suitable for
almost every situation, however there will be times when customised voice prompts or
announcements will be required, e.g. to mix English and other language on a single
announcement.
Although there are separate voice sets that can be used, sometimes we only require a
few prompts and not the entire voice set.
If your sound files were recorded in mono but NOT 16 bit, 8000 Hz
sox hello.wav -r 8000 hello.gsm resample -ql
If your sound files were recorded in stereo, you will need the cl switch.
sox hello.wav -r 8000 cl hello.gsm resample ql
if your sound files were recorded in ADPCM wav files, to convert to standard
wav file;
sox hello.wav -r 8000 -c1 -s -w hello-out.wav resample -ql
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;
for a in *.wav; do sox "$a" -r 8000 -c1 "`echo $a|sed e s/wav//`gsm" resample ql
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
random=yes
#include musiconhold_additional.conf
musiconhold_additional.conf
[acc_1]
mode=files
directory=/var/lib/asterisk/mohmp3/acc_1/
random=yes
Assuming 2001,2002 and 2003 being the extensions of the various departments.
Incoming route for Trunk1 send to
custom-department_1,s,1
Custom App
Incoming route forTrunk2 send to
custom-department_2,s,1
Custom App
Incoming route forTrunk3 send to
custom-department_3,s,1
Custom App
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. Those with alternative way, I would like to hear from them.
The following are addresses where you may find some streaming music for your MOH.
181.kickin country http://64.236.34.106:80/stream/1075/
Classical 96.3 FM http://216.126.84.50:8000/
SMOOTHJAZZ.COM http://scfire-chi0l-2.stream.aol.com:80/stream/1005/
Sky FM Modern Jazz http://205.188.215.227:8008/
Energy 98 Dance Hit http://193.138.205.194:8014/
Life FM Adelaide Australia http://203.16.214.174:8040/
Groove Mix http://63.249.3.194:8010/
The 80s channel http://64.236.34.106:80/stream/1040/
I have chosen to schedule a Monthly (On the 1st) backup as per the illustration below:
In the Schedule Name, I have given it a name Monthly (to signify that it is a
monthly job)
I have also selected all the items to be backed up VoiceMail, System
Recordings, System Configurations, CDR and Operator Panel.
Next from the Run Backup drop down choice, I have chosen Monthly (on the 1st)
31 SUGARCRM CONFIGURATION
SugarCRM is a contact management software that comes bundled with Trixbox.
To set up SugarCRM, first, you need to open the SugarCRM application
http://<your.trixboxip.address>/crm using the default username of Admin and the
password of password.
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 'Save' to save that information.
Let's add another one.
Click on the contacts tab and then select 'Create Contact' from the left hand Shortcuts
menu.
Add another extension, in my case I chose my daughters extension 2002:
Firstname: Norsurya
Last name: Sharif
Home: 2002
Click 'Save' to save that information.
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:
From your Linux CLI, log in as root.
cd /var/www/html/crm/modules/Contacts
nano Popup_picker.php
Browse down to line 121 and change it from:
$number =
To
$number =
You should now be able to dial from SugarCRM to your other internal extensions and to
the outside world.
Note: You can add multiple users who will each have their own settings/contacts/etc.
Nominal Ethernet
Bandwidth (Kbps)
87.2
31.2
21.9
28.7 approx
30.83 approx
20.8
55.2
47.2
31.5
Approx. MBytes
usage per hour
39.24
14.04
9.86
12.92 approx
13.87 approx
9.36
24.84
21.24
14.18
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.
From the Linux command type in:
# 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 dont see sse in your
flag then the file you need must contain the words no-sse.
Now go to http://kvin.lv/pub/Linux/Asterisk/ and select wither Asterisk version 1.2 or 1.4
depending on the version you are using.
The files are named as codec_g72x-???-pentiumx.so
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 g723gcc-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.
Change folders to /usr/lib/asterisk/modules
# cd /usr/lib/asterisk/modules
Download the required file(s)
If Asterisk does not start then you may need to try icc files instead of gcc.
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.
In the application priority section (see below), I have defined the various ports that I want
priority to be accorded the highest priority. In this case I have defined the port ranges
related to my VOIP requirement.
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.
(Note: This may not be the best solution. If anyone has a better solution for the Linksys WRT54G,
please let me know).
36 UPDATING TRIXBOX
Mostly everyone would like to have the latest and the greatest and if you are like most,
chances are that you would certainly want to update your TRIXBOX as soon as there is a
new update.
The following instruction may get you there. Its 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)
Then followed by:
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:
genzaptelconf
After that restart amportal.
Amportal restart.
Using your browser on another PC, connect to TRIXBOX and using the Asterisk Info
option, check to see if zaptel is loaded.
Note:
In Trixbox 1.2.2, there has been reports of problems associated with not being able to record
messages, VM not working, wake up calls not working, etc
It seems like a patch from Asterisk that was needed for permissions was removed and. for some
reason the extra sounds didnt get installed.
The following will fix all the reported 1.2.2 problems.
Go the command console on your trixbox and log in as root (ou can also use the JavaSSH client
in the GUI). At the command prompt, issue the following commands:
yum clean all
yum y update asterisk
rpm -i --force /var/trixbox_load/rpms/asterisk-sounds-1.2.1-1.noarch.rpm
rm -rf /tmp/*
reboot
cd /usr/src
wget http://yum.trixbox.org/centos/4/devel/zaptel-1.2.9.1-4.1467.i686.rpm
wget http://yum.trixbox.org/centos/4/devel/zaptel-modules-2.6.9-34.0.2.EL1.2.9.1-4.1467.i686.rpm
rpm -i --force zaptel-1.2.9.1-4.1467.i686.rpm
rpm -i --force zaptel-modules-2.6.9-34.0.2.EL-1.2.9.1-4.1467.i686.rpm
reboot
37 TOOLS
The following are tools that I use regularly to maintain my Asterisk systems.
37.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 (see Note).
Those who want to use Web Admin to maintain the Asterisk System may download
Webmin from here or from CLI, do the following:
wget superb-east.dl.sourceforge.net/sourceforge/webadmin/webmin
-1.300-1.noarch.rpm
Install it with the following command through CLI:
rpm -Uvh webmin-1.300-1.noarch.rpm
Or be totally lazy like me and do the whole lot in a one liner;
rpm Uvh http://superb-east.dl.sourceforge.net/sourceforge
/webadmin /webmin-1.300-1.noarch.rpm
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.
Locate the entry where it says:
Port=10000
And change this to;
Port=9000
You can use http://192.168.0.101:9000 to connect to Webmin instead.
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
(Note, 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
37.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
37.3 WINSCP
WinSCP is an open source freeware SFTP client for Windows using SSH. Legacy SCP
protocol is also supported. Its main function is safe copying of files between a local and a
remote computer. It can be downloaded from the following link.
http://winscp.net/eng/index.php
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
*
Asterisk PC (IPBX)
192.168.1.101
8 #
C3010-2E
192.168.1.11
PC
192.168.1.21
1 2 3
4 5 6
7 8 9
*
8 #
C3010-2E
192.168.1.12
PC
192.168.1.22
PC using SoftPhone
(X-Ten)
192.168.1.20
1 2 3
4 5 6
7 8 9
*
8 #
C3010-2E
192.168.1.13
Through PSTN if network down
VOIP Traffic
Network Server
192.168.1.100
PC
192.168.1.23
39 TROUBLE SHOOTING
With any installation, you will find some unexpected problems. Some are inherent issues
due to bugs or undocumented features, while others are unintentional mistakes.
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.
.
PSTN Line Tab
PSTN Disconnect Detection
APPENDIX A
A.1 ASTERISK FEATURE CODES
Asterisk feature codes are defined in the feature codes selection of the Setup Tab,
illustrated below:
#
Directory
*11
User Log on
*12
User Log off
*43
Echo Test
*52
Call Forward No Answer/Unavailable Activate
*53
Call Forward No Answer/Unavailable Deactivate
*60
Time
*61
Weather
*62
Schedule wakeup call
*65
Speak your Extension number (your extension is XXX)
*69
Last Caller number/ID
*70
Activate Call Waiting (deactivated by default)
*71
Deactivate Call Waiting
*72
Call Forwarding System
*73
Disable Call Forwarding
*74
Call Forward all prompting deactivate
*77
IVR Recording
*78
Enable Do-Not-Disturb
*79
Disable Do-Not-Disturb
*90
Call Forward on Busy
*91
Disable Call Forward on Busy
*92
Call Forward Busy Prompting deactivate
*97
Message Center (does no ask for extension)
*97 + 0 Change email greeting message.
*98
Enter Message Center
*99
Playback IVR Recording
*411
Directory (while in IVR similar to #)
*422
Connect to Gabcast
70
666
888
7777
show
show
show
show
show
soft
[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
[ch]
ringcadence = 1000,4000
dial = 425
busy = 425/500,0/500
ring = 425/1000,0/4000
congestion = 425/200,0/200
callwaiting = 425/200,0/200,425/200,0/4000
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+340/1100,0/1100
[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
busy = 425/480,0/480
ring = 425/1000,0/4000
congestion = 425/240,0/240
callwaiting =
!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/
200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!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+400
[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
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/650,0/25
[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
stutter = 350+375+400
[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
congestion = 400/500,0/500
callwaiting = 400+16/500,0/8000
dialrecall = !400/200,!0/200,!400/200,!0/200,!400/200,!0/200,400
record = 1400/500,0/15000
info = !950/330,!1400/330,!1800/330,0
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
[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
congestion = 425/200,0/200
callwaiting = 425/200,0/600,425/200,0/10000
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
[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
busy = 425/350,0/350
ring = 425/800,0/3200
congestion = 425/350,0/350
callwaiting = 425/200,0/5000
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
[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
info = 950/330,0/15,1400/330,0/15,1800/330,0/1000
record = 1400/500,0/60000
stutter = 350+440/750,440/750
[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
APPENDIX B
B.1 AUSTRALIAN VSPS (TRUNKS)
The following is a collection of TRUNK settings recommended for other VSPs that are not
covered above. Details of trunks configuration are correct at the time they were compiled,
however changes may have been made. Users are advised to consult their respective
VSPs for confirmation.
Note: In Peer Details, insert qualify=yes if you want fail-over to PSTN should you loose
your internet connection.
B.1.1 BBPglobal
Peer Details
Trunk Name: bbpglobal
allow=g723&gsm
authuser=<user number>
disallow=all
fromdomain=sip2.bbpglobal.com
fromuser=<user number>
host= sip2.bbpglobal.com
insecure=very
secret=<password>
type=peer
username=<user number>
User Details
User Context: <user number>
context=from-trunk
fromuser=<user number>
insecure=very
secret=<password>
type=user
username=<user number>
Note:You may need to include the
following in your sip.conf
Maxexpirey=3600
Qualify=yes
Register String:
<user number>:<password>@sip2.bbpglobal.com/<user number>
fromuser=02321XXXX
host=byo.engin.com.au
insecure=very
musiconhold=framed
nat=yes
port=5060
qualify=no
realm=mobileinnovations.com.au
reinvite=yes
secret=<password>
type=friend
username=02321XXXX
User Details
User Context: 02321XXXX
context=from-pstn
fromdomain=voice.mibroadband.com.au
host=byo.engin.com.au
secret=<password>
type=user
username=02321XXXX
Note:
You may need to include the following in
your sip.conf
Defaultexpirey=600
Maxexpirey=3600
Register String:
02321XXXX:<password>@byo.engin.com.au/02321XXXX
User Details
User Context: xxxxxx
auth=md5
context=from-trunk
host=iax.faktortel.com.au
qualify=3000
secret=<password>
type=friend
username=xxxxxx
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
Primus is a strange animal. To get it to work with Trixbox requires me to do a bit of
detective work. With my partner in crime, Colin, we set out to play detective because
we need to obtain the correct credential to get Trixbox to register and to be able to
make and receive calls through Trixbox. Primus Telecom has refused to assist.
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
First of all, using a browser, we need to enter the following address:
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.
[Data] Success=1 [Settings] proxies:proxy0:display_name="02********"
proxies:proxy0:username="AU_********" proxies:proxy0:password="********"
system:auto_update:config_server_url="https://spconfig.voip.iprimus.net.au/Soft
phoneConfigurationServer/Default.aspx?Action=CONFIG&Username=username&Version=1
&MAC=$MAC$&computerid=$computerid$" audio:headset:audio_in_agc_enabled="0"
audio:speaker_phone:audio_in_agc_enabled="0" codecs:speex_fec:enabled="0"
codecs:speex_wb:other_bandwidths="24000,26000,28800,32800,40000,44000"
codecs:speex_wb:starting_bandwidth="44000"
codecs:speex_wb:usable_bandwidths="20800,24800,28800,36800,44000"
codecs:speex_wb_fec:enabled="0" proxies:proxy0:contacts_etag=""
proxies:proxy0:contacts_last_upload_failed="0" proxies:proxy0:contacts_mod="0"
proxies:proxy0:default_session_refresh_interval_in_seconds="60"
proxies:proxy0:digit_map="#1\a\a.T;match=1;prestrip=2;"
proxies:proxy0:domain="asnjla2.bw.iprimus.net"
proxies:proxy0:enable_session_timer="0" proxies:proxy0:enabled="1"
proxies:proxy0:ice_enabled="1"
proxies:proxy0:maximum_time_before_reregistration_in_seconds="1800"
proxies:proxy0:minimum_time_before_reregistration_in_seconds="20"
proxies:proxy0:override_outbound_proxy="1"
proxies:proxy0:override_sip_listen_port="0"
proxies:proxy0:override_stun_server="1" proxies:proxy0:port_range_enable="0"
proxies:proxy0:proxy="sbc01a.syd.voip.iprimus.net.au:15060"
proxies:proxy0:register="1" proxies:proxy0:reregister_in_seconds="3600"
Note the bold highlights. These are the data that you need for your trunk setting.
Armed with the data above, you may now set your trunk setting.
Peer Details
Trunk Name: iPrimus
User Details
User Context: 02********
allow=alaw&ulaw
disallow=all
context=from-trunk
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
Peer Details
Trunk Name: KoalaSip
allow=g729&gsm&alaw&ulaw
disallow=all
fromuser=<User-sip id>
host=203.122.248.173
nat=yes
port=5060
qualify=no
secret=<password>
type=friend
User Details
User Context: <User-sip id>
context=from-pstn
fromdomain=203.122.248.173
host=203.122.248.173
secret=<password>
type=user
username=<User-Sip id>
Register String:
<User SIP ID>:<password>@koalavoip.com.au
B.1.6 MyNetFone
Peer Details
Trunk Name: MyFonesip
allow=g729&alaw&ulaw
authname=091xxxxx
canreinvite=no
disallow=all
dtmfmode=rfc2833
fromuser=091xxxxx
host=sip01.mynetfone.com.au
insecure=very
nat=yes
pedantic=no
qualify=yes
secret=<password>
type=friend
username=091xxxxx
User Details
User Context: 091XXXXX
canreinvite=no
context=from-trunk
fromuser=091xxxxx
insecure=very
qualify=no
secret=<password>
type=friend
username=091xxxxx
Register String:
091xxxxx@sip01.mynetfone.com.au:<password>:091xxxxx@sip01.mynetfone.com.au/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
User Details
User Context: 661XXXX
allow=g729
disallow=all
host=iax.ifone.com.au
qualify=yes
secret=<password>
type=peer
username=661xxxx
context=from-trunk
host=iax.ifone.com.au
secret=<password>
type=user
username=661xxxx
Register String:
661xxxx:<password>@iax.ifone.com.au
B.1.8 Nodephone
Peer Details
Trunk Name: Nodephone
allow=g729
canreinvite=no
disallow=all
dtmfmode=rfc2833
fromdomain=sip.internode.on.net
User Details
User Context: <usernumber>
context=from-trunk
host= sip.internode.on.net
secret=<password>
type=user
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
Peer Details
Trunk Name: sipme
authname=1777xxxxxx
dtmfmode=rfc2833
fromuser=1777xxxxxx
host=sip.sipme.com.au
insecure=very
secret=<password>
type=peer
username=1777xxxxxx
User Details
User Context: 1777xxxxxx
context=from-trunk
fromuser=1777xxxxxx
secret=<password>
type=user
Register String:
1777xxxxxx:<password>@sip.sipme.com.au/1777xxxxxx
B.1.10 TelephoneGlobal
Peer Details
Trunk Name: Teleglobal
allow=g729
canreinvite=no
disallow=all
host=210.80.182.142
insecure=very
secret=<password>
type=peer
username=2222xxxxxxxxx
User Details
User Context: 2222xxxxxxxxx
context=from-pstn
fromuser=2222xxxxxxxxx
secret=<password>
type=user
Register String:
2222xxxxxxxxxxx:<password>@210.80.182.142/2222xxxxxxxxxxx
User Details
User Context:
You may prefix outgoing
calls with 0197 to disable
outgoing CID.
Inbound route 64997xxxxx
required to be forwarded
to a destination ext/menu
Register String:
64997xxxxx:<your password>@akl.italk.co.nz/64997xxxxx
(Source Ref: Steve Biddle)
User Details
User Context:; Your_Customer_ID
context=from-pstn
host=voip.0064.co.nz
insecure=very
secret=PASSWORD
type=user
username=CUSTOMER_ID
Register String:
Your_Customer_ID: <your password>@voip.0064.co.nz
User Details
User Context: <usernumber>
context=from-trunk
type=user
Register String:
<usernumber>@sip.broadvoice.com:<password>:<usernumber>@sip.broadvoice.com/<usernumber>
User Details
User Context: 65xxxx
auth=rsa
context=from-trunk
inkeys=freeworlddialup
type=user
Register String:
65xxxx:<password>@iax2.fwdnet.net
B.3.3 SipBroker
Peer Details
Trunk Name: sipbroker-out
allow=g729&ulaw&alaw
canreinvite=no
disallow=all
dtmfmode=rfc2833
fromdomain=<your existing sip provider>
fromuser=<your user ID of existing provider>
host=sipbroker.com
insecure=very
nat=yes
port=5060
secret=<password for existing provider>
type=peer
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
Peer Details
Trunk Name: sipphone
fromdomain=proxy01.sipphone.com
host=proxy01.sipphone.com
insecure=very
secret=<password>
type=peer
username=1747xxxxxxx
User Details
User Context: 1747xxxxxxx
canreinvite=no
context=from-trunk
fromuser=1747xxxxxxx
insecure=very
qualify=no
secret=<password>
type=user
username=1747xxxxxxx
Register String:
1747xxxxxxx:<password>@proxy01.sipphone.com/1747xxxxxxx
User Details
User Conext: <leave blank>
secret=<your password>
srvlookup=yes
type=friend
username=<your username>
Register String:
<username>:<password>@sip1.voipbuster.com/<username>
(Source Ref: Florent Chandelier)
APPENDIX C
Details for Asterisk Sound Files can be obtained from the following links:
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
<End quote>
Log on to
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).
Replace Current Asterisk Files: ausounds.tar.gz
Quick Steps for TRIXBOX.
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.
Additional Asterisk Language Set: ausoundset.tar.gz
At the command prompt execute the following commands:
wget http://files.voipshop.com.au/ausoundset.tar.gz
tar -zxvf ausoundset.tar.gz -C /var/lib/asterisk/sounds/
Done. Your asterisk sound files now contain an au soundset.
Note : You can only download these files from voipshop,
Please do not re-distribute. These are free for non-commercial use only. Contact
VOIPSHOP mailto:support@voipshop.com.au for commercial license details.
To overcome this issue and make the FXS ports connect to the Asterisk box, complete
the following:
From a windows command prompt
telnet 192.168.XXX.XXX
voip set interfacename iplan (this changes it from the WAN to the LAN interface
Next, power reset the router.
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.
(Source Reference: Sean Mahon)
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.
2.
3.
4.
5.
6.
Connect the unit to your network via the RJ45 port behind the unit.
Power up the unit
Plug in a telephone in the RJ11 port 1 behind the unit (any one will do)
Dial **** and listen to the instruction that you will hear from the IVR
Dial 101 and when prompted enter 0 followed by # (this will disable DHCP)
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
networks subnet mask, do dont 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.
General Settings
Outbound Caller ID: <8888xxxx>
Maximum Channels: 1
Outgoing Settings
Trunk Name: astratel
Peer Details:
authuser=8888xxxx
context=from-trunk
fromdomain=sip01.astrasip.com.au
fromuser=8888xxxx
host=sip01.astrasip.com.au
insecure=very
secret=xxxx
type=peer
username=8888xxxx
Incoming Settings
User Context: 8888xxxx
User Details:
context=from-trunk
insecure=very
secret=xxxx
type=user
Registration
Register String:
8888xxxx:xxxx@sip01.astrasip.com.au/8888xxxx
iax.conf
[general]
externip= *.*.*.* ; ip address or hostname, DynDNS is OK
indications.conf
change
country=au
; default is "us"
rtp.conf
change
rtpend=10100
sip.conf
[general]
port = 5060
; Port to bind to (SIP is 5060)
bindaddr = 0.0.0.0
;Address to bind to all addresses on machine
disallow=all
allow=ulaw
; allow desired codecs in preferred order
allow=alaw
allow=g729
allow=ilbc
allow=gsm
context = from-trunk
; Send unknown SIP callers to this context
callerid = Unknown
#include sip_nat.conf
#include sip_additional.conf
sip_nat.conf
add
nat=yes
externip= *.*.*.* ; ip address or hostname even DynDNS is OK
localnet=192.168.1.0/255.255.255.0 ; change to suit
Make sure that the driver loads with the module option opermode=AUSTRALIA.
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.
kernel: -- Setting echo registers:
kernel: -- Set echo registers successfully
If you have 4 FXO ports, you should see this 4 times.
<\quote>
Obviously adjust this if youre accessing your PSTN line via VoIP from a remote network.
Set the LINE1 to allow g711a as well as whatever else your prefer.
"LINE1 -> Use Pref Codec Only = no".
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 youre 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 its 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.
Try changing the Regional -> FXS Port Impedance to "600".
Try changing the FXO port impedance to "600" or "global".
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 youre 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
try and keep the sound levels at a "good" level. Sipura's definition of good may not suit
your situation. The constant variation of the volume annoys me so I recommend leaving it
"off".
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.
In the end it basically boils down to this
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 youre 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.
http://gleesos.wordpress.com/2006/02/08/voip-with-asterisk/
Stephen has attached samples of Zapata configuration files with correct settings for
Australia loop start.
zaptel.conf
# Autogenerated by /usr/local/sbin/genzaptelconf -- do not hand
edit
# Zaptel Configuration File
#
# This file is parsed by the Zaptel Configurator, ztcfg
#
# It must be in the module loading order
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
channel=>1
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
;Include genzaptelconf configs
#include zapata-auto.conf
;Include AMP configs
#include zapata_additional.conf
Introduction
According to Digium recommendations Asterisk boxes should be IDE based. This is
counter to what one would expect. However if you are using Zaptel drivers then a fast
hard disk or hardware RAID might steal interrupts from the Zaptel drivers. Additionally
many hardware RAID solutions set themselves up on the PCI bus with timings that can
delay voice traffic to your voice cards.
(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 wouldnt 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:
HD 1 connected to primary IDE as master.
HD 2 connected to secondary IDE as master.
CDROM connected to secondary IDE as slave.
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 disks 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.
mkisofs -o modified-trixbox.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot boot-load-size 4 -boot-info-table
-a
-a
-a
-a
/dev/md0
/dev/md0
/dev/md1
/dev/md1
/dev/hda1
/dev/hdc1
/dev/hda3
/dev/hdc3
use
watch cat /proc/mdstat
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
They should be ok now.
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!!!!).
The following commands achieve the same ends:
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:
Boot from the Trixbox CD. At the prompt type:
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.
APPENDIX F
NOTES
WHAT VERSION OF ASTERISK IS INSTALLED?
To get this information, at the Linux command prompt, type the following:
rpm -qa | grep asterisk
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
Login as admin using the default password of mypassword.
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 contend of the table will be erased.
Park Notify
Reserved for speed dial
Reserved for FAX testing
Reserved for calls on hold
Reserved for calls on hold
Reserved extension for incoming calls simulation
SIP_NAT.CONF
To those who use this configuration (not all do), I have an issue with externip = <DNS
name>. I wasnt 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 dont 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.
This is caused by my /etc/hosts file where I have an entry (in red)
127.0.0.1
127.0.0.1
localhost
pcnovation.homelinux.org asterisk1.local
yahoo.com asterisk1.local
Some of us have gotten used to and became quite attached to the maintenance modules
in AMP but unfortunately they were taken out of FreePBX. 2.1.x that comes with
TRIXBOX. If you are like me, still wanting the Asterisk Info module, this is what you have
to do.
Download the missing modules here: www.voipeye.com.au/invoke/maint-modules.zip
(compliment of Mark Brooker).
Copy the folder asterikinfo (dont bother with the others as they are in TRIXBOX)
in the zip into the var/www/html/admin/modules folder of TRIXBOX (you could
use WinSCP to do this).
Next, ensure that status.pl is executable. At the Linux command prompt enter
the following command:
chmod 775 /var/www/html/admin/modules/sysstatus/status.pl
Then go into your modules admin in the browser and install the new Asterisk Info
module. Once this is done go to tools and you should have Asterisk Info as one of
the option - Showing all your extensions and trunks.
BUGS REPORTS
Software is not software if it is release without any bug. It just goes against natures logic,
not to mention our Mr. Murphy
MISSING /VAR/SPOOL/ASTERISK/MEETME
It seems that the meetme directory does not exist in /var/spool/asterisk.
It will be necessary for this directory to be created otherwise if you have the user
join/leave feature enabled, meetme will not function correctly.
Note: This issue has been rectified in later ISOs.
modules.conf
;
; Asterisk configuration file
; Module Loader configuration file
;
[modules]
autoload=yes
;
; If you want, load the GTK console right away.
; Don't load the KDE console since
; it's not as sophisticated right now.
;
;noload = app_trunkisavail.so ; no need to do this as app_trunkisavail.so is deleted
noload => pbx_gtkconsole.so
;load => pbx_gtkconsole.so
noload => pbx_kdeconsole.so
;
; Intercom application is obsoleted by
; chan_oss. Don't load it.
;
noload => app_intercom.so
;
; DON'T load the chan_modem.so, as they are obsolete in * 1.2
noload
noload
noload
noload
=>
=>
=>
=>
chan_modem.so
chan_modem_aopen.so
chan_modem_bestdata.so
chan_modem_i4l.so
;
; Load either OSS or ALSA, not both
; By default, load OSS only (automatically) and do not load ALSA
;
noload => chan_alsa.so
noload => chan_oss.so
;
; Module names listed in "global" section will have symbols
globally
; exported to modules loaded after them.
;
[global]
chan_zap.so => yes ; you may need to add this switch
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.
The following is the hack to stop the panic from occurring:
Log in as root:
Go to the /etc/rc.d directory.
cd /etc/rc.d
Rename all of the K92zaptel files to K95zaptel so that they are invoked after the
K94asterisk scripts:
mv
mv
mv
mv
mv
rc0.d/K92zaptel
rc1.d/K92zaptel
rc2.d/K92zaptel
rc4.d/K92zaptel
rc6.d/K92zaptel
rc0.d/K95zaptel
rc1.d/K95zaptel
rc2.d/K95zaptel
rc4.d/K95zaptel
rc6.d/K95zaptel
shutdown -r now
The system will now shutdown or reboot without a panic.
CHEAT SHEET
amportal restart
asterisk -rvvvv
service asterisk restart
service network restart
sip reload
Enable Call waiting by default
EXPLOIT ALERTS
According to Computerworld, a vulnerability in the Asterisk PBX server that enables an
attacker to gain complete control of a PBX system has been discovered by an Australian
and New Zealand security outfit.
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.
noload => chan_skinny.so
Then restart Asterisk.
amportal restart
Note: This module is primarily used to talk to Cisco phones in their native language, i.e. non-SIP.
BIBLIOGRAPHY
The real people behind this guide (Real Names used or aliases if real names unknown): I
have also made references to a number of other online publications and forums whenever
I need confirmations and further clarifications. Some of the information in this document
were sourced from these people and places.
Andrew Gillis
Asterisk Guru
Brian
Bob Fryer
Brian
Colin Swan
Graham Foote
Greg Hind
Jack Zimmermann
Jeffrey Borg
lusyn.com
Mark Brooker
Matt (daggo)
Neilmc
Nathan Poyner
Openvoice
Peter Quodling
Rob Thomas
Sammy/sz
Sean Mahon
Shaun (Ewing)
Stefan Keller-Tuberg
SteveM
Steven D
Thunderbird1/Chippy
voip-info.org
VoipShop
Voxilla.com
Ward Mundy