For those with a lot of debian experience, many people have noticed that the "testing" branch is actually a lot more stable than described. Debian "stable" is very conservative and designed to have nothing break. I even know people who run their desktop workstation as 'sid'.
If you're adventurous enough to run 'stretch' on a VoIP server, here's some notes on the process of manually installing the latest releases of Asterisk and FreePBX together on 'stretch'. If you just want something that works and is much more conservative in the software version packaging, the same process could apply to 'jessie' (the current stable version). This started when I became generally dissatisfied with the FreePBX distro which is based on CentOS 6.x and ships with an ancient kernel. I'm not a huge fan of CentOS as either a hypervisor or guest VM, and I needed to run FreePBX on some very new hardware that is *not* happy with a 2.6.xx series Linux kernel. It was necessary to have current kernel support for fun things like btrfs and some new 10GbE NICs. (Yes, I know you can install the epel-kernel repo on centos and add kernel v4.3.x, but that's a hack and going outside of the distro's normal repo tree). Here's my step by step notes file if anyone wants to try: install debian stretch amd64 no gui set up the test virtualbox vm to use bridged networking to the host eth0 adapter (not NAT) fully update debian stretch to the latest version of everything install and configure asterisk. instructions from freepbx website. everything must be run as root (not sudo!) you will want to be able to ssh into the server while doing the install edit the sshd_config to PermitRootLogin Yes install required dependencies: apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\ mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox\ libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3\ libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev\ libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev\ libspandsp-dev sudo libmyodbc subversion choose no root password for mysql-server (yet) , this will be configured in a later step apt-get install sox lame ffmpeg id3tool id3v2 p7zip rsync nmap curl snmp gcc a2enmod ssl a2enmod rewrite delete some things from the local apt disk cache to free up disk space apt-get clean apt-get autoclean install legacy pear requirements, reference: https://pear.php.net/package/Console_Getopt/ pear install Console_Getopt cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2 we want to manually retrieve and install the latest versions of all these projects, from these sources: http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/ http://downloads.asterisk.org/pub/telephony/libpri/ http://downloads.asterisk.org/pub/telephony/asterisk/ http://www.digip.org/jansson/ http://www.pjsip.org/download.htm compile and install DAHDI and libpri cd /usr/src tar xvfz dahdi-linux-complete-current.tar.gz rm -f dahdi-linux-complete-current.tar.gz cd dahdi-linux-complete-* make all make install make config cd /usr/src tar xvfz libpri-1.4-current.tar.gz rm -f libpri-1.4-current.tar.gz cd libpri-* make make install note: DAHDI is a kernel module so it will need to be recompiled and reinstalled if the kernel is upgraded compile and install pjsip (pjproject) cd /usr/src tar -xjvf pjproject-2.4.tar.bz2 rm -f pjproject-2.4.tar.bz2 cd pjproject-2.4 CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr make dep make make install compile and install jansson cd /usr/src tar vxfz jansson.tar.gz rm -f jansson.tar.gz cd jansson-* autoreconf -i ./configure make make install compile and install asterisk cd /usr/src tar xvfz asterisk-13-current.tar.gz rm -f asterisk-13-current.tar.gz cd asterisk-* contrib/scripts/get_mp3_source.sh contrib/scripts/install_prereq install ./configure make menuselect choose enabled modules make make install make config ldconfig update-rc.d -f asterisk remove retrieve more asterisk sounds cd /var/lib/asterisk/sounds wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz tar xvf asterisk-core-sounds-en-wav-current.tar.gz rm -f asterisk-core-sounds-en-wav-current.tar.gz tar xfz asterisk-extra-sounds-en-wav-current.tar.gz rm -f asterisk-extra-sounds-en-wav-current.tar.gz # Wideband Audio download wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz tar xfz asterisk-extra-sounds-en-g722-current.tar.gz rm -f asterisk-extra-sounds-en-g722-current.tar.gz tar xfz asterisk-core-sounds-en-g722-current.tar.gz rm -f asterisk-core-sounds-en-g722-current.tar.gz Install and Configure FreePBX Create the Asterisk user and set base file permissions. useradd -m asterisk chown asterisk. /var/run/asterisk chown -R asterisk. /etc/asterisk chown -R asterisk. /var/{lib,log,spool}/asterisk chown -R asterisk. /usr/lib/asterisk rm -rf /var/www/htmlcd /et A few small modifications to Apache. sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf service apache2 restart create the /etc/odbcinst.ini file with the following contents: [MySQL] Description = ODBC for MySQL Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so FileUsage = 1 ceate the /etc/odbc.ini file with the following contents: [MySQL-asteriskcdrdb] Description=MySQL connection to 'asteriskcdrdb' database driver=MySQL server=localhost database=asteriskcdrdb Port=3306 Socket=/var/run/mysqld/mysqld.sock option=3 Download and install FreePBX. cd /usr/src wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz tar vxfz freepbx-13.0-latest.tgz rm -f freepbx-13.0-latest.tgz cd freepbx ./start_asterisk start ./install -n configure freepbx from its http GUI use the GUI to install all of the free FreePBX modules you may need to go through module installation up to 4 times, as some things will not install until their dependencies are met (confereces, call recording, etc). install, check repositories, install again, repeat. chown the directory /etc/dahdi/ and everything in it to the asterisk user and asterisk group, by running the command 'amportal chown' edit /etc/ssh/sshd_config and disable remote root login edit /etc/sudoers and add eric to the sudoers list copy eric's ssh public key to the system and verify that logging in works, sudo works you need to create a systemd startup script to start asterisk and other things on boot, reference:http://wiki.freepbx.org/display/HTGS/Example+systemd+startup+script+for+FreePBX
