Difference between revisions of "FreePBX"
Unnilennium (talk | contribs) |
Unnilennium (talk | contribs) |
||
Line 85: | Line 85: | ||
EXPERIMENTAL !!! | EXPERIMENTAL !!! | ||
+ | first install the yum repo, see https://wiki.contribs.org/Digium_repo and https://wiki.contribs.org/Asterisk_repo | ||
+ | |||
+ | then increase the php memory limit to at least 128M BEFORE the installation, or it will wail. | ||
+ | db configuration setprop php MemoryLimit 128M | ||
+ | expand-template /etc/php.ini | ||
yum install smeserver-freepbx --enablerepo=smedev,asterisk-13,asterisk-current,digium-current,digium-13 | yum install smeserver-freepbx --enablerepo=smedev,asterisk-13,asterisk-current,digium-current,digium-13 |
Revision as of 17:10, 15 May 2016
Maintainer
Daniel B. from Firewall Services
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
Requirements
- SME Server 7.X
- You may also 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
- Install the rpms
You also need to install dahdi drivers (it's the new name for zaptel) even if you don't have an hardware card, as some core functionnalities requires DAHDI for the timing source
yum --enablerepo=smecontribs install smeserver-freepbx dahdi-linux-kmdl-$(uname -r)
If the module for your current kernel is not present in smecontribs, you may try to install it from ATrpms:
yum --enablerepo=atrpms install dahdi-tools dahdi-linux dahdi-linux-kmdl-$(uname -r)
Or from our own repo. I'll try to keep different versions of the modules here: You can configure our repo with this command:
db yum_repositories set fws repository \ BaseURL http://repo.firewall-services.com/centos/\$releasever \ EnableGroups no GPGCheck yes \ Name "Firewall Services" \ GPGKey http://repo.firewall-services.com/RPM-GPG-KEY \ Visible yes status disabled signal-event yum-modify
Then try to install everything again:
yum --enablerepo=smecontribs --enablerepo=fws install smeserver-freepbx dahdi-linux-kmdl-$(uname -r)
- Finish the installation
To finish the installation, you should issue the command
signal-event freepbx-update
The first time this event runs, it'll install FreePBX. You'll find installation's log in /root/freepbx_install.log
You should now be able to start using FreePBX on https://server.domain.tld/freepbx/admin
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
source : http://forums.contribs.org/index.php?topic=48143.0
EXPERIMENTAL !!! first install the yum repo, see https://wiki.contribs.org/Digium_repo and https://wiki.contribs.org/Asterisk_repo
then increase the php memory limit to at least 128M BEFORE the installation, or it will wail.
db configuration setprop php MemoryLimit 128M expand-template /etc/php.ini
yum install smeserver-freepbx --enablerepo=smedev,asterisk-13,asterisk-current,digium-current,digium-13
By default en language with ulaw are added. 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/):
yum install asterisk-sounds-core-fr-ulaw asterisk-sounds-extra-en-gsm --enablerepo=asterisk-current
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
Asterisk Stats
Asterisk-Stats is an interface to query CDR (Call Detail Reports) database. It's available on the main FreePBX interface at https://server/domain.tls/freepbx, on the "Reports" tab
Flash Operator Panel
Flash Operator Panel is a switchboard type application for the Asterisk PBX. It runs on a web browser with the flash plugin. It is able to display information about your PBX activity in real time. The layout is configurable (button sizes and colours, icons, etc). The FOP is available at https://server.domain.tld/panel or in the main interface in the "Panel" tab.
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 fop panel)
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 (adhoc) devices. If disabled Devices and Users will me administered in a single screen.
- 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.
- fop
- status: (enabled|disabled) Should we start the FOP server with FreePBX ?
- Password: This is the additional password for FOP. There's a first password needed to access FOP (by default, only admin is allowed). This first password is your SME account password. The second password (the one on this db parameter) allow users to use drag/drop on the different items (transfer call, initiate a call, hangup etc...). The default password is a random generated one at install time.
- TCPPort: This is the TCP port used for the communication between the flash applet and FOP daemon. The default is 4445
- access: The default is to allow only connections from the local network. You can allow external IP if you configure public here (and if you do so, you should limit this access to a list of IP using the AllowHost key)
- 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 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
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 "" echo -n "Are you sure you want to remove FreePBX permanently ? (y/n) [n] " read confirm if [ "$confirm" = "y" -o "$confirm" = "Y" ]; then 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 "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.)
Bugs
Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-freepbx component or use this link
Known issues
Sounds
you might have some trouble with sounds not playing, after updates of freepbx. The problem is that freepbx in new release configures asterisk to search for sounds in /usr/share/asterisk/sounds but all rpm for centos will install them in /var/lib/asterisk/sounds
create a symlink for each folder in it and everything will works.
Dahdi-linux-kmdl
be carrefull to keep the kernel module up to date every time you have a new kernel release ( wait if they are not available)
FOP could not reload
if after installation you get this message just do a
service freepbx restart
and everything will get fine !