Difference between revisions of "FreePBX"

From SME Server
Jump to navigationJump to search
 
(86 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{Languages}}
 
{{Languages}}
 
+
{{Warning box| when installing smeserver-freepbx, your default php cli will change to php56 by default instead of php54, unless you specifically point to the binary. This is because Fpbx 14 does not support anymore php54 and php5, and neither php70 and higher. Upon upgrade to Fpbx 15 and Fpbx 16 this default will be updated to php74 to allow cli php script to run smoothly.}}
 
===Maintainer===
 
===Maintainer===
[mailto:daniel@firewall-services.com[[User:VIP-ire|Daniel B.]]] from [http://www.firewall-services.com Firewall Services]
+
original contributor: [mailto:daniel@firewall-services.com][[User:VIP-ire|Daniel B.]] from [http://www.firewall-services.com Firewall Services]
  
{{Warning box|This contrib is outdated for it only supports Asterisk up to version 1.4 which is obsolete and an outdated FreePBX version. Use at your own risk! Please see additional notes on the [http://wiki.contribs.org/Talk:FreePBX Talk page]}}
+
last maintainer: [mailto:tests@pialasse.com][[User:Unnilennium|JP Pialasse]]
  
 
=== Version ===
 
=== Version ===
{{ #smeversion:smeserver-freepbx }}
+
{{#smeversion:smeserver-freepbx }}
 
<br>
 
<br>
{{ #smeversion:freepbx-src }}
+
{{#smeversion:freepbx-src }}
 
<br>
 
<br>
 +
 +
{| class="wikitable"
 +
|+PHP compatibility
 +
!Freepbx
 +
!php56
 +
!php70
 +
!php72
 +
!php74
 +
!php80+
 +
|-
 +
|14
 +
|yes
 +
|no
 +
|no
 +
|no
 +
|no
 +
|-
 +
|15
 +
|yes
 +
|yes
 +
|yes
 +
|limited
 +
|no
 +
|-
 +
|16
 +
|no
 +
|no
 +
|no
 +
|yes
 +
|no
 +
|}
  
 
=== Description ===
 
=== Description ===
Line 27: Line 58:
 
*And many other features
 
*And many other features
  
{{Note box|This contrib will only work with Asterisk 1.6 and will not install on Asterisk 1.8 or greater due to dependencies on app_addon's being obsolete as of Asterisk 1.8 }}
+
=== 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.
=== 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 ===
 
=== Installation ===
= SME7 =
 
{{Warning box|FreePBX will manage all asterisk configuration. If you have already configured asterisk by hands, you should backup everything. Of course, you'll latter be able to customize some parts of the diaplan, but in special files. Also, FreePBX is NOT compatible with SAIL (it's an alternative)}}
 
 
 
*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:
+
<tabs container><tab name="SME 10">
You can configure our repo with this command:
+
Install needed repo and configure:
  db yum_repositories set fws repository \
+
yum install smeserver-extrarepositories-asterisk smeserver-extrarepositories-node smeserver-extrarepositories-rpmfusion  -y
  BaseURL http://repo.firewall-services.com/centos/\$releasever \
+
  db yum_repositories setprop node10 status enabled
  EnableGroups no GPGCheck yes \
+
  db yum_repositories setprop asterisk-common status enabled
Name "Firewall Services" \
+
  db yum_repositories setprop asterisk-13 status enabled
GPGKey http://repo.firewall-services.com/RPM-GPG-KEY \
 
Visible yes status disabled
 
 
  signal-event yum-modify
 
  signal-event yum-modify
  
Then try to install everything again:
+
yum install yum-plugin-versionlock -y
  yum --enablerepo=smecontribs --enablerepo=fws install smeserver-freepbx dahdi-linux-kmdl-$(uname -r)
+
  yum versionlock  add freepbx-src-15.* --enablerepo=smetest,smecontribs
  
 +
install
 +
  yum  install smeserver-freepbx --enablerepo=smecontribs,asterisk-common,asterisk-13,node10,smetest
  
  
{{Warning box|Do not reboot your server now. Please finish the installation before. Rebooting isn't even necessary.}}
+
{{note box| Be prepared to wait a bit as temp event is installing and configuring asterisk, freepbx and compilling UCP.}}
 +
 +
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
  
*Finish the installation
+
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
  
To finish the installation, you should issue the command
+
  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
  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 will still miss the asterisk-sounds-extra-*-* that are not available as rpm, but freepbx will be able to download them with soundLang module.
  
You should now be able to start using FreePBX on https://server.domain.tld/freepbx/admin
 
  
= SME8 =
+
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
 
+
</tab>
You may need to first install the [[ATrpms]] repository.
+
<tab name="SME 9">
 
 
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
 
 
 
 
 
= SME9 =
 
 
1. First, <u>increase the php memory limit to at least 128M  '''BEFORE the installation'''</u>, '''or it will fail''' in the middle leaving it in an unstable state ( half mysql db installed, no modules activated).
 
1. First, <u>increase the php memory limit to at least 128M  '''BEFORE the installation'''</u>, '''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
 
  db configuration setprop php MemoryLimit 128M
Line 88: Line 98:
 
  service httpd-e-smith restart
 
  service httpd-e-smith restart
  
2. Install the 4 yum repos necessary (asterisk-13,asterisk-current,digium-current,digium-13):
+
2. Install the 4 yum repos necessary (asterisk-13,asterisk-current,digium-current,digium-13):<syntaxhighlight lang="bash">
{{:Asterisk_repo}}
+
yum install smeserver-extrarepositories-asterisk -y
{{:Digium_repo|transcludesection=SME9}}
+
signal-event yum-modify
 +
</syntaxhighlight>
 +
  signal-event yum-modify
  
3. After adding it to the database updating the configuration file is required:
+
3. Then the actual installation :
  signal-event yum-modify
 
  
4. Then the actual installation :
+
yum  install smeserver-freepbx --enablerepo=smecontribs,asterisk-13,asterisk-current,digium-current,digium-13
  
yum  install smeserver-freepbx --enablerepo=smetest,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/).
  
5. 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/). You can also manually download them latter through the Freepbx interface (first install Freepbx Sound Languages module,then go to Admin/Sound Languages)
+
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-ulaw asterisk-sounds-extra-en-gsm --enablerepo=asterisk-current
+
  yum install asterisk-sounds-core-fr-* asterisk-sounds-extra-en-* --enablerepo=asterisk-current
  
6. This is the important step of the installation, the actual configuration and installation of files:
+
5. This is the important step of the installation, the actual configuration and installation of files:
 
  signal-event freepbx-update
 
  signal-event freepbx-update
  
Line 111: Line 122:
 
  signal-event post-upgrade; signal-event reboot
 
  signal-event post-upgrade; signal-event reboot
  
<headertabs/>
+
 
 +
</tab>
 +
<tab name="SME 8">
 +
 
 +
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
 +
</tab>
 +
</tabs>
 +
 
 
= Components =
 
= Components =
  
Line 127: Line 151:
 
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
 
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 ====
==== Asterisk Stats ====
+
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à !
[http://www.areski.net/asterisk-stat-v2/about.php 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 (SME7-8)====
 
[http://asternic.org/ 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 ===
 
=== DB parameters ===
Line 145: Line 162:
  
 
*'''freepbx'''
 
*'''freepbx'''
**'''CdrDbName''': the name of the database for CDR. The default is asteriskcdrdb. You should let this unless you know what you're doing
+
**'''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
+
**'''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.
 
**'''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
+
**'''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.
+
**'''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.
 
**'''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)
+
**'''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.
 
**'''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.
 
**'''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'''
 
*'''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.
 
**'''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.
 +
{{Note box|dahdi_dummy is no longer required as a 'timing' device (since Asterisk 1.6) . This has been solved by using other timing mechanisms automatically. So setting dahdi to disabled does no harm to meetme.}}
  
 
===Related pages===
 
===Related pages===
Line 170: Line 182:
  
 
=== Update Freepbx ===
 
=== Update Freepbx ===
 +
Simply go to the Module Admin section and update from the gui.
 +
 +
=== Upgrade Freepbx Major Version ===
 +
 +
To update your freepbx installation simply follow the procedure inside freepbx web interface.
 +
 +
In case of issue, the GUI might suggest to run module upgrade from CLI, then do
 +
fwconsole ma upgrade framework
 +
fwconsole ma upgradeall
  
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
+
After every version update (from 14 to 15, etc.) you should run a
 
  signal-event freepbx-update
 
  signal-event freepbx-update
  
in order to update file ownership according to SME specifications.
+
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.
 
The way the contrib is designed, updating freepbx-src (i.e. from 2.5 to 2.7) won't update your working freepbx installation.
  
 +
{{ Note box| With SME 10 we provide Asterisk 13 and FreePBX 14 as a start, so you can easily migrate you previous SME 9 FreePBX installation. You can then easily migrate to FreePBX 15. Then you will need to wait we upgrade the contrib to allow to update the php version to 74 to be able to migrate to FreePBX 16, that is the only missing reuqirement. The reason we limited to php56 is that  FreePBX 14 is only able to handle php56 and fails with anything lower or higher.}}
 +
=== v15 to v16 ===
 +
v15.0.37.4 does not work well with php74, v16 requires it. GUI update will fail. You need to prepare it this way:
 +
 +
As soon as you switch to php74, v15 will have some unexpected behaviour, some elements will work other will fail.
 +
 +
config setprop freepbx PHPVersion 74
 +
ln -fs /usr/bin/php74 /usr/local/sbin/php
 +
expand-template /etc/opt/remi/php74/php-fpm.d/www.conf
 +
expand-template  /etc/httpd/fpbx-conf/httpd.conf
 +
expand-template /opt/remi/php56/root/etc/php-fpm.d/www.conf
 +
systemctl restart php56-php-fpm
 +
systemctl restart php74-php-fpm
 +
systemctl restart httpd-fpbx
 +
 +
actual upgrade:
 +
fwconsole versionupgrade --check
 +
fwconsole versionupgrade --upgrade
 +
# this one needs old php56 or you will not be able to update to 16:
 +
/bin/php56 /var/lib/asterisk/bin/fwconsole  ma upgrade framework
 +
fwconsole ma upgradeall
 +
signal-event freepbx-update
 +
 +
=== Upgrade Asterisk Major Version ===
 +
{{Warning box|This is not fully tested}}
 +
 +
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
 +
 +
"Long Term Support (LTS) release will be fully supported for 4 years, with one additional year of maintenance for security fixes"
 +
 +
Asterisk 13.x is LTS released 2014-10-24 is EOL as of 2021-10-24
 +
 +
Asterisk 16.x is LTS released 2018-10-09 is in Security fixes only and EOL 2023-10-09
 +
 +
Asterisk 18.x is LTS released 2020-10-20 with Security fixes from 2024-10-20 and EOL 2025-10-20
 +
 +
Asterisk 20.x is latest LTS
 +
 +
See:
 +
 +
https://bugs.koozali.org/show_bug.cgi?id=12363
 +
 +
====Asterisk 13-16====
 +
 +
This should upgrade from 13 to 16
 +
 +
db yum_repositories setprop asterisk-13 status disabled
 +
db yum_repositories setprop asterisk-16 status enabled
 +
signal-event yum-modify
 +
yum --enablerepo=asterisk-16,epel update
 +
signal-event post-upgrade;signal-event reboot
 +
 +
====Asterisk 16-18====
 +
 +
{{Warning box|This is not operational and requires further work}}
 +
 +
This will require an update to the smeserver-freepbx spec file.
 +
 +
This is how you would do it in principle, but there are conflicts as asterisk voicemail-plain has been replaced by asterisk-voicemail-imap and asterisk-voicemail-odbc
  
 +
db yum_repositories setprop asterisk-16 status disabled
 +
db yum_repositories setprop asterisk-18 status enabled
 +
signal-event yum-modify
 +
yum --enablerepo=asterisk-18,epel update
 +
signal-event post-upgrade;signal-event reboot
  
 
=== Uninstall ===
 
=== Uninstall ===
  yum remove smeserver-freepbx freepbx-src
+
  yum remove smeserver-freepbx freepbx-src asterisk*
  
 
If you want to cleanup everything (MySQL databases, DB, etc...), you can use this script:
 
If you want to cleanup everything (MySQL databases, DB, etc...), you can use this script:
 
  
  
Line 199: Line 283:
 
  echo "    - freepbx DB entries (freepbx, httpd-fpbx and dahdi)"
 
  echo "    - freepbx DB entries (freepbx, httpd-fpbx and dahdi)"
 
  echo "    - /opt/freepbx"
 
  echo "    - /opt/freepbx"
 +
echo "    - /etc/freepbx.conf"
 +
echo "    - /etc/amportal.conf"
 +
echo "    - /var/lib/asterisk/bin/*"
 +
echo "    - /usr/share/asterisk/bin/*"
 
  echo ""
 
  echo ""
  echo -n "Are you sure you want to remove FreePBX permanently ? (y/n) [n] "
+
  echo -n "Are you sure you want to remove FreePBX permanentlye? (y/n) [n] "
 
  read confirm
 
  read confirm
 
  if [ "$confirm" = "y" -o "$confirm" = "Y" ]; then
 
  if [ "$confirm" = "y" -o "$confirm" = "Y" ]; then
 +
        echo "removing rpms"
 +
        yum remove -y smeserver-freepbx freepbx-src asterisk*  -y                         
 
         echo "Droping MySQL databases..."
 
         echo "Droping MySQL databases..."
 
         DBNAME=$(/sbin/e-smith/db configuration getprop freepbx DbName)
 
         DBNAME=$(/sbin/e-smith/db configuration getprop freepbx DbName)
Line 218: Line 308:
 
         echo "Removing /opt/freepbx ..."
 
         echo "Removing /opt/freepbx ..."
 
         rm -rf /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 -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!"
 
         echo "Done!"
  fi  
+
  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: no voicemail in UCP / yum update issue===
 +
starting release 14-7 we use asterisk-voicemail-plain to store voicemails as regular old plain files, as UCP doe snot handle correctly the odbc storage and misconfiguration of odbc could lead to lost messages.
  
=== Reinstall ===
+
If you had a priori installation, you might encounter an error with yum and need to issue this to solve it <syntaxhighlight lang="bash">
If you need to re-install everything, you should completely remove the previous installation (remove the rpms '''and''' run the cleanup script.)
+
rpm -e --nodeps asterisk-voicemail-odbc
 +
yum install asterisk-voicemail-plain --enablerepo=asterisk-13
 +
# this one is mandatory to force asterisk to forget about previous app_voicemail_odbc.so module
 +
systemctl restart freepbx
 +
yum update smeserver-freepbx
 +
</syntaxhighlight>
 +
 
 +
===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
 +
 
 +
=== Log errors ===
 +
 
 +
 
 +
You may see various log errors.
 +
 
 +
 
 +
[2023-05-31 14:42:10] [freepbx.INFO]: Deprecated way to add Console commands for module backup, adding console commands this way can have negative performance impacts. Please use module.xml. See: <nowiki>https://wiki.freepbx.org/display/FOP/Adding+fwconsole+commands</nowiki> [] []
 +
 
 +
[2023-05-31 14:42:10] [freepbx.INFO]: Deprecated way to add Console commands for module voicemail, adding console commands this way can have negative performance impacts. Please use module.xml. See: <nowiki>https://wiki.freepbx.org/display/FOP/Adding+fwconsole+commands</nowiki> [] []
 +
 
 +
This is a known upstream error:
 +
 
 +
https://issues.freepbx.org/browse/FREEPBX-21969
 +
 
 +
 
 +
2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-internal-xfer' tries to include nonexistent context 'from-internal-custom'
 +
 
 +
[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-internal-noxfer' tries to include nonexistent context 'from-internal-noxfer-custom'
 +
 
 +
[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-pstn' tries to include nonexistent context 'from-pstn-custom'
 +
 
 +
[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-internal-noxfer-additional' tries to include nonexistent context 'from-internal-noxfer-additional-custom'
 +
 
 +
[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-internal-additional' tries to include nonexistent context 'from-internal-additional-custom'
 +
 
 +
[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'macro-parked-call' tries to include nonexistent context 'macro-parked-call-custom'
 +
 
 +
[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'dialparties-setrvol' tries to include nonexistent context 'dialparties-setrvol-custom'
 +
 
 +
[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'dialparties-finalbuild' tries to include nonexistent context 'dialparties-finalbuild-custom'
 +
 
 +
 
 +
This can be disabled via:
 +
 
 +
Settings -> Advanced Setting -> Disable -custom Context Includes
 +
 
 +
 
 +
[2023-05-31 11:00:38] [freepbx.INFO]: Depreciated Function ringgroups_list detected in /opt/freepbx/admin/modules/ringgroups/functions.inc.php on line 75 [] []
 +
 
 +
[2023-05-31 11:00:38] [freepbx.INFO]: Depreciated Function module_getinfo detected in /opt/freepbx/admin/modules/core/functions.inc.php on line 1078 [] []
 +
 
 +
[2023-05-31 11:00:38] [freepbx.INFO]: Depreciated Function ringgroups_list detected in /opt/freepbx/admin/modules/core/functions.inc.php on line 1306 [] []
 +
 
 +
 
 +
https://github.com/FreePBX/ringgroups/blob/release/15.0/functions.inc.php
 +
 
 +
These can be ignored. They are a warning to developers who may still be using these functions.
 +
 
 +
===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.
  
=== Bugs ===
+
In the meantime some notes on manually upgrading. This was based on moving from asterisk 1.8.x and an old version of FreepBX.
Please raise bugs under the SME-Contribs section in [http://bugs.contribs.org/enter_bug.cgi bugzilla]
 
and select the smeserver-freepbx component or use {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-freepbx|title=this link}}
 
  
{{#bugzilla:columns=id,product,version,status,summary |sort=id |order=desc |component=smeserver-freepbx|noresultsmessage="No open bugs found."}}
+
First, make sure you backup ABSOLUTELY everything. In different ways and in different places.
  
=== Known issues===
+
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.
  
====SME7-8: Sounds====
+
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.
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.
+
Here are some basic tables that you will need, though they may not all be required depending on your configuration
  
====SME7-8: Dahdi-linux-kmdl====
+
General
  
be carrefull to keep the kernel module up to date every time you have a new kernel release ( wait if they are not available)
+
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)
  
====SME7-8: FOP could not reload ====
+
Trunks and Routes
if after installation you get this message just do a
+
trunks
  service freepbx restart
+
trunk_dialpatterns
 +
incoming
 +
outbound_routes
 +
outbound_route_patterns
 +
outbound_routes_sequence
 +
  outbound_route_trunk
  
and everything will get fine !
+
Other
 +
ringgroups
 +
queueprio
 +
queues_config
 +
queues_details
  
====SME9: warnings at boot ====
+
Device and User mode
 +
devices
 +
users
  
at the end of boot sequence you can read:
+
Extension mode
  Starting system message bus                    [OK]
+
  extensions
/etc/amportal.conf: line 624: reg: command not found
 
/etc/amportal.conf: line 785: http://feeds.feedburner.com/InsideTheAsterisk: No such file or directory
 
  
you can safely ignore those, they are cause by an upstream migration script and they are just noise.
+
freepbx_users - does not exist in v13
  
====SME9: freepbx modules ====
+
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.
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.
+
I then copied the 'INSERT INTO' section into phpmyadmin/sql section on the new server.
  
====SME9: warnings during yum install ====
+
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.
you can safely ignore any of the following warnings during the installation :
 
Installing : asterisk-sounds-extra-en-ulaw-1.4.11-1_centos6.noarch                                                                                                        22/45
 
warning: user asterisk does not exist - using root
 
  
and
+
= Security =
Installing : kmod-dahdi-linux-fwload-vpmadt032-2.9.0-1_centos6.2.6.32_279.14.1.el6.x86_64.x86_64                                                                          15/45
+
Please see http://www.voipbl.org/ to adapt [[fail2ban]] to use blacklisted IP's worldwide.
WARNING: /lib/modules/2.6.32-573.26.1.el6.x86_64/weak-updates/dahdi-linux-fwload-vpmadt032/dahdi_vpmadt032_loader.ko needs unknown symbol vpmadtreg_unregister
 
WARNING: /lib/modules/2.6.32-573.26.1.el6.x86_64/weak-updates/dahdi-linux-fwload-vpmadt032/dahdi_vpmadt032_loader.ko needs unknown symbol vpmadtreg_register
 
WARNING: /lib/modules/2.6.32-573.8.1.el6.x86_64/weak-updates/dahdi-linux-fwload-vpmadt032/dahdi_vpmadt032_loader.ko needs unknown symbol vpmadtreg_unregister
 
WARNING: /lib/modules/2.6.32-573.8.1.el6.x86_64/weak-updates/dahdi-linux-fwload-vpmadt032/dahdi_vpmadt032_loader.ko needs unknown symbol vpmadtreg_register
 
WARNING: /lib/modules/2.6.32-642.1.1.el6.x86_64/weak-updates/dahdi-linux-fwload-vpmadt032/dahdi_vpmadt032_loader.ko needs unknown symbol vpmadtreg_unregister
 
WARNING: /lib/modules/2.6.32-642.1.1.el6.x86_64/weak-updates/dahdi-linux-fwload-vpmadt032/dahdi_vpmadt032_loader.ko needs unknown symbol vpmadtreg_register
 
  
they are only the result of the order choosed by yum for doing the install, and they do not impact the final result.
+
= Bugs =
 +
Please raise bugs under the SME-Contribs section in [http://bugs.contribs.org/enter_bug.cgi bugzilla]
 +
and select the smeserver-freepbx component or use {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-freepbx|title=this link.}}
  
====SME9: warnings during yum install ====
+
{{#bugzilla:columns=id,product,version,status,summary |sort=id |order=desc |component=smeserver-freepbx |disablecache=1|noresultsmessage="No open bugs found."}}
in /var/log/asterisk/freepbx.log
 
you might see the following
 
[2016-06-10 12:14:08] ERROR[11265] res_pjsip_config_wizard.c: Unable to load config file 'pjsip_wizard.conf'
 
you can safely ignore it, or refer to https://wiki.asterisk.org/wiki/display/AST/PJSIP+Configuration+Wizard in order to create your own.
 
  
===Changelog===
+
= Changelog =
 
Only released version in smecontrib are listed here.
 
Only released version in smecontrib are listed here.
  
{{ #smechangelog: smeserver-freepbx}}
+
{{#smechangelog:smeserver-freepbx}}
  
 
----
 
----
 
[[Category:Contrib]]
 
[[Category:Contrib]]
 
[[Category: Asterisk]]
 
[[Category: Asterisk]]

Latest revision as of 21:34, 2 February 2024


Warning.png Warning:
when installing smeserver-freepbx, your default php cli will change to php56 by default instead of php54, unless you specifically point to the binary. This is because Fpbx 14 does not support anymore php54 and php5, and neither php70 and higher. Upon upgrade to Fpbx 15 and Fpbx 16 this default will be updated to php74 to allow cli php script to run smoothly.


Maintainer

original contributor: [1]Daniel B. from Firewall Services

last maintainer: [2]JP Pialasse

Version

Contrib 10:
Contrib 9:
smeserver-freepbx
The latest version of smeserver-freepbx is available in the SME repository, click on the version number(s) for more information.



Contrib 10:
Contrib 9:
freepbx-src
The latest version of freepbx-src is available in the SME repository, click on the version number(s) for more information.



PHP compatibility
Freepbx php56 php70 php72 php74 php80+
14 yes no no no no
15 yes yes yes limited no
16 no no no yes no

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

Install needed repo and configure:

yum install smeserver-extrarepositories-asterisk smeserver-extrarepositories-node smeserver-extrarepositories-rpmfusion   -y
db yum_repositories setprop node10 status enabled
db yum_repositories setprop asterisk-common status enabled
db yum_repositories setprop asterisk-13 status enabled
signal-event yum-modify
yum install yum-plugin-versionlock -y
yum versionlock  add freepbx-src-15.* --enablerepo=smetest,smecontribs

install

 yum  install smeserver-freepbx --enablerepo=smecontribs,asterisk-common,asterisk-13,node10,smetest


Important.png Note:
Be prepared to wait a bit as temp event is installing and configuring asterisk, freepbx and compilling UCP.

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 restart
2. 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

source : http://forums.contribs.org/index.php?topic=48143.0

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.
Important.png Note:
dahdi_dummy is no longer required as a 'timing' device (since Asterisk 1.6) . This has been solved by using other timing mechanisms automatically. So setting dahdi to disabled does no harm to meetme.


Related pages

You may be interested in the following how-to:

  • How-to configure your card using DAHDI
  • How-to configure your card using mISDN

Update Freepbx

Simply go to the Module Admin section and update from the gui.

Upgrade Freepbx Major Version

To update your freepbx installation simply follow the procedure inside freepbx web interface.

In case of issue, the GUI might suggest to run module upgrade from CLI, then do

fwconsole ma upgrade framework
fwconsole ma upgradeall

After every version update (from 14 to 15, 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.


Important.png Note:
With SME 10 we provide Asterisk 13 and FreePBX 14 as a start, so you can easily migrate you previous SME 9 FreePBX installation. You can then easily migrate to FreePBX 15. Then you will need to wait we upgrade the contrib to allow to update the php version to 74 to be able to migrate to FreePBX 16, that is the only missing reuqirement. The reason we limited to php56 is that FreePBX 14 is only able to handle php56 and fails with anything lower or higher.


v15 to v16

v15.0.37.4 does not work well with php74, v16 requires it. GUI update will fail. You need to prepare it this way:

As soon as you switch to php74, v15 will have some unexpected behaviour, some elements will work other will fail.

config setprop freepbx PHPVersion 74
ln -fs /usr/bin/php74 /usr/local/sbin/php
expand-template /etc/opt/remi/php74/php-fpm.d/www.conf
expand-template  /etc/httpd/fpbx-conf/httpd.conf
expand-template /opt/remi/php56/root/etc/php-fpm.d/www.conf
systemctl restart php56-php-fpm 
systemctl restart php74-php-fpm
systemctl restart httpd-fpbx

actual upgrade:

fwconsole versionupgrade --check
fwconsole versionupgrade --upgrade
# this one needs old php56 or you will not be able to update to 16:
/bin/php56 /var/lib/asterisk/bin/fwconsole  ma upgrade framework
fwconsole ma upgradeall
signal-event freepbx-update

Upgrade Asterisk Major Version

Warning.png Warning:
This is not fully tested


https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions

"Long Term Support (LTS) release will be fully supported for 4 years, with one additional year of maintenance for security fixes"

Asterisk 13.x is LTS released 2014-10-24 is EOL as of 2021-10-24

Asterisk 16.x is LTS released 2018-10-09 is in Security fixes only and EOL 2023-10-09

Asterisk 18.x is LTS released 2020-10-20 with Security fixes from 2024-10-20 and EOL 2025-10-20

Asterisk 20.x is latest LTS

See:

https://bugs.koozali.org/show_bug.cgi?id=12363

Asterisk 13-16

This should upgrade from 13 to 16

db yum_repositories setprop asterisk-13 status disabled
db yum_repositories setprop asterisk-16 status enabled
signal-event yum-modify
yum --enablerepo=asterisk-16,epel update
signal-event post-upgrade;signal-event reboot

Asterisk 16-18

Warning.png Warning:
This is not operational and requires further work


This will require an update to the smeserver-freepbx spec file.

This is how you would do it in principle, but there are conflicts as asterisk voicemail-plain has been replaced by asterisk-voicemail-imap and asterisk-voicemail-odbc

db yum_repositories setprop asterisk-16 status disabled
db yum_repositories setprop asterisk-18 status enabled
signal-event yum-modify
yum --enablerepo=asterisk-18,epel update
signal-event post-upgrade;signal-event reboot

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 -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: no voicemail in UCP / yum update issue

starting release 14-7 we use asterisk-voicemail-plain to store voicemails as regular old plain files, as UCP doe snot handle correctly the odbc storage and misconfiguration of odbc could lead to lost messages.

If you had a priori installation, you might encounter an error with yum and need to issue this to solve it

rpm -e --nodeps asterisk-voicemail-odbc
yum install asterisk-voicemail-plain --enablerepo=asterisk-13
# this one is mandatory to force asterisk to forget about previous app_voicemail_odbc.so module
systemctl restart freepbx
yum update smeserver-freepbx

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

Log errors

You may see various log errors.


[2023-05-31 14:42:10] [freepbx.INFO]: Deprecated way to add Console commands for module backup, adding console commands this way can have negative performance impacts. Please use module.xml. See: https://wiki.freepbx.org/display/FOP/Adding+fwconsole+commands [] []

[2023-05-31 14:42:10] [freepbx.INFO]: Deprecated way to add Console commands for module voicemail, adding console commands this way can have negative performance impacts. Please use module.xml. See: https://wiki.freepbx.org/display/FOP/Adding+fwconsole+commands [] []

This is a known upstream error:

https://issues.freepbx.org/browse/FREEPBX-21969


2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-internal-xfer' tries to include nonexistent context 'from-internal-custom'

[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-internal-noxfer' tries to include nonexistent context 'from-internal-noxfer-custom'

[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-pstn' tries to include nonexistent context 'from-pstn-custom'

[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-internal-noxfer-additional' tries to include nonexistent context 'from-internal-noxfer-additional-custom'

[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'from-internal-additional' tries to include nonexistent context 'from-internal-additional-custom'

[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'macro-parked-call' tries to include nonexistent context 'macro-parked-call-custom'

[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'dialparties-setrvol' tries to include nonexistent context 'dialparties-setrvol-custom'

[2023-05-31 13:35:35] WARNING[2798] pbx.c: Context 'dialparties-finalbuild' tries to include nonexistent context 'dialparties-finalbuild-custom'


This can be disabled via:

Settings -> Advanced Setting -> Disable -custom Context Includes


[2023-05-31 11:00:38] [freepbx.INFO]: Depreciated Function ringgroups_list detected in /opt/freepbx/admin/modules/ringgroups/functions.inc.php on line 75 [] []

[2023-05-31 11:00:38] [freepbx.INFO]: Depreciated Function module_getinfo detected in /opt/freepbx/admin/modules/core/functions.inc.php on line 1078 [] []

[2023-05-31 11:00:38] [freepbx.INFO]: Depreciated Function ringgroups_list detected in /opt/freepbx/admin/modules/core/functions.inc.php on line 1306 [] []


https://github.com/FreePBX/ringgroups/blob/release/15.0/functions.inc.php

These can be ignored. They are a warning to developers who may still be using these functions.

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:

  1. https://community.freepbx.org/t/import-freepbx13-backup-into-freepbx14/43955/9
  2. 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.


IDProductVersionStatusSummary (7 tasks)
12496SME Contribs10.0CONFIRMEDBind address 0.0.0.0 causes SIP authorization failures
12463SME Contribs10.0CONFIRMEDARI default username/password
12363SME Contribs10.0CONFIRMEDUpgrade Asterisk to a supported version - minimum 16
12362SME Contribs10.0CONFIRMEDUCP WebRTC phone requires websocket
12361SME Contribs10.0CONFIRMEDUCP does not use mysql socket
10620SME Contribs9.2NEEDINFOAsterisk not logging to CDR or CEL databases
9945SME Contribs9.1CONFIRMEDserver manager :not found if freepbx disabled

Changelog

Only released version in smecontrib are listed here.

smeserver-freepbx Changelog: SME 10 (smecontribs)

2024/04/22 Jean-Philippe Pialasse 14-14.sme
- some logs not rotated [SME: 12506]

- moving freepbx php error log from /var/log/php [SME: 12481]
2023/01/04 Jean-Philippe Pialasse 14-13.sme
- 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]

- force php memory on install [SME: 10221]

2022/12/13 Jean-Philippe Pialasse 14-10.sme
- fix backup for FreePBX 15 and higher [SME: 12256]

- make compatible up to FreePBX 16 [SME: 11923]
2022/12/07 Jean-Philippe Pialasse 14-9.sme
- improve backup [SME: 10703]