User Tools

Site Tools


voice:pbx:thirdlane

Thirdlane iPBX

Thirdlane PBX is a professional GUI management tool for Asterisk. There is a multi-tenant version available.

Searching the Forums

Searching with google may be preferable to the built-in forum search. Preface a google search with:

site:http://www.thirdlane.com/forum

License

Licenses are keyed to a hardware MAC address.

If you install the PBX from the .iso, a 30-day license is created.

If you create a backup, then delete these files from the .tar.gz, the temporary license will not be overwritten:

/etc/webmin/asterisk/license-data
/etc/webmin/asterisk/pbxmanager.license

Spoof a MAC Address

You can spoof the hardware MAC address after a hardware change.

vim /etc/rc.local

ifconfig eth0 down hw ether 00:07:E9:DA:56:01	#specify desired MAC address
ifconfig eth0 up

Upgrade Thirdlane

From 'Home' page, click the 'check for updates link.

There is always a chance that something will break.

Don't forget to reload.

Upgrade Asterisk

Be very careful about upgrading the host OS or Asterisk. Avoid doing so if possible.

Recompile Asterisk

This probably doesn't apply if you used the Thirdlane ISO to install the PBX.

For asterisk and asterisk-addons you should:

make distclean
./configure
make menuselect
make
make install

Tools

Enter 'pbx-help' at the command line for a list of some tools.

Installation

Thirdlane can be installed via an ISO (CD) that packages CentOS, Asterisk and various goodies such as vTiger CRM and the Thirdlane web management interface. Or, you can install any Linux, Asterisk, Webmin plus the Thirdlane Webmin GUI module.

Thirdlane maintains a CentOS 5 repository so updates are easier than before (untested).

Configure a static IP address and default route.

Setup DNS to resolve host 'pbx' to the internal IP address.

yum update -y

MySQL

If you install via the Thirdlane ISO, the default MySQL password is “passw0rd”.

Root password is empty unless you set it:

mysqladmin -u root password 'mypassword'

Reset lost mysql root password:

service mysqld stop

mysqld_safe --skip-grant-tables &

mysql -u root
  use mysql;
  update user set password=PASSWORD("new-password-here") where User='root';
  flush privileges;
  quit
  
service mysqld restart

DAHDI

No installation required when using the ISO install as the ISO uses RPM-based packages and Thirdlane repo.

Configuration

See DAHDI

NTP

Make PBX ntp server for phone network:

vim /etc/ntp.conf

# Hosts on local network are less restricted.
restrict 192.168.30.0 mask 255.255.255.0 nomodify notrap
broadcast 192.168.30.255

service ntpd restart

netstat -uapn|grep 123

DHCP Server

FIXME

Music on Hold

Configuration

System Settings

Branding
	Upload Logo (150x60 px)
	Logo URL
Network
	eth0 (LAN)
		Addressing
			192.168.1.30
		Hostname
			FQDN
		DNS Domain
	Postfix SMTP address rewriting
		iPBX@sonoracomm.com
			domain name of owner
			important for mail relaying
Provisioning
	TFTP, HTTP and FTP
		all enabled by default
	This server's address - enter server IP address
		external server IP if it has one
Preferences
	Color - Lilac
License
	Upload the license file sent by Thirdlane

PBX Settings

Default Values
	Caller ID
	Default Script
	Distinctive Ring
		 yes 
		 Internal (Polycom)
	Voicemail Template
		 Probably OK as-is
	Phone Template
		 
Global Variables
	OPERATOR
	RECORDING_FORMAT (wav for non-MS)
	Schedules
		tl-off-hours
			Office Closed Hours
			00:00-07:59
			17:00-23:59
			holidays

Media Files

	Music on Hold
		Use 'default' or create a new playlist
		Default MoH is not random
		Delete songs you don't like
			Delete all but 'morning coffee' and/or 'simplicity'
		Add songs you do like to a new playlist

Trunks

DAHDI (Zap)

Create a trunk
	Name your first trunk 'G0' (case sensitive)

Mediatrix

http://www.sonoracomm.com/support/20-voice-support/154-mediatrix-1204

http://lists.digium.com/pipermail/asterisk-users/2004-February/028568.html

Create a trunk
	Mediatrix gateway is SIP trunk
		Name, Description, Host, Codecs
		No authentication
Routes -> Inbound Routes
	Create a new inbound route
		Choose a DID number to use (such as 999)

Also, you can create a new Feature extension and use that. Security implications?

On the Mediatrix 1204 gateway
	No authentication
	Point ports to extension 999 on server for inbound calls
	See setup info on web site for SAIL
	Logging
		Device Info -> Monitoring
			Enable syslog to PBX IP
		On PBX, enable remote logging
			vi /etc/sysconfig/syslog
				add '-r' to SYSLOGD_OPTIONS
			service syslog restart

