OpenSuSE in AWS lightsail
From ViciWiki
Source: https://textuploader.com/1htul
http://www.vicidial.org/VICIDIALforum/viewtopic.php?f=8&t=40047&p=143285#p143285
###This is going to help you install Vicidial 9.0.2 on OpenSuSE 15.1 on an Amazon AWS Lightsail Virtual Server### ###First open an account on AWS and create an instance on Lightsail, choose linux, os only, opensuse. ###once its started, click on manage, then go to networking and create a static ip, attach it. ###SSH to the server, you will need to have a ssh key to do this, download the .pem file from amazon and use puttygen to convert it, ###instructions are there in lightsail ###Now is where it starts and i will just be telling you the commands to run sudo -i zypper install kernel-macros rpm -i https://rpmfind.net/linux/opensuse/update/leap/15.1/oss/noarch/kernel-devel-4.12.14-lp151.28.48.1.noarch.rpm zypper addrepo https://download.opensuse.org/repositories/home:vicidial:asterisk-13/openSUSE_Leap_15.1/home:vicidial:asterisk-13.repo zypper addrepo https://download.opensuse.org/repositories/home:/vicidial/openSUSE_Leap_15.1/home:vicidial.repo zypper ref zypper up sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/semanage.conf ***Add Swap File mkdir -p /var/lib/swap dd if=/dev/zero of=/var/lib/swap/swapfile bs=1M count=1024 mkswap /var/lib/swap/swapfile swapon /var/lib/swap/swapfile cat /proc/swaps ***Add Swap into startup vim /etc/fstab Type "i" Add a new line below whats there COPY whats in quotes - "/var/lib/swap/swapfile swap swap defaults 0 0" Press CNTL+C Type whats in qoutes - ":wq" Press Enter ###installing dependencies##### zypper install perl-ExtUtils-ParseXS perl-NetAddr-IP perl-Crypt-SSLeay perl-Curses perl-DBD-Pg perl-Module-ScanDeps perl-Text-CSV perl-HTML-Template perl-Text-Glob perl-Test-Script perl-Archive-Tar perl-Test-Base perl-OLE-Storage_Lite perl-Archive-Zip perl-Net-Server perl-Convert-ASN1 perl perl-Compress-Raw-Zlib perl-Digest-SHA1 perl-Error perl-ExtUtils-CBuilder perl-Parse-RecDescent perl-Spiffy perl-IO-Zlib perl-Module-Build perl-HTML-Parser perl-Net-SSLeay perl-Proc-ProcessTable perl-TermReadKey perl-Tk perl-Net-SNMP perl-Test-NoWarnings perl-XML-Writer perl-libwww-perl perl-XML-Parser perl-File-Remove perl-Parse-CPAN-Meta perl-Set-Scalar perl-Probe-Perl perl-File-Which perl-Module-Install perl-File-HomeDir perl-Spreadsheet-ParseExcel perl-Mail-Sendmail make patch gcc gcc-c++ subversion php php-devel php-gd gd-devel php-mbstring php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel httpd libpcap libpcap-devel ncurses ncurses-devel screen mysql-devel ntp mutt wget nano unzip sipsak sox libuuid-devel sqlite3-devel mariadb-server mariadb httpd php-pdo perl-DBI perl-Digest-HMAC perl-YAML perl-Spreadsheet-XLSX asterisk-perl perl-version perl-Crypt-DES perl-URI perl-Net-Daemon perl-IO-stringy perl-YAML-Tiny perl-HTML-Tagset perl-Socket6 perl-BSD-Resource perl-IPC-Run3 perl-Text-CSV_XS perl-Unicode-Map perl-Net-Telnet perl-PAR-Dist perl-Date-Manip perl-JSON perl-rrdtool lame screen iftop dahdi-linux-devel perl-GD ###preparing for the next part with MCPAN perl -MCPAN -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit' ###more dependencies via cpan cpan -i CPAN::DistnameInfo String::CRC Tk::TableMatrix Net::Address::IP::Local Term::ReadLine::Gnu Spreadsheet::Read Net::Address::IPv4::Local RPM::Specfile Spreadsheet::XLSX Spreadsheet::ReadSXC cpan MD5 Digest::MD5 Digest::SHA1 Bundle::CPAN Pod::Usage Getopt::Long DBI DBD::mysql Net::Telnet Time::HiRes Net::Server Mail::Sendmail Unicode::Map Jcode Spreadsheet::WriteExcel OLE::Storage_Lite Proc::ProcessTable IO::Scalar Scalar::Util Spreadsheet::ParseExcel Archive::Zip Compress::Raw::Zlib Spreadsheet::XLSX Test::Tester Spreadsheet::ReadSXC Text::CSV Test::NoWarnings Text::CSV_PP File::Temp Text::CSV_XS Spreadsheet::Read LWP::UserAgent HTML::Entities HTML::Strip HTML::FormatText HTML::TreeBuilder Switch Time::Local MIME::POP3Client Mail::IMAPClient Mail::Message IO::Socket::SSL readline ###copy and paste this at the same time: cd /usr/bin/ curl -LOk http://xrl.us/cpanm chmod +x cpanm cpanm -f File::Which cpanm -f File::HomeDir cpanm CPAN::Meta::Requirements cpanm -f CPAN cpanm YAML cpanm MD5 cpanm Digest::MD5 cpanm Digest::SHA1 cpanm Bundle::CPAN cpanm -f DBD::mysql cpanm Curses cpanm Getopt::Long cpanm Net::Domain cpanm Term::ReadKey cpanm Term::ANSIColor cpanm HTML::FormatText cpanm MIME::Decoder cpanm Mail::POP3Client cpanm User::Identity --force cpanm Mail::Message cpanm Crypt::Eksblowfish::Bcrypt ###copy until here ^^^ ###lets add mysql(mariadb) and apache2 as services to autostart systemctl start mariadb; systemctl enable mariadb; systemctl start apache2; systemctl enable apache2 reboot ***Asterisk PERL Module 0.8 Installation - zypper asterisk-perl cd /usr/src/ wget http://download.vicidial.com/required-apps/asterisk-perl-0.08.tar.gz tar -zxf asterisk-perl-0.08.tar.gz cd asterisk-perl-0.08 perl Makefile.PL && make all && make install ***Install Jansson cd /usr/src/ wget http://www.digip.org/jansson/releases/jansson-2.9.tar.gz tar -zvxf jansson-2.9.tar.gz cd jansson-2.9 ./configure && make clean && make && make install ldconfig cd .. rm *.tar.gz ***Install Asterisk - Dadhi and libpri mkdir /usr/src/asterisk cd /usr/src/asterisk wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://download.vicidial.com/required-apps/asterisk-13.29.2-vici.tar.gz tar -xzvf asterisk-13.29.2-vici.tar.gz tar -xzvf dahdi-linux-complete-current.tar.gz tar -xzvf libpri-current.tar.gz cd /usr/src/asterisk/dahdi-linux-complete-3.1.0+3.1.0/ make && make install cd /usr/src/asterisk/libpri-1.6.0 make clean make make install zypper install asterisk cd /usr/src/asterisk/asterisk-13.29.2/ ./configure --libdir=/usr/lib64 make clean make menuselect* !!!*MAKE SURE TO scroll down to Applications, press enter, scroll down to > App.MeetME press space bar so you see: [*] and press x to save and exit make && make install && make samples chkconfig asterisk on ***DataBase Creation mysql -p press enter for no password CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE USER 'cron'@'localhost' IDENTIFIED BY '1234'; GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO [email protected]'%' IDENTIFIED BY '1234'; GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO [email protected] IDENTIFIED BY '1234'; GRANT RELOAD ON *.* TO [email protected]'%'; GRANT RELOAD ON *.* TO [email protected]; flush privileges; quit ***Install ViciDial mkdir /usr/src/astguiclient cd /usr/src/astguiclient svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk cd trunk perl install.pl ##make sure to change web directory to /srv/www/htdocs and to put your public ip, and to put 13.X for asterisk version ***Import MySQL Settings mysql -u root -p SET GLOBAL connect_timeout=60; use asterisk; \. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql \. /usr/src/astguiclient/trunk/extras/first_server_install.sql ALTER TABLE phones ALTER template_id SET DEFAULT ''; \. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql quit /usr/share/astguiclient/ADMIN_area_code_populate.pl ###Technically, opensuse 15.1 doesnt have rc.local, it uses systemd so im just gonna incorporate the two vim /etc/systemd/system/rc-local.service ###copy paste until i say stop#### [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target ########STOP####### ####Now lets create the file: rc.local vim /etc/rc.local ######Copy and paste below here until i say stop##### #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local # OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring) /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2 # Disable console blanking and powersaving /usr/bin/setterm -blank /usr/bin/setterm -powersave off /usr/bin/setterm -powerdown ### start up the MySQL server systemctl start mariadb.service systemctl enable mariadb.service ### start up the apache web server systemctl start apache2 systemctl enable apache2 ### roll the Asterisk logs upon reboot /usr/share/astguiclient/ADMIN_restart_roll_logs.pl ### clear the server-related records from the database /usr/share/astguiclient/AST_reset_mysql_vars.pl ### load dahdi drivers modprobe dahdi /usr/sbin/dahdi_cfg -vvvvvvvvvvvvv ### sleep for 20 seconds before launching Asterisk sleep 20 ### start up asterisk /usr/share/astguiclient/start_asterisk_boot.pl sleep 10 /usr/share/astguiclient/ADMIN_keepalive_ALL.pl --cu3way ##########STOP######## chmod +x /etc/rc.local systemctl enable rc-local; systemctl start rc-local #### Adding to Crontab crontab -e ####Copy and paste from below here ######## ### keepalive script for astguiclient processes * * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl --cu3way ##* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl --cu3way #*/5 * * * * /usr/bin/curl --silent http://localhost/viciboard/rolling_agent_stats.php > /dev/null 2>&1:wq ### Compress astguiclient log files and remove old ones 25 2 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +1 -print | grep -v \.xz | xargs xz -9 >/dev/null 2>&1 28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +30 -print | xargs rm -f ### fix the vicidial_agent_log once every hour and the full day run at night 33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl 50 0 * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --last-24hours ## uncomment below if using QueueMetrics #*/5 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --only-qm-live-call-check ### updater for VICIDIAL hopper * * * * * sleep 5 && /usr/share/astguiclient/AST_VDhopper.pl -q ### adjust the GMT offset for the leads in the vicidial_list table 1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug --list-settings ### optimize the database tables within the asterisk database 3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl ### VICIDIAL agent time log weekly and daily summary report generation 2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl 22 0 * * * /usr/share/astguiclient/AST_agent_day.pl ### VICIDIAL campaign export scripts (OPTIONAL) #32 0 * * * /usr/share/astguiclient/AST_VDsales_export.pl #42 0 * * * /usr/share/astguiclient/AST_sourceID_summary_export.pl ### inventory report optional #1 7 * * * /usr/share/astguiclient/AST_dialer_inventory_snapshot.pl -q --override-24hours ### roll logs monthly on high-volume dialing systems #30 1 1 * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl --months=6 ### roll call_log and vicidial_log_extended daily on very high-volume dialing systems #20 1 * * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl --daily ## uncomment below if using Vtiger #1 1 * * * /usr/share/astguiclient/Vtiger_optimize_all_tables.pl --quiet # cleanup of the scheduled callback records 25 0 * * * /usr/share/astguiclient/AST_DB_dead_cb_purge.pl --purge-non-cb --quiet # removal of duplicate scheduled callback records #35 0 * * * /usr/share/astguiclient/AST_DB_dead_cb_purge.pl --purge-non-cb --remove-dup-cb --quiet ### inbound email parser should only be active on a single server * * * * * /usr/share/astguiclient/AST_inbound_email_parser.pl ### flush queue DB table every hour for entries older than 1 hour 11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q ### remove and rotate old asterisk logs 29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +30 -print | xargs rm -f 30 0 * * * /usr/bin/find / -maxdepth 1 -name "screenlog.0*" -mtime +7 -print | xargs rm -f 31 0 * * * /usr/bin/find /tmp -maxdepth 1 -type f -mtime +7 -print | xargs rm -f 32 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 1 -type f -mtime +1 -print | grep -v \.xz | xargs xz >/dev/null 2>&1 ### recording mixing/compressing/ftping scripts #0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --MP3 #2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --MP3 --run-check #0 1 * * * /usr/share/astguiclient/AST_CRON_audio_4_ftp2.pl --ftp-server=server.ip --ftp-login=user --ftp-pass=pass --ftp-directory=/ --ftp-persistent --ftp-vali$ ### remove old recordings more than 7 days old, and delete originals after 1 day #24 0 * * * /usr/bin/find /var/spool/asterisk/monitorDONE -maxdepth 2 -type f -mtime +7 -print | xargs rm -f #24 1 * * * /usr/bin/find /var/spool/asterisk/monitorDONE/ORIG -maxdepth 2 -type f -mtime +1 -print | xargs rm -f ### kill Hangup script for Asterisk updaters * * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl ### updater for voicemail #* * * * * /usr/share/astguiclient/AST_vm_update.pl ### updater for conference validator * * * * * /usr/share/astguiclient/AST_conf_update.pl ### reset several temporary-info tables in the database 2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl ### Reboot nightly to manage asterisk issues and memory leaks - uncomment if issues arise #30 6 * * * /sbin/reboot ### remove text to speech file more than 4 days old #20 0 * * * /usr/bin/find /var/lib/asterisk/sounds/tts/ -maxdepth 2 -type f -mtime +4 -print | xargs rm -f ### Update agent records with the IP of the phone they are logging in on #*/5 * * * * /usr/share/astguiclient/AST_phone_update.pl --agent-lookup ### Delete voicemail that is older then 60 days #0 2 * * * /usr/local/bin/vmspool_manager.pl --active --age=60 ### ViciBox integrated firewall, by default just load the VoIP Black list and reload it every 4 hours ### You can lock everyone out of your server if you set this wrong, so understand what you are doing!!! @reboot /usr/local/bin/VB-firewall.pl --voipbl --noblack --quiet 0 */6 * * * /usr/local/bin/VB-firewall.pl --voipbl --noblack --flush --quiet ### Check letsencrypt.org and renew cert if needed and reload config 0 0 * * 0 /usr/bin/certbot -n --webroot renew >/dev/null 2>&1 10 0 * * 0 /usr/sbin/apache2ctl -k graceful >/dev/null 2>&1 11 0 * * 0 /usr/sbin/asterisk -rx "module reload http" >/dev/null 2>&1 ####END CRONTAB HERE ***Update Server IP /usr/share/astguiclient/ADMIN_update_server_ip.pl --old-server_ip=10.10.10.15 cd /usr/src/astguiclient/trunk/install.pl reboot ###once it restarts, type "yast" go to network services > http, on the first screen tab to next, then second screen enable all 3 modules(php, python and perl) and then keep going next on the last pages until u get to finish. ###Set your timezone with yast timezone - TimeZone - America/New_York or wherever you are ###Making sure the manager config file is correct#### vim /etc/asterisk/manager.conf ####and make sure it looks like this: [general] enabled = yes port = 5038 bindaddr = 0.0.0.0 timestampevents = yes [cron] secret = 1234 read = system,call,log,verbose,command,agent,user,originate write = system,call,log,verbose,command,agent,user,originate [updatecron] secret = 1234 read = command,reporting write = command,reporting eventfilter=Event: CoreShowChannel [listencron] secret = 1234 read = system,call,log,verbose,command,agent,user,dtmf write = command eventfilter=Event: Shutdown eventfilter=Event: DTMFBegin eventfilter=Event: DTMFEnd eventfilter=Event: NewCallerid eventfilter=Event: Newstate eventfilter=Event: Hangup eventfilter=!Event: HangupRequest [sendcron] secret = 1234 read = command write = system,call,log,verbose,command,agent,user,originate [sipcron] secret = 1234 read = call write = command eventfilter=Event: SIPInvite eventfilter=Event: SIPResponse ###End Manager conf###### vim /etc/my.cnf Look for sql_mode and change it to sqlmode="" ####refer to: http://www.vicidial.org/VICIDIALforum/viewtopic.php?f=4&t=39553&p=141918&hilit=Your+session+has+been+disabled#p141918 ###add a host record to your server thru CLI if you're using a FQDN (domain name)### vim /etc/hosts add your static ip and your FQDN if you have one exit and save ###Go to http://your.statis.ip/vicidial/admin.php ###Click inititial setup, put in your passwords, go to > users > 6666 > enables all the permissions you need. refer to managers manual. ###go to Admin > Servers and change: Asterisk Version: 13.29.2-vici ###make sure the ip shows correctly /usr/share/astguiclient/ADMIN_keepalive_ALL.pl --cu3way Enjoy!!!