trixbox Pro v2.0

Complete setup guide for a small business

Document v1.2 - Last updated 05/22/2008 by Chris Sherwood, SureTeq, Inc.

 

trixbox Pro v2.0 is Fonality's Hybrid-hosted Asterisk PBX solution that comes as a downloadable ISO.  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 Pro v2.0 for a small business.  It includes information on how to set up extensions, incoming and outgoing phone calls, and other useful applications.

 

SureTeq is an FtOCC Admin and Tech authorized Trixbox support vendor.  We can provide remote support and troubleshooting, or we can design, implement and support your company's complete VoIP PBX solution.  Hourly rates and support contracts are available.  For pricing information and contact details, please email us.

 

- SureTeq now has a blog/RSS feed!  Subscribe to our blog for tips, tricks, news, and general information about all things Asterisk/Trixbox.  Click here for the SureTeq blog!

 

Not your version?  Click here to see the index of all SureTeq documentation! - Previous versions and other product documentation.
 

 

Table of contents

 

1.0 - Hardware platform used in the creation of this document
2.0 - Download and install trixbox Pro v2.0
3.0 - Setting up your server
    3.1 - Set up your DHCP server
    3.2 - Install Webmin

    3.3 - Connecting via SSH
    3.4 - Secure SSH RSA key pair authentication
4.0 - Setting up your hardware
5.0 - General trixbox Setup/Security
    5.1 - Options --> Customer
    5.2 - Options --> Settings
    5.3 - Options --> Network

    5.4 - Options --> Link Server
6.0 - Dial Plan
7.0 - Configure Internal Extensions
    7.1 - FXS Extension
    7.2 - Softphone Extension
    7.3 - Polycom phone setup
    7.4 - Grandstream GXP-2000 setup
    7.5 - Aastra phone setup
    7.5 - A note on hardware phones

8.0 - Trunks
    8.1 - FXO Trunk
    8.2 - T1 Trunk
    8.3 - Voipjet Trunk
9.0 - Dial Plan Setup
    9.1 - Local Dial Plan
    9.2 - Long Distance Dial Plan
    9.3 - International Dial Plan

10.0 - Call Menus
    10.1 - System Recordings
    10.2 - Sub-menus
    10.3 - Scheduler
    10.4 - MAIN submenu

11.0 - On Hold Music
12.0 - User Control Panel
    12.1 - UCP Home
    12.2 - UCP Voicemail
    12.3 - UCP Calls
    12.4 - UCP Features
    12.5 - UCP ACD
    12.6 - UCP Reporting
13.0 - Groups
14.0 - Call Queues
    14.1 - Creating a Queue
    14.2 - Add Queue to a Submenu
    14.3 - Create Queue Extension
    14.4 - ACD Reports
    14.5 - ACD Recording

    14.6 - Agent Commands
15.0 - HUD
    15.1 - HUD Installation and Configuration
    15.2 - Web Launcher

16.0 - Extra Features
    16.1 - Status --> resources
    16.2 - Status --> alerts
    16.3 - Options --> echo
    16.4 - Conferences

 

 

 

1.0 - Hardware platform used in the creation of this document

 

Installing on a Dell Dimension 9150

Intel Pentium D CPU (2.8GHz dual core)

2GB RAM

 

Zaptel card:

Digium TDM400 with 1 FXO and 1 FXS module

PSTN line connected to the FXO module

 

Hybrid Hosted trixbox Pro diagram

Hybrid Hosted trixbox Pro diagram


 

A note from the author:

 

Hey everyone,

 

If you have found this document useful, and plan on purchasing some VoIP equipment, I would greatly appreciate if you use the banner link for Voipsupply.com below.  I have purchased equipment from Voipsupply.com many times, and I have always found their pricing to be great and their shipping fast, so I definitely recommend them.  By using the link below, you won't be raising YOUR purchase price at all...you would simply be donating a small percentage of your purchase to me, and I would definitely appreciate it!

 

Thanks,

-Chris Sherwood

SureTeq, Inc.

 

My Voipsupply.com banner link:

 

 


2.0 - Download and install trixbox Pro v2.0

 

Download the trixbox Pro v2.0 ISO file from trixbox.com:

 

https://buy.trixbox.com/trixbox/entry.cgi#1

Select the first option 'Download, activate or buy a new trixbox Pro server.

*** NOTE: - there are 3 different versions of trixbox Pro - SE, EE, and CCE.  These stand for Standard Edition (SE - free version), Enterprise Edition (EE - $5.59 - $9.99 per extension per month), and Call Center Edition (CCE - $10.19 to $19.99 per extension per month).  The free edition (SE) is perfect for most small offices of up to 10 users, and works with HUD Lite.  The next level (EE) gives you everything in SE plus some additional features such as conference bridges, alerting, multiple auto-attendants, paging and intercom, group permissions, and you get an upgrade to HUD Pro which adds presence management, drag and drop call control, and interactive desktop alerts.  CCE gives you everything in SE and EE, but also adds in robust ACD and IVR capabilities, unlimited queues, skills-based routing, real-time queue stats, enhanced reporting, and enhanced recording capabilities.  CCE also comes with HUD pro, and is targeted to small to medium call centers.  To see a more detailed explanation of the differences between the three versions, see https://www.trixbox.com/products/help-me-choose.

Next, choose which trixbox option you would like (download SE (free version), or buy EE or CCE).  You then can choose stand-alone server (if this is the first or only server in the enterprise), or you can associate it with an existing server (linked servers).  If you are choosing the free version, you will enter in your email address and your information will be emailed to you.  You can then download the ISO.  If you are buying EE or CCE, you fill out your info and payment info and then you can download the ISO.

*** NOTE: - I am going to be going over all the features of trixbox Pro in this document, regardless of version downloaded.  I will try my best to differentiate which features are for which version.

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

You are then asked about testing the CD media...I usually skip this because it takes a long time, but you can run it if you like.

System will now format the hard drive and install trixbox Pro.

 

When the install finishes, the CD tray will open.  Remove the CD.  System will reboot and then you will end up at the login prompt. 

Here is where you need to activate your system with the email that was sent to you from Fonality.  Type 'activate' at the 'inactive login:' prompt.  The system will try to get a DHCP address from your network.  If you don't have a DHCP server, would like to use the trixbox as your DHCP server (recommended), or would simply like to set your system with a static IP address (also recommended), select option 2 and manually enter in IP addressing information.

*** NOTE:  If you are going to use the trixbox as your DHCP and DNS server, you will have to enter in a temporary DNS server address here first so that your system can communicate with Fonality's servers.

Once you have your network settings set properly, select option 3.  If all goes well, you will be prompted for your username.  Use the username that you received in the email from Fonality (tbadminXXXXXX where XXXXXX is your trixbox ID).

You are then prompted for your password...this is also in the email from Fonality.  Once this is entered, your system contacts Fonality's servers and finishes your configuration and installs the latest trixbox updates.

*** NOTE:  If you have already used your trixbox ID and are rebuilding your server, you will be told that your system has already been configured and that your previous config will be downloaded to this server.

Once the system has finished the install, you will see 'Congratulations!  Your system has been activated.'  Press ENTER.

You should now see the login prompt.  Log in with 'ip' as the username and password, and you will be able to set your root password by selecting option 11 from the menu.  Enter your new root password twice to change it.  Choose 'Q' to quit the menu and then log into your system as 'root' with your new password.


 

3.0 - Setting up your server

 

3.1 - Set up your DHCP server

 

If you would like to use the trixbox as the DHCP server for your network (definitely recommended, especially if you want to use Polycom or Aastra phones), then you need to configure DHCP to hand out IP addresses for other devices on your network.  Go into the Linux CLI and do the following:

cd /etc
nano -w dhcpd.conf

Now, scroll down to the bottom of the file.  You should see a line that says:

subnet 0.0.0.0 netmask 0.0.0.0

You will want to replace that line and everything below it with your network information.  Mine looks like this...you should change yours so that it mirrors your network settings (disregard the notes in red):

subnet 192.168.100.0 netmask 255.255.255.0 {

option routers 192.168.100.1;  # Default gateway
option subnet-mask 255.255.255.0;  # Subnet mask
option domain-name "asterisk.local";  # Domain name
option domain-name-servers 192.168.100.16, 4.2.2.2;  # DNS servers - the .16 address is my trixbox
option time-offset -28800;  # Time zone - this is for PST (-8 GMT)
option ntp-servers clock.redhat.com;  # NTP server

range dynamic-bootp 192.168.100.100 192.168.100.199;  # Range of DHCP addresses to hand out
default-lease-time 21600; 
max-lease-time 43200;

authoritative;
}

Once your settings are set, exit nano by pressing CTRL+X and the 'Y' to save.

Restart DHCP with:

service dhcpd restart

Your system is now configured to hand out DHCP addresses on your network, and to auto-configure Polycom and Aastra phones.

 

3.2 - Install Webmin

 

***Optional step - 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 its ease of use.  Webmin installs an HTTP-based GUI which you can get to by using port 10000 from a browser.

 

To install Webmin, you need to run the following in your Linux CLI:

 

cd /usr/src
wget http://prdownloads.sourceforge.net/webadmin/webmin-1.410-1.noarch.rpm
rpm -ivh webmin-1.410-1.noarch.rpm