Vitelity

You can use Vitelity either as a registered or an IP-routed trunk. Vitelity recommends using the more efficient IP-routed method to connect PBXs with static IPs.

IP-routed method shown here with separate trunks for inbound and outbound.

Note that you can only manipulate outbound caller ID if using IP routing. If using registration, specify the desired CLID in the Vitelity Portal Subaccount.

Create SIP Trunk
Name: vitel-inbound
Description: Vitelity Inbound SIP Trunk
Host: inbound23.vitelity.net
Direction: Inbound
Context: from-outside
Caller ID: Company Name <NXXNXXXXXX>
Codecs: G.711u, G.729, GSM 			# order by preference
DTMF mode: Auto
Other options: insecure=very
Provider's web site	https://portal.vitelity.net

Clone the inbound trunk to create the outbound trunk:

Name: vitel-outbound
Host: <outbound_ip_address>
Description: Vitelity Outbound SIP Trunk
Direction: Outbound
Context: from-inside
Codecs: G.711u, G.729, GSM
DTMF mode: Auto
Provider's web site	https://portal.vitelity.net

Extensions

  • Bulk creation is easy
  • 468* for a few seconds to reset Polycom phones
    • Hit 'Setup'
      • Set server to TFTP
      • Set server IP address
  • Directory - may need tweaking

Routes

  • Add DIDs, if using digital circuit or VoIP trunks
  • Add channel mappings for analog circuits, if desired

Inbound

  • Just modify pattern 's' if using FXO gateway
    • Office Closed Hours → Play Closed IVR
    • All Hours → Play Open IVR, Except when OFFICE_OPEN_OVERRIDE
    • All Hours #2 (cloned from tl-allhours) → Play Open IVR

You can create a new inbound route for an extension, but it is easier to just add the DID number in the User Extension instead of doing this.

  • DID
    • Create Schedule-based Route
    • DID/Pattern: <your_did_number>
    • Description: My Direct Dial
    • When: All Hours
    • Script: Goto User Extension
    • User Extension: 101

Outbound

  • Point existing routes to new trunk just created
  • Use check boxes and Assign button

PBX Features

http://www.thirdlane.com/forum/selective-call-recording-by-pressing-9

Feature Codes
	_8NXXX	tl-transfer-to-voicemail, enter '1' and 'u', Forward to VM
	*96		Close Office During Normally Open Hours (operator), closeoffice
	*97		Reopens Office During Normally Open Hours (operator), openoffice

Tools

Auto-Provisioning
	Configure or fine-tune phones and MAC addresses
	Hit 'Provision Selected' to actually create config files and reboot phones

IVR (Auto-Attendant)

FIXME

Backup

Tools -> Backup
Create user on SME Server
Enable FTP on SME Server
Schedule backup
	Simple -> Daily
	FTP Server -> <ftp_server_name>
	File on FTP Server -> /path/to/your/backup.thirdlane.tar.gz

I also had to edit root's crontab to suppress useless e-mail messages sent nightly:

crontab -e

@daily /etc/webmin/asterisk/backup.pl >/dev/null 2>&1

Restore

Asterisk CLI problem after restore:

Edit the path in asterisk.conf to say /var/run/asterisk and restart:

vim /etc/asterisk/asterisk.conf
pbxportal kill
pbxportal start
rm /var/run/asterisk.*
asterisk -vvvvvvvr

Security

Fail2Ban

Fail2Ban is installed by default using TL ISO 2.0+.

:!: Fail2ban can complicate troubleshooting, so check it!

Arno's Firewall

vim /etc/arno-iptables-firewall/firewall.conf

OPEN_TCP="2222"
OPEN_UDP="4569,5060-5061,10000-20000"
HOST_OPEN_TCP="209.193.93.158~80,443,10000 209.193.64.254~80,443,10000 70.162.22.135~80,443,10000 209.193.64.2~80,443,10000"

iptables -nL |grep ACCEPT

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:2222 
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:4569
ACCEPT     tcp  --  209.193.93.158       0.0.0.0/0           tcp dpt:80 
ACCEPT     tcp  --  209.193.93.158       0.0.0.0/0           tcp dpt:443 
ACCEPT     tcp  --  209.193.93.158       0.0.0.0/0           tcp dpt:10000 
ACCEPT     tcp  --  209.193.64.254       0.0.0.0/0           tcp dpt:80 
ACCEPT     tcp  --  209.193.64.254       0.0.0.0/0           tcp dpt:443 
ACCEPT     tcp  --  209.193.64.254       0.0.0.0/0           tcp dpt:10000 
ACCEPT     tcp  --  70.162.22.135        0.0.0.0/0           tcp dpt:80 
ACCEPT     tcp  --  70.162.22.135        0.0.0.0/0           tcp dpt:443 
ACCEPT     tcp  --  70.162.22.135        0.0.0.0/0           tcp dpt:10000 
ACCEPT     tcp  --  209.193.64.2         0.0.0.0/0           tcp dpt:80 
ACCEPT     tcp  --  209.193.64.2         0.0.0.0/0           tcp dpt:443 
ACCEPT     tcp  --  209.193.64.2         0.0.0.0/0           tcp dpt:10000

