diff --git a/devuan/resources/switch.sh b/devuan/resources/switch.sh
index ebaa5f5..71ac821 100755
--- a/devuan/resources/switch.sh
+++ b/devuan/resources/switch.sh
@@ -5,10 +5,13 @@ cd "$(dirname "$0")"
#includes
. ./config.sh
+. ./colors.sh
+. ./environment.sh
-verbose "Installing FreeSWITCH"
-
+#TODO fix or remove source installation
if [ .$switch_source = .true ]; then
+ echo 'Building from source on devuan will most liley fail, aborting.'
+ exit 1
if [ ."$switch_branch" = "master" ]; then
switch/source-master.sh
else
diff --git a/devuan/resources/switch/dsn.sh b/devuan/resources/switch/dsn.sh
new file mode 100755
index 0000000..1ee1320
--- /dev/null
+++ b/devuan/resources/switch/dsn.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+#move to script directory so all relative paths work
+cd "$(dirname "$0")"
+
+#includes
+. ../config.sh
+
+#set the date
+now=$(date +%Y-%m-%d)
+
+#get the database password
+if [ .$database_password = .'random' ]; then
+ read -p "Enter the database password: " database_password
+fi
+
+#set PGPASSWORD
+export PGPASSWORD=$database_password
+
+#enable auto create schemas
+sed -i /etc/freeswitch/autoload_configs/switch.conf.xml -e s:'::'
+sed -i /etc/freeswitch/autoload_configs/switch.conf.xml -e s:'::'
+
+#enable odbc-dsn in the xml
+sed -i /etc/freeswitch/autoload_configs/db.conf.xml -e s:'::'
+sed -i /etc/freeswitch/autoload_configs/fifo.conf.xml -e s:'::'
+sed -i /etc/freeswitch/autoload_configs/switch.conf.xml -e s:'::'
+
+#enable odbc-dsn in the sip profiles
+sudo -u postgres psql -h $database_host -p $database_port -U fusionpbx -d fusionpbx -c "update v_sip_profile_settings set sip_profile_setting_enabled = 'true' where sip_profile_setting_name = 'odbc-dsn';";
+
+#add the dsn variables
+sudo -u postgres psql -h $database_host -p $database_port -U fusionpbx -d fusionpbx -c "insert into v_vars (var_uuid, var_name, var_value, var_category, var_enabled, var_order, var_description, var_hostname) values ('785d7013-1152-4a44-aa15-28336d9b36f9', 'dsn_system', 'pgsql://hostaddr=$database_host port=$database_port dbname=fusionpbx user=fusionpbx password=$database_password options=', 'DSN', 'true', '0', null, null);";
+sudo -u postgres psql -h $database_host -p $database_port -U fusionpbx -d fusionpbx -c "insert into v_vars (var_uuid, var_name, var_value, var_category, var_enabled, var_order, var_description, var_hostname) values ('0170e737-b453-40ea-99f2-f1375474e5ce', 'dsn', 'sqlite:///dev/shm/core.db', 'DSN', 'true', '0', null, null);";
+sudo -u postgres psql -h $database_host -p $database_port -U fusionpbx -d fusionpbx -c "insert into v_vars (var_uuid, var_name, var_value, var_category, var_enabled, var_order, var_description, var_hostname) values ('32e3e364-a8ef-4fe0-9d02-c652d5122bbf', 'dsn_callcenter', 'sqlite:///dev/shm/callcenter.db', 'DSN', 'true', '0', null, null);";
+
+#update the vars.xml file
+echo "" >> /etc/freeswitch/vars.xml
+echo "" >> /etc/freeswitch/vars.xml
+echo "" >> /etc/freeswitch/vars.xml
+echo "" >> /etc/freeswitch/vars.xml
+
+#remove the sqlite database files
+dbs="/var/lib/freeswitch/db/core.db /var/lib/freeswitch/db/fifo.db /var/lib/freeswitch/db/call_limit.db /var/lib/freeswitch/db/sofia_reg_*"
+for db in ${dbs};
+do
+ if [ -f $db ]; then
+ echo "Deleting $db";
+ rm $db
+ fi
+done
+
+#flush memcache
+/usr/bin/fs_cli -x 'memcache flush'
+
+#restart freeswitch
+/usr/sbin/service freeswitch restart
diff --git a/devuan/resources/switch/package-all.sh b/devuan/resources/switch/package-all.sh
index a895cec..67de09b 100755
--- a/devuan/resources/switch/package-all.sh
+++ b/devuan/resources/switch/package-all.sh
@@ -8,11 +8,20 @@ cd "$(dirname "$0")"
. ../colors.sh
. ../environment.sh
-apt-get -q update && apt-get install -y -q ntp curl memcached haveged
+apt-get update && apt-get install -y ntp curl memcached haveged apt-transport-https
+apt-get update && apt-get install -y wget lsb-release gnupg2
if [ ."$cpu_architecture" = ."x86" ]; then
wget -O - https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src http://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list
fi
-apt-get -q update && apt-get install -y -q freeswitch-meta-all freeswitch-all-dbg gdb
+if [ ."$cpu_architecture" = ."arm" ]; then
+ wget -O - https://files.freeswitch.org/repo/deb/rpi/debian-release/freeswitch_archive_g0.pub | apt-key add -
+ echo "deb http://files.freeswitch.org/repo/deb/rpi/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
+ echo "deb-src http://files.freeswitch.org/repo/deb/rpi/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list
+fi
+apt-get update && apt-get install -y freeswitch-meta-all freeswitch-all-dbg gdb
+
+#make sure that postgresql is started before starting freeswitch
+sed -i /lib/systemd/system/freeswitch.service -e s:'local-fs.target:local-fs.target postgresql.service:'
diff --git a/devuan/resources/switch/package-master-all.sh b/devuan/resources/switch/package-master-all.sh
index 9dce196..bfc2320 100755
--- a/devuan/resources/switch/package-master-all.sh
+++ b/devuan/resources/switch/package-master-all.sh
@@ -1,7 +1,9 @@
#!/bin/sh
-apt-get update && apt-get install -y -q ntp curl memcached haveged
+apt-get update && apt-get install -y ntp curl memcached haveged
curl https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb http://files.freeswitch.org/repo/deb/debian-unstable/ jessie main" >> /etc/apt/sources.list.d/freeswitch.list
-apt-get update && apt-get install -y -q freeswitch-meta-all freeswitch-all-dbg gdb
+apt-get update && apt-get install -y freeswitch-meta-all freeswitch-all-dbg gdb
+#make sure that postgresql is started before starting freeswitch
+sed -i /lib/systemd/system/freeswitch.service -e s:'local-fs.target:local-fs.target postgresql.service:'
diff --git a/devuan/resources/switch/package-master.sh b/devuan/resources/switch/package-master.sh
index 2b01697..023cf59 100755
--- a/devuan/resources/switch/package-master.sh
+++ b/devuan/resources/switch/package-master.sh
@@ -1,25 +1,31 @@
#!/bin/sh
-apt-get update && apt-get install -y -q curl memcached haveged
+apt-get update && apt-get install -y curl memcached haveged
curl https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb http://files.freeswitch.org/repo/deb/debian-unstable/ jessie main" >> /etc/apt/sources.list.d/freeswitch.list
apt-get update
-apt-get install -y -q ntp gdb
-apt-get install -y -q freeswitch-meta-bare freeswitch-conf-vanilla freeswitch-sysvinit freeswitch-mod-commands freeswitch-meta-codecs freeswitch-mod-console freeswitch-mod-logfile freeswitch-mod-distributor
-apt-get install -y -q freeswitch-lang-en freeswitch-mod-say-en freeswitch-sounds-en-us-callie
-apt-get install -y -q freeswitch-mod-enum freeswitch-mod-cdr-csv freeswitch-mod-event-socket freeswitch-mod-sofia freeswitch-mod-sofia-dbg freeswitch-mod-loopback
-apt-get install -y -q freeswitch-mod-conference freeswitch-mod-db freeswitch-mod-dptools freeswitch-mod-expr freeswitch-mod-fifo libyuv-dev freeswitch-mod-httapi
-apt-get install -y -q freeswitch-mod-hash freeswitch-mod-esl freeswitch-mod-esf freeswitch-mod-fsv freeswitch-mod-valet-parking freeswitch-mod-dialplan-xml freeswitch-dbg
-apt-get install -y -q freeswitch-mod-sndfile freeswitch-mod-native-file freeswitch-mod-local-stream freeswitch-mod-tone-stream freeswitch-mod-lua freeswitch-meta-mod-say
-apt-get install -y -q freeswitch-mod-xml-cdr freeswitch-mod-verto freeswitch-mod-callcenter freeswitch-mod-rtc freeswitch-mod-png freeswitch-mod-json-cdr freeswitch-mod-shout
-apt-get install -y -q freeswitch-mod-sms freeswitch-mod-sms-dbg freeswitch-mod-cidlookup freeswitch-mod-memcache
-apt-get install -y -q freeswitch-mod-imagick freeswitch-mod-tts-commandline freeswitch-mod-directory freeswitch-mod-flite
-apt-get install -y -q freeswitch-music-default
+apt-get install -y gnupg gnupg2
+apt-get install -y wget lsb-release
+apt-get install -y ntp gdb
+apt-get install -y freeswitch-meta-bare freeswitch-conf-vanilla freeswitch-mod-commands freeswitch-meta-codecs freeswitch-mod-console freeswitch-mod-logfile freeswitch-mod-distributor
+apt-get install -y freeswitch-lang-en freeswitch-mod-say-en freeswitch-sounds-en-us-callie
+apt-get install -y freeswitch-mod-enum freeswitch-mod-cdr-csv freeswitch-mod-event-socket freeswitch-mod-sofia freeswitch-mod-sofia-dbg freeswitch-mod-loopback
+apt-get install -y freeswitch-mod-conference freeswitch-mod-db freeswitch-mod-dptools freeswitch-mod-expr freeswitch-mod-fifo libyuv-dev freeswitch-mod-httapi
+apt-get install -y freeswitch-mod-hash freeswitch-mod-esl freeswitch-mod-esf freeswitch-mod-fsv freeswitch-mod-valet-parking freeswitch-mod-dialplan-xml freeswitch-dbg
+apt-get install -y freeswitch-mod-sndfile freeswitch-mod-native-file freeswitch-mod-local-stream freeswitch-mod-tone-stream freeswitch-mod-lua freeswitch-meta-mod-say
+apt-get install -y freeswitch-mod-xml-cdr freeswitch-mod-verto freeswitch-mod-callcenter freeswitch-mod-rtc freeswitch-mod-png freeswitch-mod-json-cdr freeswitch-mod-shout
+apt-get install -y freeswitch-mod-sms freeswitch-mod-sms-dbg freeswitch-mod-cidlookup freeswitch-mod-memcache
+apt-get install -y freeswitch-mod-imagick freeswitch-mod-tts-commandline freeswitch-mod-directory freeswitch-mod-flite
+apt-get install -y freeswitch-mod-pgsql
+apt-get install -y freeswitch-music-default
+
+#make sure that postgresql is started before starting freeswitch
+sed -i /lib/systemd/system/freeswitch.service -e s:'local-fs.target:local-fs.target postgresql.service:'
#remove the music package to protect music on hold from package updates
mkdir -p /usr/share/freeswitch/sounds/temp
mv /usr/share/freeswitch/sounds/music/*000 /usr/share/freeswitch/sounds/temp
-apt-get remove -y -q freeswitch-music-default
+apt-get remove -y freeswitch-music-default
mkdir -p /usr/share/freeswitch/sounds/music/default
mv /usr/share/freeswitch/sounds/temp/* /usr/share/freeswitch/sounds/music/default
rm -R /usr/share/freeswitch/sounds/temp
diff --git a/devuan/resources/switch/package-permissions.sh b/devuan/resources/switch/package-permissions.sh
index 8d7d0ea..f9aded7 100755
--- a/devuan/resources/switch/package-permissions.sh
+++ b/devuan/resources/switch/package-permissions.sh
@@ -1,8 +1,15 @@
-#default permissions
-# Devaun packages set this up correctly
-#chown -R freeswitch:freeswitch /var/lib/freeswitch
+#move to script directory so all relative paths work
+cd "$(dirname "$0")"
-# I'm not sure this is the best place to put non-packaged files - leaving it as is for now
-chown -R freeswitch:freeswitch /usr/share/freeswitch
-touch /var/log/freeswitch/freeswitch.log
-chown -R freeswitch:freeswitch /var/log/freeswitch
+#includes
+. ../config.sh
+
+#default permissions
+chown -R www-data:www-data /etc/freeswitch
+chown -R www-data:www-data /var/lib/freeswitch/recordings
+chown -R www-data:www-data /var/lib/freeswitch/storage
+chown -R www-data:www-data /var/lib/freeswitch/db
+chown -R www-data:www-data /usr/share/freeswitch
+chown -R www-data:www-data /var/log/freeswitch
+chown -R www-data:www-data /var/run/freeswitch
+chown -R www-data:www-data /var/cache/fusionpbx
diff --git a/devuan/resources/switch/package-release.sh b/devuan/resources/switch/package-release.sh
index 226bc1c..810fa8e 100755
--- a/devuan/resources/switch/package-release.sh
+++ b/devuan/resources/switch/package-release.sh
@@ -8,33 +8,43 @@ cd "$(dirname "$0")"
. ../colors.sh
. ../environment.sh
-apt-get -qq -y install curl memcached haveged
+apt-get update && apt-get install -y curl memcached haveged apt-transport-https
+apt-get update && apt-get install -y gnupg gnupg2
+apt-get update && apt-get install -y wget lsb-release
+
+if [ ."$cpu_architecture" = ."x86" ]; then
+ wget --http-user=signalwire --http-password=$switch_token -O /usr/share/keyrings/signalwire-freeswitch-repo.gpg https://freeswitch.signalwire.com/repo/deb/debian-release/signalwire-freeswitch-repo.gpg
+ echo "machine freeswitch.signalwire.com login signalwire password $switch_token" > /etc/apt/auth.conf
+ echo "deb [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
+ echo "deb-src [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list
+fi
if [ ."$cpu_architecture" = ."arm" ]; then
- echo "deb http://repo.sip247.com/debian/freeswitch-stable-armhf/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
- curl http://repo.sip247.com/debian/sip247.com.gpg.key | apt-key add -
- apt-get -q update
-else
- echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
- curl http://files.freeswitch.org/repo/deb/freeswitch-1.6/key.gpg | apt-key add -
- apt-get -q update
+ wget --http-user=signalwire --http-password=$switch_token -O - https://freeswitch.signalwire.com/repo/deb/rpi/debian-release/freeswitch_archive_g0.pub | apt-key add -
+ echo "machine freeswitch.signalwire.com login signalwire password $switch_token" > /etc/apt/auth.conf
+ echo "deb https://freeswitch.signalwire.com/repo/deb/rpi/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
+ echo "deb-src https://freeswitch.signalwire.com/repo/deb/rpi/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list
fi
-apt-get -qq -y install gdb ntp
-apt-get -qq -y install freeswitch-meta-bare freeswitch-conf-vanilla freeswitch-sysvinit freeswitch-mod-commands freeswitch-meta-codecs freeswitch-mod-console freeswitch-mod-logfile freeswitch-mod-distributor
-apt-get -qq -y install freeswitch-lang-en freeswitch-mod-say-en freeswitch-sounds-en-us-callie
-apt-get -qq -y install freeswitch-mod-enum freeswitch-mod-cdr-csv freeswitch-mod-event-socket freeswitch-mod-sofia freeswitch-mod-sofia-dbg freeswitch-mod-loopback
-apt-get -qq -y install freeswitch-mod-conference freeswitch-mod-db freeswitch-mod-dptools freeswitch-mod-expr freeswitch-mod-fifo libyuv-dev freeswitch-mod-httapi
-apt-get -qq -y install freeswitch-mod-hash freeswitch-mod-esl freeswitch-mod-esf freeswitch-mod-fsv freeswitch-mod-valet-parking freeswitch-mod-dialplan-xml freeswitch-dbg
-apt-get -qq -y install freeswitch-mod-sndfile freeswitch-mod-native-file freeswitch-mod-local-stream freeswitch-mod-tone-stream freeswitch-mod-lua freeswitch-meta-mod-say
-apt-get -qq -y install freeswitch-mod-xml-cdr freeswitch-mod-verto freeswitch-mod-callcenter freeswitch-mod-rtc freeswitch-mod-png freeswitch-mod-json-cdr freeswitch-mod-shout
-apt-get -qq -y install freeswitch-mod-sms freeswitch-mod-sms-dbg freeswitch-mod-cidlookup freeswitch-mod-memcache
-apt-get -qq -y install freeswitch-mod-imagick freeswitch-mod-tts-commandline freeswitch-mod-directory freeswitch-mod-flite
-apt-get -qq -y install freeswitch-music-default
-apt-get remove -q -y freeswitch-systemd
+apt-get update
+apt-get install -y gdb ntp
+apt-get install -y freeswitch-meta-bare freeswitch-conf-vanilla freeswitch-mod-commands freeswitch-mod-console freeswitch-mod-logfile
+apt-get install -y freeswitch-lang-en freeswitch-mod-say-en freeswitch-sounds-en-us-callie
+apt-get install -y freeswitch-mod-enum freeswitch-mod-cdr-csv freeswitch-mod-event-socket freeswitch-mod-sofia freeswitch-mod-sofia-dbg freeswitch-mod-loopback
+apt-get install -y freeswitch-mod-conference freeswitch-mod-db freeswitch-mod-dptools freeswitch-mod-expr freeswitch-mod-fifo freeswitch-mod-httapi
+apt-get install -y freeswitch-mod-hash freeswitch-mod-esl freeswitch-mod-esf freeswitch-mod-fsv freeswitch-mod-valet-parking freeswitch-mod-dialplan-xml freeswitch-dbg
+apt-get install -y freeswitch-mod-sndfile freeswitch-mod-native-file freeswitch-mod-local-stream freeswitch-mod-tone-stream freeswitch-mod-lua freeswitch-meta-mod-say
+apt-get install -y freeswitch-mod-xml-cdr freeswitch-mod-verto freeswitch-mod-callcenter freeswitch-mod-rtc freeswitch-mod-png freeswitch-mod-json-cdr freeswitch-mod-shout
+apt-get install -y freeswitch-mod-sms freeswitch-mod-sms-dbg freeswitch-mod-cidlookup freeswitch-mod-memcache
+apt-get install -y freeswitch-mod-imagick freeswitch-mod-tts-commandline freeswitch-mod-directory
+apt-get install -y freeswitch-mod-flite freeswitch-mod-distributor freeswitch-meta-codecs
+apt-get install -y freeswitch-mod-pgsql
+apt-get install -y freeswitch-music-default
+apt-get install -y libyuv-dev
#remove the music package to protect music on hold from package updates
mkdir -p /usr/share/freeswitch/sounds/temp
mv /usr/share/freeswitch/sounds/music/*000 /usr/share/freeswitch/sounds/temp
+mv /usr/share/freeswitch/sounds/music/default/*000 /usr/share/freeswitch/sounds/temp
apt-get remove -y freeswitch-music-default
mkdir -p /usr/share/freeswitch/sounds/music/default
mv /usr/share/freeswitch/sounds/temp/* /usr/share/freeswitch/sounds/music/default