Basic Asterisk Installation Process1. Download ZaptelGet source

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)

  1. Edit /etc/zaptel.conf wink (Defining fxs and fxo signals)
  2. Edit /etc/asterisk/zapata.conf wink (Defining Zapata Telephony Interface)
  3. Edit /etc/asterisk/extensions.conf wink (Defining Extensions)
  4. Edit /etc/asterisk/voicemail.con wink (Defining Voice Mailbox)
  5. Edit Other Configuration File as necessaryrazz

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.


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:


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 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)


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:

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:




Primary nameserver:

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:



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, 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:


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: (obviously, replace my IP with your Trixbox

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



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

To do this, I first downloaded them from svn with the following command:

cd /usr/src

svn checkout 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:

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
#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


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

To enable SSL web browsing to the Trixbox web console, run the following

yum -y install mod_ssl

service httpd restart

You can now connect to

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

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

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

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


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


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

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

I use the X-Lite soft phone which can be downloaded from

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: (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



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:











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

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>


(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 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

secret= (your secret)

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

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

Leave a Reply