From 5f227e69732cdbf6c00530f38334750e76c549e3 Mon Sep 17 00:00:00 2001 From: Valentin Kleibel Date: Wed, 6 Apr 2022 14:28:31 +0200 Subject: [PATCH] devuan: merge changes to switch* from debian --- devuan/resources/switch.sh | 7 ++- devuan/resources/switch/dsn.sh | 57 +++++++++++++++++++ devuan/resources/switch/package-all.sh | 13 ++++- devuan/resources/switch/package-master-all.sh | 6 +- devuan/resources/switch/package-master.sh | 32 ++++++----- .../resources/switch/package-permissions.sh | 21 ++++--- devuan/resources/switch/package-release.sh | 50 +++++++++------- 7 files changed, 140 insertions(+), 46 deletions(-) create mode 100755 devuan/resources/switch/dsn.sh 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