I have always loved the marriage of Alarm and Asterisk. For a small amount of money, someone can build a nice PBX "appliance".
The current Asterisk AUR PKGBUILD is up-to-date for the latest version of Asterisk (Asterisk-12), but the FreePBX AUR PKGBUILD is way out of date. It didn't matter too much for over half a year because FreePBX was not even compatible with Asterisk-12. But just like Asterisk-12 is a significant advancement for Asterisk, FreePBX is also going through a major overhaul and just a few weeks ago released (beta) their long anticipated version FreePBX-12 that is compatible with Asterisk-12.
Yes there has been a "port" of Asterisk/FreePBX onto the Raspberry Pi and BeagleBone Black running Ubuntu/Debian (it’s an older version of Asterisk and FreePBX), and if you want to install it, it’s a so-called “moron proof” installation as a full system image versus a package installation. I prefer a package installation approach. I do have one of my BeagleBone Black's running a trimmed down Debian installation with Asterisk/FreePBX that I configured myself and it works fine. But my heart is with Arch and I would love to see an ArchLinux ARM version of FreePBX to go with our Asterisk package, maybe we can even be the first to have an Asterisk-12 / FreePBX-12 packaged version running on ARM.
The FreePBX installation instructions are quite clear for Ubuntu, Debian and CentOS, but as there are some differences with Arch, the work centers around knowing how to adjust for the “Arch way”. I've been working on a rough installation script making adjustments for the differences between Ubuntu/Debian and Arch, which impact FreePBX's installation. I have most of the dependencies complete and commands that initialize MySQL (MariaDB) and PHP. My goal is to ultimately update the AUR so we have both a solid Asterisk and FreePBX solution.
Below are my current notes, I know it might look like a script but don't use it like a script. I copy/past commands into a flat file until I have it working. Afterwards I plan to transfer to a PKGBUILD configuration/format. I am at the point now where I am editing the FreePBX install scripts (separate files from my "notes" file), changing paths like /var/www/html to /srv/http and stuff like that.
$this->bbcode_second_pass_code('', '# The instllation of Asterisk first (pacman) actually takes care of some of the
# dependencies and creating certain users/groups
export VER_FREEPBX=12.0
export ASTERISK_DB_PW=amp109
pacman -Sy git apache mariadb php php-apache php-gd php-pear
systemctl enable mysqld.service
systemctl start mysqld.service
systemctl enable httpd.service
systemctl start httpd.service
pear install db
cd /usr/src
git clone http://git.freepbx.org/scm/freepbx/framework.git freepbx
cd freepbx
git checkout release/${VER_FREEPBX}
cp /etc/php/php.ini /etc/php/php.ini_orig
sed -i 's/;extension=mysql.so/extension=mysql.so/' /etc/php/php.ini
sed -i 's/;extension=posix.so/extension=posix.so/' /etc/php/php.ini
sed -i 's/open_basedir =/; open_basedir =/' /etc/php/php.ini
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/php.ini
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
systemctl restart httpd.service
mysqladmin -u root create asterisk
mysqladmin -u root create asteriskcdrdb
mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "flush privileges;"
# ./start_asterisk start
# ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}
# amportal a ma installall
# amportal a reload
# amportal chown')
Anyway, I wondered if anyone had any experience with FreePBX on Alarm and if they were interesting in collaborating / sharing notes on the subject. If you might be wondering what is the point of doing this given the fact that there are solid working versions for Debian/Ubuntu/CentOS ... well for me this is one of those "I'm doing it to see if I can do it" projects.