*** NOTE:  As of the publication of this document, the latest webmin version was 1.410-1.  You will need to adjust this for whichever version is the latest, and you can see the URL for the latest version by hovering your mouse over the 'RPM' link on the webmin homepage at www.webmin.com.

Once the install has finished, you can get to your Webmin console by putting the following into a browser that exists on your LAN:

https://192.168.100.16:10000 (obviously, replace my IP with your Trixbox IP, and note that this is HTTPS...not HTTP).

3.3 - Connecting via SSH

Most people prefer to connect to their trixbox system via SSH instead of having to be at the console.  This can be done with SSH programs such as PuTTY (free download) or SecureCRT (not free, but my preferred SSH/telnet client).  There is one thing you need to know when connecting to your trixbox Pro, and that is the difference between the internal and external FQDN's that Fonality gives you.  There are two:

s123456.trixbox.fonality.com - (where 123456 is your server number) This is your INTERNAL FQDN...it will resolve to your INTERNAL trixbox IP address.

s123456x.trixbox.fonality.com - (where 123456 is your server number) This (with the 'x') is your EXTERNAL FQDN...it will resolve to your trixbox's EXTERNAL IP address.

So, basically, if you are connecting via SSH internally, use the first FQDN or the internal IP address.  If you are connecting remotely, use the second FQDN or the external IP address.  To connect remotely, you will also need to open up TCP port 22 in your firewall and point it to your server.

3.4 - Secure SSH RSA key pair authentication

I wrote a blog post about how to configure both PuTTY and SecureCRT for secure RSA key pair authentication instead of username/password authentication.  This is a good idea if you open up SSH to the outside world.  You can read how to do this here.

 

4.0 - Setting up your hardware

 

trixbox Pro makes it easier than ever to configure your PSTN hardware.  There is now a hardware configuration GUI in the control panel.  Let's take a look at it.

Open up http://cp.trixbox.com and log in using your tbadminXXXXXX username and the password that was sent to you in email.  This is your control panel.  Click on Options --> Cards to set up your hardware.  First, select your card from the upper left drop down box.  I have a Digium TDM400 card in my system with 1 FXS and 1 FXO port.

One quick sidenote, FXS ports are for hooking up an analog phone extension to your trixbox, FXO ports are for the phone line that the phone company gave you.

Once you can see your card, click 'edit' on whichever port you would like to edit.

Figure 4.1

There are many settings available for configuring your ports.  Under most circumstances, you should just leave everything default.  If your card has hardware echo cancellation, you want to make sure to turn it off here (Echo Cancel = no, Echo training = no).  Also, if you are having volume problems (callers can't hear you, or you can't hear callers), you can adjust the RX (Receive) or TX (Transmit) gain.  You should never have to adjust gain more than +/- 5.0db however.

If you still want to be able to manually configure your zaptel.conf and zapata.conf files, you can click on '[ Advanced Mode ]' and you will be able to do so there.

For T1 card configuration, you should have more options such as signaling and switchtype.  T1 configuration is beyond the scope of this document, but if you would like SureTeq to configure your T1 card for you, do not hesitate to contact us!

 


5.0 - General trixbox Setup/Security

 

Now it is time to configure Asterisk/Trixbox.

Let's start by going through some of the settings in the GUI. 

5.1 - Options --> Customer

Click on 'Options --> Customer.'

In the customer section, you can enter in your company name and website, as well as email and physical contact information.  You can also choose to subscribe to the trixbox tech update email.

Enter in all of your information and click 'Apply All Changes' to save.

Now let's move on to 'Options --> Settings.'

5.2 - Options -> Settings

This is where you can set all of the general settings for your trixbox Pro, and where you can change your tbadminXXXXXX password.  I recommend changing your password to something easier to remember, but still using strong password best practices.  You can also change the following:

Global Caller-ID:  This is the caller ID that will be used for any extension set to 'Global Default.'
Forwarded Caller-ID:  This is what the system uses when you forward a call came into the system...by setting it to 'set to original Caller-ID, the system uses the caller-ID of the inbound caller.
Server Local Time:  Set to your time zone
Country:  Set to your country
Country indication tones:  This sets the dialtone of your system to your country's standard dialtone
Transfer and clear:  This is mainly for Centrex lines...it allows you to blind transfer a call outside your system without bridging the call, and therefore taking up 2 lines
Rollover help:  Enables or disables the rollover help in the trixbox GUI...I recommend leaving this on.
Rollover humor:  Fonality employees put some extra text in a lot of the rollover selections that are humorous..kind of cool to check out, but doesn't affect the functionality of the system in any way
Parking seconds:  The number of seconds before a parked call is transferred back to the extension that parked them
Voicemail/Name-Dir Escape: 0:  This sets where you want a person to go when they press '0' from either the company directory or voicemail
Voicemail/Name-Dir Escape: *:  Same as above, but for the * key
Voicemail Volume:  This adjusts the gain on voicemails left in the system
Route DIDs to Exts.:  This is interesting...if you have over 50 DID's in your system, you may notice some slowness when callers call in.  If you set this to the specific number of digits you receive from DID's (typically 4), it should speed up this process.  You should probably just leave this default unless you are experiencing problems.
Allow Extension Keypresses:  This tells the system whether or not you want inbound callers to be able to dial internal extensions when they receive your main IVR message.  If enabled, ensure that you do not have an option in your IVR that starts with the same digit that your extensions start with, or else the system will have a delay while it is waiting to see if the caller was selecting the option, or dialing an extension.  For example, if you have 3xx extensions, you would not want an option 3 in your main IVR.
Night Mode:  This allows you to manually bring the system in and out of 'Night Mode' by dialing *66 (*NM) from any extension...this allows businesses that don't have specific opening and closing times to still have a 'closed' message, but not have to use schedules.
Night Mode password:  Allows you to put a password on *66 Night Mode so that only authorized people can put the system in and out of night mode...especially helpful if you don't want any employee to be able to 'close' your office in the middle of the day.
Mail Server Hostname:  The FQDN (Fully Qualified Domain Name, ie. mail.company.com) of your email server if you don't want to use the onboard trixbox mail server.
Mail Server Username:  Self explanitory
Mail Server Password:  Self explanitory
Company Directory Photos:  Sets whether or not employees can upload or view employee photos
Relax DTMF:  This should only be set to 'yes' if callers are having trouble inputting IVR options, extension numbers, etc.  Basically, if it seems like your system is not responding to caller keypresses, you can set this to 'yes' to see if that fixes the problem.
Show MAC address:  This applies to phones...whether to show the phone's MAC address instead of the phone's full name (not sure exactly where this applies)
Call Reporting:  Turns on and off CDR records - note:  these records are stored on Fonality's servers in trixbox Pro, meaning that running CDR reports does not affect your trixbox's CPU...sweet!
HUD Server Enabled:  Enables or disables the HUD server...best to leave it on unless you REALLY don't want to use HUD
HUD Auto Update:  Specifies whether or not to automatically push HUD updates to client machines
Limit Blast/Ringall Agents:  If enabled, it limits the number of extensions in a blast group or ring all group to 10.  The reason for this is that blast groups and ring groups put a good amount of load on the system because it has to generate the call to each person in a blast or ring group individually.  Unless you have a good reason to do so, you should leave this set to 'yes'
Change Dial Out Prefix:  If set to 'yes' you can manually set your dial out prefix.  This is useful if you want to have multiple dial out prefixes.  For instance, if you want to use 9 as the prefix for long distance calls, but 8 as the prefix for international calls (because you want them to use a different outbound trunk or something), then you should set this to 'yes.'  If set to 'no,' you can only use 9 as your prefix.
trixNet Enabled:  This tells the system whether or not you are using trixNet.  trixNet is a 'skype-ish' application which allows multiple trixbox systems to dial each other without incurring long distance fees.  For more information, visit http://trixbox.com/products/trixnet.

Phew...lots of settings there, but for most of these, you will only have to set them once and then never go back.  Once finished, click 'Apply All Changes.'

5.3 - Options --> Network

The Options --> Network section allows you to configure or re-configure the network settings you specified upon install.  You should see all of the settings that you put in during installation.  The only thing I recommend here is setting your trixbox's IP address as the primary DNS, and then adding in a public Secondary DNS such as one given to you by your ISP, or the one I always use, 4.2.2.2.  That is one of AT&T's public DNS servers...and I use it for one reason, and one reason only...it's easy to remember.

Figure 5.3.1

Once you have your network settings configured the way you like them, click 'Apply All Changes' to save.

5.4 - Options --> Link Server

Most trixbox deployments won't take advantage of this feature, but if you are running a larger-scale setup, you will definitely want to use this.  When you download trixbox from Fonality, you are asked at one point whether this is an additional server for a username you already have.  If you say yes, and the proceed to download, both servers should show up in this section.  This, however, is beyond the scope of this document.  If you would like consulting or design for linked servers, SureTeq provides this, so please feel free to contact us.

 


6.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.  Keep in mind that a Dial Plan is not something you configure in Asterisk...step away from the computer and pull out a piece of paper to design your Dial Plan.

 

I have 1 PSTN line, 1 Voipjet line for outbound long distance, 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 (Welcome_greeting).  Greeting states that:

            2 gets my extension

            3 gets my business partner's extension

            4 to reach first available representative (round robin between our two extensions)

 

7:00pm – 8:00am – Go to closed greeting (Closed_greeting).  Greeting states that our office is closed, and to please call back between 8am and 7pm PST. 

 