Redhat Firewall

http://wiki.centos.org/HowTos/Network/IPTables

Run iptables commands, then issue:

service iptables save

or

iptables-save > /etc/sysconfig/iptables

Restore saved rules like this:

iptables-restore

Night Mode

This may have changed. Check!
	Voice Recordings
		Upload two .gsm files to /var/lib/asterisk/sounds/ogm/
			offices-open.gsm
			offices-closed.gsm

Dial by Name Directory

http://www.asterisk.org/docs/asterisk/trunk/applications/directory

If you want to announce the extension number to the callers, and dial by first name, clone the script tl-directory into tl-directory-first-ext.

To clone a script on Web Interface menu go to PBX Settings > Script Library > choose script to clone and use button at the bottom of the page.

Add '|ef' to the options:

exten => s,2,Directory(default${TL_DASH}${tenant},local-extensions${TL_DASH}${tenant}|ef)

Once the script is created, add a feature code that uses the new script. Then you can use it in IVRs.

Root Mail

To forward administrative mail to a real user, edit /etc/aliases:

vi /etc/aliases

Edit the bottom of the file:

# Person who should get root's mail
root:           you@your.domain

Then run the newaliases command to activate the changes:

newaliases

Voicemail to E-Mail

Postfix

See also Postfix Authenticated Smarthost

http://www.cyberciti.biz/faq/postfix-smtp-authentication-for-mail-servers/

http://www.dnsexit.com/support/mailrelay/postfix.html

ISO 2.0 install includes the Postfix MTA, so we tweak it to forward mail to a smarthost rather than configure everything necessary for a full-blown mail server.

Set the From Address for messages from the PBX:

System Settings → Network Settings → Postfix SMTP rewriting → iPBX@sonoracomm.com

voicemail.conf

Edit voicemail.conf. Set format for e-mail attachments to 'wav'.

volgain=6.0					# TDM400P card
serveremail=SonoraPBX
minsecs=5					# was 'minmessage' - adjust to get rid of hangups
fromstring=The Sonora iPBX
emailbody= (change 'Thirdlane' to 'SonoraPBX')
tz=arizona

[zonemessages]
arizona=America/Phoenix|'vm-received' Q 'digits/at' IMp

Digium TDM Cards

:!: TDM (FXO) cards don't like to share a hardware interrupt.

Check for shared IRQ:

lspci -vb

Echo Cancellation

Run fxotune to tune the TDM card to the actual phone lines connected.

  1. Connect the phone lines to the FXO ports
  2. Shut down Asterisk
  3. Run fxotune to modify the config file
  4. Verify the changed config file
  5. Restart Asterisk

Shut down Asterisk, then:

fxotune -i 4

cat /etc/fxotune.conf

Run this to set the running configuration to the settings in /etc/fxotune.conf (created by fxotune -i 4):

fxotune -s

Normally, fxotune -s is run by Zapata startup.

Restart Asterisk.

Provisioning

Polycom

http://www.thirdlane.com/forum/ftp

http://www.fonality.com/trixbox/forums/vendor-moderated-forums/polycom/configuring-polycom-phones-tb-2-2-endpoint-mgr

  • Download the appropriate SIP and BOOTROM from Polycom Portal
  • Unzip both files into /home/PlcmSpIp
    • same location used for HTTP, FTP and TFTP
  • Test with 'ftp pbx'
    • Username 'PlcmSpIp'
    • Password 'PlcmSpIp'
    • > get sip.cfg
    • Listing of files is disabled for security
  • Test with 'tftp pbx' command from another PC
    • > get sip.cfg
  • Test with browser
cd /home/PlcmSpIp/

# For older Polycoms such as 301, 501 and 4000
wget http://downloads.polycom.com/voice/voip/sp_ss_sip/spip_ssip_3_1_7_legacy_release_sig_combined.zip
wget http://downloads.polycom.com/voice/voip/sp_ss_bootrom/spip_ssip_vvx_BootROM_4_1_4_release_sig.zip
unzip spip_ssip_3_1_7_legacy_release_sig_combined.zip
unzip spip_ssip_vvx_BootROM_4_1_4_release_sig.zip

# For newer phones - don't use the latest as it doesn't work with TL provisioning yet
wget http://downloads.polycom.com/voice/voip/sp_ss_sip/spip_ssip_vvx_3_2_5_release_sig_split.zip
wget http://downloads.polycom.com/voice/voip/sp_ss_bootrom/spip_ssip_BootROM_4_3_0_release_sig.zip


