Trixbox Customization

Trixbox customization

Intro
This page will (attempt to) explain all of the customization made to trixbox to get the reults that I wanted in deploying the intial system. [

What is trixbox and why are we using it?
Trixbox is an automated version of Asterisk, the open-source PBX. The systems is being deployed in Sept, 2006 with version 1.1.1. [

DHCP
The DHCP server is set up to give the phones all the info they need to log into the FTP server and get their configurations. We set it up like this: ddns-update-style interim; ignore client-updates; subnet 192.168.11.0 netmask 255.255.255.0 { option routers                 192.168.11.1; option subnet-mask             255.255.255.0; option domain-name             "m21.net"; option domain-name-servers     192.168.11.1; option time-offset             -18000; # Eastern Standard Time option ntp-servers             192.168.11.1; option tftp-server-name        "192.168.11.1"; range dynamic-bootp 192.168.11.210 192.168.11.254; default-lease-time 21600; max-lease-time 43200; Note that we are 192.168.11.1 so that everything is pointing to us. We have a couple of static addresses, for the polycom phone and the ATA for the outgoing fax: host aastra1 { hardware ethernet 00:08:5d:03:c7:87; fixed-address 192.168.11.201; } host ata1 { hardware ethernet 00:0e:08:bc:c4:f8; fixed-address 192.168.11.202; } Everything up to this point can be found in /etc//dhcpd.conf-master. This file is read in and added to for the actual /etc/dhcpd.conf through the asterisk-allocate-polycom script. In general the IP addresses given are 100 less then the extension numbers, so my extension, 227 is given the IP 192.168.11.127.

Phones
The phones chosen for this task are the Polycom IP601 phones. They are a very food business-grade phone, are highly configurable and have a built-in microbrowser. Much of the customization that will be discussed on this page is actually not for trixbox itself but to the phone configuration files.

Aastra 480i CT configuration
We have one of these phones. It is configured via tftp. The files go in the /tftpboot directory. There is little customization done to these files. There is a generic aastra.cfg and a MACADDR.cfg file, Here are the changes done to 00085D03C787.cfg sip line1 auth name: 228 sip line1 password: abc123 sip line1 user name: 228 sip line1 display name: 228 sip line1 screen name: Tech See the DHCP settings in the polycom section for general setup. The lines in the DHCP server that point to the TFTP server are the same as for the polycoms.

FTP user
Polycom phones by default come able to log into the default FTP server (see the DHCP setup above, under tftp-server-name. They then will try to log in with the username and password of PlcmSpIp. This is done in exactly that mixed case so there must be an FTP server on the machine capable of handling mixed-case user names. The default FTP server for CentOS 4, vsftpd, handles this properly.

Here is a copy of the xferlog for my phone booting with the timestamp and IPs removed. The total time from the first to the last was 1 min, 43 secs. 26280 /bootrom.ld b _ o r PlcmSpIp ftp 0 * i 216 /0004f204eeaf.cfg b _ o r PlcmSpIp ftp 0 * c 26280 /sip.ld b _ o r PlcmSpIp ftp 0 * i 8185 /x227/x227.cfg b _ o r PlcmSpIp ftp 0 * c 132846 /sip_m21.cfg b _ o r PlcmSpIp ftp 0 * c 86 /x227/0004f204eeaf-phone.cfg b _ o r PlcmSpIp ftp 0 * c 1054 /x227/0004f204eeaf-directory.xml b _ o r PlcmSpIp ftp 0 * c 3844 /x227/0004f204eeaf-app.log b _ i r PlcmSpIp ftp 0 * c 95926 /SoundPointIPWelcome.wav b _ o r PlcmSpIp ftp 0 * c /bootrom.ld is the bootstrap and is common to all of the Polycom phones. The next cfg files is the mac address of the phone. This, and all of the cfg files and directories are created by the /usr/local/bin/asterisk-allocate-polycom script, as with the dhcpd configuration above. This config file tells the phone to use the config file is the extension directory and the sip_broadbandcentric config file for general configuration.

The rest of the .cfg files configure the phone. The xnnn.cfg are generally copies of the xxxx.cfg (literally called xxxx.cfg) in /home/PlcmSpIp. There is some substitution done, again this should be obvious in looking through the file. The unusual custom changes are documented below

Extensions and rolling over incoming calls
Deprecated - Be sure to set Call Waiting as available for that extension in the database. Current scripts do so. =Trixbox standard configurations=

Script
Thank you for calling broadbandcentric.com – the world’s #1 cruise specialist. To speak with your Personal Cruise Consultant, you may dial their extension at any time. To book a new cruise, please press 1. For questions regarding a cruise reservation made through our website, please press 2. For the company operator, please press 0. For the company directory, please press #. Remember - broadbandcentric, before you cruise. [

Settings
The script is named "Main Menu".Directory is enabled in the default context and direct-dial is enabled. The announcement (see "script" above) is entitled "IVR-Main". There are 3 options. 0 goes to core extension 241, 1 goes to Queue 801 (SalesQueue) and 2 goes to queue 802 (CustomerServiceQueue).

Queues
All queues use the "leastrecent" ring strategy and have Caller Announcements set to give position and hold time every 2 minutes. JoinEmpty is No and LeaveWhenEmpty is yes.

Queue 801: SalesQueue
General sales go to queue 801. It is set to ring a random extension each time.

Queue 802: CustomerServiceQueue
Customer Service calls go to queue 802. It rings all phones logged into the queue.

Incoming Routes
While there are incoming routes set up for each DID, they all do the same thing: Drop the caller into the IVR Main Menu.

Outbound routes All calls are routed through the Optimum lines to ispbx.com. This will change on 5/25/2007 when the new T-1 is turned up.

Ring Groups
There are 3 ring groups set up: Sales (701), Customer Service (702) and Tech (703). All are ringall groups for the departments. They are not actually used at this time. I set them up for testing and legacy purposes.

=Taking a phone external= Change the SIP Server address on the phone to the external address of the asterisk box. To do this: Menu 3 (Settings...) 2 (Advanced...) 456 Enter (The password) 1 (Admin settings) 2 (SIP Configuration...) Select (Server) Change the address to the external address of the asterisk box (remember to change to numeric input) Press the Exit softkey 6 times

Allow NAT on the extensions
Go to the setup for the extensions. Change NAT from NEVER to YES. Changing Can-Reinvite to yes can help in some situations.

Allow external in the database
Set the extension in the database to allow for external. This is currently manual.

Run the allocation script
/usr/local/bin/asterisk-allocate-polycom

Set external before powering up
Asvise the user that the entry on the queues page must be set to external before the phone starts to boot in order for it to receive the proper scripts.