FreePBX
Maintainer
original contributor: [1]Daniel B. from Firewall Services
last maintainer: [2]JP Pialasse
Version
Description
FreePBX is a full-featured PBX web application. If you’ve looked into Asterisk, you know that it doesn’t come with any "built in" programming. You can’t plug a phone into it and make it work without editing configuration files, writing dialplans, and various messing about.
FreePBX simplifies this by giving you pre-programmed functionality accessible by a user-friendly web interfaces that allows you to have a fully functional PBX pretty much straight away with no programming required. Some of the features that FreePBX supports out of the box are:
- Unlimited number of Voicemail boxes
- "Follow Me" functionality
- Ring Groups with calls confirmation (so if, eg, a cellphone is out of range and diverts to voicemail, all the other phones keep ringing)
- Unlimited number of Conferences (limited by available CPU power - about 300 simultaneous users in conferences on a P4 3ghz - 600 with a dual core!)
- Paging and Intercom functionality for man SIP phones that support it.
- Music on Hold (via MP3s, or streamed off the internet)
- Call Queues
- And many other features
Optional
- You may want some hardware cards if you don't want your installation to be IP only. I've tested successfully the TDM400P, TDM410P and b410P (misdn) from Digium, but any card supported by DAHDI (should be anything working with zaptel) should work.
Installation
in progresss !!
install needed repo and configure
yum install smeserver-extrarepositories-asterisk smeserver-extrarepositories-node smeserver-extrarepositories-rpmfusion -y db yum_repositories setprop node10 status enabled signal-event yum-modify
install
yum install smeserver-freepbx --enablerepo=smecontribs,asterisk-common,asterisk-13,node10,rpmfusion,epel,smetest
if you want also to install localization sounds
yum install asterisk-sounds-core-fr-alaw asterisk-sounds-core-fr-g722 asterisk-sounds-core-fr-g729 asterisk-sounds-core-fr-gsm asterisk-sounds-core-fr-siren14 asterisk-sounds-core-fr-siren7 asterisk-sounds-core-fr-sln16 asterisk-sounds-core-fr-ulaw asterisk-sounds-core-fr-wav
yum install asterisk-sounds-core-it-alaw asterisk-sounds-core-it-g722 asterisk-sounds-core-it-g729 asterisk-sounds-core-it-gsm asterisk-sounds-core-it-siren14 asterisk-sounds-core-it-siren7 asterisk-sounds-core-it-sln16 asterisk-sounds-core-it-ulaw asterisk-sounds-core-it-wav
yum install asterisk-sounds-core-es-alaw asterisk-sounds-core-es-g722 asterisk-sounds-core-es-g729 asterisk-sounds-core-es-gsm asterisk-sounds-core-es-siren14 asterisk-sounds-core-es-siren7 asterisk-sounds-core-es-sln16 asterisk-sounds-core-es-ulaw asterisk-sounds-core-es-wav
You will still miss the asterisk-sounds-extra-*-* that are not available as rpm, but freepbx will be able to download them with soundLang module.
source : https://computingforgeeks.com/how-to-install-freepbx-15-on-centos-7/ https://wiki.freepbx.org/display/FOP/Installing+FreePBX+15+on+Debian+9.6
1. First, increase the php memory limit to at least 128M BEFORE the installation, or it will fail in the middle leaving it in an unstable state ( half mysql db installed, no modules activated).
db configuration setprop php MemoryLimit 128M expand-template /etc/php.ini service httpd-e-smith restart2. Install the 4 yum repos necessary (asterisk-13,asterisk-current,digium-current,digium-13):
yum install smeserver-extrarepositories-asterisk -y
signal-event yum-modify
signal-event yum-modify
3. Then the actual installation :
yum install smeserver-freepbx --enablerepo=smecontribs,asterisk-13,asterisk-current,digium-current,digium-13
4. By default en language with ulaw are added. If you want voicemail to work you wil need to add what is needed for your language there. You may want to add some extra format and languages. (you might choose codec {alaw,ulaw,g722,gsm} you want and language {en,en_AU,fr,es}, see http://packages.asterisk.org/centos/6/current/i386/RPMS/).
Formerly, You could also manually download them latter through the Freepbx interface (first install Freepbx Sound Languages module,then go to Admin/Sound Languages). But this seems broken as per 2019/01/11, the xml list for the module to work are empty. See known issues if you need to install multiple langauge pack easily manually
yum install asterisk-sounds-core-fr-* asterisk-sounds-extra-en-* --enablerepo=asterisk-current
5. This is the important step of the installation, the actual configuration and installation of files:
signal-event freepbx-update
6. Then you can start to configure and upgrade trough the interface in the server-manager it might also be necessary to reboot or relaunch asterisk to allow all modules to be launch:
signal-event post-upgrade; signal-event reboot
You may need to first install the ATrpms repository.
yum --enablerepo=smecontribs --enablerepo=atrpms install smeserver-freepbx dahdi-linux-kmdl-$(uname -r) signal-event freepbx-update signal-event post-upgrade; signal-event reboot
Components
FreePBX is composed of 4 main parts: the main FreePBX interface, Recordings, Asterisk-Stats and Flash Operator Panel
FreePBX
This is the main web interface for asterisk configuration. This interface is available at https://server.domain.tld/freepbx/admin, or in the server-manager, under FreePBX menu. You'll need to login as admin (password of your admin's SME account) to access this part. You can grant the access to any user of the system using the userpanel contrib (just grant the user or the group the permission to access freepbx panel)
Recordings
Recordings, is a web based portal for users. You may configure some features of your phone here (followme, call forward, call waiting etc...), check you call history, or download/listen to your voicemail. This interface is available at https://server.domain.tld/recordings. The login here is your phone (extension) number and your voicemail password. There's also a special admin account. The admin account can access all call logs and recordings. The login is admin, the password is randomly generated, you can find it in /opt/freepbx/recordings/includes/main.conf.php
Backup
Starting SME9 we started to integrate the FreePPX backup in the SME Server backup system. The first backup of FreePBX module is now reserved to SME usage. SME will trigger at least once a month a bakcup of your whole PBX and store it in /home/e-smith/files/freepbx/Default_backup/. Up to 2 version will be kept there. Also, every time you trigger the event pre-backup (i.e., before console backup, or workstation backup from server-manager) a backup will be done without you worrying about it (unless FreePBX is disabled). To restore your PBX after migrating to a new SME or after a disaster, just restore your SME as usual, install the smeserver-freepbx contrib and open you server-manager to access to the FreePBX interface. GO to the backup module, choose restore and navigate to /home/e-smith/files/freepbx/Default_backup/ and choose the backup to use. Et voilà !
DB parameters
Here's the list of DB parameters:
This contrib add 3 entries in the configuration db: freepbx, dahdi and fop. Here's a description of available parameters for each entry
- freepbx
- CdrDbName: the name of the database for CDR. The default is asteriskcdrdb. You should let this unless you know what you're doing.
- DbName: the name of the database for FreePBX. The default is freepbxdb. You should let this unless you know what you're doing.
- DbPassword: the password to access FreePBX database. A random value is generated at install time.
- DbUser: the username to access both databases. Default is freepbxuser.
- DeviceAndUser: (enabled|disabled) You can enable the 'deviceanduser' display view of FreePBX. DeviceAndUser is enabled, Devices and Users will be administered separately, and Users will be able to "login" to (ad hoc) devices. If disabled Devices and Users will me administered in a single screen. Removed since SME9. Use FPBX GUI to handle this.
- ManagerPassword: This is the asterisk manager password used by FreePBX (the login is 'admin'). The default one is randomly generated at install time.
- UDPPorts: Lists of ports used by asterisk. This settings is only useful if you want to open asterisk on the public interface (you can also restrict it with AllowHost parameter).
- access: (private|public). if you want to open asterisk on the public interface, you can set this to public.
- status: (enabled|disabled). Should asterisk (with FreePBX provided helper script) should be started automatically.
- dahdi
- status: (enabled|disabled) You should let this to enabled, even if you don't have any hardware card because some functions (like meetme) requires the dahdi_dummy driver to be loaded.
Related pages
You may be interested in the following how-to:
Update Freepbx
To update your freepbx installation simply follow the procedure inside freepbx web interface. After every version update (from 2.5 to 2.6, etc.) you should run a
signal-event freepbx-update
in order to update file ownership according to SME and FreePBX specifications.
The way the contrib is designed, updating freepbx-src (i.e. from 2.5 to 2.7) won't update your working freepbx installation.
Uninstall
yum remove smeserver-freepbx freepbx-src asterisk*
If you want to cleanup everything (MySQL databases, DB, etc...), you can use this script:
#!/bin/bash clear echo "----------------------------" echo "!!!!! WARNING !!!!!" echo "----------------------------" echo "" echo "This script will remove from your server:" echo " - freepbx and asterisk cdr MySQL databases" echo " - freepbx MySQL User" echo " - freepbx DB entries (freepbx, httpd-fpbx and dahdi)" echo " - /opt/freepbx" echo " - /etc/freepbx.conf" echo " - /etc/amportal.conf" echo " - /var/lib/asterisk/bin/*" echo " - /usr/share/asterisk/bin/*" echo "" echo -n "Are you sure you want to remove FreePBX permanentlye? (y/n) [n] " read confirm if [ "$confirm" = "y" -o "$confirm" = "Y" ]; then echo "removing rpms" yum remove -y smeserver-freepbx freepbx-src asterisk* -y echo "Droping MySQL databases..." DBNAME=$(/sbin/e-smith/db configuration getprop freepbx DbName) CDRDBNAME=$(/sbin/e-smith/db configuration getprop freepbx CdrDbName) mysql -e "DROP DATABASE $DBNAME" mysql -e "DROP DATABASE $CDRDBNAME" echo "Deleting MySQL User..." DBUSER=$(/sbin/e-smith/db configuration getprop freepbx DbUser) mysql -u root -e "REVOKE ALL PRIVILEGES ON *.* FROM '$DBUSER'@'localhost';" mysql -u root -e "DROP USER '$DBUSER'@'localhost';" > /dev/null 2>&1 echo "Removing SME DB entries..." /sbin/e-smith/db configuration delete freepbx /sbin/e-smith/db configuration delete httpd-fpbx /sbin/e-smith/db configuration delete dahdi echo "Removing /opt/freepbx ..." rm -rf /opt/freepbx echo "Removing /etc/freepbx.conf ..." rm -rf /etc/freepbx.conf echo "Removing /etc/amportal.conf ..." rm -rf /etc/amportal.conf echo "Removing /var/lib/asterisk/bin/* ..." rm -rf /var/lib/asterisk/bin/* echo "Removing /usr/share/asterisk/bin/* ..." rm -rf /usr/share/asterisk/bin/* echo "Removing associated asterisk confs ..." rm -f /etc/freepbx.conf rm -f /etc/amportal.conf rm -f /etc/amportal.conf rm -rf /etc/asterisk rm -rf /home/e-smith/files/freepbx rm -rf /var/lib/asterisk rm -rf /var/lib/php/fpbx-session rm -rf /var/log/httpd-fpbx rm -rf /var/service/httpd-fpbx echo "removing the crontab entry for asterisk" crontab -u asterisk -r echo "Done!" fi
Reinstall
If you need to re-install everything, you should completely remove the previous installation (remove the rpms and run the cleanup script.)
Known issues
SME10: UCP deamon not running
This is only for FreePBX distro and improve commercial module integration, just ignore the message.
SME10: Security issue, System update has changed
This is because FreePBX is not isntalled on its own distro and is not able to handle the system update itself, you can safely ignore the message as soon as you visit the Admin /update page it will fade away.
CDR logging not enabled by default
CDR logging is not enabled by default. To enable one must manually load the cdr_mysql.so module:
Admin -> Asterisk Modules -> Manually loaded Modules -> Add module and enter the module name cdr_mysql.so
freepbx modules
if you need to install the digium addons from freepbx, you will first need to install the following RPM:
yum install php-digium_register --enablerepo-digium-current
Firewall addons does not work on SME, it requires Sysadmin RPM only in the FreePBX distro.
You may need to manually install the manager module. It should be a default module but I could not find it installed, and nothing appeared in the Module Admin.
fwconsole moduleadmin listonline
fwconsole ma downloadinstall manager
Migration from earlier versions
13 to 15+
If you want to restore from 13 to 15 this is possible follow this post for some advice on how to do to make it more efficient (only your Full Config and Voicemail, excluding your CDR DB and Recordings initially, and restore just that initial config/VM backup file first. Then you can scp huge amount of sound files to the correct location, and see if CDR is correctly importing as this is what could cause the most issue): https://community.freepbx.org/t/trying-backup-and-restore-freepbx-13-to-15-for-first-time/70109/2
13 to 14
eg: Migration from SME9/FPBX13 to SME10/FPBX14
Best approach would be :
if your database has been restored before installing smeserver-freepbx, the /etc/e-smith/events/actions/freepbx-checkinstall script should just run the installation from there if you left the /opt/freepbx empty The install script does a mysql db upgrade to the current version and then install the scripts. It should then download install and active all needed modules, in case it was not done because you added some particulare module you might need to use the fwconsole ma cli utility to list, then listonline, downloadinstall all missing modules if the GUI does not let you enter.
sources:
- https://community.freepbx.org/t/import-freepbx13-backup-into-freepbx14/43955/9
- https://community.freepbx.org/t/freepbx-14-restore-backup-taken-in-freepbx-13/49092/4
prior 13
There is no upgrade path between versions before 14. Backup/Restore will most likely not work.
In the meantime some notes on manually upgrading. This was based on moving from asterisk 1.8.x and an old version of FreepBX.
First, make sure you backup ABSOLUTELY everything. In different ways and in different places.
A straight copy of /etc/asterisk and /opt/freepbx plus a complete database dump at least.
It will be better if you have a completely clean install, preferably on a VM where you can snapshot the basic install and go back if you need to.
I took a copy of the freepbx DB and imported it completely into a different server. I could then do a side by side comparison of tables and data.
Here are some basic tables that you will need, though they may not all be required depending on your configuration
General
modules (for reference as to what you already have installed) sip (most entries required, but manual checking required) sipsettings (for reference - do not INSERT) freepbxsettings (for reference - do not INSERT)
Trunks and Routes
trunks trunk_dialpatterns incoming outbound_routes outbound_route_patterns outbound_routes_sequence outbound_route_trunk
Other
ringgroups queueprio queues_config queues_details
Device and User mode
devices users
Extension mode
extensions
freepbx_users - does not exist in v13
I exported each table and a table from the new install to compare, particularly items like field lengths, and KEYS. Some old tables did not have Primary keys set.
I then copied the 'INSERT INTO' section into phpmyadmin/sql section on the new server.
If you swap from Extension to Device and User mode I found that once I had inserted the data I had to go into FreePBX, open each record, and Submit, finally followed by Apply Config. This seemed to update the DB.
Security
Please see http://www.voipbl.org/ to adapt fail2ban to use blacklisted IP's worldwide.
Bugs
Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-freepbx component or use this link.
ID | Product | Version | Status | Summary (7 tasks) ⇒ |
---|---|---|---|---|
12496 | SME Contribs | 10.0 | CONFIRMED | Bind address 0.0.0.0 causes SIP authorization failures |
12463 | SME Contribs | 10.0 | CONFIRMED | ARI default username/password |
12363 | SME Contribs | 10.0 | CONFIRMED | Upgrade Asterisk to a supported version - minimum 16 |
12362 | SME Contribs | 10.0 | CONFIRMED | UCP WebRTC phone requires websocket |
12361 | SME Contribs | 10.0 | CONFIRMED | UCP does not use mysql socket |
10620 | SME Contribs | 9.2 | NEEDINFO | Asterisk not logging to CDR or CEL databases |
9945 | SME Contribs | 9.1 | CONFIRMED | server manager :not found if freepbx disabled |
Changelog
Only released version in smecontrib are listed here.
2024/04/22 Jean-Philippe Pialasse 14-14.sme
- some logs not rotated [SME: 12506]
- fix permission denied on /usr/local/sbin/fwconsole from cron
2022/12/14 Jean-Philippe Pialasse 14-11.sme
- fix bugs installing FPBX 15
- fix amportal alerts [SME: 12259]
- compatible FBX 16 [SME: 12276]
- fix duplicate logrotate [SME: 12237]
2022/12/13 Jean-Philippe Pialasse 14-10.sme
- fix backup for FreePBX 15 and higher [SME: 12256]
- improve backup [SME: 10703]