diff --git a/fhoss/Dockerfile b/fhoss/Dockerfile index 011fc7e..de861f7 100644 --- a/fhoss/Dockerfile +++ b/fhoss/Dockerfile @@ -34,7 +34,7 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FROM ubuntu:bionic +FROM ubuntu:focal ENV DEBIAN_FRONTEND=noninteractive diff --git a/fhoss/fhoss_init.sh b/fhoss/fhoss_init.sh index b25472a..2fccfee 100755 --- a/fhoss/fhoss_init.sh +++ b/fhoss/fhoss_init.sh @@ -48,17 +48,23 @@ while ! mysqladmin ping -h ${MYSQL_IP} --silent; do done # Sleep until permissions are set -sleep 5; +sleep 10; # Create FHoSS database, populate tables and grant privileges if [[ -z "`mysql -u root -h ${MYSQL_IP} -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='hss_db'" 2>&1`" ]]; then mysql -u root -h ${MYSQL_IP} -e "create database hss_db;" mysql -u root -h ${MYSQL_IP} hss_db < /opt/OpenIMSCore/FHoSS/scripts/hss_db.sql + FHOSS_USER_EXISTS=`mysql -u root -h ${MYSQL_IP} -s -N -e "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE User = 'hss' AND Host = '%')"` + if [[ "$FHOSS_USER_EXISTS" == 0 ]] + then + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'hss'@'%' IDENTIFIED WITH mysql_native_password BY 'hss'"; + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'hss'@'$FHOSS_IP' IDENTIFIED WITH mysql_native_password BY 'hss'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON hss_db.* TO 'hss'@'%'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON hss_db.* TO 'hss'@'$FHOSS_IP'"; + mysql -u root -h ${MYSQL_IP} -e "FLUSH PRIVILEGES;" + fi mysql -u root -h ${MYSQL_IP} hss_db < /opt/OpenIMSCore/FHoSS/scripts/userdata.sql - mysql -u root -h ${MYSQL_IP} -e "grant delete,insert,select,update on hss_db.* to hss@$FHOSS_IP identified by 'hss';" - mysql -u root -h ${MYSQL_IP} -e "grant delete,insert,select,update on hss_db.* to hss@'%' identified by 'hss';" - mysql -u root -h ${MYSQL_IP} -e "FLUSH PRIVILEGES;" fi # Sync docker time diff --git a/icscf/icscf_init.sh b/icscf/icscf_init.sh index 62fa855..58213ad 100755 --- a/icscf/icscf_init.sh +++ b/icscf/icscf_init.sh @@ -38,18 +38,27 @@ while ! mysqladmin ping -h ${MYSQL_IP} --silent; do done # Sleep until permissions are set -sleep 5; +sleep 10; # Create ICSCF database, populate tables and grant privileges if [[ -z "`mysql -u root -h ${MYSQL_IP} -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='icscf'" 2>&1`" ]]; then mysql -u root -h ${MYSQL_IP} -e "create database icscf;" mysql -u root -h ${MYSQL_IP} icscf < /usr/local/src/kamailio/misc/examples/ims/icscf/icscf.sql - mysql -u root -h ${MYSQL_IP} -e "grant delete,insert,select,update on icscf.* to icscf@$ICSCF_IP identified by 'heslo';" - mysql -u root -h ${MYSQL_IP} -e "grant delete,insert,select,update on icscf.* to provisioning@$ICSCF_IP identified by 'provi';" - mysql -u root -h ${MYSQL_IP} -e "GRANT ALL PRIVILEGES ON icscf.* TO 'icscf'@'%' identified by 'heslo';" - mysql -u root -h ${MYSQL_IP} -e "GRANT ALL PRIVILEGES ON icscf.* TO 'provisioning'@'%' identified by 'provi';" - mysql -u root -h ${MYSQL_IP} -e "FLUSH PRIVILEGES;" + + ICSCF_USER_EXISTS=`mysql -u root -h ${MYSQL_IP} -s -N -e "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE User = 'icscf' AND Host = '%')"` + if [[ "$ICSCF_USER_EXISTS" == 0 ]] + then + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'icscf'@'%' IDENTIFIED WITH mysql_native_password BY 'heslo'"; + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'provisioning'@'%' IDENTIFIED WITH mysql_native_password BY 'provi'"; + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'icscf'@'$ICSCF_IP' IDENTIFIED WITH mysql_native_password BY 'heslo'"; + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'provisioning'@'$ICSCF_IP' IDENTIFIED WITH mysql_native_password BY 'provi'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON icscf.* TO 'icscf'@'%'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON icscf.* TO 'icscf'@'$ICSCF_IP'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON icscf.* TO 'provisioning'@'%'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON icscf.* TO 'provisioning'@'$ICSCF_IP'"; + mysql -u root -h ${MYSQL_IP} -e "FLUSH PRIVILEGES;" + fi fi DOMAIN_PRESENT=`mysql -u root -h ${MYSQL_IP} icscf -s -N -e "SELECT count(*) FROM nds_trusted_domains WHERE trusted_domain='$IMS_DOMAIN';"` diff --git a/ims_base/Dockerfile b/ims_base/Dockerfile index 9580608..c578a0a 100644 --- a/ims_base/Dockerfile +++ b/ims_base/Dockerfile @@ -24,7 +24,7 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FROM ubuntu:bionic +FROM ubuntu:focal ENV DEBIAN_FRONTEND=noninteractive @@ -33,7 +33,7 @@ RUN apt-get update && \ apt-get -y install mysql-server tcpdump screen tmux ntp ntpdate git-core dkms \ gcc flex bison libmysqlclient-dev make libssl-dev libcurl4-openssl-dev \ libxml2-dev libpcre3-dev bash-completion g++ autoconf libmnl-dev \ - libsctp-dev ipsec-tools libradcli-dev libradcli4 iproute2 net-tools \ + libsctp-dev libradcli-dev libradcli4 iproute2 net-tools \ iputils-ping # Fetch Kamailio code (branch 5.3) diff --git a/mysql/Dockerfile b/mysql/Dockerfile index 5597d12..837367e 100644 --- a/mysql/Dockerfile +++ b/mysql/Dockerfile @@ -24,7 +24,7 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FROM ubuntu:bionic +FROM ubuntu:focal ENV DEBIAN_FRONTEND=noninteractive diff --git a/mysql/mysql_init.sh b/mysql/mysql_init.sh index 286aed4..aa61f05 100755 --- a/mysql/mysql_init.sh +++ b/mysql/mysql_init.sh @@ -33,6 +33,8 @@ user=root password=ims EOF +usermod -d /var/lib/mysql/ mysql + echo 'Waiting for MySQL to start.' /etc/init.d/mysql restart while true; do @@ -43,12 +45,16 @@ done #ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # Grant privileges and set max connections -mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by 'ims' WITH GRANT OPTION;" -mysql -u root -e "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY ''" -mysql -u root -e "FLUSH PRIVILEGES;" -mysql -u root -e "SET GLOBAL max_connections=200;" +ROOT_USER_EXISTS=`mysql -u root -s -N -e "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE User = 'root' AND Host = '%')"` +if [[ "$ROOT_USER_EXISTS" == 0 ]] +then + mysql -u root -e "CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'ims'"; + mysql -u root -e "GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION"; + mysql -u root -e "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY ''" + mysql -u root -e "FLUSH PRIVILEGES;" + mysql -u root -e "SET GLOBAL max_connections=200;" +fi + pkill -9 mysqld - sleep 5 - mysqld_safe diff --git a/pcscf/pcscf_init.sh b/pcscf/pcscf_init.sh index e6153c1..a287e58 100755 --- a/pcscf/pcscf_init.sh +++ b/pcscf/pcscf_init.sh @@ -46,7 +46,7 @@ while ! mysqladmin ping -h ${MYSQL_IP} --silent; do done # Sleep until permissions are set -sleep 5; +sleep 10; # Create PCSCF database, populate tables and grant privileges if [[ -z "`mysql -u root -h ${MYSQL_IP} -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='pcscf'" 2>&1`" ]]; @@ -56,9 +56,15 @@ then mysql -u root -h ${MYSQL_IP} pcscf < /usr/local/src/kamailio/utils/kamctl/mysql/presence-create.sql mysql -u root -h ${MYSQL_IP} pcscf < /usr/local/src/kamailio/utils/kamctl/mysql/ims_usrloc_pcscf-create.sql mysql -u root -h ${MYSQL_IP} pcscf < /usr/local/src/kamailio/utils/kamctl/mysql/ims_dialog-create.sql - mysql -u root -h ${MYSQL_IP} -e "grant delete,insert,select,update on pcscf.* to pcscf@$PCSCF_IP identified by 'heslo';" - mysql -u root -h ${MYSQL_IP} -e "GRANT ALL PRIVILEGES ON pcscf.* TO 'pcscf'@'%' identified by 'heslo';" - mysql -u root -h ${MYSQL_IP} -e "FLUSH PRIVILEGES;" + PCSCF_USER_EXISTS=`mysql -u root -h ${MYSQL_IP} -s -N -e "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE User = 'pcscf' AND Host = '%')"` + if [[ "$PCSCF_USER_EXISTS" == 0 ]] + then + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'pcscf'@'%' IDENTIFIED WITH mysql_native_password BY 'heslo'"; + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'pcscf'@'$PCSCF_IP' IDENTIFIED WITH mysql_native_password BY 'heslo'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON pcscf.* TO 'pcscf'@'%'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON pcscf.* TO 'pcscf'@'$PCSCF_IP'"; + mysql -u root -h ${MYSQL_IP} -e "FLUSH PRIVILEGES;" + fi fi sed -i 's|PCSCF_IP|'$PCSCF_IP'|g' /etc/kamailio_pcscf/pcscf.cfg diff --git a/rtpengine/Dockerfile b/rtpengine/Dockerfile index 7791f95..69383c6 100644 --- a/rtpengine/Dockerfile +++ b/rtpengine/Dockerfile @@ -24,24 +24,24 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FROM ubuntu:bionic +FROM ubuntu:focal ENV DEBIAN_FRONTEND=noninteractive ENV DEB_BUILD_PROFILES="pkg.ngcp-rtpengine.nobcg729" # Install updates and dependencies RUN apt-get update && \ - apt-get -y install git vim tmux dpkg-dev debhelper=12.1.1ubuntu1~ubuntu18.04.1 default-libmysqlclient-dev gperf iptables-dev libavcodec-dev libavfilter-dev libavformat-dev \ + apt-get -y install git vim tmux dpkg-dev debhelper libxtables-dev default-libmysqlclient-dev gperf libavcodec-dev libavfilter-dev libavformat-dev \ libavutil-dev libbencode-perl libcrypt-openssl-rsa-perl libcrypt-rijndael-perl libdigest-crc-perl libdigest-hmac-perl \ libevent-dev libhiredis-dev libio-multiplex-perl libio-socket-inet6-perl libiptc-dev libjson-glib-dev libnet-interface-perl \ libpcap0.8-dev libpcre3-dev libsocket6-perl libspandsp-dev libssl-dev libswresample-dev libsystemd-dev libxmlrpc-core-c3-dev \ markdown dkms module-assistant keyutils libnfsidmap2 nfs-common rpcbind libglib2.0-dev zlib1g-dev libavcodec-extra \ - libcurl4-openssl-dev netcat-openbsd netcat iptables iproute2 net-tools iputils-ping libconfig-tiny-perl + libcurl4-openssl-dev netcat-openbsd netcat iptables iproute2 net-tools iputils-ping libconfig-tiny-perl libwebsockets-dev # Fetch RTPEngine code (tag mr7.4.1), build and install RUN git clone https://github.com/sipwise/rtpengine && \ - cd rtpengine && git checkout mr7.4.1 && dpkg-checkbuilddeps && \ + cd rtpengine && git checkout mr9.4.1 && dpkg-checkbuilddeps && \ dpkg-buildpackage -b -uc -us && cd .. && \ - dpkg -i *.deb && ldconfig && mkdir /var/spool/rtpengine + dpkg -i *.deb && ldconfig CMD /mnt/rtpengine/rtpengine_init.sh diff --git a/scscf/scscf_init.sh b/scscf/scscf_init.sh index 9af0ed3..6a15360 100755 --- a/scscf/scscf_init.sh +++ b/scscf/scscf_init.sh @@ -42,7 +42,7 @@ while ! mysqladmin ping -h ${MYSQL_IP} --silent; do done # Sleep until permissions are set -sleep 5; +sleep 10; # Create SCSCF database, populate tables and grant privileges if [[ -z "`mysql -u root -h ${MYSQL_IP} -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='scscf'" 2>&1`" ]]; @@ -53,9 +53,15 @@ then mysql -u root -h ${MYSQL_IP} scscf < /usr/local/src/kamailio/utils/kamctl/mysql/ims_usrloc_scscf-create.sql mysql -u root -h ${MYSQL_IP} scscf < /usr/local/src/kamailio/utils/kamctl/mysql/ims_dialog-create.sql mysql -u root -h ${MYSQL_IP} scscf < /usr/local/src/kamailio/utils/kamctl/mysql/ims_charging-create.sql - mysql -u root -h ${MYSQL_IP} -e "grant delete,insert,select,update on scscf.* to scscf@$SCSCF_IP identified by 'heslo';" - mysql -u root -h ${MYSQL_IP} -e "GRANT ALL PRIVILEGES ON scscf.* TO 'scscf'@'%' identified by 'heslo';" - mysql -u root -h ${MYSQL_IP} -e "FLUSH PRIVILEGES;" + SCSCF_USER_EXISTS=`mysql -u root -h ${MYSQL_IP} -s -N -e "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE User = 'scscf' AND Host = '%')"` + if [[ "$SCSCF_USER_EXISTS" == 0 ]] + then + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'scscf'@'%' IDENTIFIED WITH mysql_native_password BY 'heslo'"; + mysql -u root -h ${MYSQL_IP} -e "CREATE USER 'scscf'@'$SCSCF_IP' IDENTIFIED WITH mysql_native_password BY 'heslo'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON scscf.* TO 'scscf'@'%'"; + mysql -u root -h ${MYSQL_IP} -e "GRANT ALL ON scscf.* TO 'scscf'@'$SCSCF_IP'"; + mysql -u root -h ${MYSQL_IP} -e "FLUSH PRIVILEGES;" + fi fi export IMS_SLASH_DOMAIN=`echo $IMS_DOMAIN | sed 's/\./\\\./g'`