Outbound:

 

All local calls should be routed out the FXO port of my Digium TDM400 (PSTN line).  Long distance calls should be routed out my Voipjet account.

 

Internal extensions:

 

101 – Grandstream GXP2000 SIP phone

102 – XTen X-Lite 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.
 


7.0 - Configure Internal Extensions

 

7.1 - FXS Extension

I will start by setting up my FXS port extension.  Open up your trixbox Pro control panel and choose 'Extensions --> add extension.'

Per my dial plan, this is going to be extension number 111, so I fill out the following in the 'Add Extension: >> step one <<' section:

Extension Number:  111
Description:  Cordless Phone (can be anything descriptive)
First / Last Name:  Chris / Sherwood
Web Username:  XXXXXX_111 (where XXXXXX is my trixbox server ID, and 111 is the extension number.  This will be used when logging into HUD and will also be used for logging into the user control panel for configuring individual extension settings.)
Web Password:  12345 (can be anything)
Employee Email:  (My email address)
Instant Messenger:  Schw00d (my HUD instant messenger name)
Employee Phone:  (My cell phone number - this displays in the company directory and is used for HUD)
Inbound Phone No.: None (this is used for DID's if you have them)
Outbound Caller-ID:  Global Default (You can set the Global Default in Options --> Settings)
Ring Type:  Ringing (This is what the callers hear while your phone is being dialed.  You could also set this to one of your Music on Hold (MoH) playlists, but I like to leave it on a ring tone because people are most used to that)
Ring Seconds:  15 seconds (this is how long your phone will ring before going to voicemail or to the next step in a call sequence such as Find Me)
Phones / Devices:  Analog Port 1 / Zap/1 (my FXS port)

Now, let's move on to the settings in the 'Add Extension: >> step two <<' section:

Call Forwarding:  disabled (any extension can be a virtual extension set to forward to an IVR if you want, but this one is an actual extension, so we're going to leave call forwarding disabled)
Queue Auto-logoff:  disabled (this extension is not in any queues for now, so we're going to leave this disabled...we will get to these ACD settings later - CCE feature)
Queue Press-to-accept:  no (this settings makes an agent press 1 when picking up a queue call rather than just having the call on the line when the agent picks up the handset - CCE feature)
Queue Ignore-if-busy:  yes (this means that if an agent is on a non-queue call, queue calls will not ring through to this extension - CCE feature)
Multiple Queue Calls:  no  (this setting means that if an agent is currently on a queue call, they can not receive another queue call - CCE feature)
Queue Pwd Required:  no (this sets whether or not an agent has to enter in a password to log in and out of a queue - CCE feature)
In Name Directory:  yes  (specifies whether or not you want this extension in the 'dial by name' directory)
In Company Directory:  yes (specifies whether or not you want this extension in the company directory which users can print out from their user control panel)
In Blast Group:  no (specifies whether or not this extension is in the Blast Group)
In HUD:  yes (make this extension a HUD user)
Private Extension:  no (if set to yes, it makes this extension an 'internal only' extension so that outside callers can not get to it)
Visual-only Extension:  setting disabled (this is for Polycom phones...it means that this extension will never ring...it will only light up the 'ringing' button on Polycom phones)
Voicemail Enabled:  yes

Since we set 'Voicemail Enabled' to 'yes' above, let's now configure our voicemail settings for this extension:

Voicemail Box:  New Mailbox (Note: I typically have multiple extensions...one at home, one at the office, a softphone on my laptop, etc.  With this setting, I can make sure that all of my extensions use the same voicemail box by creating it once, and then setting all of my other phones to the first voicemail box created)
Voicemail Password:  12345 (can be whatever you want)
Voicemail Email:  my_email_address
Voicemail Pager Email:  my_pager_or_SMS_email (this can be used if I want a small, simple notification that I have received an email...this is useful for pagers or SMS devices)
Email Attachments:  yes (when I get a voicemail, I want the voicemail sent to my 'Voicemail Email' as a WAV file attachment)
Delete When Emailed:  yes (I set this to 'yes' because I don't like having to ever go into my voicemail box to retrieve messages...so once they are emailed to me, they are deleted from the voicemail system...I would only recommend this if you have a rock solid email system because you wouldn't want to miss any of your voicemails)
Enable CallReturn:  yes  (this feature means that when I am listening to a voicemail, I can press a key and the system will call that person back)
Enable CallOut:  yes  (this features allows someone checking their voicemail to press a key and then dial an internal extension or external phone number...if dialing external, you still need to dial 9)

Once all of your settings have been set, click 'Add Extension' and that's it!  I should now be able to pick up the cordless phone plugged into my FXS port and get a dial tone.  You should now see your new extension if you go to 'Extensions --> view extensions' in the control panel.

7.2 - Softphone extension

Next, we’ll set up a soft phone so that I can dial between internal extensions.

First, we need to tell the system that we're going to be adding a new softphone extension.  Click on 'Extensions --> phones.'

In the 'Add phone' section, leave MAC blank, and drop the 'vendor' box down to 'Counterpath.'  You will receive a popup:

Figure 7.2.1

Just click OK.  You should now see that 'MAC' was populated with the word SOFTPHONE.

Now enter in a description...I'm putting in 'Schw00d's Laptop Softphone' so that I know what this extension is for.  Click on 'Add Device' and you should see your newly created phone show up in the device list below.  If this is your first softphone, your SIP username and password should be 'SOFTPHONE001.'  Now, it's time to set up the extension.

In the control panel, click on 'Extensions --> add extension.'

Most of the settings are the same as the FXS extension setup above in section 7.1, so I will only list the differences here:

Extension Number:  101
Description:  Softphone
Web Username:  XXXXXX_101 (where XXXXXX is my trixbox server ID)
Web Password:  12345
Phones / Devices: Schw00d's Laptop Softphone - SIP/SOFTPHONE001 (your selection will start with whatever description you entered when creating the device)

All Extension options are the same as section 7.1 above.

Voicemail Box:  111 (I want this extension to share voicemail with the cordless phone I configured above...if this is a new mailbox, enter the appropriate information)
Voicemail Password:  12345 (this needs to be the same password that I set when creating voicemail box 111)

Click 'Add Extension' and you're done.  If you now go to 'Extensions --> view extensions,' you will see the voicemail box 111 information (email and settings) populated, or if it was a new voicemail box, you will see the new information.

Now to configure the X-Lite soft phone which can be downloaded from http://www.counterpath.com/x-lite.html

You can use the setup wizard, or click the down arrow at the top left of the phone and use these settings.

Before we start though, click on 'Extensions --> phones.'  Remember when we originally set up our softphone device and the username and password were both 'SOFTPHONE001?'  Now that we have associated this softphone device with an extension, the 'SIP Password' should now be the extension number (which for me is 101).  Make a note of the SIP username and password, and then enter in the following in the X-Lite SIP settings:

Figure 7.2.2

Display Name:  Soft Phone (can be whatever you want)
User Name:  SOFTPHONE001 (your SIP username from the devices page)
Password:  101  (your SIP password from the devices page)
Authorization User Name:  SOFTPHONE001 (your SIP username from the devices page)
Domain:  s123456.trixbox.fonality.com (where 123456 is your trixbox Pro server ID...NOTE: if this is a remote extension, you will want to use s123456x.trixbox.fonality.com which is your EXTERNAL FQDN)

Make sure that 'Register with domain and receive incoming calls' is checked, and that 'Send outbound via:' is set to 'target domain.'

We're not quite done yet...we need to configure the voicemail extension.  Click on the 'Voicemail' tab and make sure 'Check for voice mail' is checked.  In the field next to 'Number to dial for checking voicemail,' enter in 8555 which is the trixbox Pro voicemail extension.

Click 'OK' and then click 'Close' on the SIP account settings page.  Your X-Lite softphone should now successfully register with your trixbox Pro.

Figure 7.2.1

You can now test calling another extension, and it should work!

7.3 - Polycom phone setup

trixbox Pro makes it really easy to provision both Polycom and Aastra phones...if you have read my Polycom Central Server Setup for trixbox CE version, you know what a pain in the butt this used to be...Fonality did a great job of making sure trixbox techs no longer go bald from pulling their hair out.

First, plug the Polycom phone into your network.  If you are using trixbox Pro as your DHCP server, the phone will get a DHCP address, download the latest firmware, and register itself with your system.  After a reboot or two, you should see your phone's MAC address appear in 'Extensions --> phones.'  The SIP username and password should be the MAC address of the Polycom phone, and the description should be 'Auto-detected.'  Since the phone is now a device on your trixbox, we can move on to extension configuring.

In the control panel, click on 'Extensions --> add extension.'

Most of the settings are the same as the FXS extension setup above in section 7.1, so I will only list the differences here:

Extension Number:  100
Description:  Schw00d's Office Phone (can be whatever you want)
Web Username:  XXXXXX_100 (where XXXXXX is my trixbox server ID)
Web Password:  12345
Phones / Devices: Auto-detected - SIP/0004F2XXXXXX (your selection will have your phone's MAC address)

All Extension options are the same as section 7.1 above.

Voicemail Box:  111 (I want this extension to share voicemail with the cordless phone I configured above...if this is a new mailbox, enter the appropriate information)
Voicemail Password:  12345 (this needs to be the same password that I set when creating voicemail box 111)

Click 'Add Extension' and you're done.  If you now go to 'Extensions --> view extensions,' you will see the voicemail box 111 information (email and settings) populated, or if it was a new voicemail box, you will see the new information.

Wow...that was super easy.  Now rinse and repeat for your 100 seat call center.

7.4 - Grandstream GXP-2000 setup

The Grandstream GXP-2000 is a cheap, reliable phone that works great for small offices.  I typically recommend Polycom, but if you are on a budget, you can get the GXP-2000 for about $85 bucks, and you will not be disappointed.

Since this phone is not trixbox Platinum certified, it has to be manually configured to work with the trixbox Pro.  Plug the phone into your network, and it should automatically DHCP an IP address.  The IP address is displayed on the screen of the phone.  Mine shows up as 192.168.100.105, so the first thing I do is point my browser to that IP address.

When the Grandstream GUI comes up, enter 'admin' as the password, and you will be let into the management interface.  Click on the 'status' tab, and you will see the phone's MAC address.  Make a note of it and go back to your trixbox control panel.

In the control panel, click on 'Extensions --> phones.'  In the 'Add Phone' section, drop the 'vendor' box down to 'Grandstream.'  You will receive the following message:

Figure 7.2.1

Click OK.  Now, enter in the MAC address you got from the Grandstream GUI in the 'MAC' field.  This should be entered without the colons (:) and in all caps. 

Next, type in the phone's description and click 'Add Device.'  You should now see it appear in the device list.  Make a note of the SIP username and password...they should be the MAC address of your Grandstream phone.

Go back to the Grandstream GUI and click on the 'Account 1' tab.  Enter in the following information:

Account Active:  Yes
Account Name:  103 (the extension number I'm going to use for this phone)
SIP Server:  s123456.trixbox.fonality.com (where 123456 is your trixbox server ID)
Outbound Proxy:  s123456.trixbox.fonality.com (where 123456 is your trixbox server ID)
SIP User ID:  000B82XXXXXX (your SIP username / Grandstream MAC address)
Authenticate ID:  000B82XXXXXX (your SIP password / Grandstream MAC address)
Name:  Grandstream GXP2000 (whatever you want here)

We also need to set the voicemail extension, so on the same 'Account 1' page, you will see 'Voice Mail UserID' about halfway down the page.  Put 8555 into the field.  Now, scroll down to the bottom of the page and click 'Update.'  On the next screen, click 'Reboot.'  Your phone will now reboot and register with the trixbox.  We now need to associate it with an extension.

In the control panel, click on 'Extensions --> add extension.'

Most of the settings are the same as the FXS extension setup above in section 7.1, so I will only list the differences here:

Extension Number:  103
Description:  Schw00d's GXP-2000 (can be whatever you want)
Web Username:  XXXXXX_103 (where XXXXXX is my trixbox server ID)
Web Password:  12345
Phones / Devices: Grandstream GXP-2000 - SIP/000B82XXXXXX (your selection will have your phone's MAC address)

All Extension options are the same as section 7.1 above.

Voicemail Box:  111 (I want this extension to share voicemail with the cordless phone I configured above...if this is a new mailbox, enter the appropriate information)
Voicemail Password:  12345 (this needs to be the same password that I set when creating voicemail box 111)

Click 'Add Extension' and you're done.  If you now go to 'Extensions --> view extensions,' you will see the voicemail box 111 information (email and settings) populated, or if it was a new voicemail box, you will see the new information.

That's it!

7.5 - Aastra phone setup

Aastra provides some great phones that cover the needs of almost any professional.  I have used the 9133i, the 480i, and the 55i, and have blogged about the pros and cons of each in my blog post All about Aastra.  Check it out for more detail on these phones...since they are a trixbox Pro Platinum Certified hardware provider, their setup is incredibly easy.

First, plug the Aastra phone into your network.  If you are using trixbox Pro as your DHCP server, the phone will get a DHCP address, download the latest firmware, register itself with your system, and configure itself as the next available extension.  After a reboot or two, you should see your phone's MAC address appear in 'Extensions --> phones.'  The SIP username and password should be the MAC address of the phone, and the description should be 'Auto-detected.'  You will also see its new extension number.  Since the phone is now a device on your trixbox, we can move on to extension configuring.

In the control panel, click on 'Extensions --> view extensions.'

Most of the settings are the same as the FXS extension setup above in section 7.1, so I will only list the differences here:

Description:  Schw00d's Aastra 480i (can be whatever you want)
Web Username:  XXXXXX_100 (where XXXXXX is my trixbox server ID, and 100 is the extension number...this should already be set)
Web Password:  12345  (whatever you want)
Phones / Devices: Auto-detected - SIP/00XXXXXXXXXX (your selection will have your phone's MAC address)

All Extension options are the same as section 7.1 above.

Voicemail Box:  111 (I want this extension to share voicemail with the cordless phone I configured above...if this is a new mailbox, enter the appropriate information)
Voicemail Password:  12345 (this needs to be the same password that I set when creating voicemail box 111)

Click 'Update Extension' and you're done.  If you now go back to 'Extensions --> view extensions,' you will see the voicemail box 111 information (email and settings) populated, or if it was a new voicemail box, you will see the new information.

7.6 - A note on hardware phones

 

I get asked a lot what a 'good' phone is, so I thought I'd take a moment to give you some impressions on some of the more common hardware phones available.

 

Polycom SoundPoint IP phones - The IP430's and IP501's are very good mid-level phones that retail for between $150 and $200 bucks each.  These are the phones that I typically recommend for installations comprising of 10 or more phones.  The speaker phone is full duplex and is arguably the best quality speaker phone available.  You can have from 2 to 6 line appearances depending on which phone model you choose.  The IP601 has a very nice side-car available for receptionists which is fully programmable with line appearances.

Aastra phones - I have worked with three different models of Aastra phones.  The 9133i is a great, low-cost phone that will cover the telephony needs of most users, and would also be great deployed in a call center environment.  The 480i gives you some additional bells and whistles, has up to 20 softkeys for various functions, and a great big display screen that looks great.  The 55i is perfect for a receptionist, and can be expanded with up to 3 sidecars for massive line control.  To read more about the pros and cons of the various Aastra phones, check out my blog post All about Aastra.

GrandStream GXP-2000 - This is a very good entry level phone that retails for about $85 bucks.  It has all of the basic functionality you would expect from an office phone including speaker phone, 4 line appearances, and buttons for transfer, conference, voice mail, and mute.  It is pretty rugged and I have had nothing but good experiences with this phone.  It is fairly easy to configure (see above), but not quite as easy as the Polycom and Aastra phones since Grandstream is not a trixbox Platinum certified vendor.

 

Cisco phones - The Cisco phones look great, but they are difficult to configure and are super expensive.  I never recommend them.

 

If you have found this document useful, and plan on purchasing some hardware phones or other VoIP equipment, I would greatly appreciate if you use the banner link for Voipsupply.com below.  I have purchased equipment from Voipsupply.com many times, and I have always found their pricing to be great and their shipping fast, so I definitely recommend them.  By using the link below, you won't be raising YOUR purchase price at all...you would simply be donating a small percentage of your purchase to me, and I would definitely appreciate it!

 

My VoipSupply.com Link:

 

 

 

8.0 - Trunks

 

8.1 - FXO Trunk

 

Now that we have set up our internal extensions, let’s focus on getting calls out. 

 

By default, trixbox Pro has already created a trunk out of my FXO port in the Digium TDM400 card.  If you look at the TDM card in 'Options --> cards,' and then click on the FXO port, you will also see that it has been put in Zap group 0 (Zap/g0).  That's it...the configuration for your FXO ports is done automatically.

8.2 - T1 Trunks

The set up of a T1 trunk is beyond the scope of this document, but if you need T1 trunk consulting, SureTeq provides this service, so please, don't hesitate to contact us!

8.3 - Voipjet Trunk

Voipjet provides outbound VoIP using the IAX protocol.  I like to use Voipjet for my long distance or as overflow trunks for PSTN or T1 lines because they are a 'pay-per-usage' service rather than a monthly plan.  You can throw $20 bucks into your Voipjet account, and it is good until it is completely used up.  You have to have more than $20 bucks in your account to use their 'preferred' hosts though...those are going to be the most reliable.

To set up Voipjet to work as an outbound trunk, first log into http://www.voipjet.com and click on 'PBX Setup' in the left hand menu.  You can ignore all of their setup instructions because they are for old versions of trixbox, or for if you're setting up your trunk in a vanilla Asterisk installation.  You do however want to make note of your Voipjet account number and authorization code (an MD5 string) and pick one of their server hosts depending on your location and how much money is in your account.  Once you have all of that information, go into your trixbox control panel and click on 'Options --> voip.'

Under 'Add VoIP Account,' fill in the following information:

Route Name:  Voipjet
Username:  (your Voipjet username)
Password:  (your Voipjet password)
Provider:  Other / IAX2
Register:  no
Server:  (your Voipjet server...I use west.voipjet.com)

Expand the 'Advanced' settings and make sure the following are set:

From Domain:  (your Voipjet server...same as 'Server' above)
Qualify:  5000ms
Direction:  out - (peer)
Authentication:  MD5

Also, you want to make sure there is no register string since this is an outbound trunk only.  Leave everything else default.

Figure 8.3.1

That's it!  Your Voipjet trunk is now ready to rock 'n roll.


9.0 - Dial Plan Setup

Well...we now have trunks set up, but we need to tell our trixbox Pro which trunks to use depending on where we're dialing.  In my trixbox, I have 1 PSTN line that doesn't have long distance service, and my Voipjet VoIP trunk.  I want all local calls, 911, information, 0, and 611 to go out through my PSTN line, but I want long distance and international calls to go out through my Voipjet trunk.

*** NOTE:  My trixbox Pro is for testing and documentation purposes only.  I don't use it in a production environment, so that is why it is OK for me to use VoIP as one of my main trunks.  That being said, I NEVER recommend that my clients use VoIP across the WAN unless it is being used as a failover for analog PSTN lines or a T1 trunk.  VoIP is not yet ready for prime time in my opinion, and won't be until the Internet is as reliable as the PSTN.  You can see more detail on this opinion in my State of the VoIP Address on my blog.

9.1 - Local Dial Plan

Back to the configuration...click on 'Options --> dial plan.'  You should see default routes for local dialing, 911, 411,611, 0, long distance, and international dialing.  There should be two long distance dial plans, 9+1nxxnxxxxxx and 9+nxxnxxxxxx.  My area needs to have a 1 in front of long distance calls, so I click the red X to the left of 9+nxxnxxxxxx to delete that dial plan immediately.  I can use the rest of the dial plans though...let's start with local calls:

Click on 9+nxxxxxx.  It will open in the 'Update Dial Plan Entry' section.  Set it to the following:

Dial string 9 +: nxxxxxx (this should be default)
Description:  Local calls
Type:  local call
Route:   1st:  Analog Line 4 (1)    Strip digits: 1 (remove the 9 when sending the call out to the PSTN)  Prepend:  <blank>
            2nd:  VoIP: voipjet          Strip digits:  1  Prepend:  <blank>
            3rd:  none

Click 'Update Dial Plan' and you're done!  I use the same exact settings for the 911, 411, 611, and 0, except I leave the 2nd and 3rd routes blank meaning that my PSTN line handles those calls only.

9.2 - Long Distance Dial Plan

We want to do the same thing for our long distance calls.  Click on 'Options --> dial plan.'

Click on 9+1nxxnxxxxxx.  It will open in the 'Update Dial Plan Entry' section.  Set it to the following:

Dial string 9 +: 1nxxnxxxxxx (this should be default)
Description:  Standard long distance
Type:  long distance
Route:   1st:  VoIP: voipjet    Strip digits: 1 (remove the 9 when sending the call out to the PSTN)  Prepend:  <blank>
            2nd:  none
            3rd:  none

Click 'Update Dial Plan' and you're done!

9.3 - International Dial Plan

International is pretty much the same settings as long distance.  Click on 'Options --> dial plan.'

Click on 9+011.  It will open in the 'Update Dial Plan Entry' section.  Set it to the following:

Dial string 9 +: 011. (this should be default)
Description:  International
Type:  international
Route:   1st:  VoIP: voipjet    Strip digits: 1 (remove the 9 when sending the call out to the PSTN)  Prepend:  <blank>
            2nd:  none
            3rd:  none

Click 'Update Dial Plan' and you're done!  You should now send some test calls out of your system to make sure everything is working properly.

trixbox Pro allows you to have up to 3 routes per dial plan entry.  You can see that this is a powerful way to route calls out of your system, and to do your own least-cost-routing for long distance and international calls.

 

 

10.0 - Call Menus

 

Now, I need to tell my Trixbox what to do with incoming calls.  Let's start with a simple call menu that answers a call, plays a welcome message during business hours, a closed message after hours, and then has the following key presses:

 

2 - my extension
3 - my business partner's extension
4 - customer service queue

 

10.1 - System Recordings

First, let’s take care of the necessary recordings.

 

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 – “Thank you for calling Schw00d’s Asterisk emporium.  Please press 2 for Schw00d, 3 for Jim, and 4 for tech support.  Thank you and have a wonderful day.

 

Closed – “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 'AutoAnswer --> voice prompts.'  You should see two default recordings already there (hello and goodbye)...they are exactly what you think they are...let's leave them alone for now.

You can choose to either record voice prompts through the phone, or upload pre-recorded WAV files.  If you choose to upload your own files, make sure they are recorded in 16-bit Mono at 8Khz and are less than 2MB in size.  I won't cover anymore on pre-recorded messages in this document, so let's record using our phone.

In the 'Record New Voice Prompt' section, type in a file name and a description.  I'm going to use 'Business_hours' for both.  Then type in your extension and click 'Call Me!'

You should get a message that looks like this:

Figure 10.1.1

Click OK and your phone should ring in a few seconds.  Follow the voice prompts to record your message.  Once you are satisfied with it, hang up and you should see your newly recorded message appear in the voice prompts section.

Follow the same procedure for your 'closed' message, and you should have two messages to get you started.

10.2 - Sub-menus

Our main incoming lines will be answered by the MAIN sub-menu, but we're going to set that up later to simply be our time schedule.  In the meantime, we need to create two new sub-menus - one for during business hours, and one for after business hours.  Start by clicking on 'AutoAnswer --> sub-menus.'  You'll see a bunch of default sub-menus...ignore those for now, and let's create a new one. 

Type in 'Business_hours' in the 'Submenu Name' field and click 'Create New Submenu.'  Once the submenu has been created, it will show up in the list of submenus below.  Click on it to bring up the submenu details.

When this screen comes up, it can be a bit confusing, but basically, there are two separate sides.  The left side is for the IVR functions, or how the system directs the calls that are coming in.  The right side is for setting up key press options for the submenu.  Let's start on the left.

We see that the first step sets the caller ID to the name of the submenu.  That's fine...but we need it to do something afterwards.  We're going to want to have it play the 'business_hours' recording we made in step 10.1, so in the 'Add New Sequence' section, make sure it says 'After step' 1 and then drop down the box and select 'Play voice prompt - allow keypress.'  Click the 'Apply All Changes' button.

Your new step should now be listed under step 1.  Drop down the box and choose the 'business_hours' greeting that you recorded and then click 'Apply All Changes.'  Now, when a caller hits this submenu, they will hear the recording.  For best practices sake though, we need to have an 'out' for if the caller does not press any buttons.  Under 'Add New Sequence,' drop down the box and choose 'Wait - allow Keypress,' then click 'Apply All Changes.'  You now have a step 3 that waits an allotted amount of time...this timer starts counting after the message in step 2 is played.  Select a good amount of time from the drop down box (I'm going to set it to 30 seconds), and then click 'Apply All Changes.'

Now we need to choose what happens after the timeout.  I'm going to have it forward to my extension, x100.  Select 'Go to extension - forward=yes VM=no' from the drop down box and click 'Apply All Changes.'  Now, you should see this as step 4.  Drop down the 'Go to:' box and select the appropriate extension, and you can set the seconds to 30 seconds.  This way, my voicemail should pick up if I'm not at my desk.  Click 'Apply All Changes.'  We now have our call flow done...let's add some keypress options.

On the right hand side, you should see the 'Add New Keypress' section.  Select option '2' and change 'Go to:' to your desired extension.  Click 'Apply All Changes.'

*** NOTE:  I said this earlier, but I can't stress it enough...if you want callers to be able to dial extensions directly when they hear your recording, DO NOT choose a keypress option that matches the first digit of your extension pattern.  If you do, you will create a delay in your system.  I started at option 2 because my extensions are all 1xx extensions.

You can repeat the last step for keypress option 3 and so on if desired.  We will add a queue to this keypress set a little later in the documentation, but this is enough for now.  Here is a screenshot of what we just configured:

Figure 10.2.1

You will also want to repeat this entire process to create your 'after_hours' submenu.  One note on the after hours configuration...in step 2, instead of 'Play voice prompt - allow keypress,' you may want to do 'Play voice prompt - disallow keypress' so that callers can't get into your PBX.  Personally, I leave mine on 'allow keypress,' but I don't mention the keypress options in my voice prompt...this way, if the caller already knows my extension, they can still get to me after hours. 

The other change I make is that if a caller does not press any keys, I simply hang up the call after hours rather than transferring to an extension.  Here is what my after_hours submenu looks like:

Figure 10.2.2

Let's move on to the scheduler.

10.3 - Scheduler

By default, trixbox Pro comes with 2 built in schedules.  They are good enough to work with for my business hours, so let's click on 'AutoAnswer --> scheduler' and take a look.

The first is 'Business Hours' and is set for Monday through Friday with hours of 8am to 5pm.  I like my phone to ring from 8am until 7pm, and I receive calls into my system from Monday through Saturday...so I need to change 5pm to 7pm, and Friday to Saturday.  Since I don't accept calls on Sunday, I don't need the 'Weekend Hours' schedule, so I will delete that one.

After I make all of my changes, my schedule looks like this:

Figure 10.3.1

Adjust the schedule to match your hours, and click 'Apply All Changes.'

Now it's time to put it all together.

10.4 - MAIN submenu

Click on 'AutoAnswer --> sub-menus' and then click on the MAIN submenu.  You should see that it answers the call as step 1.  This is always going to be step 1 for your MAIN submenu because you can't do anything further unless the call is answered first.  I find it easiest to delete all other steps (except for Hang-up the call) and start from scratch here.  To do so, you will want to check the box on the left for every step and then click 'Apply All Changes.'

Now, we need to tell the submenu to follow the schedule we created in section 10.3.  In the 'Add New Sequence' section, make sure you are adding a step 'After step:' 1, and select 'Go to submenu/ext. by schedule.'  Click 'Apply All Changes.'  Once it appears as step 2 in your Call Sequence, change it so that it reads 'Go to:  business_hours during: Business_hours.'  This tells the system to go to the business_hours submenu during the 'day' mode of the 'Business_hours' schedule.  Now that that's set, we need to tell it what to do after hours.

In the 'Add New Sequence' section, make sure you are adding a new step after step 2, and select 'Go to submenu/ext. when in Night Mode.'  Your system will automatically be in night mode outside of the hours set up in the 'business_hours' schedule.  Click 'Apply All Changes.'  The sequence should now be step 3 in your submenu.  Change step 3's drop down box to the 'after_hours' submenu and click 'Apply All Changes.'

One thing to note is that you do not need any keypresses (right hand side) in your MAIN submenu if you are only using it to route calls based on the schedule you have created.  You can leave them, or delete them...it won't make any difference here.  I prefer to delete them to make everything cleaner.

That's it!  Your MAIN submenu should now look like this:

Figure 10.4.1

 

Your trixbox will now answer calls and send them to the 'business_hours' submenu during business hours, and send them to the 'after_hours' submenu after hours.  This is the most simple setup for a small office.  The next chapters will discuss further configuring trixbox Pro to take advantage of some of the bells and whistles included.

 

 

11.0 - On Hold Music

 

Next, we will set up our hold music.  trixbox Pro allows you to create separate 'playlists' for different functions.  Let's say that perhaps you have a sales queue and a techincal support queue.  You could create a separate playlist for each, and intersperse either sales messages ("Have you seen our new products?") or tech support messages ("You will find answers to many common questions online at www.whatever.com.")  You can then assign these playlists to play on separate queues, or as your default hold music for when you put callers on hold.

 

trixbox Pro comes with one song for music on hold, but it is definitely lame (unless maybe you're a day spa), so I prefer to upload my own music.  To do this, let's create a completely new playlist.  I'm going to call it 'SureTeq' because I want it to be the main hold music anyone who calls in will hear.

Click on 'AutoAnswer --> music on hold.'  In the 'Create a new Playlist' section, type 'SureTeq' in the 'Playlist name' field.  I set volume to 'loud' (since I'm going to be uploading classic rock), and then I change the 'Song order' to 'random' instead of sequential since I don't want people hearing the same song every time they call in.  If you are interspersing company messages between the songs, you would probably want to leave this on 'sequential.'  Click 'Create Playlist.'  Your new playlist should show up in the list below, with a message saying there are no songs in that playlist.

*** NOTE:  I first tried to create a playlist called 'default,' but for some reason, it wouldn't let me.  This is because there is already a 'default' MoH class set up in /etc/asterisk/musiconhold.conf.  By default, the 'default' playlist is set to the 'one' playlist...so if you want to change your default music, upload songs to the 'one' playlist, or change /etc/asterisk/musiconhold.conf so that it points to your newly created playlist.

Now it's time to upload some music.  You can upload MP3's, but they have to be at 128kbps, and they have to be less than 20MB.  Click the 'Browse...' button in the 'Add New .mp3 Song' section.  Browse for your desired MP3 and then make sure the Playlist is set to your the new Playlist you just created.  If the server is on your LAN, you can also check the 'Local Server' box.  This means that your song will be uploaded directly to the server rather than uploaded to Fonality and then pushed to your server.  Click 'Upload.'  After the song uploads, you should get a message saying that your trixbox Pro will reset as soon as there are no active calls, and you will see the song appear in your newly created Playlist. 

Rinse and repeat for as many songs as you would like to include.

Now, let's set our new playlist as the music on hold callers will hear when calling into our main line.  Click on 'AutoAnswer --> sub-menus.'  Now click on the MAIN submenu.

We want to add a new sequence after step 1, so in the 'Add New Sequence' section, change 'After step:' to 1, and then select 'Set Music-on-Hold Playlist' from the drop down box.  Click 'Apply All Changes.'  Now, in the 'Call Sequence' section, change step 2's drop down box to your newly created Playlist and click 'Apply All Changes.'

That's it!

 

 

12.0 - User Control Panel

trixbox Pro includes a great feature - the User Control Panel (UCP).  The UCP gives each user the power to control some powerful features of their own extensions.  Features include access to calls they have recorded, voicemail, call detail reports, and the FindMe feature.

There are a couple ways to access the UCP.  If you are a trixbox administrator, you can go to 'Extensions --> view extensions' and then click the green 'LOGIN' button at the far right of each extension.  Alternatively, your users can access the UCP by opening up http://cp.trixbox.com and logging in with the 'Web Username' and 'Web Password' you set up when creating the extension.  For my extension 100, I used username '123456_100' (where 123456 is my trixbox server ID), and password 12345.  Let's take a look at some of the features of the UCP.

12.1 - UCP Home

When you first log in, you are taken to the UCP 'Home' page.  From here, you can see your voicemail messages, view the company directory, edit your company directory information, and see your recent inbound and outbound calls.

The voicemail section is pretty self-explanatory, so let's skip to the 'Company Directory' section.  Click on 'View' and you should get a popup window displaying the company directory in a nice format.  I only have a few extensions, so mine isn't very impressive, but you can see how nice this would be for users who want to print this out and put it up on the wall of their cubicle for reference.  I know at the last company I worked for, it was someone's job to print this out weekly and pass it out to everyone...they would have loved it if everyone had access to print it out themselves!

In the same section, you can also click on 'Edit' to change your own personal information.  'Edit' pops up a window with a few options such as your mobile phone number, email address and IM address.  If an employee's information changes, they can edit it here, and it will automatically update the company directory.

The recent inbound and outbound call sections are also pretty self-explanatory, but there is one more item of note on the Home page, and that is the application links at the bottom.  Here, users can download HUD and FONCall. 

HUD is a great piece of software that allows callers to see what's going on in the PBX real-time.  I'll get into HUD in a later chapter.

The other download available on the Home page is the FONCall plug-in for Firefox.  FONCall highlights any phone numbers that show up on any web page.  Once you associate FONCall with your extension's 'Web Username' and 'Web Password,' you can mouseover the highlighted phone number and then click to call.  trixbox Pro will dial your extension, and then dial the highlighted number as soon as you pick up the phone.  Very cool...

Figure 12.1.1

12.2 - UCP Voicemail

The next UCP tab is Voicemail.  This allows a user to check their new and saved voicemails, and set all of the options that you configured for them when setting up their extension.  This way, they can set their own VM password, choose whether or not to receive voicemail to email, what email address voicemails are delivered to, and whether or not to delete the voicemails once they have been emailed.

The users can also upload their own greetings for unavailable (standard voicemail greeting), busy (when on another call), vacation, and their name directory recording.  I feel that there should also be a 'Call Me!' button for these just like there is when recording system recordings, but perhaps that will come in a later version.

12.3 - UCP Calls

The UCP Calls tab shows the extension's call history and call status.  Once nice thing about it is that you can click on a phone number and trixbox will call that person, so it's a pretty robust call reporting and history feature.  I like this a lot better than scrolling through my phone's call history on the little display.

12.4 - UCP Features

The Features tab is where we start getting into the meat of the UCP.  This is where a user has control over their own extension and can configure it to 'locate' them when they are away from their desk. 

In the top box, the user has three choices for their extension.  'Do not forward my calls' is pretty self-explanatory.  When you change the radio button to 'Forward my calls to a single number,' you can do exactly that.  You select how long the phone should ring at your desk before it forwards to a different phone number or extension.  There is also a check box for returning the call to your trixbox voicemail if you don't answer the forwarded line (this only appears to work if you are using an internal extension).

If you want this forwarded to an eternal phone number, you must enter the number as you would dial it from within the PBX, so for example, if you were calling a local number, you would put in '95551212'.

The third selection is 'FindMe with Boomerang Mobile Integration.'  This feature allows you to set up a list of phone numbers to call in sequential order, and even allows you to use a star key to accept or deny the forwarded call.  For instance, let's say that my extension is x100.  If I'm away from my desk, I may be in another office where the extension is x101...if that doesn't work, I want it to call my cell, then my home, and finally, if I don't answer any of these, I want the caller to go to my trixbox voicemail box for x100.

When you click on 'FindMe,' you are first asked when you would like to be found.  Perhaps you only want this feature working between 8am and 5pm.  Or, you can choose to have FindMe work on a schedule AND in conjunction with your HUD status (available, away, offline).  I'll stick to just the schedule for now since I haven't covered HUD yet.  Let's first set the schedule to Mon - Sat from 8am to 5pm.  I am also going to leave the box checked for when I'm actually talking on my extension...most likely, the person on that extension is me, and I'm already on a call, so don't bother me.

The next section is 'How to FindMe.'  There are some pretty good first steps already listed, but I want to adjust them for my own personal settings.  I set them to the following:

#1 - To start finding me: - call my extension - for - 15 - secs
#2 - And then: - notify the caller I'm being located (plays a message for the caller saying 'your party is being located' or something)
#3 - And then: - call other extension - x101 - for - 15 - secs
#4 - And then: - enable call screening (this will now ask the caller to say their name so that I will hear who it is when I receive the call on my mobile)
#5 - And then: - call my mobile - for - 15 - secs - with press-to-accept (
#6 - And then: - forward to my voicemail

So, you can see that this is a pretty powerful way to use FindMe.  AND as if that wasn't enough, I can also set WHO can call me using the White List below.  I have it set to everyone, but perhaps I only want my boss, my direct employees, and my girlfriend to be able to FindMe.  You set that up in the whitelist.

Further, you can also set up special phone numbers or extensions that can ALWAYS find me regardless of my FindMe schedule or HUD status.  This is your VIP list...very cool.  (This only shows up if you are using FindMe on a schedule).

After I have set everything up, it looks like this:

Figure 12.4.1

12.5 - UCP ACD

The UCD also gives you the ability to view/add queues, create recordings, and view reports if you have the appropriate permissions (see section 13.0 - Groups).

The view/add queue sections will be covered in section 14, so I'll skip that for now.  The 'A.C.D. --> recording' tab is a great feature for call center supervisors and managers.  It allows you to select an agent from the drop-down box, select recording quality (low or high), and then set the recording duration (between 1 and 50 calls recorded).  Keep in mind that WAV files can get pretty big, so you probably wouldn't want to set recordings for 50 calls for 100 agents...you'll probably run out of disk space before you're finished recording!  But, it makes it really easy for a supervisor or manager to record a set of calls for a particular agent, and then review them and coach the agent.

The 'A.C.D --> reports' tab gives the user the ability to run reports for a wide range of call center statistics including queues, agents, and abandonment reports.  We'll dig deeper into reports in section 14.

12.6 - UCP Reporting

Finally, we have the 'Reporting' tab.  This is a powerful reporting feature that allows you to sort, filter and format your call detail reports in a variety of ways, and even export them in CSV format for importing into other various applications (such as Microsoft Excel).  This tab is pretty easy to understand, so I won't go into it in detail, but by looking at the main screen, you can see all of the available options for your reporting needs.

 

13.0 - Groups

trixbox Pro includes group functionality so that you can not only create groups of extensions for paging, intercom, and group voicemail, but you can also utilize these groups to assign permissions to control features such as call queuing, ACD, HUD settings, and much more.

All extensions by default are in the 'Basic Human Rights' group, which gives them permissions for their own extension's Call forwarding / FindMe settings, setting the amount of seconds their extension rings before moving on to voicemail or forwarding/FindMe, the ability to disable voicemail, and the ability to change their voicemail's emailing capabilities.

The Basic Human Rights group is great for general extensions, but I want to be able to control EVERYTHING!  It's just the way I am.  So, to do this, I'm going to set up a new group called 'Administrators.'  I will then add all permissions to that group, and give that group control over every other group.

In the 'Create New Group' section, I first type 'Administrators' in the 'Group Name' field, and then give it an extension.  I want to keep everything in 1xx, so I'm going to assign this group to x150.  I will leave the 'Auto-add New Users' checkbox UNchecked since I don't want every new extension I put into the system to be in the Administrators group.

Also, now that I'm creating a new group extension x150, I can do a few cool things with it using star keys:

Dial:

*74 150 - Group Intercom
*75 150 - Group Page
*86 150 - Group Voicemail 

Now, I expand the 'Group Users' section.  This allows me to choose which extensions will be in my new group.  I select my extension (x100) and click 'Add --->.'  Easy enough.

Next, I want to assign permissions to this group.  Since it is the 'Administrators' group, I want anyone in this group to be able to do anything with the trixbox Pro.  So basically, I click on everything and click 'Add --->.'  You can use SHIFT+click to select a range of permissions, or CTRL+click to select individual permissions...you don't have to do them one at a time.

The final section (Group Permissions) gives you the ability to assign permissions to your newly created group to have control over other groups.  It's a little confusing, but think of it this way...if you have call center supervisors, and call center agents, you can create groups for both sets of employees, and then grant the call center supervisors permissions to control the call center agents, basically creating a top-down hierarchy of user control.

For my Administrators group, I want full permissions over all other groups, so it's pretty easy.  Select all of the available permissions in the 'Available Permissions' box and click 'Add --->' to move them to 'Current Permissions.'  Then, select all of the remaining groups in the 'Available Groups' box and click 'Add --->' to move them to the 'Current Groups' box. 

Now click 'Create Group,' and your Administrators group has been created...you will see that Administrators have all 24 available permissions.


14.0 - Call Queues

Now it's time to dig into the meat of the CCE version of trixbox Pro...call queues.  If you are unfamiliar with call queues, basically, a queue is a holding area where inbound callers are placed on hold and are waiting for an available agent.  If you have 3 agents on phone calls, and 2 more calls come in, those calls are placed in the queue.  Once an agent finishes up a call, the caller who has been waiting the longest is forwarded to the now available agent.  You can assign agents (extensions) to one or more queues.

14.1 - Creating a Queue

Let's start by creating a queue for our Technical Support department.  Click on 'A.C.D. --> add queue' and you are presented with a TON of options.

Add Queue: step one
Queue Name:  Tech_Support  (you can not use spaces in a queue name...so I like to use an underscore _.  There is also a 15 character limit on the name.)
Queue Type:  round robin w/ memory  (there are many different options for how the calls are distributed to the agents, but this one is the most popular in my experience.  The second most popular is 'ring all' where a group of phones are rung, and the first agent to pick up gets the call.  Keep in mind that 'ring all' can put extraneous load on your system if you have a lot of agents in the queue).
Max. Holders:  unlimited holders  (this setting is good if you want to limit the people you have on hold to keep up better service.  For instance, if you have it set to 10 callers, the 11th caller will move on to the next step in the call menu you have set up for this queue (we'll get to setting up the call menu in a bit)...so, for instance the next step may be a voicemail box that prompts the caller to leave their name and phone number, and someone will get back to them in a month or two).
Retry Seconds:  60 seconds  (this is a timeout period the system uses if it has tried to ring all available agents, and no one picked up.  For instance, if you have 3 agents in the queue, and they all went to the bathroom at the same time, the system will try to ring each person and then wait 60 seconds before trying to ring each person again).
Wrap-up Time:  0 seconds  (this specifies the amount of time after an agent hangs up a call before they can receive another queue call.  This is good if you need your agents to have some time to put notes into the caller's account before another call comes through).

Add Queue: step two
Announce Hold Time: yes  (this tells the callers their approximate wait time.  If set to 'yes' it announces approximate wait time every X seconds based on the 'Announce Frequency.'  If set to 0 seconds, it will never announce wait time, and if set to 'once,' it will announce it when they are first put on hold, but will not repeat.
Announce Frequency:  120 seconds  (this is the number of seconds to announce to the caller their position in line and approximate hold time.  60 seconds is the default, but I find that to be annoying to callers, so I usually set it to 120 seconds).
Keypress Submenu:  - none -  (this can be helpful if you want to have an announcement telling callers something like 'if you would like to leave a message and have an agent call you back, press 9' or similar)
Exit Queue Early:  no  (if set to 'yes,' this tells the system to bring an agent out of the queue and onto the next step in the submenu after the timeout period, regardless of whether or not all agents in the queue have been rung)

Add Queue: announcement prompts
Audio Intro...:  This is the announcement that is played for callers upon first entering the queue.  In my case, since the caller pressed a button to get to 'Tech Support' in the first place (from my main submenu), I don't need an announcement here, but it could be helpful for a message such as 'many answers to common tech support questions can be found online at www.whatever.com.'
You are first...:  default  (tells the caller when they are the first person in line)
Caller number...:  default  (tells the caller what caller number they are - 1st half)
Waiting to speak...:  default  (2nd half of 'Caller number...'.  When put together, it should say 'You are currently caller number (X) waiting to speak to an agent.')
Est. Hold Time...:  default  (part 1 of 4 for telling callers their estimated hold time)
Less than...:  default  (part 2 of 4 for telling callers their estimated hold time)
Minutes...:  default  (part 3 of 4 for telling callers their estimated hold time)
Thank you...:  default  (part 4 of 4 for telling callers their estimated hold time.  When put together, it should say 'Your estimated hold time is less than (X) minutes.  Thank you for your patience...)

All of these recordings can be custom recorded, but for me, the default voice is fine, so I leave them alone.

Add Queue: agents
In this section, you can select agents from the left hand window and add them to this queue.  I am going to select both of my extensions (x100 and x101) and add them by clicking 'Add Agent.'  Some options pop up per agent:

Perm.:  unchecked  (Specifies that an extension is ALWAYS going to ring when a queue call comes in...the agent does not have to log in and out).
Ring:  15  (number of seconds to ring an extension before moving on to the next agent)
Priority:  normal  (You can set this to different levels from highest to lowest.  This is useful if, for instance, you have 10 agents answering 2 queues...5 agents can be highest priority on queue #1 and lowest on queue #2, and the other 5 agents are vice versa.  This way, you can have primary and overflow agents for each queue).

Figure 14.1.1

Now, click 'Add Queue' to finish.  You are taken to the 'A.C.D. --> view queues' screen where you can see how many callers are in the queue, the current hold time, the number of completed and abandoned calls, and the agents in the queue and their status.  You are also given a drop-down box to clear the stats per queue.

14.2 - Add Queue to a Submenu

Now it's time to make our newly created Tech_Support queue an option in our 'business_hours' submenu.  Click on 'AutoAnswer --> sub-menus' and then type 'tech_support' in the 'Add New Submenu' section and click 'Create New Submenu.'  'Tech_Support' should appear in the bottom screen...click on it to edit it.  By default, it sets the caller ID to 'Tech support' which is fine because now my agents know which queue the call is coming from...this is helpful if you have multiple queues.  There are no keypresses, which is fine because I set 'Keypress submenu' to 'none' when I set up the queue.  Let's create a new sequence after step 1, and choose 'Go to Queue' from the drop down box.  Click 'Apply All Changes.'

An option #2 shows up in the Call Sequence with a few options:

Go to Q:  Tech_Support  (pick which queue to send callers to)
for:  unlimited  (timeout period)
w/:  music  (music or ringing...if they're on hold for a while, ringing is super annoying, so it's best to leave this on music.  If you want to set a special hold music playlist for this queue, you can do so by adding 'Set Music-on-hold Playlist' prior to step 2).

Click 'Apply All Changes' to save this submenu.  Now, let's add it as an option off of the 'business_hours' submenu we created earlier.  Remember, that in section 10.1, we created a system recording that says 'press 4 for tech support.'  Open up the 'business_hours' submenu and add a new keypress (4) Go to: Tech_support.  Click 'Apply All Changes' and you're done!  Now, when a caller presses 4 from the 'business_hours' submenu, they are dropped into the 'tech_support' queue.

This is a very simple example of a queue...there are many more options and features available for creating call queues, but they are beyond the scope of this document.  If you are interested in consulting for designing and implementing ACD call flows, SureTeq provides this service, so feel free to contact us!

14.3 - Create Queue Extension

In order to create a queue extension that callers can be transferred to, you need to create a virtual extension and associate it with the queue's submenu.  This is helpful for receptionists or other employees to send callers to the queue from within the company.

Click on 'Extensions --> add extension' and select a queue extension.  Use all default settings except for:

Extension number:  190  (can be whatever extension you desire, but be careful to stick with your dial plan so that you don't create delays in your ACD menus)
Description:  Tech Support Queue  (can be whatever)
First / Last Name:  Tech Support / Queue
Web Username:  123456_190  (where 123456 is my trixbox server ID)
Web Password:  12345  (can be whatever)
Phones / Devices:  Virtual Extension
Call Forwarding:  Tech_support  (the tech_support submenu I created in section 14.2)
Voicemail Enabled:  No  (you will get a warning that it will not be included in the company directory)

Click 'Add extension.'  You can now forward calls to this extension number, and they will be placed in the queue.

14.4 - ACD Reports

'A.C.D. --> acd reports' gives you the ability to to run reports for a wide range of call center statistics including queues, agents, and abandonment reports.  You can select your desired queue from the left hand window, and then select your desired report from the drop down box.

14.5 - ACD Recording

The 'A.C.D. --> recording' tab is a great feature for call centers.  It allows you to select an agent from the drop-down box, select recording quality (low or high), and then set the recording duration (between 1 and 50 calls recorded).  Keep in mind that WAV files can get pretty big, so you probably wouldn't want to set recordings for 50 calls for 100 agents...you'll probably run out of disk space before you're finished recording!  But, it makes it really easy for a supervisor or manager to record a set of calls for a particular agent, and then review them and coach the agent.

14.6 - Agent Commands

Here is a reference of agent commands for logging in and out of queues:

*1 - Log this extension into all queues associated with it
*50 - Log in with a specific agent number and have the queue respect call forwarding
*54 - Log in with a specific agent number and listen for instructions
*3 - Log this extension out of all queues associated with it
*56 - Log out a specific agent number

 

15.0 - HUD

HUD is a tool for visually monitoring and controlling what your extensions are doing.  The HUD product is put out by Fonality, the owners of the trixbox project, and they have come a long way in integrating and improving HUD so that it becomes not only a productive tool for communication, but a great selling point for resellers.

15.1 - HUD Installation and Configuration

HUD comes installed with all trixbox Pro versions, however you get HUD Lite with the SE version, and full HUD with the EE and CCE versions.  When you log into the UCP, there is a HUD download link for either Mac's or PC's, and it will automatically give you the appropriate version for the type of trixbox you are running.  Click on Mac or PC to download.  Once it is downloaded, double-click on the downloaded file to get started.

Choose your installation options (most people can take defaults, but I don't like to have it on my desktop or in my quick-launch bar...especially since it auto-starts).  The installation is pretty quick, and we can move onto setup.

When HUD is first run, it gives you a license agreement, and then checks online for your server's enabled modules.  After that, it gives you the option to install the Outlook and Tapi add-ons...these are recommended for full functionality.  HUD will also prompt you for connection information in the wizard, but I prefer to set it up once HUD has been installed.  To get to settings, choose 'File --> Settings' from within HUD.  You will want to use these settings for connectivity:

Username:  123456_101 (this is the Web Username you specified when creating the extension)
Password:  12345  (this is the Web Password you specified when creating the extension)

Advanced Settings
Server Name:  s123456.trixbox.fonality.com  (where 123456 is your trixbox server ID, for a remote HUD connection, you will want to use s123456x.trixbox.fonality.com to resolve your trixbox's external IP address).
Server Password:  (this was sent to you in the 'Welcome to trixbox Pro' email...it is in the HUD section at the bottom).
Server Port: 6600  (this will also need to be open to the Internet if you are connecting remotely).

Leave the rest of the settings default.

Figure 15.1.1

When the wizard finishes, HUD should now connect to your Trixbox, mark your extension as 'Available,' and show you a list of extensions you have set up.

Figure 15.1.2

You can view or hide additional windows such as call parking and chat by using the 'View' drop down menu and selecting or deselecting the different options.

HUD tells you a few things when calls are in progress with colors:

Green - extension is on an outside call
Purple - extension is on an intra-office call
Orange - extension is on a queue call
Gray - extension is unavailable

You can drag and drop your extension (upper-left corner extension 101) to another extension to call that extension (will dial your phone first and then call the 2nd extension once you have picked up).

You can also drag and drop your call to the 'on hold' section in the upper left to put a call on hold.  You can also drag and drop a call into the envelope icon of another extension to send that call directly to the voicemail of that extension.

HUD also allows you to Barge/Monitor a call in progress by clicking the 'B' next to a call that is in progress.  This will ring your extension and when you pick it up, you will hear the conversation that is going on between the two other extensions, or to the outside world.  You can set permissions for which extensions can Barge/Monitor which other extensions in the 'Groups' page discussed in section 13.0 of this document.

15.2 - Web Launcher

The Web Launcher in HUD (not included with HUD Lite), is a great tool for integrating HUD with sales/CRM applications such as SugarCRM or Salesforce.com.  It even works with Google if you want!  Basically, when a call comes in, you get a little WWW button on the HUD pop-up.  If you click it while on a call, it will launch your desired URL and automatically input the dynamic variables you have set up such as caller number or caller name.  You can also use some of the other variables to automatically put these details into a mysql database or any custom application you can think of that can be launched with an HTTP POST.  Here are some examples:

Launch a Google search based on caller ID:  http://google.com/search?q=%%caller_number%%

Launch a Google search based on caller name:  http://google.com/search?q=%%caller_name%%

Other variables:
%%my_extension%% - Your extension.
%%duration%% - call duration in seconds
%%type%% - "inbound," "outbound," or "queue" call

Figure 15.2.1

You can set the Web Launcher to launch automatically for inbound or outbound calls, or it can be run manually by hitting the WWW button on the call pop-up.

Larger scale CRM integration or screen-pops using the Web Launcher is outside the scope of this document, but SureTeq provides this service!  Please feel free to contact us.


16.0 - Extra Features

There are some extra features included in trixbox Pro that are worth mentioning, but I won't go into them in too much detail.

16.1 - Status --> resources

The Status --> resources page is great for monitoring server activity.  There are three different sections.

Server Resources is for monitoring the physical health of your server including CPU, (standard, HUD, and trixbox), memory, and hard drive activity.

Server Activity is for monitoring what is going on in trixbox/Asterisk including trunks, channels, conferences and recordings in use.

Finally, there is network activity...pretty self explanatory.

16.2 - Status --> alerts

The Status --> alerts page is great for resellers and techs who want to be notified if anything goes beyond set thresholds in your server.  You can put in your email address and be notified if your CPU usage gets too high, your hard drives get too full, your NIC load goes too high, you start using too many trunks, etc.  Take a look at the page, and you'll see all of these options...they are very cool.

16.3 - Options --> echo

This page is for troubleshooting echo problems.  I've said it before, and I'll say it again though...BUY CARDS WITH HARDWARE ECHO CANCELLATION, and your life will be much easier.  BUT...if you don't have hardware echo cancellation, you can use the echo page to turn software echo cancellation off and on, and change echo settings...it is a pretty nice interface for the echo troubleshooting settings, but I'm not going to explain them here.  I did, however, blog about echo, and if you are interested in echo troubleshooting, see my blog post on the wonders of echo cancellation troubleshooting.

16.4 - Conferences

trixbox Pro EE and CCE come with conference bridges in the form of submenus.  To access these conference bridges, you can either point to them as a keypress from another submenu, or set up a virtual extension that points to the conference bridge submenu.  I may go into these in more detail later, but right now, I'm pretty sick of writing this document, so I'm going to end it here.