chown -R PlcmSpIp.PlcmSpIp *

Snom

Polycom Provisioning

Polycom Inter-Digit Timeout

Firmware

Use 'Split' firmware as long as BootRom is v 4.0 or above.

cd /home/PlcmSpIp/

wget http://downloads.polycom.com/voice/voip/sp_ss_bootrom/spip_ssip_BootROM_4_3_0_release_sig.zip
wget http://downloads.polycom.com/voice/voip/sp_ss_sip/spip_ssip_vvx_3_2_5_release_sig_split.zip

unzip spip_ssip_BootROM_4_3_0_release_sig.zip
unzip spip_ssip_vvx_3_2_5_release_sig_split.zip

Files

Thirdlane generates these config files based on templates in /etc/asterisk/provisioning

${mac} (lists config files to be read - static) ${mac}-registration.cfg (per-phone (line) settings) local-settings.cfg (per-installation site-wide settings) sip.cfg (static)

Each phone generates this override config file for user-changed settings in /tftpboot:

OVERRIDES/${mac}-phone.cfg

Templates

Copy /etc/asterisk/provisioning/models.txt to /etc/asterisk/user_provisioning/ and delete all models not being modified. 'user_provisioning' folder will not be overwritten upon TL upgrades and will override 'provisioning' templates.

cp -a /etc/asterisk/provisioning/models.txt /etc/asterisk/user_provisioning/

vim /etc/asterisk/user_provisioning/models.txt

cp -a /etc/asterisk/provisioning/models.txt /etc/asterisk/user_provisioning/
cp -a /etc/asterisk/provisioning/polycom_* /etc/asterisk/user_provisioning/

To program the second and third line keys for other functions, specify the number of line keys as 1.

Programming

http://www.thirdlane.com/forum/custom-polycom-soft-key-programming

Edit /etc/asterisk/user_provisioning/polycom_mac.cfg:

Modify for current version of firmware (change 313 to 317) to fix error 0x20.

Edit /etc/asterisk/user_provisioning/polycom_local.cfg:

Verify that the phone will dial *97 to check voicemail:

    msg.mwi.1.callBack="*97"

Enable Presence

   feature.1.enabled="1"
   softkey.feature.mystatus="1"

Use these settings to override DHCP for NTP:

   <TCP_IP>
      <SNTP 
          tcpIpApp.sntp.resyncPeriod="14400" 
          tcpIpApp.sntp.address="192.168.1.30" 
          tcpIpApp.sntp.address.overrideDHCP="1" 
          tcpIpApp.sntp.gmtOffset="-25200" 
          tcpIpApp.sntp.gmtOffset.overrideDHCP="1" 
          tcpIpApp.sntp.daylightSavings.enable="0"/>
   </TCP_IP>

Adjust the phone's digitmap as needed. These settings require hitting 'send' for all calls:

   dialplan.digitmap=""
   dialplan.impossibleMatchHandling="2"

Testing

Format Filesystem on phone to test configuration file changes.

Check Voicemail

	*97 - feature code - check your own mailbox
	_*85NNNN - Check mailbox NNNN                         ????

Directory

Assign fewer lines to phones in order to leave buttons free for programming.

cp -a /tftpboot/000000000000-directory~.xml /tftpboot/000000000000-directory.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<directory>
	<item_list>
                <item>
                        <fn>Park</fn>
                        <ct>700</ct>
                        <sd>1</sd>
                        <rt>1</rt>
                </item>
                <item>
                        <fn>Page</fn>
                        <ctfn>*98</ct>
                        <sd>2</sd>
                        <rt>1</rt>
                </item>
	</item_list>
</directory>

Park and Paging

BLF

http://www.thirdlane.com/forum/shared-line-appearances

Assign fewer lines (1) to leave buttons free for programming in Tools → Auto-Provisioning.

Polycom - Not yet working for line buttons, only expansion? May work soon…

Unused line keys are automatically populated with speed-dial contacts based on their speed dial index number. It is the same way you populate the expansion module.

These settings are needed and are default in /etc/asterisk/user_provisioning/polycom_local.cfg:

feature.1.name="presence"
feature.1.enabled="1"

Also:

  • create a Contact (First Name)
  • specify the extension (Contact)
  • select yes to 'watch buddy'
  • give it a speed dial index of 1
  • it will be the first listed on the expansion module
  • for these 'watched buddies' go into their extension configuration in pbx manager and limit their calls to 10 calls.
  • Reload asterisk.

Thirdlane Dialer

vTiger CRM

yum install vtigercrm-ast-en

OpenFire Instant Messaging Server

yum install openfire
voice/pbx/thirdlane.txt · Last modified: 2016/08/18 13:21 by gcooper