Installating Zaptel
- cd /usr/local/src/
- tar -zxvf zaptel.gz
- cd zaptel
- make clean
- make
- make install
2. Download Asterisk
Get source
Installing Asterisk
- tar -zxvf asterisk.gz
- cd asterisk
- make clean
- make
- make install
- make samples
3. Loading Zaptel Modules
- modprobe Zaptel
- modprobe tor2
- modprobe wcfxo
4. Editing configuration file
Changed it as necessary (For example: see sample configuration file)
- Edit /etc/zaptel.conf (Defining fxs and fxo signals)
- Edit /etc/asterisk/zapata.conf (Defining Zapata Telephony Interface)
- Edit /etc/asterisk/extensions.conf (Defining Extensions)
- Edit /etc/asterisk/voicemail.con (Defining Voice Mailbox)
- Edit Other Configuration File as necessary
Check Zaptel Configuration
- ztcfg
Check Zaptel Lines
- zttool
5. Starting Asterisk
- /usr/sbin/asterisk -vvvgc
Starting Asterisk CLI
- /usr/sbin/asterisk -r
QoS And Traffic Shaping For VoIP Users Using iproute2 And Asterisk
The quality of my VoIP phone calls suffered whenever I was downloading or uploading anything. This was irritating, especially for those calling me (I heard them better than they heard me). So I poked at Iproute2 and other howtos, especially with regard to VoIP traffic, but I couldn’t find anything that worked well. After some playing around, I’ve found settings that were right for me: consistant VoIP quality, regardless of any activities on the wire.
A note regarding my VoIP system: I’m using Asterisk on a spare laptop (IBM T20), and my VoIP provider is the excellent Unlimitel, in Canada. Since I host my own Asterisk box, I can pretty much configure it to do whatever I want. I also bought an IAX hardphone which resides on my intranet.
Setup
I assume you already have in place your Linux firewall. VoIP packets transverse your firewall and your NAT is already set and working. We won’t even touch your firewall with this setup. All you need to do is to create the right qdisc, classes and filters to prioritize your VoIP packets. Iproute2’s tc command is here for that.
et’s pretend your network is as such:
Internet <——> Cable modem <——-> Linux Firewall <—–> Intranet <—–> VoIP phone
Since I’m using Asterisk with IAX, the port of interest is port 4569. If you’re using SIP, adapt the port in the following lines.
Some Background Information
IP packets have an area where you can preset QoS (quality of Service). While your ISP will probably ignore them, you can make use of them in your local network for some traffic shaping. The 4 QoS bits are:
0x02: Minimize Monetary Cost
0x04: Maximize Reliability
0x08: Maximize Throughput
0x10: Minimize Delay
Officially, you are allowed to turn on at most one of those bits. Your firewall can then look at the packets as they come and determine which ones to forward first, usually Minimize Delay.
Unofficially, you can turn on any of those bits at once. So you could have a packet with both Minimize Delay and Maximize Throughput. With this in mind, let’s look at some of the features of Iproute2.
Iproute2 And tc
By default, packets are sent First In-First Out. With tc, you can alter that dramatically. Let’s use a very simple queuing system: let’s have 3 “pipes” (or queues) and assign them a priority. That is, as long as there is something in queue 1, we don’t empty (or dequeue) queue 2, and as long as there is something in queue 2, we don’t dequeue queue 3.
This is done with the following command (note: eth1 is the external interface):
tc qdisc add dev eth1 root handle 1: prio priomap 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 0
The 16 values for priomap are important. It basically says that most packets end up in the 3rd queue (since we start at zero, it’s called “2”), except the packets with QoS Minimize-Delay, which are put in the 2nd queue, except the packets with every QoS bits on, which are put in the 1st queue. (the prio queuing discipline sets 3 queues by default)
The 16 values are in order for the following QoS:
1: 0x00: no QoS is set -> to 3rd queue (2)
2: 0x02: Mimimize Monetary Cost (MMC) (2)
3: 0x04: Maximize Reliability (MR) (2)
4: 0x06: MMC + MR (2)
5: 0x08: Maximize Throughput (MT) (2)
6: 0x0a: MT + MMC (2)
7: 0x0c: MT + MR (2)
8: 0x0e: MT + MR + MMC (2)
9: 0x10: Minimize Delay (MD) (1)
10: 0x12: MD + MMC (1)
11: 0x14: MD + MR (1)
12: 0x16: MD + MMC + MR (1)
13: 0x18: MD + MT (1)
14: 0x1a: MD + MT + MMC (1)
15: 0x1c: MD + MT + MR (1)
16: 0x1e: MD + MT + MR + MMC (0)
That was our first step.
Next, we will adjust each queue so they themselves have some queuing discipline:
tc qdisc add dev eth1 parent 1:1 handle 10: sfq limit 3000
tc qdisc add dev eth1 parent 1:2 handle 20: sfq
tc qdisc add dev eth1 parent 1:3 handle 30: sfq
This gives the first queue a supposed capacity of 3000 packets. In reality, the size will be 128 packets as it is hard coded in the tc program as being the maximum size possible.
At this point, most of the packets will go through the 3rd queue, except those with Minimize-Delay QoS bit set.
If you adjust your iax.conf on your Asterisk box to say the following, some packets may end up in the first queue:
tos=0x1e
However, since this isn’t a guarantee, we will force them to queue 1 using another trick in tc‘s sleeve, filters.
Remember, IAX uses port 4569, so we will force any packet to and from this port to go through the first queue:
tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip dport 4569 0xffff flowid 1:1
tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip sport 4569 0xffff flowid 1:1
tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip tos 0x10 0xff flowid 1:2
Technically, the last line isn’t required but it doesn’t hurt to leave it in.
And now, you’re done! All your VoIP packets are dequeued first and foremost. Even during a heavy download or upload, you won’t lose interactivity for your telephone calls.
To see some statistics, run the following command:
tc -s qdisc ls dev eth1
To remove your queues and return to the normal state, run:
tc qdisc del dev eth1 root
It’s now up to you to automatically run the appropriate commands at boot.
======================================================
Trixbox v1.1
Complete setup guide for a small business
Trixbox v1.1 is an all-inclusive Asterisk PBX solution that comes on a
bootable CD. It makes the process of bringing up a VoIP PBX solution a
piece of cake. This document details, step by step, how to install and
configure Trixbox v1.1 for a small business. It includes information on
how to set up extensions, incoming and outgoing phone calls, and other
useful applications.
Please feel free to e-mail chris@sureteq.com with any questions,
comments, or requests for additional configuration instructions. For
Asterisk or Trixbox support, you may contact Chris Sherwood at Sureteq,
Inc. located in Los Angeles, CA.
Table of contents
1.0 – Hardware platform used in the creation of this document
2.0 – Download and install Trixbox v1.1
3.0 – Seting up your server
3.1 – Network configuration
3.2 – Install Webmin
4.0 – Zaptel issues
5.0 – General Trixbox setup and security
6.0 – Module install
7.0 – Dial plan
8.0 – Configure internal extensions
8.1 – Zaptel channels
8.2 – Soft phone extensions
9.0 – Outbound routes
10.0 – Incoming calls/IVR setup
10.1 – System recordings
10.2 – Digital receptionist
10.3 – Time conditions
10.4 – Inbound route
11.0 – On hold music
12.0 – Forwarding calls to a cell phone / IAX2 setup
13.0 – Simple Queue setup
13.1 Forward to cell phones queue
14.0 – Panel configuration
1.0 – Hardware platform used in the creation of this document
Installing on a Dell Dimension 9150
Intel 630 CPU (3.0GHz)
1GB RAM
Zaptel card:
Digium Developer’s kit (TDM 400P with 1 FXO module, 1 FXS module)
Vonage line connected to the FXO module
Standard cordless telephone connected to the FXS module
2.0 – Download and install Trixbox v1.1
Download Trixbox v1.1 from SourceForge:
http://sourceforge.net/projects/asteriskathome
Burn the ISO to a CD and boot to it
*** WARNING ***
This CD will completely destroy whatever data is on the computer you are
booting to. Make sure this is what you want to do before proceeding.
When Trixbox splash screen opens, hit Enter
For keyboard type, take default (US)
Select appropriate time zone and hit OK
Type in your root password twice and hit OK
System will now format and install Trixbox v1.1
After first reboot, remove CD (or else it will start over). System will
reboot 2-3 times, and then you will end up at the login prompt.
Log in as root with the root password you entered above.
3.0 – Setting up your server
3.1 – Network configuration
Set up IP address information by typing netconfig.
Select Yes when prompted about setting up networking.
Select to use DHCP if you want (not recommended) otherwise, enter in IP
information for your Trixbox box.
I will use the following information for my home setup:
IP: 192.168.200.16
Netmask: 255.255.255.0
Gateway: 192.168.200.254
Primary nameserver: 4.2.2.2
Click OK and restart the network with ‘service network restart.’
Secondary nameserver – if you would like to add a secondary nameserver
for backup DNS purposes, nano /etc/resolv.conf and add a line
‘nameserver (ip address)’ underneath the primary nameserver information.
My resolv.conf now looks like this:
nameserver 4.2.2.2
nameserver 4.2.2.1
3.2 – Install Webmin
Webmin is a valuable tool used for the configuration of Linux-based
servers. I install Webmin by default on all of my Linux boxes simply
due to it’s ease of use. Webmin installs an HTTP-based GUI which you
can get to by using port 10000 from a browser.
To install Webmin, first you need to download the RPM file. There are
two ways to do this. First, you can go to www.webmin.com, download the
latest RPM, and then get it to your Trixbox box somehow (typically I
would use FTP to do this). Alternatively, you can skip the middleman
and download the Webmin RPM direct from the linux CLI using wget.
The wget command looks like this:
wget
superb-east.dl.sourceforge.net/sourceforge/webadmin/webmin-1.270-1.noarch.rpm
Once you have the RPM file downloaded, install it by running:
rpm -ivh webmin-1.270-1.noarch.rpm
You can now get to your Webmin console by putting the following into a
browser that exists on your LAN:
http://192.168.200.16:10000 (obviously, replace my IP with your Trixbox
IP)
4.0 – Zaptel Issues
Ensure that your Zaptel drivers are working correctly – I ran into a
problem here, and it took me a couple of hours to figure it out.
>From command line do ‘ztcfg –v’ – if there are no errors, and you get an
output that says:
Zaptel Version: SVN-trunk-r1162
Echo Canceller: MG2
Configuration
======================
2 channels configured.
Then you are OK.
My problem was that the wctdm and zaptel modules weren’t loading for some
reason. To fix this, I wanted to update and install the zaptel drivers
manually.
To do this, I first downloaded them from svn with the following command:
cd /usr/src
svn checkout http://svn.digium.com/svn/zaptel/trunk zaptel
Then I had to create a symbolic link to my kernel source directory with
the following command:
ln –s /lib/modules/`uname –r`/build linux-2.6
Once that was done, it was time to build my Zaptel drivers, but I kept
getting an error during the make process which stated ‘warning: ‘fcstab’
defined but not used.’
I found the answer to this problem here:
http://forums.digium.com/viewtopic.php?p=22935&
Basically, I had to edit line 407 of my /usr/src/kernels/(kernel
version)/include/linux/spinlock.h file from:
#define DEFINE_RWLOCK(x) rw_lock_t x = RW__LOCK_UNLOCKED
To:
#define DEFINE_RWLOCK(x) rwlock_t x = RW__LOCK_UNLOCKED
A very minute change, but it made all the difference. I was now able to
successfully compile my new Zaptel drivers with the following commands:
cd /usr/src/zaptel
make clean
make linux26
make install
modprobe wctdm
modprobe zaptel
genzaptelconf
5.0 – General Trixbox Setup/Security
Now it is time to configure Asterisk/Trixbox
Using a web browser, connect to your new setup by typing in the IP
address. For my box, I will use http://192.168.200.16.
To enable SSL web browsing to the Trixbox web console, run the following
commands:
yum -y install mod_ssl
service httpd restart
You can now connect to https://192.168.200.16.
You should see the Trixbox web console. If you get ‘Page Can Not Be
Displayed,’ go back and verify your IP settings.
Click on ‘System Administration.’ Enter the following info:
Username: maint
Password: password
First, let’s secure Trixbox. On the command prompt, change the ‘admin’
password by typing ‘passwd admin’ and then put in a new password twice.
Update maint password by typing ‘passwd-maint’ at the command line.
Enter the password twice.
Update AMP password by typing ‘passwd-amp’ at the command line. Enter
the password twice.
Update meetme password by typing ‘passwd-meetme’ at the command line.
Enter the password twice.
Update Cent-OS by typing ‘yum -y update’ at the command line.
6.0 – Module Install
Let’s install some modules. Modules are different software packages used
by Asterisk for different applications. For instance, if you want voice
mail, you would install the Voicemail module. This allows you to pick
and choose your Asterisk features.
Click on FreePBX in the left hand menu. Once FreePBX has opened, click
on ‘Tools’ in the upper right, and then ‘Module Admin’ on the left.
Lets start with some basic modules (you can add and remove modules at any
time).
Check the boxes next to Core, Time Conditions, Voicemail, On Hold Music,
IVR, Queues, Recordings and Backup & Restore.
Make sure ‘Enable Selected’ is in the drop-down box and click Submit.
See the red bar that just popped up at the top of the page? Click on the
red bar anytime you make changes. This reloads the Asterisk
configuration.
You can now click on ‘Setup’ in the upper right to get to the modules you
have just activated.
7.0 – Dial Plan
Before we start configuring, we need to come up with a dial plan.
Basically, you want to map out exactly what you want your Trixbox to do
prior to configuring it. This will help guide you to the appropriate
configuration.
I have 1 inbound Vonage line, and three extensions ready to be
configured. I like to use 1xx extensions internally, and for inbound, I
want to set up some hours of operation so that I’m not bothered by
clients after 7pm. With this simple setup, my dial plan will look like
this:
Inbound:
8:00am – 7:00pm – Go to main greeting (Thanks.wav). Greeting states that:
2 gets me (forwards to my cell phone)
3 gets my business partner (forwards to his cell phone)
4 to reach first available representative (round robin
between our two cell phones)
7:00pm – 8:00am – Go to closed greeting (Closed.wav). Greeting states
that our office is closed, and to please call back between 8am and 7pm
PST.
Outbound:
All calls should be routed out the FXO port of my Digium TDM400 (my
Vonage line). – I may change this later to include my IAX line if the
Vonage line is busy, but let’s keep it simple for now.
Internal extensions:
101 – Grandstream Budge Tone 100 SIP phone
102 – ExpressTalk softphone on my Windows computer
111 – Cordless telephone that is connected to the FXS port of my Digium
TDM400
That’s it for my dial plan…very simple.
8.0 – Configure Internal Extensions
8.1 – Zaptel extensions
I will start by setting up my extensions. In FreePBX, click on ‘Setup’
and then ‘Extensions.’
We’ll start with my cordless phone (extension 111 – connected to my
Digium TDM400).
Click on ‘ZAP’
I used these settings:
Extension number: 111
Display name: Cordless
Direct DID: <blank>
DID Alert Info: <blank>
Outbound CID: <blank>
Emergency CID: <blank>
Record Incoming: On Demand
Record Outgoing: On Demand
Channel: 1
Voicemail & Directory: Enabled
Voicemail password: 111 (same as extension number…keeping it simple)
Email address: (my email address)
Pager email address: <blank>
Email attachment: Yes (since I like getting the messages in my email)
Play CID: No
Play Envelope: No
Delete Vmail: Yes (this way, the voice mails are delivered to my email
inbox only…if set to no, once I delete the emails, I also have to go
into the voicemail and delete the voicemail manually)
Vm options: <blank>
Vm context: default
Hit ‘Submit’
Click the red bar to apply the options.
I now get a dial tone on my cordless phone.
8.2 – Soft phone extension
Next, we’ll set up a soft phone so that I can dial between internal
extensions.
I use the X-Lite soft phone which can be downloaded from
http://www.xten.com/index.php?menu=download.
In FreePBX, click on ‘Setup’ and then ‘Extensions.’
Click on ‘SIP.’
I used these settings:
Extension number: 102
Display name: Soft phone
Direct DID: <blank>
DID Alert Info: <blank>
Outbound CID: <blank>
Emergency CID: <blank>
Record Incoming: On Demand
Record Outgoing: On Demand
Secret: 12345 (can be whatever you want)
Dtmfmode: rfc2833
Voicemail & Directory: Enabled
Voicemail password: 102
Email address: (my email address)
Pager email address: <blank>
Email attachment: Yes (since I like getting the messages in my email)
Play CID: No
Play Envelope: No
Delete Vmail: Yes (this way, the voice mails are delivered to my email
inbox only…if set to no, once I delete the emails, I also have to go
into the voicemail and delete the voicemail manually)
Vm options: <blank>
Vm context: default
Now to configure the X-Lite soft phone.
Upon first installing, the SIP configuration pops up automatically,
otherwise, you can click on the down arrow at the top of the phone and
choose ‘SIP Account Settings.’
Click ‘Add.’
Display Name: Soft Phone
User Name: 102
Password: 12345 (my ‘secret’ from above)
Authorization user name: 102
Domain: 192.168.200.16 (your Trixbox IP address)
Domain Proxy
Register with domain and receive incoming calls (checked)
Target domain selected
Click OK.
Click Close on the SIP Accounts window.
I now try dialing my cordless phone x111 and it works! From the
cordless, I dial my Soft Phone x102 and it works as well.
I set up my Grandstream Budge Tone SIP phone exactly the same, but as
extension 101, and it works as well.
9.0 – Outbound Routes
Now that we have set up our internal extensions, let’s focus on getting
calls out. To do this, in FreePBX, click on Setup à Outbound Routes.
By default, Trixbox has already created a trunk out of my FXO port in the
Digium TDM400 card (trunk Zap/g0), and has already created a route which
makes the user dial 9 to get an outside line (0 9_outside). Lets click
on the ‘0 9_outside’ route on the right hand side of the screen and add
a few more dial patterns for outbound dialing.
The only dial pattern so far should be ‘9|.’ Under Dial Patterns, you
should see ‘Insert.’ This allows you to insert pre-defined dial
patterns for commonly dialed numbers. I picked the following patterns:
Local 7/10 digit
Toll Free
Information
Emergency
Click ‘Submit Changes’
Click the red bar at the top of the screen to apply the changes.
My Dial Pattern for route 0 9_outside now looks like this:
311
411
911
1800NXXXXXX
1866NXXXXXX
1877NXXXXXX
1888NXXXXXX
9|.
NXXNXXXXXX
NXXXXXX
I try dialing my cell phone with my cordless x111, and it works!
10.0 – Incoming calls/IVR setup
Now, I need to tell my Trixbox what to do with incoming calls.
10.1 – System recordings
But first, let’s take care of the necessary recordings for my Digital
Receptionist.
I want two different messages…one for during business hours, and one for
when we are closed. The scripts will look something like this:
Thanks.wav – “Thank you for calling Schw00d’s Asterisk emporium. Please
press 2 for Schw00d, 3 for Jim, and 4 for the next available associate.
Thank you and have a wonderful day.”
Closed.wav – “Thank you for calling Schw00d’s Asterisk emporium. Our
office is now closed. Please call back between the hours of 8am and 7pm
Pacific Standard time. Thank you.” (click).
To get these recorded first clear your throat and put on your best
announcer voice.
Click on System Recordings.
You can either record your greetings as .WAV files in an external
application (8-bit mono recordings work best over the phone lines), or
straight into an extension. We’ll record using our extension.
Put your extension number into the extension field and click ‘Go.’
Pick up the extension that you put into the extension field and dial *77.
You will hear a beep…start your recording. When you are done, hang up
the extension. Type in a name for your recording and click ‘Save.’
10.2 – Digital Receptionist
Click on Digital Receptionist and then click Add IVR.
I used these settings for my initial IVR:
Change Name: BusinessHours
Timeout: 10
Enable Directory: Checked
Directory Context: default
Enable Direct Dial: checked
Announcement: Thanks (my pre-recorded Thanks.wav file)
For my options, I will have 3, so I leave the Increase/Decrease default,
but if you have more or less options, feel free to add/remove them.
Option 1:
2 – Core – Cordless <111>
3 – Core – Soft phone <102>
4 – Core – Budge Tone <101>
Save
(Note: I know I said that I was going to have options 2 and 3 forward to
cell phones…I’m getting there, but I just want to get this set up and
working with local extensions first).
Click on ‘Add IVR’
Change Name: AfterHours
Timeout: 10
Enable Directory: Checked
Directory Context: default
Enable Direct Dial: checked
Announcement: Closed (my pre-recorded Closed.wav file)
Option 1:
2 – Core – Cordless <111>
3 – Core – Soft phone <102>
4 – Core – Budge Tone <101>
(Note: The options are exactly the same as my BusinessHours IVR except
for the name and the announcement…why the heck did I do that?
Well…because my Thanks.wav file lists the possible extensions (2,3,4),
and my Closed.wav does not…however I still want specific people to be
able to call my extension after hours, so even though the after hours
recording does not list the options…the options are still available).
10.3 – Time Conditions
Setting up time conditions will be the next step. Click on Time
Conditions. I used these settings:
Time Condition Name: Incoming
Time to match:
Time to start: 08:00
Time to finish: 19:00
Week Day Start: Monday
Week Day Finish: Sunday (we’re open 7 days!)
(Leave the rest blank)
Destination if time matches:
IVR: BusinessHours (my daytime-created IVR)
Destination if time does not match:
IVR: AfterHours (my nighttime-created IVR)
Click ‘Submit Changes’
Click the red bar at the top of the screen to apply the settings.
10.4 – Inbound Route
Next, we want to add our incoming route. Click on ‘Inbound Routes.’ You
can route based on DID channel, Caller ID Number, Zaptel channel, or if
all of those are left blank, it will route all un-matched (by DID, CID
or Zap channel) calls to your settings.
DID Number: <blank>
Caller ID Number: <blank>
Zaptel Channel: <blank>
Fax Extension: disabled (for now)
(Leave the rest of the fax stuff default)
Privacy Manager: No
Alert Info: <blank>
Set Destination:
Time Conditions: Incoming (the one we just created)
Click Submit
You will receive a warning stating that Leaving the DID and Caller ID
Number empty will match all incoming calls received not routed using any
other defined incoming Route. Are you sure? Click OK.
Click the red bar at the top of the screen to apply the settings.
At this point, we can simulate an incoming call by dialing 7777 from one
of our extensions. You should hear one of the two recordings we did for
the Digital Receptionist.
11.0 – On Hold Music
Next, we will set up our hold music.
Click on ‘On Hold Music.’ I typically delete all of the included mp3’s
and choose to upload my own. You have to always have 1 mp3 available
for hold music, so you’ll have to upload at least one song prior to
deleting all of the included music.
Browse for a .wav or .mp3 file that you would like to be played as your
hold music, and click ‘Upload.’
Click on the red bar at the top of the screen to apply the settings.
You can repeat this for as many songs as you’d like to upload.
One nice thing about Asterisk is that it only plays hold music while
someone is actually on hold. So, if someone hears 30 seconds of an
on-hold song, and then is taken off of hold, the song will pick up where
it left off the next time someone is put on hold.
12.0 – Forward calls to a cell phone / IAX2 setup
Since I only have a single Vonage line out to the Internet, I need to use
VoIP to forward an incoming call through the Internet to my cell phone.
To accomplish this, I use an IAX VoipJet line (available from
www.voipjet.com). This is a pretty solid service, and is easy to set
up. Plus, it allows you to just put in as much money as you need, and
is not a monthly-charge type of setup.
To set up the VoipJet extension, you’ll need to modify your config files.
nano /etc/asterisk/iax_custom.conf
Enter the following into the iax_custom.conf to set up your VoipJet
extension:
[voipjet]
type=peer
host= 64.34.45.100
secret= (your secret)
auth=md5
context=default
Next, you’ll need to modify your extensions_custom.conf
nano extensions_custom.conf
Enter the following into the extensions_custom.conf:
under [from-internal-custom]
exten => 112,1,SetCallerID(8181111111)
exten => 112,2,Dial(IAX2/(your voipjet number)@voipjet/1xxxxxxxxxx)
Three notes on the above…(your voipjet number) is the 4 digit number you
receive from VoipJet. The 1xxxxxxxxxx is the number you are forwarding
to (cell number). I set the caller ID to 8181111111 just so that I know
the call is coming from my Trixbox box.
Now, we go back to our Digital Receptionist and change the extension we
originally set up to the custom VoipJet number.
Click on Digital Receptionist. Under ‘2’ which is currently going to
Core:Cordless<111>, we want to change that to:
Custom App: from-internal-custom,112,1
This format is (context),(extension),(step). Custom contexts must start
with ‘custom.’
*** Note: If you can not call these extensions automatically, ensure
that the following is included in the extensions.conf
include => custom-ext-local
13.0 Simple Queue setup
13.1 Forward to cell phones queue
I would now like to set up a new queue which routes inbound callers to
the cell phone extensions I created in chapter 12. I had set up
extension 112, however lets say that I also have extension 113. This is
the exact same concept for internal extension queues.
Click on Queues on the left hand side of the FreePBX screen.
I used the following information to set this up:
Queue number (extension for the queue): 200
Queue name: CellRoundRobin
Queue password: <blank> (since I am going to use static agents, there is
no need to have the agents log into the queue)
CID name prefix: <blank>
Static agents: 112
113
Agent announcement: <none> (I don’t need one since this queue will end
up being an option off of the Digital receptionist that I set up in
chapter 10).
Hold Music Category: Default (an interesting note…you can set up
different hold music contexts for different applications such as
standard on-hold, or separate queues…so for instance, if you would
like callers to hear perhaps a song followed by an advertisement for
your company, you would set that up as a different hold music
category…for our purposes however, I will leave it default).
Max wait time: Unlimited
Max callers: 0 (unlimited)
Join empty: Yes
Leave when empty: No
Ring Strategy: roundrobin
Agent timeout: 15 seconds
Retry: 5 seconds
Wrap-up-time: 0 seconds
Call recording: No
Caller announcements: 0 seconds
Announce position: No
Announce Hold Time: No
Voice Menu: None
Join Announcement: None
Fail Over Destination:
Core: Voicemail box 111 (my cordless…since this ACD transfers calls to
cell phones, this is kind of a moot point for the application).
Click Submit Changes
Click the red bar at the top of the screen to submit the changes.
You should now be able to pop into Panel and see your new Queue. If you
dial 200 from an internal extension, the call will go to extension 112
(my cell phone). If you dial it again, it will go to 113, and so forth.
14.0 – Panel configuration
Now that we have some good extensions, trunks, and queues in our Trixbox
box, we should take a look at the FOP (Flash Operator Panel) or simply
Panel. It shows up next to ‘Reports’ on the main selection screen.
When you click panel, you will see your extensions, queues, and trunks
all laid out nicely. If you double-click on any of the green buttons,
you will be prompted for a password.
First, lets set that password to something we can use. (The default
password is: passw0rd).
Go to your CLI and type the following:
cd /var/www/html/panel
nano op_server.cfg
About 42 lines down, you’ll see security_code=passw0rd. Change the
‘passw0rd’ to whatever password you would like, and hit CTRL+X and
then Y and ENTER to exit nano.
Now, restart the panel with amportal restart from the CLI, and you’re
good to go.
There are a few useful things you can do with the FOP. For instance, if
a call is in session, you can click on the RED button to disconnect the
call. If you would like to call an extension, you can drag the phone
icon located to the right of the extension number to another extension.
This initiates the call to both phones. To transfer a call, drag the
phone icon from the extension you want to disconnect to the new
extension, and the call is transferred. For more information on the
FOP, please see http://www.aussievoip.com/wiki/TB-FOP.